
/*
 * This file was generated by the SOM Compiler.
 * FileName: \odwin\h\TRNSFORM.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith.dll: 2.41
 */

/*
 * 
 *  Classes defined in this interface
 * 
 */


#ifndef SOM_ODTransform_h
#define SOM_ODTransform_h


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))



/*
 * Define class data structures as resolution macros
 */
#define ODTransformClassData (*resolve_ODTransformClassData())
#define ODTransformCClassData (*resolve_ODTransformCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODTransform
#define ODTransform SOMObject
#endif
#include <TrnsfrmB.h>

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef ODObject
    #define ODObject SOMObject
#endif /* ODObject */
#ifndef ODExtension
    #define ODExtension SOMObject
#endif /* ODExtension */
#ifndef ODRefCntObject
    #define ODRefCntObject SOMObject
#endif /* ODRefCntObject */
#ifndef ODBaseTransform
    #define ODBaseTransform SOMObject
#endif /* ODBaseTransform */
#ifndef ODTransform
    #define ODTransform SOMObject
#endif /* ODTransform */
#ifndef ODShape
    #define ODShape SOMObject
#endif /* ODShape */
#ifndef ODStorageUnit
    #define ODStorageUnit SOMObject
#endif /* ODStorageUnit */

/*
 * End of user-defined types.
 */

#define ODTransform_MajorVersion 1
#define ODTransform_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODTransformNewClass c
#define ODTransformClassData d
#define ODTransformCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODTransform_classObj ODTransformClassData.classObject
#define _ODTransform ODTransform_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK ODTransformNewClass(integer4 somntmajorVersion,
		integer4 somntminorVersion);

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODTransformClassDataStructure {
	SOMClass *classObject;
	somMToken InitTransform;
	somMToken IsWinOffset;
	somMToken GetWinOffset;
	somMToken SetWinOffset;
}  _ODTransformClassData;
SOMEXTERN struct ODTransformClassDataStructure * SOMLINK resolve_ODTransformClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODTransformCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODTransformCClassData;
SOMEXTERN struct ODTransformCClassDataStructure * SOMLINK resolve_ODTransformCClassData(void);

/*
 * New and Renew macros for ODTransform
 */
#define ODTransformNew() \
   (_somNew(_ODTransform ? _ODTransform : ODTransformNewClass(ODTransform_MajorVersion, ODTransform_MinorVersion)))
#define ODTransformRenew(buf) \
   (_somRenew(_ODTransform ? _ODTransform : ODTransformNewClass(ODTransform_MajorVersion, ODTransform_MinorVersion), buf))

/*
 * New Method: InitTransform
 */
typedef void   (SOMLINK * somTD_ODTransform_InitTransform)(ODTransform *somSelf, Environment *ev);
#define somMD_ODTransform_InitTransform "::ODTransform::InitTransform"
#define ODTransform_InitTransform(somSelf,ev) \
    (SOM_Resolve(somSelf, ODTransform, InitTransform) \
	(somSelf,ev))
#ifndef SOMGD_InitTransform
    #if (defined(_InitTransform) || defined(__InitTransform))
        #undef _InitTransform
        #undef __InitTransform
        #define SOMGD_InitTransform 1
    #else
        #define _InitTransform ODTransform_InitTransform
    #endif /* _InitTransform */
#endif /* SOMGD_InitTransform */

/*
 * New Method: IsWinOffset
 */
typedef ODBoolean   (SOMLINK * somTD_ODTransform_IsWinOffset)(ODTransform *somSelf, Environment *ev);
#define somMD_ODTransform_IsWinOffset "::ODTransform::IsWinOffset"
#define ODTransform_IsWinOffset(somSelf,ev) \
    (SOM_Resolve(somSelf, ODTransform, IsWinOffset) \
	(somSelf,ev))
#ifndef SOMGD_IsWinOffset
    #if (defined(_IsWinOffset) || defined(__IsWinOffset))
        #undef _IsWinOffset
        #undef __IsWinOffset
        #define SOMGD_IsWinOffset 1
    #else
        #define _IsWinOffset ODTransform_IsWinOffset
    #endif /* _IsWinOffset */
#endif /* SOMGD_IsWinOffset */

/*
 * New Method: GetWinOffset
 */
typedef POINT   (SOMLINK * somTD_ODTransform_GetWinOffset)(ODTransform *somSelf, Environment *ev);
#define somMD_ODTransform_GetWinOffset "::ODTransform::GetWinOffset"
#define ODTransform_GetWinOffset(somSelf,ev) \
    (SOM_Resolve(somSelf, ODTransform, GetWinOffset) \
	(somSelf,ev))
#ifndef SOMGD_GetWinOffset
    #if (defined(_GetWinOffset) || defined(__GetWinOffset))
        #undef _GetWinOffset
        #undef __GetWinOffset
        #define SOMGD_GetWinOffset 1
    #else
        #define _GetWinOffset ODTransform_GetWinOffset
    #endif /* _GetWinOffset */
#endif /* SOMGD_GetWinOffset */

/*
 * New Method: SetWinOffset
 */
typedef ODTransform*   (SOMLINK * somTD_ODTransform_SetWinOffset)(ODTransform *somSelf, Environment *ev,
		POINT* point);
#define somMD_ODTransform_SetWinOffset "::ODTransform::SetWinOffset"
#define ODTransform_SetWinOffset(somSelf,ev,point) \
    (SOM_Resolve(somSelf, ODTransform, SetWinOffset) \
	(somSelf,ev,point))
#ifndef SOMGD_SetWinOffset
    #if (defined(_SetWinOffset) || defined(__SetWinOffset))
        #undef _SetWinOffset
        #undef __SetWinOffset
        #define SOMGD_SetWinOffset 1
    #else
        #define _SetWinOffset ODTransform_SetWinOffset
    #endif /* _SetWinOffset */
#endif /* SOMGD_SetWinOffset */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODTransform_NewTransform ODBaseTransform_NewTransform
#define ODTransform_Copy ODBaseTransform_Copy
#define ODTransform_GetType ODBaseTransform_GetType
#define ODTransform_GetOffset ODBaseTransform_GetOffset
#define ODTransform_GetPreScaleOffset ODBaseTransform_GetPreScaleOffset
#define ODTransform_GetScale ODBaseTransform_GetScale
#define ODTransform_GetMatrix ODBaseTransform_GetMatrix
#define ODTransform_HasMatrix ODBaseTransform_HasMatrix
#define ODTransform_IsSameAs ODBaseTransform_IsSameAs
#define ODTransform_Reset ODBaseTransform_Reset
#define ODTransform_SetMatrix ODBaseTransform_SetMatrix
#define ODTransform_CopyFrom ODBaseTransform_CopyFrom
#define ODTransform_SetOffset ODBaseTransform_SetOffset
#define ODTransform_MoveBy ODBaseTransform_MoveBy
#define ODTransform_ScaleBy ODBaseTransform_ScaleBy
#define ODTransform_ScaleDownBy ODBaseTransform_ScaleDownBy
#define ODTransform_Invert ODBaseTransform_Invert
#define ODTransform_PreCompose ODBaseTransform_PreCompose
#define ODTransform_PostCompose ODBaseTransform_PostCompose
#define ODTransform_TransformPoint ODBaseTransform_TransformPoint
#define ODTransform_InvertPoint ODBaseTransform_InvertPoint
#define ODTransform_TransformShape ODBaseTransform_TransformShape
#define ODTransform_InvertShape ODBaseTransform_InvertShape
#define ODTransform_WriteTo ODBaseTransform_WriteTo
#define ODTransform_ReadFrom ODBaseTransform_ReadFrom
#define ODTransform_InitBaseTransform ODBaseTransform_InitBaseTransform
#define ODTransform_BuildInverse ODBaseTransform_BuildInverse
#define ODTransform_ClearInverse ODBaseTransform_ClearInverse
#define ODTransform_InitRefCntObject ODRefCntObject_InitRefCntObject
#define ODTransform_IncrementRefCount ODRefCntObject_IncrementRefCount
#define ODTransform_Release ODRefCntObject_Release
#define ODTransform_GetRefCount ODRefCntObject_GetRefCount
#define ODTransform_InitObject ODObject_InitObject
#define ODTransform_IsInitialized ODObject_IsInitialized
#define ODTransform_HasExtension ODObject_HasExtension
#define ODTransform_GetExtension ODObject_GetExtension
#define ODTransform_ReleaseExtension ODObject_ReleaseExtension
#define ODTransform_Purge ODObject_Purge
#define ODTransform_IsEqualTo ODObject_IsEqualTo
#define ODTransform_SubClassResponsibility ODObject_SubClassResponsibility
#define ODTransform_somDefaultInit SOMObject_somDefaultInit
#define ODTransform_somDestruct SOMObject_somDestruct
#define ODTransform_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODTransform_somDefaultAssign SOMObject_somDefaultAssign
#define ODTransform_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODTransform_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODTransform_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODTransform_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODTransform_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODTransform_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODTransform_somInit SOMObject_somInit
#define ODTransform_somFree SOMObject_somFree
#define ODTransform_somUninit SOMObject_somUninit
#define ODTransform_somGetClass SOMObject_somGetClass
#define ODTransform_somGetClassName SOMObject_somGetClassName
#define ODTransform_somGetSize SOMObject_somGetSize
#define ODTransform_somIsA SOMObject_somIsA
#define ODTransform_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODTransform_somRespondsTo SOMObject_somRespondsTo
#define ODTransform_somDispatch SOMObject_somDispatch
#define ODTransform_somClassDispatch SOMObject_somClassDispatch
#define ODTransform_somCastObj SOMObject_somCastObj
#define ODTransform_somResetObj SOMObject_somResetObj
#define ODTransform_somDispatchV SOMObject_somDispatchV
#define ODTransform_somDispatchL SOMObject_somDispatchL
#define ODTransform_somDispatchA SOMObject_somDispatchA
#define ODTransform_somDispatchD SOMObject_somDispatchD
#define ODTransform_somPrintSelf SOMObject_somPrintSelf
#define ODTransform_somDumpSelf SOMObject_somDumpSelf
#define ODTransform_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODTransform_h */
