AnimatableInterfaceIDs.h

Go to the documentation of this file.
00001 //**************************************************************************/
00002 // Copyright (c) 1998-2006 Autodesk, Inc.
00003 // All rights reserved.
00004 // 
00005 // These coded instructions, statements, and computer programs contain
00006 // unpublished proprietary information written by Autodesk, Inc., and are
00007 // protected by Federal copyright law. They may not be disclosed to third
00008 // parties or copied or duplicated in any form, in whole or in part, without
00009 // the prior written consent of Autodesk, Inc.
00010 //**************************************************************************/
00011 #pragma once
00012 
00035 #define I_CONTROL           0x00001010 //!< An Animatable supporting this interface is a Control
00036 #define I_IKCONTROL         0x00001020 //!< An Animatable supporting this interface is an IIKControl
00037 #define I_IKCHAINCONTROL    0x00001030 //!< An Animatable supporting this interface is an IIKChainControl
00038 #define I_WIRECONTROL       0x00001040 //!< An Animatable supporting this interface is an IBaseWireControl
00039 #define I_SCRIPTCONTROL     0x00001050 //!< An Animatable supporting this interface is an IBaseScriptControl
00040 #define I_MASTER            0x00001060 //!< An Animatable supporting this interface is a ReferenceTarget
00041 #define I_EASELIST          0x00001070 //!< An Animatable supporting this interface is an EaseCurveList
00042 #define I_MULTLIST          0x00001080 //!< An Animatable supporting this interface is a MultCurveList
00043 #define I_BASEOBJECT        0x00001090 //!< An Animatable supporting this interface is a BaseObject 
00044 #define I_WSMOBJECT         0x000010a0 //!< An Animatable supporting this interface is a WSMObject
00045 #define I_DERIVEDOBJECT     0x000010b0 //!< An Animatable supporting this interface is an IDerivedObject
00046 #define I_OBJECT            0x000010c0 //!< An Animatable supporting this interface is an Object 
00047 #define I_PARTICLEOBJ       0x000010d0 //!< An Animatable supporting this interface is a ParticleObject
00048 #define I_LIGHTOBJ          0x000010e0 //!< An Animatable supporting this interface is a LightObject
00049 #define I_SIMPLEPARTICLEOBJ 0x000010f0 //!< An Animatable supporting this interface is a SimpleParticle
00050 #define I_KEYCONTROL        0x00001100 //!< An Animatable supporting this interface is an IKeyControl
00051 #define I_KEYCONTROL2       0x00001110 //!< An Animatable supporting this interface is an IKeyControl2
00052 #define I_SETKEYCONTROL     0x00001120 //!< An Animatable supporting this interface is an ISetKey
00053 #define I_SYSTEM_XREF       0x00001130 //!< An Animatable supporting this interface is an ISystemXRef
00054 
00055 #define I_TEXTOBJECT        0x00001140 //!< An Animatable supporting this interface is an ITextObject
00056 #define I_WAVESOUND         0x00001150 //!< An Animatable supporting this interface is an IWaveSound
00057 #ifdef _SUBMTLASSIGNMENT
00058 #define I_SUBMTLAPI         0x00001160 //!< An Animatable supporting this interface is an ISubMtlAPI
00059 #endif
00060 
00061 #define I_NEWPARTPOD        0x00001170 //!< An Animatable supporting this interface is a ParticlePodObj
00062 #define I_NEWPARTSOURCE     0x00001180 //!< An Animatable supporting this interface is a BasicSourceObj
00063 #define I_NEWPARTOPERATOR   0x00001190 //!< An Animatable supporting this interface is an IOperatorInterface
00064 #define I_NEWPARTTEST       0x000011a0 //!< An Animatable supporting this interface is an ITestInterface. This is an obsolete interface.
00065 
00066 #define I_MESHSELECT        0x000011b0 //!< An Animatable supporting this interface is an IMeshSelect
00067 #define I_MESHSELECTDATA    0x000011c0 //!< An Animatable supporting this interface is an IMeshSelectData
00068 #define I_MAXSCRIPTPLUGIN   0x000011d0 //!< An Animatable supporting this interface is a MSPlugin
00069 #define I_MESHDELTAUSER     0x000011e0 //!< An Animatable supporting this interface is a MeshDeltaUser
00070 #define I_MESHDELTAUSERDATA 0x000011f0 //!< An Animatable supporting this interface is a MeshDeltaUserData
00071 #define I_SPLINESELECT      0x00001200 //!< An Animatable supporting this interface is an ISplineSelect
00072 #define I_SPLINESELECTDATA  0x00001210 //!< An Animatable supporting this interface is an ISplineSelectData
00073 #define I_SPLINEOPS         0x00001220 //!< An Animatable supporting this interface is an ISplineOps
00074 #define I_PATCHSELECT       0x00001230 //!< An Animatable supporting this interface is an IPatchSelect
00075 #define I_PATCHSELECTDATA   0x00001240 //!< An Animatable supporting this interface is an IPatchSelectData
00076 #define I_PATCHOPS          0x00001250 //!< An Animatable supporting this interface is an IPatchOps
00077 #define I_SUBMAP            0x00001260 //!< An Animatable supporting this interface is an ISubMap
00078 #define I_MITRANSLATOR      0x00001270 //!< unused - interface to max connection to mental ray
00079 #define I_MENTALRAY         0x00001280 //!< An Animatable supporting this interface is a mrItem*
00080 
00081 // GetInterface IDs for new material management/particle-chunk methods - ECP
00082 #define I_NEWMTLINTERFACE   0x00001290 //!< An Animatable supporting this interface is an IChkMtlAPI
00083 
00084 #define I_COMPONENT         0x000012a0 //!< An Animatable supporting this interface is an IComponent
00085 #define I_REFARRAY          0x000012b0 //!< An Animatable supporting this interface is an IRefArray
00086 #define I_LINKTMCTRL        0x000012c0 //!< An Animatable supporting this interface is an Link Transform Control
00087 #define I_SUBTARGETCTRL     0x000012d0 //!< An Animatable supporting this interface is an Sub Target Control
00088 
00089 // REQUIRES RELEASE (?)
00090 #define I_REAGENT           0x000012e0 //!< An Animatable supporting this interface is an IReagent 
00091 #define I_GEOMIMP           0x000012f0 //!< An Animatable supporting this interface is an IGeomImp - implementaion neutral interface to geometry caches - REQUIRES RELEASE
00092 #define I_AGGREGATION       0x00001300 //!< An Animatable supporting this interface is an IAggregation
00093 #define I_VALENCE           0x00001310 //!< An Animatable supporting this interface is an IValence
00094 #define I_GUEST             0x00001320 //!< An Animatable supporting this interface is an IGuest
00095 #define I_HOST              0x00001330 //!< An Animatable supporting this interface is an IHost
00096 #define I_SCENEOBJECT       0x00001340 //!< An Animatable supporting this interface is an Object
00097 #define I_MULTITANGENT      0x00001350 //!< An Animatable supporting this interface is an IAdjustMultipleTangents
00098 #define I_SOFTSELECT        0x00001360 //!< An Animatable supporting this interface is an ISoftSelect
00099 #define I_UNREPLACEABLECTL  0x00001370 //!< An Animatable supporting this interface is an IUnReplaceableControl - used for the exposetransform controllers
00100 #define I_EULERCTRL         0x00001380 //!< An Animatable supporting this interface is an IEulerControl - used for euler controllers in order to get/set the xyz ordering..
00101 #define I_LOCKED            0x00001390 //!< An Animatable supporting this interface is an ILockedTrack
00102 #define I_LOCKED_CLIENT     0x000013a0 //!< An Animatable supporting this interface is an ILockedTrackClient
00103 
00104 #define I_OBJECTSUPERCLASS_NOT_OBJECTCLASS  0x000013b0 //!< An Animatable supporting this interface reports a superclassid corresponding to an Object (for example, GEOMOBJECT_CLASS_ID), but creating an instance doesn't create an Object-derived object. Instead it derives just from ReferenceTarget. Examples of this are the NURBS classes RmModel and EmExternalObject.
00105 
00106 #define I_COMPOSITESUBMTLAPI 0x000013c0 //!< An Animatable supporting this interface is an ICompositeSubMtlAPI
00107 #define I_MTLIDSET          0x000013d0 //!< An Animatable supporting this interface is an IMtlIdSet
00108 
00109 #define I_USERINTERFACE     0x0000ffff //!< Plug-in defined interfaces should be greater than this value
00110 
00111 #define GetControlInterface(anim)   ((Control*)(anim)->GetInterface(I_CONTROL))
00112 #define GetObjectInterface(anim)    ((BaseObject*)(anim)->GetInterface(I_BASEOBJECT))
00113 #define GetParticleInterface(anim)  ((ParticleObject*)(anim)->GetInterface(I_PARTICLEOBJ))
00114 #define GetKeyControlInterface(anim) ((IKeyControl*)(anim)->GetInterface(I_KEYCONTROL))
00115 #define GetSetKeyControlInterface(anim) ((ISetKey*)(anim)->GetInterface(I_SETKEYCONTROL))
00116 #define GetMasterController(anim) ((ReferenceTarget*)(anim)->GetInterface(I_MASTER))
00117 #define GetTextObjectInterface(anim) ((ITextObject*)(anim)->GetInterface(I_TEXTOBJECT))
00118 #define GetWaveSoundInterface(anim) ((IWaveSound*)(anim)->GetInterface(I_WAVESOUND))
00119 #define GetMeshSelectInterface(anim) ((IMeshSelect*)(anim)->GetInterface(I_MESHSELECT))
00120 #define GetMeshSelectDataInterface(anim) ((IMeshSelectData*)(anim)->GetInterface(I_MESHSELECTDATA))
00121 #define GetMeshDeltaUserInterface(anim) ((MeshDeltaUser*)(anim)->GetInterface(I_MESHDELTAUSER))
00122 #define GetMeshDeltaUserDataInterface(anim) ((MeshDeltaUserData*)(anim)->GetInterface(I_MESHDELTAUSERDATA))
00123 #define GetMultiTangentInterface(anim) ((IAdjustMultipleTangents*)(anim)->GetInterface(I_MULTITANGENT))
00124 #define GetSoftSelectInterface(anim) ((ISoftSelect*)(anim)->GetInterface(I_SOFTSELECT))
00125 #define GetLockedTrackInterface(anim) ((ILockedTrack*)(anim)->GetInterface(I_LOCKED))
00126 #define GetLockedTrackClientInterface(client) ((ILockedTrackClient*)(client)->GetInterface(I_LOCKED_CLIENT))
00127