3ds Max C++ API Reference
Loading...
Searching...
No Matches
List of interface IDs supported by different plugin types

List of interface IDs to be used with void* Animatable::GetInterface(ULONG id) Checking whether an animatable implements a certain interface is the recommended way for determining if that animatable can be used as the type represented by that interface. More...

Macros

#define I_CONTROL   0x00001010
 An Animatable supporting this interface is a Control.
#define I_IKCONTROL   0x00001020
 An Animatable supporting this interface is an IIKControl.
#define I_IKCHAINCONTROL   0x00001030
 An Animatable supporting this interface is an IIKChainControl.
#define I_WIRECONTROL   0x00001040
 An Animatable supporting this interface is an IBaseWireControl.
#define I_SCRIPTCONTROL   0x00001050
 An Animatable supporting this interface is an IBaseScriptControl.
#define I_DRIVER   0x00001060
 An Animatable supporting this interface is a ReferenceTarget.
#define I_EASELIST   0x00001070
 An Animatable supporting this interface is an EaseCurveList.
#define I_MULTLIST   0x00001080
 An Animatable supporting this interface is a MultCurveList.
#define I_BASEOBJECT   0x00001090
 An Animatable supporting this interface is a BaseObject.
#define I_WSMOBJECT   0x000010a0
 An Animatable supporting this interface is a WSMObject.
#define I_DERIVEDOBJECT   0x000010b0
 An Animatable supporting this interface is an IDerivedObject.
#define I_OBJECT   0x000010c0
 An Animatable supporting this interface is an Object.
#define I_PARTICLEOBJ   0x000010d0
 An Animatable supporting this interface is a ParticleObject.
#define I_LIGHTOBJ   0x000010e0
 An Animatable supporting this interface is a LightObject.
#define I_SIMPLEPARTICLEOBJ   0x000010f0
 An Animatable supporting this interface is a SimpleParticle.
#define I_KEYCONTROL   0x00001100
 An Animatable supporting this interface is an IKeyControl.
#define I_KEYCONTROL2   0x00001110
 An Animatable supporting this interface is an IKeyControl2.
#define I_SETKEYCONTROL   0x00001120
 An Animatable supporting this interface is an ISetKey.
#define I_SYSTEM_XREF   0x00001130
 An Animatable supporting this interface is an ISystemXRef.
#define I_TEXTOBJECT   0x00001140
 An Animatable supporting this interface is an ITextObject.
#define I_WAVESOUND   0x00001150
 An Animatable supporting this interface is an IWaveSound.
#define I_SUBMTLAPI   0x00001160
 An Animatable supporting this interface is an ISubMtlAPI.
#define I_NEWPARTPOD   0x00001170
 An Animatable supporting this interface is a ParticlePodObj.
#define I_NEWPARTSOURCE   0x00001180
 An Animatable supporting this interface is a BasicSourceObj.
#define I_NEWPARTOPERATOR   0x00001190
 An Animatable supporting this interface is an IOperatorInterface.
#define I_NEWPARTTEST   0x000011a0
 An Animatable supporting this interface is an ITestInterface.
#define I_MESHSELECT   0x000011b0
 An Animatable supporting this interface is an IMeshSelect.
#define I_MESHSELECTDATA   0x000011c0
 An Animatable supporting this interface is an IMeshSelectData.
#define I_MAXSCRIPTPLUGIN   0x000011d0
 An Animatable supporting this interface is a MSPlugin.
#define I_MESHDELTAUSER   0x000011e0
 An Animatable supporting this interface is a MeshDeltaUser.
#define I_MESHDELTAUSERDATA   0x000011f0
 An Animatable supporting this interface is a MeshDeltaUserData.
#define I_SPLINESELECT   0x00001200
 An Animatable supporting this interface is an ISplineSelect.
#define I_SPLINESELECTDATA   0x00001210
 An Animatable supporting this interface is an ISplineSelectData.
#define I_SPLINEOPS   0x00001220
 An Animatable supporting this interface is an ISplineOps.
#define I_PATCHSELECT   0x00001230
 An Animatable supporting this interface is an IPatchSelect.
#define I_PATCHSELECTDATA   0x00001240
 An Animatable supporting this interface is an IPatchSelectData.
#define I_PATCHOPS   0x00001250
 An Animatable supporting this interface is an IPatchOps.
#define I_SUBMAP   0x00001260
 An Animatable supporting this interface is an ISubMap.
#define I_MITRANSLATOR   0x00001270
 unused - interface to max connection to mental ray
#define I_MENTALRAY   0x00001280
 An Animatable supporting this interface is a mrItem*.
#define I_NEWMTLINTERFACE   0x00001290
 An Animatable supporting this interface is an IChkMtlAPI.
#define I_COMPONENT   0x000012a0
 An Animatable supporting this interface is an IComponent.
#define I_REFARRAY   0x000012b0
 An Animatable supporting this interface is an IRefArray.
#define I_LINKTMCTRL   0x000012c0
 An Animatable supporting this interface is an Link Transform Control.
#define I_SUBTARGETCTRL   0x000012d0
 An Animatable supporting this interface is an Sub Target Control.
#define I_REAGENT   0x000012e0
 An Animatable supporting this interface is an IReagent.
#define I_GEOMIMP   0x000012f0
 An Animatable supporting this interface is an IGeomImp - implementaion neutral interface to geometry caches - REQUIRES RELEASE.
#define I_AGGREGATION   0x00001300
 An Animatable supporting this interface is an IAggregation.
#define I_VALENCE   0x00001310
 An Animatable supporting this interface is an IValence.
#define I_GUEST   0x00001320
 An Animatable supporting this interface is an IGuest.
#define I_HOST   0x00001330
 An Animatable supporting this interface is an IHost.
#define I_SCENEOBJECT   0x00001340
 An Animatable supporting this interface is an Object.
#define I_MULTITANGENT   0x00001350
 An Animatable supporting this interface is an IAdjustMultipleTangents.
#define I_SOFTSELECT   0x00001360
 An Animatable supporting this interface is an ISoftSelect.
#define I_UNREPLACEABLECTL   0x00001370
 An Animatable supporting this interface is an IUnReplaceableControl – used for the exposetransform controllers.
#define I_EULERCTRL   0x00001380
 An Animatable supporting this interface is an IEulerControl – used for euler controllers in order to get/set the xyz ordering.
#define I_LOCKED   0x00001390
 An Animatable supporting this interface is an ILockedTrack.
#define I_LOCKED_CLIENT   0x000013a0
 An Animatable supporting this interface is an ILockedTrackClient.
#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.
#define I_COMPOSITESUBMTLAPI   0x000013c0
 An Animatable supporting this interface is an ICompositeSubMtlAPI.
#define I_MTLIDSET   0x000013d0
 An Animatable supporting this interface is an IMtlIdSet.
#define I_BUFFERABLE   0x000013e0
 An Animatable supporting this interface is an IBufferable.
#define I_TANGENT   0x000013f0
 An Animatable supporting this interface is an IAdjustTangents.
#define I_USERINTERFACE   0x0000ffff
 Plug-in defined interfaces should be greater than this value.
#define GetControlInterface(anim)
#define GetObjectInterface(anim)
#define GetParticleInterface(anim)
#define GetKeyControlInterface(anim)
#define GetSetKeyControlInterface(anim)
#define GetDriverController(anim)
#define GetTextObjectInterface(anim)
#define GetWaveSoundInterface(anim)
#define GetMeshSelectInterface(anim)
#define GetMeshSelectDataInterface(anim)
#define GetMeshDeltaUserInterface(anim)
#define GetMeshDeltaUserDataInterface(anim)
#define GetTangentInterface(anim)
#define GetMultiTangentInterface(anim)
#define GetSoftSelectInterface(anim)
#define GetLockedTrackInterface(anim)
#define GetLockedTrackClientInterface(client)

Detailed Description

List of interface IDs to be used with void* Animatable::GetInterface(ULONG id) Checking whether an animatable implements a certain interface is the recommended way for determining if that animatable can be used as the type represented by that interface.


For example, given an Animatable* anim, one can find out whether it can be used as a controller by simply asking for the I_CONTROL interface. In order to simplify the task of querying for the most common interfaces, use one of the predefined macros, such as

#define GetControlInterface(anim) ((Control*)anim->GetInterface(I_CONTROL)).

Example of using the predefined macros:

Animatable* anim = NULL;
// Code that initializes anim ...
#define NULL
Definition autoptr.h:18
Definition Animatable.h:118
Definition control.h:1055
#define GetControlInterface(anim)
Definition AnimatableInterfaceIDs.h:111
Note
These interfaces do NOT need to be released with Animatable::ReleaseInterface().
The ids of interfaces supported by 3rd party classes derived from Animatable, should be greater than I_USERINTERFACE

Macro Definition Documentation

◆ I_CONTROL

#define I_CONTROL   0x00001010

An Animatable supporting this interface is a Control.

◆ I_IKCONTROL

#define I_IKCONTROL   0x00001020

An Animatable supporting this interface is an IIKControl.

◆ I_IKCHAINCONTROL

#define I_IKCHAINCONTROL   0x00001030

An Animatable supporting this interface is an IIKChainControl.

◆ I_WIRECONTROL

#define I_WIRECONTROL   0x00001040

An Animatable supporting this interface is an IBaseWireControl.

◆ I_SCRIPTCONTROL

#define I_SCRIPTCONTROL   0x00001050

An Animatable supporting this interface is an IBaseScriptControl.

◆ I_DRIVER

#define I_DRIVER   0x00001060

An Animatable supporting this interface is a ReferenceTarget.

◆ I_EASELIST

#define I_EASELIST   0x00001070

An Animatable supporting this interface is an EaseCurveList.

◆ I_MULTLIST

#define I_MULTLIST   0x00001080

An Animatable supporting this interface is a MultCurveList.

◆ I_BASEOBJECT

#define I_BASEOBJECT   0x00001090

An Animatable supporting this interface is a BaseObject.

◆ I_WSMOBJECT

#define I_WSMOBJECT   0x000010a0

An Animatable supporting this interface is a WSMObject.

◆ I_DERIVEDOBJECT

#define I_DERIVEDOBJECT   0x000010b0

An Animatable supporting this interface is an IDerivedObject.

◆ I_OBJECT

#define I_OBJECT   0x000010c0

An Animatable supporting this interface is an Object.

◆ I_PARTICLEOBJ

#define I_PARTICLEOBJ   0x000010d0

An Animatable supporting this interface is a ParticleObject.

◆ I_LIGHTOBJ

#define I_LIGHTOBJ   0x000010e0

An Animatable supporting this interface is a LightObject.

◆ I_SIMPLEPARTICLEOBJ

#define I_SIMPLEPARTICLEOBJ   0x000010f0

An Animatable supporting this interface is a SimpleParticle.

◆ I_KEYCONTROL

#define I_KEYCONTROL   0x00001100

An Animatable supporting this interface is an IKeyControl.

◆ I_KEYCONTROL2

#define I_KEYCONTROL2   0x00001110

An Animatable supporting this interface is an IKeyControl2.

◆ I_SETKEYCONTROL

#define I_SETKEYCONTROL   0x00001120

An Animatable supporting this interface is an ISetKey.

◆ I_SYSTEM_XREF

#define I_SYSTEM_XREF   0x00001130

An Animatable supporting this interface is an ISystemXRef.

◆ I_TEXTOBJECT

#define I_TEXTOBJECT   0x00001140

An Animatable supporting this interface is an ITextObject.

◆ I_WAVESOUND

#define I_WAVESOUND   0x00001150

An Animatable supporting this interface is an IWaveSound.

◆ I_SUBMTLAPI

#define I_SUBMTLAPI   0x00001160

An Animatable supporting this interface is an ISubMtlAPI.

◆ I_NEWPARTPOD

#define I_NEWPARTPOD   0x00001170

An Animatable supporting this interface is a ParticlePodObj.

◆ I_NEWPARTSOURCE

#define I_NEWPARTSOURCE   0x00001180

An Animatable supporting this interface is a BasicSourceObj.

◆ I_NEWPARTOPERATOR

#define I_NEWPARTOPERATOR   0x00001190

An Animatable supporting this interface is an IOperatorInterface.

◆ I_NEWPARTTEST

#define I_NEWPARTTEST   0x000011a0

An Animatable supporting this interface is an ITestInterface.

This is an obsolete interface.

◆ I_MESHSELECT

#define I_MESHSELECT   0x000011b0

An Animatable supporting this interface is an IMeshSelect.

◆ I_MESHSELECTDATA

#define I_MESHSELECTDATA   0x000011c0

An Animatable supporting this interface is an IMeshSelectData.

◆ I_MAXSCRIPTPLUGIN

#define I_MAXSCRIPTPLUGIN   0x000011d0

An Animatable supporting this interface is a MSPlugin.

◆ I_MESHDELTAUSER

#define I_MESHDELTAUSER   0x000011e0

An Animatable supporting this interface is a MeshDeltaUser.

◆ I_MESHDELTAUSERDATA

#define I_MESHDELTAUSERDATA   0x000011f0

An Animatable supporting this interface is a MeshDeltaUserData.

◆ I_SPLINESELECT

#define I_SPLINESELECT   0x00001200

An Animatable supporting this interface is an ISplineSelect.

◆ I_SPLINESELECTDATA

#define I_SPLINESELECTDATA   0x00001210

An Animatable supporting this interface is an ISplineSelectData.

◆ I_SPLINEOPS

#define I_SPLINEOPS   0x00001220

An Animatable supporting this interface is an ISplineOps.

◆ I_PATCHSELECT

#define I_PATCHSELECT   0x00001230

An Animatable supporting this interface is an IPatchSelect.

◆ I_PATCHSELECTDATA

#define I_PATCHSELECTDATA   0x00001240

An Animatable supporting this interface is an IPatchSelectData.

◆ I_PATCHOPS

#define I_PATCHOPS   0x00001250

An Animatable supporting this interface is an IPatchOps.

◆ I_SUBMAP

#define I_SUBMAP   0x00001260

An Animatable supporting this interface is an ISubMap.

◆ I_MITRANSLATOR

#define I_MITRANSLATOR   0x00001270

unused - interface to max connection to mental ray

◆ I_MENTALRAY

#define I_MENTALRAY   0x00001280

An Animatable supporting this interface is a mrItem*.

◆ I_NEWMTLINTERFACE

#define I_NEWMTLINTERFACE   0x00001290

An Animatable supporting this interface is an IChkMtlAPI.

◆ I_COMPONENT

#define I_COMPONENT   0x000012a0

An Animatable supporting this interface is an IComponent.

◆ I_REFARRAY

#define I_REFARRAY   0x000012b0

An Animatable supporting this interface is an IRefArray.

◆ I_LINKTMCTRL

#define I_LINKTMCTRL   0x000012c0

An Animatable supporting this interface is an Link Transform Control.

◆ I_SUBTARGETCTRL

#define I_SUBTARGETCTRL   0x000012d0

An Animatable supporting this interface is an Sub Target Control.

◆ I_REAGENT

#define I_REAGENT   0x000012e0

An Animatable supporting this interface is an IReagent.

◆ I_GEOMIMP

#define I_GEOMIMP   0x000012f0

An Animatable supporting this interface is an IGeomImp - implementaion neutral interface to geometry caches - REQUIRES RELEASE.

◆ I_AGGREGATION

#define I_AGGREGATION   0x00001300

An Animatable supporting this interface is an IAggregation.

◆ I_VALENCE

#define I_VALENCE   0x00001310

An Animatable supporting this interface is an IValence.

◆ I_GUEST

#define I_GUEST   0x00001320

An Animatable supporting this interface is an IGuest.

◆ I_HOST

#define I_HOST   0x00001330

An Animatable supporting this interface is an IHost.

◆ I_SCENEOBJECT

#define I_SCENEOBJECT   0x00001340

An Animatable supporting this interface is an Object.

◆ I_MULTITANGENT

#define I_MULTITANGENT   0x00001350

An Animatable supporting this interface is an IAdjustMultipleTangents.

◆ I_SOFTSELECT

#define I_SOFTSELECT   0x00001360

An Animatable supporting this interface is an ISoftSelect.

◆ I_UNREPLACEABLECTL

#define I_UNREPLACEABLECTL   0x00001370

An Animatable supporting this interface is an IUnReplaceableControl – used for the exposetransform controllers.

◆ I_EULERCTRL

#define I_EULERCTRL   0x00001380

An Animatable supporting this interface is an IEulerControl – used for euler controllers in order to get/set the xyz ordering.

◆ I_LOCKED

#define I_LOCKED   0x00001390

An Animatable supporting this interface is an ILockedTrack.

◆ I_LOCKED_CLIENT

#define I_LOCKED_CLIENT   0x000013a0

An Animatable supporting this interface is an ILockedTrackClient.

◆ I_OBJECTSUPERCLASS_NOT_OBJECTCLASS

#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.

◆ I_COMPOSITESUBMTLAPI

#define I_COMPOSITESUBMTLAPI   0x000013c0

An Animatable supporting this interface is an ICompositeSubMtlAPI.

◆ I_MTLIDSET

#define I_MTLIDSET   0x000013d0

An Animatable supporting this interface is an IMtlIdSet.

◆ I_BUFFERABLE

#define I_BUFFERABLE   0x000013e0

An Animatable supporting this interface is an IBufferable.

◆ I_TANGENT

#define I_TANGENT   0x000013f0

An Animatable supporting this interface is an IAdjustTangents.

◆ I_USERINTERFACE

#define I_USERINTERFACE   0x0000ffff

Plug-in defined interfaces should be greater than this value.

◆ GetControlInterface

#define GetControlInterface ( anim)
Value:
CoreExport FPInterface * GetInterface(SClass_ID super, Class_ID cls, Interface_ID id)
Get ID'd interface from ClassDesc for given class/sclass.
#define I_CONTROL
An Animatable supporting this interface is a Control.
Definition AnimatableInterfaceIDs.h:33

◆ GetObjectInterface

#define GetObjectInterface ( anim)
Value:
This is the base class for objects and modifiers.
Definition object.h:529
#define I_BASEOBJECT
An Animatable supporting this interface is a BaseObject.
Definition AnimatableInterfaceIDs.h:41

◆ GetParticleInterface

#define GetParticleInterface ( anim)
Value:
This is the base class for creating particle system plug-ins.
Definition object.h:4164
#define I_PARTICLEOBJ
An Animatable supporting this interface is a ParticleObject.
Definition AnimatableInterfaceIDs.h:45

◆ GetKeyControlInterface

#define GetKeyControlInterface ( anim)
Value:
Definition istdplug.h:1573
#define I_KEYCONTROL
An Animatable supporting this interface is an IKeyControl.
Definition AnimatableInterfaceIDs.h:48

◆ GetSetKeyControlInterface

#define GetSetKeyControlInterface ( anim)
Value:
Definition setkeymode.h:92
#define I_SETKEYCONTROL
An Animatable supporting this interface is an ISetKey.
Definition AnimatableInterfaceIDs.h:50

◆ GetDriverController

#define GetDriverController ( anim)
Value:
A scene entity that is being owned and listened to by other scene entities.
Definition ref.h:1869
#define I_DRIVER
An Animatable supporting this interface is a ReferenceTarget.
Definition AnimatableInterfaceIDs.h:38

◆ GetTextObjectInterface

#define GetTextObjectInterface ( anim)
Value:
Definition istdplug.h:818
#define I_TEXTOBJECT
An Animatable supporting this interface is an ITextObject.
Definition AnimatableInterfaceIDs.h:53

◆ GetWaveSoundInterface

#define GetWaveSoundInterface ( anim)
Value:
SeeAlso: Class Interface.
Definition istdplug.h:2000
#define I_WAVESOUND
An Animatable supporting this interface is an IWaveSound.
Definition AnimatableInterfaceIDs.h:54

◆ GetMeshSelectInterface

#define GetMeshSelectInterface ( anim)
Value:
Definition istdplug.h:3717
#define I_MESHSELECT
An Animatable supporting this interface is an IMeshSelect.
Definition AnimatableInterfaceIDs.h:62

◆ GetMeshSelectDataInterface

#define GetMeshSelectDataInterface ( anim)
Value:
Definition istdplug.h:3769
#define I_MESHSELECTDATA
An Animatable supporting this interface is an IMeshSelectData.
Definition AnimatableInterfaceIDs.h:63

◆ GetMeshDeltaUserInterface

#define GetMeshDeltaUserInterface ( anim)
Value:
Definition meshdelta.h:2337
#define I_MESHDELTAUSER
An Animatable supporting this interface is a MeshDeltaUser.
Definition AnimatableInterfaceIDs.h:65

◆ GetMeshDeltaUserDataInterface

#define GetMeshDeltaUserDataInterface ( anim)
Value:
Definition meshdelta.h:2449
#define I_MESHDELTAUSERDATA
An Animatable supporting this interface is a MeshDeltaUserData.
Definition AnimatableInterfaceIDs.h:66

◆ GetTangentInterface

#define GetTangentInterface ( anim)
Value:
Definition istdplug.h:1764
#define I_TANGENT
An Animatable supporting this interface is an IAdjustTangents.
Definition AnimatableInterfaceIDs.h:106

◆ GetMultiTangentInterface

#define GetMultiTangentInterface ( anim)
Value:
Definition istdplug.h:1779
#define I_MULTITANGENT
An Animatable supporting this interface is an IAdjustMultipleTangents.
Definition AnimatableInterfaceIDs.h:93

◆ GetSoftSelectInterface

#define GetSoftSelectInterface ( anim)
Value:
Definition istdplug.h:1796
#define I_SOFTSELECT
An Animatable supporting this interface is an ISoftSelect.
Definition AnimatableInterfaceIDs.h:94

◆ GetLockedTrackInterface

#define GetLockedTrackInterface ( anim)
Value:
An interface to a track that can get locked.
Definition ILockedTracks.h:133
#define I_LOCKED
An Animatable supporting this interface is an ILockedTrack.
Definition AnimatableInterfaceIDs.h:97

◆ GetLockedTrackClientInterface

#define GetLockedTrackClientInterface ( client)
Value:
An interface to an object who is a client that has subanims that may get locked.
Definition ILockedTracks.h:194
#define I_LOCKED_CLIENT
An Animatable supporting this interface is an ILockedTrackClient.
Definition AnimatableInterfaceIDs.h:98