3ds Max C++ API Reference
Loading...
Searching...
No Matches
INode Class Referenceabstract

#include <inode.h>

+ Inheritance diagram for INode:

Public Types

enum  {
  getPosTaskWeight , getRotTaskWeight , setPosTaskWeight , setRotTaskWeight ,
  setBoneNodeOnOff , setBoneNodeOnOffM , setBoneAutoAlign , setBoneFreezeLen ,
  setBoneScaleType , getBoneNodeOnOff , getBoneAutoAlign , getBoneFreezeLen ,
  getBoneScaleType , realignBoneToChild , resetBoneStretch , getStretchTM ,
  getBoneAxis , getBoneAxisFlip , setBoneAxis , setBoneAxisFlip ,
  setPrimaryVisibility , getPrimaryVisibility , setSecondaryVisibility , getSecondaryVisibility ,
  setApplyAtmospherics , getApplyAtmospherics , getVertexColorType , setVertexColorType ,
  getCVertMode , setCVertMode , getShadeCVerts , setShadeCVerts ,
  getNodeHandle , getVertexColorMapChannel , setVertexColorMapChannel , isSceneXRefNode ,
  kLastFPFuncID
}
 
enum  { boneScaleTypeEnum , boneAxisEnum , vertexColorTypeEnum }
 
- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled }
 

Public Member Functions

virtual void InvalidateRect (TimeValue t, bool oldRect=false)=0
 
virtual void UnhideObjectAndLayer (bool dolayer=true)
 Makes the node, and optionally the layer, visible in the scene.
 
virtual int IsObjectHidden ()
 Returns the hidden state of this node in the scene.
 
virtual void UnfreezeObjectAndLayer (bool dolayer=true)
 Unfreeze the node, and optionally its layer.
 
virtual int IsObjectFrozen ()
 Test the frozen property of this node.
 
virtual int HasObjectXRayMtl ()
 Get the X-Ray node property.
 
virtual void IgnoreExtents (BOOL onOff)=0
 Ignore this node during zoom extents.
 
virtual int GetIgnoreExtents ()=0
 Is this node ignored during zoom extents.
 
virtual bool MayResetTransform ()=0
 
BaseInterfaceGetInterface (Interface_ID id)
 
FPInterfaceDescGetDesc ()
 
 PROP_FNS (getPosTaskWeight, GetPosTaskWeight, setPosTaskWeight, SetPosTaskWeight, TYPE_FLOAT)
 
 PROP_FNS (getRotTaskWeight, GetRotTaskWeight, setRotTaskWeight, SetRotTaskWeight, TYPE_FLOAT)
 
 PROP_FNS (getBoneAutoAlign, GetBoneAutoAlign, setBoneAutoAlign, SetBoneAutoAlign, TYPE_BOOL)
 
 PROP_FNS (getBoneFreezeLen, GetBoneFreezeLen, setBoneFreezeLen, SetBoneFreezeLen, TYPE_BOOL)
 
 PROP_FNS (getBoneScaleType, GetBoneScaleType, setBoneScaleType, SetBoneScaleType, TYPE_ENUM)
 
 PROP_FNS (getBoneAxis, GetBoneAxis, setBoneAxis, SetBoneAxis, TYPE_ENUM)
 
 PROP_FNS (getBoneAxisFlip, GetBoneAxisFlip, setBoneAxisFlip, SetBoneAxisFlip, TYPE_BOOL)
 
 RO_PROP_TFN (getStretchTM, GetStretchTM, TYPE_MATRIX3_BV)
 
 PROP_TFNS (getBoneNodeOnOff, GetBoneNodeOnOff_T, setBoneNodeOnOff, SetBoneNodeOnOff, TYPE_BOOL)
 
 VFNT_1 (setBoneNodeOnOffM, SetBoneNodeOnOff, TYPE_BOOL)
 
 VFNT_0 (realignBoneToChild, RealignBoneToChild)
 
 VFNT_0 (resetBoneStretch, ResetBoneStretch)
 
 PROP_FNS (getPrimaryVisibility, GetPrimaryVisibility, setPrimaryVisibility, SetPrimaryVisibility, TYPE_bool)
 
 PROP_FNS (getSecondaryVisibility, GetSecondaryVisibility, setSecondaryVisibility, SetSecondaryVisibility, TYPE_bool)
 
 PROP_FNS (getApplyAtmospherics, ApplyAtmospherics, setApplyAtmospherics, SetApplyAtmospherics, TYPE_BOOL)
 
 PROP_FNS (getCVertMode, GetCVertMode, setCVertMode, SetCVertMode, TYPE_INT)
 
 PROP_FNS (getShadeCVerts, GetShadeCVerts, setShadeCVerts, SetShadeCVerts, TYPE_INT)
 
 PROP_FNS (getVertexColorType, GetVertexColorType, setVertexColorType, SetVertexColorType, TYPE_ENUM)
 
 PROP_FNS (getVertexColorMapChannel, GetVertexColorMapChannel, setVertexColorMapChannel, SetVertexColorMapChannel, TYPE_INT)
 
 RO_PROP_FN (getNodeHandle, GetHandle, TYPE_DWORD)
 
 RO_PROP_FN (isSceneXRefNode, IsSceneXRefNode, TYPE_bool)
 
CoreExport voidGetInterface (ULONG id) override
 Inherited from Animatable.
 
CoreExport BaseInterfaceGetInterface (Interface_ID id) override
 Inherited from Animatable.
 
INodeTransformed Methods


virtual void DisposeTemporary ()
 
virtual INodeGetActualINode ()
 
Node Identification


virtual const MCHARGetName ()=0
 
virtual void SetName (const MCHAR *s)=0
 
WStr BuildHierarchyName (bool doQuoted=true, bool isRootIncluded=false)
 
virtual ULONG GetHandle ()
 
Transformation Matrices
virtual Matrix3 GetNodeTM (TimeValue t, Interval *valid=NULL)=0
 
virtual void SetNodeTM (TimeValue t, const Matrix3 &tm)=0
 
virtual Matrix3 GetObjectTM (TimeValue time, Interval *valid=NULL)=0
 
virtual Matrix3 GetObjTMBeforeWSM (TimeValue time, Interval *valid=NULL)=0
 
virtual Matrix3 GetObjTMAfterWSM (TimeValue time, Interval *valid=NULL)=0
 
virtual BOOL GetTransformLock (int type, int axis)=0
 
virtual void SetTransformLock (int type, int axis, BOOL onOff)=0
 
virtual void Move (TimeValue t, const Matrix3 &tmAxis, const Point3 &val, BOOL localOrigin=FALSE, BOOL affectKids=TRUE, int pivMode=PIV_NONE, BOOL ignoreLocks=FALSE)=0
 
virtual void Rotate (TimeValue t, const Matrix3 &tmAxis, const AngAxis &val, BOOL localOrigin=FALSE, BOOL affectKids=TRUE, int pivMode=PIV_NONE, BOOL ignoreLocks=FALSE)=0
 
virtual void Rotate (TimeValue t, const Matrix3 &tmAxis, const Quat &val, BOOL localOrigin=FALSE, BOOL affectKids=TRUE, int pivMode=PIV_NONE, BOOL ignoreLocks=FALSE)=0
 
virtual void Scale (TimeValue t, const Matrix3 &tmAxis, const Point3 &val, BOOL localOrigin=FALSE, BOOL affectKids=TRUE, int pivMode=PIV_NONE, BOOL ignoreLocks=FALSE)=0
 
Invalidate the Node's Caches


virtual void InvalidateTreeTM ()=0
 
virtual void InvalidateTM ()=0
 
virtual void InvalidateWS ()=0
 
Pipeline Evaluation
virtual const ObjectStateEvalWorldState (TimeValue time, BOOL evalHidden=TRUE)=0
 
Parent-Child Hierarchy Manipulation


virtual INodeGetParentNode ()=0
 
virtual void AttachChild (INode *node, int keepTM=1)=0
 
virtual void Detach (TimeValue t, int keepTM=1)=0
 
virtual int NumberOfChildren ()=0
 
virtual INodeGetChildNode (int i)=0
 
virtual int IsRootNode ()=0
 
Deleting the Node


virtual void Delete (TimeValue t, int keepChildPosition)
 
Display Attributes


virtual void Hide (BOOL onOff)=0
 Controls the hidden state of the node in the scene.
 
virtual int IsHidden (DWORD hflags=0, BOOL forRenderer=FALSE)
 Determines if the node is hidden in the scene.
 
virtual int IsNodeHidden (BOOL forRenderer=FALSE)
 Returns nonzero if the node is hidden in any way.
 
virtual int IsFrozen ()=0
 Determines if the node is frozen in any way in the scene.
 
virtual void Freeze (BOOL onOff)=0
 Controls the frozen state of the node in the scene.
 
virtual void SetShowFrozenWithMtl (BOOL onOff)=0
 
virtual int ShowFrozenWithMtl ()=0
 
virtual void XRayMtl (BOOL onOff)=0
 Set the X-Ray node property.
 
virtual int HasXRayMtl ()=0
 Returns nonzero if the X-Ray Material display property is on for the node; otherwise zero.
 
virtual void BoxMode (BOOL onOff)=0
 
virtual int GetBoxMode ()=0
 
virtual void AllEdges (BOOL onOff)=0
 
virtual int GetAllEdges ()=0
 
virtual void VertTicks (int onOff)=0
 
virtual int GetVertTicks ()=0
 
virtual void BackCull (BOOL onOff)=0
 
virtual int GetBackCull ()=0
 
virtual int GetTrajectoryON ()
 
virtual void SetTrajectoryON (BOOL onOff)
 
virtual void ShowBone (int boneVis)=0
 
virtual void BoneAsLine (int onOff)=0
 
virtual BOOL IsBoneShowing ()=0
 
virtual BOOL IsBoneOnly ()
 
virtual DWORD GetWireColor ()=0
 
virtual void SetWireColor (DWORD newcol)=0
 
virtual int Selected ()=0
 
virtual int Dependent ()=0
 
Rendering Attributes
virtual void SetCastShadows (BOOL onOff)=0
 
virtual int CastShadows ()=0
 
virtual void SetRcvShadows (BOOL onOff)=0
 
virtual int RcvShadows ()=0
 
virtual void SetMotBlur (int kind)=0
 
virtual int MotBlur ()=0
 
virtual float GetImageBlurMultiplier (TimeValue t)
 
virtual void SetImageBlurMultiplier (TimeValue t, float m)
 
virtual void SetImageBlurMultController (Control *cont)
 
virtual ControlGetImageBlurMultController ()
 
virtual BOOL GetMotBlurOnOff (TimeValue t)
 
virtual void SetMotBlurOnOff (TimeValue t, BOOL m)
 
virtual ControlGetMotBlurOnOffController ()
 
virtual void SetMotBlurOnOffController (Control *cont)
 
virtual void SetRenderable (BOOL onOff)=0
 
virtual int Renderable ()=0
 
virtual void SetApplyAtmospherics (BOOL onOff)=0
 
virtual int ApplyAtmospherics ()=0
 
virtual void SetPrimaryVisibility (bool onOff)=0
 
virtual bool GetPrimaryVisibility () const =0
 
virtual void SetSecondaryVisibility (bool onOff)=0
 
virtual bool GetSecondaryVisibility () const =0
 
virtual void SetGenerateCaustics (BOOL onOff)
 
virtual int GenerateCaustics ()
 
virtual void SetRcvCaustics (BOOL onOff)
 
virtual int RcvCaustics ()
 
virtual void SetGenerateGlobalIllum (BOOL onOff)
 
virtual int GenerateGlobalIllum ()
 
virtual void SetRcvGlobalIllum (BOOL onOff)
 
virtual int RcvGlobalIllum ()
 
virtual void SetRenderOccluded (BOOL onOff)=0
 
virtual BOOL GetRenderOccluded ()=0
 
Vertex Color Attributes
virtual void SetCVertMode (int onOff)
 
virtual int GetCVertMode ()
 
virtual void SetShadeCVerts (int onOff)
 
virtual int GetShadeCVerts ()
 
virtual int GetVertexColorType ()
 
virtual void SetVertexColorType (int nvct)
 
virtual int GetVertexColorMapChannel ()
 get the map channel to be displayed as vertex color.
 
virtual void SetVertexColorMapChannel (int vcmc)
 set the map channel to be displayed as vertex color.
 
CoreExport void CopyProperties (INode *from)
 
Target/Node Selection


virtual void SetTargetNodePair (int onOff)
 
virtual int GetTargetNodePair ()
 
Node Target Management


virtual int IsTarget ()=0
 
virtual void SetIsTarget (BOOL b)=0
 
virtual INodeGetTarget ()=0
 
virtual INodeGetLookatNode ()=0
 
virtual Matrix3 GetParentTM (TimeValue t)=0
 
virtual int GetTargetTM (TimeValue t, Matrix3 &m)=0
 
Object Reference


virtual ObjectGetObjectRef ()=0
 
virtual void SetObjectRef (Object *o)=0
 
virtual ObjectGetObjOrWSMRef ()=0
 
Controller Access


virtual ControlGetTMController ()=0
 
virtual BOOL SetTMController (Control *m3cont)=0
 
virtual ControlGetVisController ()=0
 
virtual void SetVisController (Control *cont)=0
 
Visibility Related Methods


virtual float GetVisibility (TimeValue t, Interval *valid=NULL)=0
 
virtual float GetVisibility (TimeValue t, View &view, Interval *valid=NULL)
 
virtual void SetVisibility (TimeValue t, float vis)=0
 
virtual float GetLocalVisibility (TimeValue t, Interval *valid=NULL)=0
 
virtual BOOL GetInheritVisibility ()=0
 
virtual void SetInheritVisibility (BOOL onOff)=0
 
Renderer Materials


virtual MtlGetMtl ()=0
 
virtual void SetMtl (Mtl *matl)=0
 
GraphicsWindow Materials


virtual MaterialMtls ()=0
 
virtual int NumMtls ()=0
 
Object-Offset Methods
virtual void SetObjOffsetPos (Point3 p)=0
 
virtual Point3 GetObjOffsetPos ()=0
 
virtual void SetObjOffsetRot (Quat q)=0
 
virtual Quat GetObjOffsetRot ()=0
 
virtual void SetObjOffsetScale (ScaleValue sv)=0
 
virtual ScaleValue GetObjOffsetScale ()=0
 
Pivot Management Methods
virtual void CenterPivot (TimeValue t, BOOL moveObject)=0
 
virtual void AlignPivot (TimeValue t, BOOL moveObject)=0
 
virtual void WorldAlignPivot (TimeValue t, BOOL moveObject)=0
 
virtual void AlignToParent (TimeValue t)=0
 
virtual void AlignToWorld (TimeValue t)=0
 
virtual void ResetTransform (TimeValue t, BOOL scaleOnly)=0
 
virtual void ResetPivot (TimeValue t)=0
 
Put Nodes into the Foreground Plane


virtual void FlagForeground (TimeValue t, BOOL notify=TRUE)=0
 
Active Grid Object
virtual int IsActiveGrid ()=0
 
Temporary Storage of Data with Nodes
virtual void SetNodeLong (LONG_PTR l)=0
 
virtual LONG_PTR GetNodeLong ()=0
 
Access to Render Data


virtual RenderDataGetRenderData ()=0
 
virtual void SetRenderData (RenderData *rd)=0
 
Access User Defined Property Text
virtual void GetUserPropBuffer (MSTR &buf)=0
 
virtual void SetUserPropBuffer (const MSTR &buf)=0
 
virtual BOOL GetUserPropString (const MSTR &key, MSTR &string)=0
 
virtual BOOL GetUserPropInt (const MSTR &key, int &val)=0
 
virtual BOOL GetUserPropFloat (const MSTR &key, float &val)=0
 
virtual BOOL GetUserPropBool (const MSTR &key, BOOL &b)=0
 
virtual void SetUserPropString (const MSTR &key, const MSTR &string)=0
 
virtual void SetUserPropInt (const MSTR &key, int val)=0
 
virtual void SetUserPropFloat (const MSTR &key, float val)=0
 
virtual void SetUserPropBool (const MSTR &key, BOOL b)=0
 
virtual BOOL UserPropExists (const MSTR &key)=0
 
Geometry/Graphics (G) Buffer ID Access


virtual ULONG GetGBufID ()=0
 
virtual void SetGBufID (ULONG id)=0
 
virtual UWORD GetRenderID ()
 
virtual void SetRenderID (UWORD id)
 
Node Grouping


virtual BOOL IsGroupMember ()=0
 
virtual BOOL IsGroupHead ()=0
 
virtual BOOL IsOpenGroupMember ()
 
virtual BOOL IsOpenGroupHead ()
 
virtual void SetGroupMember (BOOL b)
 
virtual void SetGroupHead (BOOL b)
 
virtual void SetGroupMemberOpen (BOOL b)
 
virtual void SetGroupHeadOpen (BOOL b)
 
IK Related Methods


virtual float GetPosTaskWeight ()
 
virtual float GetRotTaskWeight ()
 
virtual void SetPosTaskWeight (float w)
 
virtual void SetRotTaskWeight (float w)
 
virtual BOOL GetTaskAxisState (int which, int axis)
 
virtual void SetTaskAxisState (int which, int axis, BOOL onOff)
 
virtual DWORD GetTaskAxisStateBits ()
 
WSMDerivedObject Access
virtual void CreateWSMDerivedObject ()
 
virtual IDerivedObjectGetWSMDerivedObject ()
 
Scene XRef Access


virtual CoreExport MaxSDK::AssetManagement::AssetUser GetXRefFile (int i)
 
virtual void SetXRefFile (int i, const MaxSDK::AssetManagement::AssetUser &file, BOOL reload)
 
virtual int GetXRefFileCount ()
 
virtual BOOL AddNewXRefFile (const MaxSDK::AssetManagement::AssetUser &file, BOOL loadNow=TRUE, BOOL hideInManagerUI=FALSE)
 
virtual BOOL DeleteXRefFile (int i)
 
virtual BOOL BindXRefFile (int i)
 
virtual void DeleteAllXRefs ()
 
virtual BOOL ReloadXRef (int i)
 
virtual void FlagXrefChanged (int i)
 
virtual BOOL UpdateChangedXRefs (BOOL redraw=TRUE)
 
virtual INodeGetXRefTree (int i)
 
virtual INodeGetXRefParent (int i)
 
virtual void SetXRefParent (int i, INode *par, BOOL autoOffset=TRUE)
 
virtual BOOL FindUnresolvedXRefs (Tab< MSTR * > &fnames)
 
virtual void AttemptToResolveUnresolvedXRefs ()
 
virtual DWORD GetXRefFlags (int i)
 
virtual void SetXRefFlags (int i, DWORD flag, BOOL onOff)
 
virtual bool IsSceneXRefNode () const
 
Bone Methods
virtual void SetBoneNodeOnOff (BOOL onOff, TimeValue t)
 
virtual void SetBoneAutoAlign (BOOL onOff)
 
virtual void SetBoneFreezeLen (BOOL onOff)
 
virtual void SetBoneScaleType (int which)
 
virtual void SetBoneAxis (int which)
 
virtual void SetBoneAxisFlip (BOOL onOff)
 
virtual BOOL GetBoneNodeOnOff ()
 
virtual BOOL GetBoneNodeOnOff_T (TimeValue t)
 
virtual BOOL GetBoneAutoAlign ()
 
virtual BOOL GetBoneFreezeLen ()
 
virtual int GetBoneScaleType ()
 
virtual int GetBoneAxis ()
 
virtual BOOL GetBoneAxisFlip ()
 
virtual void RealignBoneToChild (TimeValue t)
 
virtual void ResetBoneStretch (TimeValue t)
 
virtual Matrix3 GetStretchTM (TimeValue t, Interval *valid=NULL)
 
Node Was Loaded By The Last Merge
virtual bool WasLoadedByLastMerge () const
 
- Public Member Functions inherited from ReferenceTarget
CoreExport void GetClassName (MSTR &s, bool localized=true) const override
 Retrieves the name of the plugin class.
 
CoreExport SClass_ID SuperClassID () override
 Retrieves a constant representing the type of the plugin.
 
BOOL IsRefTarget () override
 Checks if this is a ReferenceTarget.
 
CoreExport RefResult TestForLoop (const Interval &refInterval, RefMakerHandle hmaker)
 Tests for a cyclical reference.
 
CoreExport BOOL HasDependents ()
 Checks if a ReferenceTarget has references.
 
CoreExport BOOL HasRealDependents ()
 Checks if this has Real (Strong) Dependents.
 
void BeginDependencyTest ()
 Starts Dependency Test.
 
BOOL EndDependencyTest ()
 Ends Dependency Test.
 
virtual void RefAdded (RefMakerHandle rm)
 Called after a reference is made to a target.
 
virtual void RefAddedUndoRedo (RefMakerHandle rm)
 Called after a reference is made to a target because of undo or redo.
 
 __declspec (deprecated) virtual void RefDeleted() final
 
virtual void RefDeleted (ReferenceMaker *oldOwner)
 Called after a reference to this is deleted.
 
 __declspec (deprecated) virtual void RefDeletedUndoRedo() final
 
virtual void RefDeletedUndoRedo (RefMakerHandle oldOwner)
 Called after a reference to this is deleted because of undo or redo.
 
CoreExport RefResult DeleteAllRefsToMe () override
 Deletes all references to this ReferenceTarget.
 
CoreExport RefResult TransferReferences (RefTargetHandle oldTarget, BOOL delOld=FALSE)
 Transfers all the references from oldTarget to this.
 
CoreExport int DoEnumDependents (DependentEnumProc *dep)
 Begins an enumeration that searches back in the dependency network.
 
virtual CoreExport RefTargetHandle Clone (RemapDir &remap)
 This method is used by 3ds Max to clone an object.
 
virtual CoreExport void BaseClone (ReferenceTarget *from, ReferenceTarget *to, RemapDir &remap)
 This method copies base class data from an object to its clone.
 
CoreExport RefResult NotifyDependents (const Interval &changeInt, PartID partID, RefMessage message, SClass_ID sclass=NOTIFY_ALL, BOOL propagate=TRUE, RefTargetHandle hTarg=nullptr, NotifyDependentsOption notifyDependentsOption=REFNOTIFY_ALLOW_OPTIMIZATIONS) override
 Notify all dependent RefMakers concerned with the message.
 
void FlagDependents (TimeValue t, PartID which=PART_PUT_IN_FG)
 This sends the REFMSG_FLAGDEPENDENTS message up the pipeline.
 
virtual void NotifyForeground (TimeValue t)
 This method is called to flag dependents into the FG.
 
virtual void NotifyTarget (int message, ReferenceMaker *hMaker)
 Sends messages to ReferenceTargets.
 
CoreExport ReferenceTarget ()
 Constructor.
 
virtual CoreExport RefResult AutoDelete ()
 Deletes the object when it has no more real dependents.
 
CoreExport RefResult MaybeAutoDelete ()
 Deletes the object when it has no more real dependents.
 
- Public Member Functions inherited from ReferenceMaker
void GetClassName (MSTR &s, bool localized=true) const override
 Retrieves the name of the plugin class.
 
CoreExport SClass_ID SuperClassID () override
 Retrieves a constant representing the type of the plugin.
 
CoreExport RefResult ReplaceReference (int which, RefTargetHandle newtarg, BOOL delOld=TRUE)
 Used when cloning reference makers.
 
CoreExport RefResult DeleteAllRefsFromMe ()
 Deletes all references from this ReferenceMaker.
 
CoreExport RefResult DeleteAllRefs ()
 Deletes all references both to and from this item.
 
CoreExport RefResult DeleteReference (int i)
 Deletes the specified reference.
 
virtual BOOL CanTransferReference (int i)
 Tells whether this reference can be transfered.
 
CoreExport ReferenceSaveManagerGetReferenceSaveManager ()
 Access the ReferenceSaveManager of this ReferenceMaker.
 
virtual CoreExport IOResult Save (ISave *isave)
 Called for saving data.
 
virtual CoreExport IOResult Save (ISave *isave, ChannelMask)
 Access the ReferenceSaveManager of this ReferenceMaker.
 
virtual CoreExport IOResult Load (ILoad *iload)
 Called for loading data.
 
virtual CoreExport IOResult Load (ILoad *iload, ChannelMask)
 Access the ReferenceSaveManager of this ReferenceMaker.
 
virtual int RemapRefOnLoad (int iref)
 Used to load old files with references.
 
virtual CoreExport void RescaleWorldUnits (float f)
 Rescale size of all world units in reference hierarchy.
 
CoreExport void EnumAuxFiles (AssetEnumCallback &assetEnum, DWORD flags) override
 Enumerate auxiliary files (e.g. bitmaps)
 
virtual CoreExport void SaveEnum (SaveEnumProc &sep, BOOL isNodeCall=0)
 The default save enumeration.
 
virtual CoreExport bool SpecifySaveReferences (ReferenceSaveManager &referenceSaveManager)
 Used to specify reference slot remapping during scene file save.
 
CoreExport int DoEnumDependents (DependentEnumProc *dep)
 Begins an enumeration that searches back in the dependency network.
 
CoreExport bool EnumRefHierarchy (RefEnumProc &proc, bool includeCustAttribs=true, bool includeIndirectRefs=true, bool includeNonPersistentRefs=true, bool preventDuplicatesViaFlag=true)
 This method provides a general purpose reference enumerator.
 
CoreExport int FindRef (RefTargetHandle rtarg)
 Get the index of the ReferenceTarget.
 
BOOL IsRefMaker () override
 Tells whether it is a ReferenceMaker.
 
virtual BOOL IsRealDependency (ReferenceTarget *rtarg)
 Returns whether this is a "real" (strong) dependency or not.
 
virtual BOOL ShouldPersistWeakRef (RefTargetHandle rtarg)
 Specifies whether a weak reference is to be persisted on a partial load or save.
 
CoreExport ReferenceMaker ()
 Constructor.
 
CoreExport void DeleteMe ()
 Deletes an instance of this class.
 
virtual CoreExport int NumRefs ()
 Returns the total number of references this ReferenceMaker can hold.
 
virtual CoreExport RefTargetHandle GetReference (int i)
 Returns the 'i-th' reference.
 
- Public Member Functions inherited from Animatable
virtual void FreeCaches ()
 
virtual int NumChildren ()
 
virtual AnimatableChildAnim (int i)
 
virtual CoreExport MSTR NodeName ()
 
virtual void EditTrack ()
 
virtual CoreExport BOOL SubAnimSetKeyBufferPresent (int subNum)
 returns true if the sub-anim has a "Set Key" buffer present
 
virtual BOOL SetKeyBufferPresent ()
 returns true if there is a "Set Key" buffer present
 
virtual CoreExport void SubAnimCommitSetKeyBuffer (TimeValue t, int subNum)
 Commit any "Set Key" buffers on the given sub-anim.
 
virtual void CommitSetKeyBuffer (TimeValue t)
 Commit any "Set Key" buffers.
 
virtual CoreExport void SubAnimRevertSetKeyBuffer (int subNum)
 Revert any "Set Key" buffers on the given sub-anim.
 
virtual void RevertSetKeyBuffer ()
 Revert any "Set Key" buffers.
 
virtual LRESULT CALLBACK TrackViewWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 This function is obsolete.
 
virtual BOOL IsRefMaker ()
 Tells whether it is a ReferenceMaker.
 
virtual bool IsParamBlockDesc2Used (ParamBlockDesc2 *desc)
 Returns true if the passed description is being used.
 
virtual bool GetMacroRecorderName (bool used_as_rhs_value, MSTR &objectSpecifiedName)
 This method is called to access the object specified name to use for the Maxscript macrorecorder.
 
CoreExport Animatable ()
 Constructor.
 
virtual CoreExport void DeleteThis ()
 Deletes an instance of this class.
 
MSTR ClassName (bool localized=true) const
 Returns the name of the plugin class.
 
virtual CoreExport Class_ID ClassID ()
 Retrieves a constant that uniquely identifies the plugin class.
 
virtual void BeginEditParams (IObjParam *ip, ULONG flags, Animatable *prev=NULL)
 
virtual void EndEditParams (IObjParam *ip, ULONG flags, Animatable *next=NULL)
 
virtual CoreExport void ReleaseInterface (ULONG id, void *i)
 
virtual CoreExport int SetProperty (ULONG id, void *data)
 
virtual CoreExport voidGetProperty (ULONG id)
 
CoreExport void AppendProperty (AnimProperty *prop)
 A function to directly add arbitrary properties to this object developers should ensure that the properties ID does not conflict with any Max-specific IDs.
 
CoreExport AnimPropertyFindProperty (DWORD id)
 Find any property.
 
CoreExport void AddAppDataChunk (const Class_ID &cid, SClass_ID sid, DWORD sbid, DWORD len, void *data)
 Adds application/plugin specific (custom) data to an Animatable.
 
CoreExport AppDataChunkGetAppDataChunk (const Class_ID &cid, SClass_ID sid, DWORD sbid)
 Retrieves the application/plugin specific (custom) data stored with an Animatable.
 
CoreExport BOOL RemoveAppDataChunk (const Class_ID &cid, SClass_ID sid, DWORD sbid)
 Deletes the application/plugin specific (custom) data stored with an Animatable.
 
CoreExport void ClearAllAppData ()
 Deletes all application/plugin specific (custom) data stored with an Animatable.
 
virtual int NumSubs ()
 
virtual AnimatableSubAnim (int i)
 
 __declspec (deprecated) virtual MSTR SubAnimName(int i) MAX_SEALED
 
virtual CoreExport MSTR SubAnimName (int i, bool localized)
 
virtual BOOL CanDeleteSubAnim (int i)
 
virtual void DeleteSubAnim (int i)
 
virtual DWORD GetSubAnimCurveColor (int subNum)
 
virtual int SubNumToRefNum (int subNum)
 
virtual BOOL CanCopyAnim ()
 
CoreExport int HasSubElements (int type=0)
 
virtual int GetSubFCurveExtents (int subNum, ParamDimensionBase *dim, float &min, float &max, DWORD flags)
 The values max and min should be initialized before calling this function.
 
virtual ParamDimensionGetParamDimension (int i)
 
virtual BOOL SelectSubAnim (int subNum)
 
virtual BOOL BypassTreeView ()
 
virtual BOOL BypassTrackBar ()
 
virtual BOOL BypassPropertyLevel ()
 
virtual BOOL InvisibleProperty ()
 
virtual int NumKeys ()
 
virtual TimeValue GetKeyTime (int index)
 
virtual int GetKeyIndex (TimeValue t)
 
virtual BOOL GetNextKeyTime (TimeValue t, DWORD flags, TimeValue &nt)
 
virtual void CopyKeysFromTime (TimeValue src, TimeValue dst, DWORD flags)
 
virtual void DeleteKeyAtTime (TimeValue t)
 
virtual BOOL IsKeyAtTime (TimeValue t, DWORD flags)
 
virtual int GetKeyTimes (Tab< TimeValue > &times, Interval range, DWORD flags)
 
virtual int GetKeySelState (BitArray &sel, Interval range, DWORD flags)
 
CoreExport void OpenTreeEntry (int type, DWORD tv)
 
CoreExport void CloseTreeEntry (int type, DWORD tv)
 
CoreExport int IsTreeEntryOpen (int type, DWORD tv)
 
CoreExport BOOL GetSelInTrackView (DWORD tv)
 
CoreExport void SetSelInTrackView (DWORD tv, BOOL sel)
 
CoreExport BOOL InTrackViewSelSet (int which)
 
CoreExport void SetTrackViewSelSet (int which, BOOL inOut)
 
virtual BOOL AssignController (Animatable *control, int subAnim)
 
virtual BOOL CanAssignController (int subAnim)
 Return true if we can reassign the subanim specified.
 
virtual BOOL CanMakeUnique ()
 
CoreExport int EnumAnimTree (AnimEnum *animEnum, Animatable *client, int subNum)
 
virtual int RenderBegin (TimeValue t, ULONG flags=0)
 
virtual int RenderEnd (TimeValue t)
 
virtual CoreExport Interval GetTimeRange (DWORD flags)
 
virtual void EditTimeRange (Interval range, DWORD flags)
 
virtual void DeleteTime (Interval iv, DWORD flags)
 
virtual void ReverseTime (Interval iv, DWORD flags)
 
virtual void ScaleTime (Interval iv, float s)
 
virtual void InsertTime (TimeValue ins, TimeValue amount)
 
virtual BOOL SupportTimeOperations ()
 
virtual CoreExport void MapKeys (TimeMap *map, DWORD flags)
 
virtual void DeleteKeys (DWORD flags)
 
virtual void DeleteKeyByIndex (int index)
 
virtual void SelectKeys (TrackHitTab &sel, DWORD flags)
 
virtual void SelectSubKeys (int subNum, TrackHitTab &sel, DWORD flags)
 
virtual void SelectSubCurve (int subNum, BOOL sel)
 
virtual void SelectKeyByIndex (int i, BOOL sel)
 
virtual BOOL IsKeySelected (int i)
 
virtual void FlagKey (TrackHitRecord hit)
 
virtual int GetFlagKeyIndex ()
 
virtual int NumSelKeys ()
 
virtual void CloneSelectedKeys (BOOL offset=FALSE)
 
virtual void AddNewKey (TimeValue t, DWORD flags)
 
virtual void MoveKeys (ParamDimensionBase *dim, float delta, DWORD flags)
 
virtual void ScaleKeyValues (ParamDimensionBase *dim, float origin, float scale, DWORD flags)
 
virtual void SelectCurve (BOOL sel)
 
virtual BOOL IsCurveSelected ()
 Returns TRUE if the function curve is selected; otherwise returns FALSE.
 
virtual BOOL IsSubCurveSelected (int subNum)
 Returns the selected state of the sub-curve whose index is passed.
 
virtual int GetSelKeyCoords (TimeValue &t, float &val, DWORD flags)
 
virtual void SetSelKeyCoords (TimeValue t, float val, DWORD flags)
 
virtual int SetSelKeyCoordsExpr (ParamDimension *dim, const MCHAR *timeExpr, const MCHAR *valExpr, DWORD flags)
 
virtual void AdjustTangents (TrackHitRecord hit, ParamDimensionBase *dim, Rect &rcGraph, float tzoom, int tscroll, float vzoom, int vscroll, int dx, int dy, DWORD flags)
 
virtual void AdjustTangents (TrackHitRecord hit, ParamDimensionBase *dim, float angle, float length, DWORD flags)
 
virtual CoreExport BOOL IsAnimated ()
 
virtual BOOL CanCopyTrack (Interval iv, DWORD flags)
 
virtual BOOL CanPasteTrack (TrackClipObject *cobj, Interval iv, DWORD flags)
 
virtual TrackClipObjectCopyTrack (Interval iv, DWORD flags)
 
virtual void PasteTrack (TrackClipObject *cobj, Interval iv, DWORD flags)
 
virtual BOOL CanCopySubTrack (int subNum, Interval iv, DWORD flags)
 
virtual BOOL CanPasteSubTrack (int subNum, TrackClipObject *cobj, Interval iv, DWORD flags)
 
virtual TrackClipObjectCopySubTrack (int subNum, Interval iv, DWORD flags)
 
virtual void PasteSubTrack (int subNum, TrackClipObject *cobj, Interval iv, DWORD flags)
 
virtual int GetTrackVSpace (int lineHeight)
 
virtual int HitTestTrack (TrackHitTab &hits, Rect &rcHit, Rect &rcTrack, float zoom, int scroll, DWORD flags)
 
virtual int PaintTrack (ParamDimensionBase *dim, HDC hdc, Rect &rcTrack, Rect &rcPaint, float zoom, int scroll, DWORD flags)
 
virtual int PaintSubTrack (int subNum, ParamDimensionBase *dim, HDC hdc, Rect &rcTrack, Rect &rcPaint, float zoom, int scroll, DWORD flags)
 
virtual int PaintFCurves (ParamDimensionBase *dim, HDC hdc, Rect &rcGraph, Rect &rcPaint, float tzoom, int tscroll, float vzoom, int vscroll, DWORD flags)
 
virtual int HitTestFCurves (ParamDimensionBase *dim, TrackHitTab &hits, Rect &rcHit, Rect &rcGraph, float tzoom, int tscroll, float vzoom, int vscroll, DWORD flags)
 
virtual int PaintSubFCurves (int subNum, ParamDimensionBase *dim, HDC hdc, Rect &rcGraph, Rect &rcPaint, float tzoom, int tscroll, float vzoom, int vscroll, DWORD flags)
 
virtual int HitTestSubFCurves (int subNum, ParamDimensionBase *dim, TrackHitTab &hits, Rect &rcHit, Rect &rcGraph, float tzoom, int tscroll, float vzoom, int vscroll, DWORD flags)
 
virtual void EditTrackParams (TimeValue t, ParamDimensionBase *dim, const MCHAR *pname, HWND hParent, IObjParam *ip, DWORD flags)
 
virtual int TrackParamsType ()
 
virtual int GetFCurveExtents (ParamDimensionBase *dim, float &min, float &max, DWORD flags)
 This method is called to calculate the largest and smallest values of the anim.
 
CoreExport void AddNoteTrack (NoteTrack *note)
 
CoreExport void DeleteNoteTrack (NoteTrack *note, BOOL delNote=TRUE)
 
CoreExport BOOL HasNoteTracks ()
 
CoreExport int NumNoteTracks ()
 
CoreExport NoteTrackGetNoteTrack (int i)
 
virtual void FreeAllBitmaps ()
 
virtual void GetSystemNodes (INodeTab &nodes, SysNodeContext Context)
 
virtual BOOL IsSubClassOf (Class_ID classID)
 returns true if the animatable has sub-classed off the given class
 
virtual CoreExport void MouseCycleCompleted (TimeValue t)
 
virtual CoreExport void MouseCycleStarted (TimeValue t)
 
virtual int NumParamBlocks ()
 
virtual IParamBlock2GetParamBlock (int i)
 
virtual IParamBlock2GetParamBlockByID (short id)
 
CoreExport bool SvSaveData (ISave *isave, USHORT id)
 
CoreExport bool SvLoadData (ILoad *iLoad)
 
CoreExport DWORD SvGetRefIndex ()
 
CoreExport void SvSetRefIndex (DWORD i)
 
CoreExport bool SvDeleteRefIndex ()
 
virtual CoreExport SvGraphNodeReference SvTraverseAnimGraph (IGraphObjectManager *gom, Animatable *owner, int id, DWORD flags)
 
CoreExport SvGraphNodeReference SvStdTraverseAnimGraph (IGraphObjectManager *gom, Animatable *owner, int id, DWORD flags)
 
virtual CoreExport bool SvCanInitiateLink (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvCanConcludeLink (IGraphObjectManager *gom, IGraphNode *gNode, IGraphNode *gNodeChild)
 
virtual CoreExport MSTR SvGetName (IGraphObjectManager *gom, IGraphNode *gNode, bool isBeingEdited)
 
virtual CoreExport bool SvCanSetName (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvSetName (IGraphObjectManager *gom, IGraphNode *gNode, const MSTR &name)
 
virtual CoreExport bool SvCanRemoveThis (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvRemoveThis (IGraphObjectManager *gom, IGraphNode *gNode)
 Called when the user deletes this object in the schematic view...
 
virtual CoreExport bool SvIsSelected (IGraphObjectManager *gom, IGraphNode *gNode)
 Returns true if the object is selected in its schematic view.
 
virtual CoreExport bool SvIsHighlighted (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport COLORREF SvHighlightColor (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport COLORREF SvGetSwatchColor (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvIsInactive (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvLinkChild (IGraphObjectManager *gom, IGraphNode *gNodeThis, IGraphNode *gNodeChild)
 
virtual CoreExport bool SvHandleDoubleClick (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport MultiSelectCallbackSvGetMultiSelectCallback (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvCanSelect (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvEditProperties (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport MSTR SvGetTip (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport MSTR SvGetRefTip (IGraphObjectManager *gom, IGraphNode *gNode, IGraphNode *gNodeMaker)
 
virtual CoreExport bool SvCanDetach (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvDetach (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport MSTR SvGetRelTip (IGraphObjectManager *gom, IGraphNode *gNodeTarget, int id, IGraphNode *gNodeMaker)
 Returns a string to be displayed in the tip window in the schematic view for a relationship from "gNodeMaker" to "gNodeTarget"...
 
virtual CoreExport bool SvCanDetachRel (IGraphObjectManager *gom, IGraphNode *gNodeTarget, int id, IGraphNode *gNodeMaker)
 Returns true if this object can respond to the SvDetachRel(...) method...
 
virtual CoreExport bool SvDetachRel (IGraphObjectManager *gom, IGraphNode *gNodeTarget, int id, IGraphNode *gNodeMaker)
 Detach this relationship.
 
virtual CoreExport bool SvHandleRelDoubleClick (IGraphObjectManager *gom, IGraphNode *gNodeTarget, int id, IGraphNode *gNodeMaker)
 Called when this relationship is double-clicked in the schematic view...
 
CoreExport ICustAttribContainerGetCustAttribContainer ()
 This method returns a pointer to the custom attributes container interface class.
 
CoreExport void AllocCustAttribContainer ()
 This method allocates space for a custom attributes container.
 
CoreExport void DeleteCustAttribContainer ()
 This method deletes space used by a custom attributes container.
 
void SetAFlag (DWORD mask)
 
void ClearAFlag (DWORD mask)
 Clears one or more bits in the Animatable flags.
 
bool TestAFlag (DWORD mask) const
 Tests one or more bits in the Animatable flags.
 
void SetAFlagEx (DWORD mask)
 Sets one or more bits in the Animatable extended flags.
 
void ClearAFlagEx (DWORD mask)
 Clears one or more bits in the Animatable extended flags.
 
bool TestAFlagEx (DWORD mask) const
 Tests one or more bits in the Animatable extended flags.
 
CoreExport bool TestFlagBit (int index)
 Tests the specified flag bit.
 
CoreExport void SetFlagBit (int index, bool newValue=true)
 Sets the specified flag bit.
 
CoreExport void ClearFlagBit (int index)
 Clears the specified flag bit.
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor.
 
virtual UtilExport BaseInterfaceGetInterface (Interface_ID id)
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 
- Public Member Functions inherited from FPMixinInterface
 FPMixinInterface ()
 
virtual LifetimeType LifetimeControl ()
 
virtual CoreExport bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
CoreExport ~FPMixinInterface ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
virtual FPInterfaceDescGetDescByID (Interface_ID id)
 
virtual Interface_ID GetID ()
 
- Public Member Functions inherited from FPInterface
virtual BaseInterfaceGetInterface (Interface_ID id)
 
virtual FPInterfaceDescGetDesc ()=0
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t=0, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPParams *params)
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t, FPValue &result, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPValue &result, FPParams *params=NULL)
 
virtual CoreExport FunctionID FindFn (const MCHAR *name)
 
virtual CoreExport BOOL IsEnabled (FunctionID actionID)
 
virtual CoreExport BOOL IsChecked (FunctionID actionID)
 
virtual CoreExport BOOL IsVisible (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsEnabled (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsChecked (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsVisible (FunctionID actionID)
 
virtual ActionTableGetActionTable ()
 
virtual void EnableActions (BOOL onOff)
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor.
 
UtilExport BaseInterfaceGetInterface (Interface_ID id) override
 
virtual UtilExport Interface_ID GetID ()
 
virtual LifetimeType LifetimeControl ()
 
virtual bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=nullptr)
 

Static Public Attributes

static constexpr Interface_ID ID = INODE_INTERFACE
 
static const ULONG kNullHandle = 0
 This represents the value of an invalid node handle.
 
- Static Public Attributes inherited from Animatable
static const AnimHandle kInvalidAnimHandle = 0
 
- Static Public Attributes inherited from FPInterface
static CoreExport FPInterfaceDesc nullInterface
 

Additional Inherited Members

- Static Public Member Functions inherited from Animatable
static CoreExport BOOL IsDeleted (Animatable *anim)
 Debug method to determine whether an object has been deleted.
 
static CoreExport AnimHandle GetHandleByAnim (Animatable *anim)
 Get the unique handle for an Animatable object.
 
static CoreExport AnimatableGetAnimByHandle (AnimHandle handle)
 Get an Animatable object from its unique handle.
 
static CoreExport AnimHandle GetNextHandle ()
 Get the unique handle for the next Animatable object to be created.
 
static CoreExport void EnumerateAllAnimatables (EnumAnimList &enumProcObject)
 Enumerator to enumerate across all animatables.
 
static CoreExport bool RegisterAppDataLoadCallback (const Class_ID &cid, SClass_ID sid, APPDATALOADPROC proc)
 Registers a callback proc that is called when an AppDataChunk is read from a scene file.
 
static CoreExport bool UnRegisterAppDataLoadCallback (const Class_ID &cid, SClass_ID sid, APPDATALOADPROC proc)
 Unregisters a callback proc that is called when an AppDataChunk is read from a scene file.
 
static CoreExport bool RegisterAppDataLoadCallback (DWORD sbid, APPDATALOADPROC proc)
 Registers a callback proc that is called when an AppDataChunk is read from a scene file.
 
static CoreExport bool UnRegisterAppDataLoadCallback (DWORD sbid, APPDATALOADPROC proc)
 Unregisters a callback proc that is called when an AppDataChunk is read from a scene file.
 
static CoreExport void ClearAFlagInAllAnimatables (DWORD mask)
 Clears one or more bits in the Animatable flags in all Animatables.
 
static CoreExport void ClearAFlagExInAllAnimatables (DWORD mask)
 Clears one or more bits in the Animatable extended flags in all Animatables.
 
static CoreExport int RequestFlagBit ()
 Requests an unique flag bit index.
 
static CoreExport void ReleaseFlagBit (int index)
 Releases the flag bit index.
 
static CoreExport void ClearFlagBitInAllAnimatables (int index)
 Clears the specified flag bit in all Animatables.
 
- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects.
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator.
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator.
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary.
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary.
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc.
 
- Protected Member Functions inherited from ReferenceTarget
CoreExport int DoEnumDependentsImpl (DependentEnumProc *dep) override
 Method to perform an enumeration on a ReferenceTarget.
 
virtual CoreExport ~ReferenceTarget ()=0
 Destructor.
 
- Protected Member Functions inherited from ReferenceMaker
virtual CoreExport ~ReferenceMaker ()=0
 Destructor.
 
virtual CoreExport void SetReference (int i, RefTargetHandle rtarg)
 Stores a ReferenceTarget as its 'i-th' reference`.
 
void BlockEval ()
 Validates a given reference link between this reference maker and its reference target.
 
void UnblockEval ()
 Validates a given reference link between this reference maker and its reference target.
 
int Evaluating ()
 Validates a given reference link between this reference maker and its reference target.
 
CoreExport RefResult StdNotifyRefChanged (const Interval &changeInt, RefTargetHandle hTarget, PartID partID, RefMessage message, BOOL propagate, NotifyDependentsOption notifyDependentsOption)
 Validates a given reference link between this reference maker and its reference target.
 
- Protected Member Functions inherited from Animatable
virtual CoreExport ~Animatable ()=0
 Destructor.
 
- Protected Member Functions inherited from Noncopyable
 Noncopyable ()
 
 ~Noncopyable ()
 
- Protected Member Functions inherited from FPMixinInterface
 FPMixinInterface (const FPMixinInterface &rhs)
 
FPMixinInterfaceoperator= (const FPMixinInterface &rhs)
 
- Protected Member Functions inherited from FPInterface
virtual FPStatus _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)
 
- Protected Attributes inherited from Animatable
DWORD aflag
 
AnimPropertyList aprops
 
- Protected Attributes inherited from FPMixinInterface
Tab< InterfaceNotifyCallback * > * interfaceNotifyCBs
 

Detailed Description

See also
Class ReferenceTarget, Class FPMixinInterface, Class Interface, Class INodeTransformed, Class Material, Class Matrix3, Class Quat, Class AngAxis, Class Control, Class Object, Class INodeTab.

Description:
The INode class is the interface to nodes in the scene. It provides methods to access various parts of a node such as its name, transformation matrices, parents and children, display status, etc. All methods of this class are implemented by the system.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
getPosTaskWeight 
getRotTaskWeight 
setPosTaskWeight 
setRotTaskWeight 
setBoneNodeOnOff 
setBoneNodeOnOffM 
setBoneAutoAlign 
setBoneFreezeLen 
setBoneScaleType 
getBoneNodeOnOff 
getBoneAutoAlign 
getBoneFreezeLen 
getBoneScaleType 
realignBoneToChild 
resetBoneStretch 
getStretchTM 
getBoneAxis 
getBoneAxisFlip 
setBoneAxis 
setBoneAxisFlip 
setPrimaryVisibility 
getPrimaryVisibility 
setSecondaryVisibility 
getSecondaryVisibility 
setApplyAtmospherics 
getApplyAtmospherics 
getVertexColorType 
setVertexColorType 
getCVertMode 
setCVertMode 
getShadeCVerts 
setShadeCVerts 
getNodeHandle 
getVertexColorMapChannel 
setVertexColorMapChannel 
isSceneXRefNode 
kLastFPFuncID 
1715 // new bones
1719 // rendering flag access
1721 // vertex color access
1724 // get/set map channel to be displayed as vertex color.
1727 // new Func IDs >>>> >>> MUST << <<<< be inserted before kLastFPFuncID
1728 // !!!!! that means that this MUST be the last enum value !!!!!
1730 };
@ setSecondaryVisibility
Definition: inode.h:1720
@ setVertexColorMapChannel
Definition: inode.h:1725
@ getStretchTM
Definition: inode.h:1717
@ kLastFPFuncID
Definition: inode.h:1729
@ setBoneAxisFlip
Definition: inode.h:1718
@ getPrimaryVisibility
Definition: inode.h:1720
@ getBoneAxisFlip
Definition: inode.h:1718
@ getNodeHandle
Definition: inode.h:1723
@ getBoneAutoAlign
Definition: inode.h:1717
@ isSceneXRefNode
Definition: inode.h:1726
@ setPosTaskWeight
Definition: inode.h:1714
@ setApplyAtmospherics
Definition: inode.h:1720
@ getBoneFreezeLen
Definition: inode.h:1717
@ getApplyAtmospherics
Definition: inode.h:1720
@ getCVertMode
Definition: inode.h:1722
@ setBoneAutoAlign
Definition: inode.h:1716
@ setBoneFreezeLen
Definition: inode.h:1716
@ getBoneAxis
Definition: inode.h:1718
@ getSecondaryVisibility
Definition: inode.h:1720
@ setBoneAxis
Definition: inode.h:1718
@ setBoneScaleType
Definition: inode.h:1716
@ setPrimaryVisibility
Definition: inode.h:1720
@ setBoneNodeOnOff
Definition: inode.h:1716
@ getBoneScaleType
Definition: inode.h:1717
@ realignBoneToChild
Definition: inode.h:1717
@ getBoneNodeOnOff
Definition: inode.h:1716
@ setVertexColorType
Definition: inode.h:1722
@ getVertexColorMapChannel
Definition: inode.h:1725
@ setShadeCVerts
Definition: inode.h:1722
@ setRotTaskWeight
Definition: inode.h:1714
@ getVertexColorType
Definition: inode.h:1722
@ setCVertMode
Definition: inode.h:1722
@ getShadeCVerts
Definition: inode.h:1722
@ setBoneNodeOnOffM
Definition: inode.h:1716
@ getPosTaskWeight
Definition: inode.h:1714
@ getRotTaskWeight
Definition: inode.h:1714
@ resetBoneStretch
Definition: inode.h:1717

◆ anonymous enum

anonymous enum
Enumerator
boneScaleTypeEnum 
boneAxisEnum 
vertexColorTypeEnum 
1734 };
@ vertexColorTypeEnum
Definition: inode.h:1733
@ boneScaleTypeEnum
Definition: inode.h:1732
@ boneAxisEnum
Definition: inode.h:1732

Member Function Documentation

◆ DisposeTemporary()

virtual void DisposeTemporary ( )
inlinevirtual
Remarks
If this was a temporary INode (like an INodeTransformed) then this method will delete it. Also see the method Interface::GetModContexts().

Reimplemented in INodeTransformed.

74{}

◆ GetActualINode()

virtual INode * GetActualINode ( )
inlinevirtual
Remarks
In the case of INodeTransformed, this method retrieves a pointer to the real node.
Example
EditPolyData *EditPolyMod::GetEditPolyDataForNode (INode *node) {
if (node == NULL) return (EditPolyData *) GetPrimaryLocalModData();
if (ip)
{
INodeTab nodes;
ip->GetModContexts(list,nodes);
for (int i=0; i<list.Count(); i++)
{
if (nodes[i]->GetActualINode() != node) continue;
EditPolyData *pData = (EditPolyData *) list[i]->localData;
return pData;
}
}
else // in case this modifier is not selected in the modify panel.
{
// search down the geom pipeline.
Object* pObj = node->GetObjectRef();
while(pObj)
{
{
IDerivedObject* pDObj = dynamic_cast<IDerivedObject*>(pObj);
int modCount = pDObj->NumModifiers();
for (int i = 0; i < modCount; ++i)
{
if (pDObj->GetModifier(i) == this)
{
ModContext* pContext = pDObj->GetModContext(i);
if (pContext)
{
return dynamic_cast<EditPolyData*>(pContext->localData);
}
}
}
pObj = pDObj->GetObjRef(); //try the next object
}
else if (pObj->GetInterface(IID_XREF_ITEM)) //skip all the XRefObj and check its source object.
{
IXRefItem* pXRefItem = static_cast<IXRefItem*>(pObj->GetInterface(IID_XREF_ITEM));
if (pXRefItem)
{
ReferenceTarget* pTarg = FindFirstNonXRefTarg(pXRefItem);
pObj = dynamic_cast<Object*>(pTarg);
}
else
{
pObj = nullptr;
}
}
else
{
pObj = nullptr;
}
}
}
return NULL;
}
#define NULL
Definition: autoptr.h:18
Definition: modstack.h:40
virtual ModContext * GetModContext(int index)=0
virtual Object * GetObjRef()=0
virtual int NumModifiers()=0
virtual Modifier * GetModifier(int index)=0
Definition: inode.h:55
virtual Object * GetObjectRef()=0
virtual INode * GetActualINode()
Definition: inode.h:83
Class representing a dynamic array of INodes.
Definition: INodeTab.h:8
Generic interface that represents an xrefed scene entity.
Definition: iXrefItem.h:46
The ModContext stores information about the space the modifier was applied in, and allows the modifie...
Definition: object.h:434
LocalModData * localData
A pointer to an instance of a class derived from the LocalModData class.
Definition: object.h:455
A modifier may be applied to several objects in the scene.
Definition: object.h:482
The object class is the base class for all objects.
Definition: object.h:1431
CoreExport void * GetInterface(ULONG id) override
A scene entity that is being owned and listened to by other scene entities.
Definition: ref.h:1849
CoreExport SClass_ID SuperClassID() override
Retrieves a constant representing the type of the plugin.
int Count() const
Retrieves the number of items in the Tab.
Definition: tab.h:219
#define GEN_DERIVOB_CLASS_ID
Definition: plugapi.h:414
#define IID_XREF_ITEM
Id for IXRefItem interface.
Definition: iXrefItem.h:26
Returns
A pointer to the node.

Reimplemented in INodeTransformed.

83{return this;}

◆ GetName()

virtual const MCHAR * GetName ( )
pure virtual
Remarks
Returns the name of the node.

Implemented in INodeTransformed.

◆ SetName()

virtual void SetName ( const MCHAR s)
pure virtual
Remarks
Sets the name of the node.
Parameters
sThe name of the node.

Implemented in INodeTransformed.

◆ BuildHierarchyName()

WStr BuildHierarchyName ( bool  doQuoted = true,
bool  isRootIncluded = false 
)
inline
Remarks
Builds a string representing the object's hierachy path.
Parameters
doQuotedPlace quotes around each level name.
isRootIncludedDetermines whether root node is to be included in path name.
99 {
100 const WStr nullStr = L"";
101 const WStr sepStr = L"/";
102 WStr pathname;
103
104 WStr levelMarker = nullStr;
105 if (doQuoted)
106 {
107 levelMarker = L"'";
108 }
109
110 INode* nextNode = this;
111 const WStr* separator = &nullStr;
112 while (nextNode != NULL)
113 {
114 INode* nodeCurr = nextNode;
115 nextNode = nodeCurr->GetParentNode();
116 if (isRootIncluded || (nextNode != NULL))
117 {
118 WStr levelName(nodeCurr->GetName());
119 pathname = levelMarker + levelName + levelMarker + (*separator) + pathname;
120 }
121
122 separator = &sepStr;
123 }
124
125 return pathname;
126 }
virtual const MCHAR * GetName()=0
virtual INode * GetParentNode()=0
Definition: strclass.h:744

◆ GetNodeTM()

virtual Matrix3 GetNodeTM ( TimeValue  t,
Interval valid = NULL 
)
pure virtual
Remarks
This method returns the world space transformation matrix of the node at the specified time. This matrix contains its parents transformation. This matrix does not include the object-offset transformation, or any world space modifier (Space Warp) affects. If you select a single node and change the reference coordinate system to 'Local', you'll see the node's axes tripod displayed. This tripod graphically depicts the nodes transformation matrix. The Node TM may be considered the world space transformation as far as kinematics is concerned. This is almost the complete world space transformation as far as the geometry of the object is concerned, except it does not include the object-offset transformation. See the method INode::GetObjectTM() for the complete world space transformation of the geometry of the object. The Node TM is inherited. When a node asks to retrieve its parents TM, it gets its parents Node TM. It does not get its parents Object TM. The object-offset transformation is not inherited.
Example
//Get the current position for the purpose of computing the next frame
//This function checks to see whether or not the node is a delegate, in which
//case the GetTM function is called.
static Matrix3 GetCurrentMatrix(INode *node, TimeValue t)
{
Object *o = node->GetObjectRef();
if (o->ClassID() == DELEG_CLASSID)
{
if (cd->IsComputing())
return cd->GetTM(node,t);
}
return node->GetNodeTM(t);
}
virtual CoreExport Class_ID ClassID()
Retrieves a constant that uniquely identifies the plugin class.
An interface class to the delegate.
Definition: delegexp.h:66
virtual DELEGexport BOOL IsComputing()
Queries whether the delegate is currently active in a running crowd simulation.
Definition: delegexp.h:224
virtual DELEGexport Matrix3 GetTM(INode *node, TimeValue t)
This function should be used instead of calling GetNodeTM during a simulation loop.
Definition: delegexp.h:154
virtual Matrix3 GetNodeTM(TimeValue t, Interval *valid=NULL)=0
Definition: matrix3.h:99
#define I_DELEGINTERFACE
Definition: delegexp.h:31
#define DELEG_CLASSID
Definition: delegexp.h:35
int TimeValue
Definition: maxtypes.h:31
Parameters
tSpecifies the time to retrieve the TM.
validPoints to storage for the validity interval of the transformation matrix. The interval, if passed, is intersected with the validity interval of the NodeTM.
Returns
The node's world space transform matrix.

Implemented in INodeTransformed.

◆ SetNodeTM()

virtual void SetNodeTM ( TimeValue  t,
const Matrix3 tm 
)
pure virtual
Remarks
This methods sets the node's world space transformation matrix (without the object-offset transformation or world space modifier affect). This method will perform the appropriate operation to the node's transform controller. For example, if the node has a parent, this method will take the parent's transformation into consideration when it calls SetValue() on the controller. This method can be used to set the world space position of the node.
Example
void MyArcDlgCB::Drag(Quat q, BOOL buttonUp) {
Matrix3 tm;
MakeMatrix(qstart*q, tm);
node->SetNodeTM(ip->GetTime(), tm);
ip->RedrawViews(ip->GetTime());
}
Definition: quat.h:172
Parameters
tSpecifies the time to set the transformation matrix.
tmThe node's world space transformation matrix.

Implemented in INodeTransformed.

◆ InvalidateTreeTM()

virtual void InvalidateTreeTM ( )
pure virtual
Remarks
This method will notify the node's subtree that the transformation matrix has changed. NotifyDependents() is called with the message REFMSG_CHANGE.

Implemented in INodeTransformed.

◆ InvalidateTM()

virtual void InvalidateTM ( )
pure virtual
Remarks
This method will invalidate the node's transformation matrix cache.

Implemented in INodeTransformed.

◆ InvalidateWS()

virtual void InvalidateWS ( )
pure virtual
Remarks
This method will invalidate the node's world space cache.

Implemented in INodeTransformed.

◆ InvalidateRect()

virtual void InvalidateRect ( TimeValue  t,
bool  oldRect = false 
)
pure virtual
Remarks
This method invalidates the rectangle in the viewports that the node occupies. Rectangles flagged as invalid will be updated on the next screen redraw. Each node caches the rectangle in the viewports that the node occupies. These caches are updated when the node is drawn in the viewports.
Example
DisplayState BendManip::MouseEntersObject(TimeValue t, ViewExp* /*pVpt*/, IPoint2& m, ManipHitData* pHitData)
{
mousePos = m;
mouseWithin = TRUE;
node->InvalidateRect(t);
}
Definition: ipoint2.h:30
This is a special storage class for hit records that keep track of which manipulator was hit.
Definition: manipulator.h:1877
Definition: maxapi.h:795
DisplayState
Definition: manipulator.h:30
@ kFullRedrawNeeded
Definition: manipulator.h:30
Parameters
t- The time to invalidate the node's rectangle
oldRect- If true, the cached viewport rectangles of the node are invalidated. This would be the case when a node property that doesn't affect the size or position of the node's viewport rectangles, such as wireframe color, is changed. Otherwise, the node's current rectangle in each viewport is invalidated. If the node's world space cache is not valid, the node's world state at time t will be evaluated, from which its current viewport rectangles are calculated.

Implemented in INodeTransformed.

◆ GetObjectTM()

virtual Matrix3 GetObjectTM ( TimeValue  time,
Interval valid = NULL 
)
pure virtual
Remarks
This method returns the transformation matrix the object needs to be multiplied by to transform it into world space. At times, this matrix may be the identity. For example, a deformable object that has a Space Warp applied to it would already have been translated into world space by the space warp. Since the object is already in world space the matrix needed to get it there is the identity. This matrix would not be the identity for a deformable object with only object space modifiers applied. This object would indeed need to be transformed. In this case the TM returned would include the NodeTM plus the object-offset transformation. So, GetObjectTM() is dependent on the context when it is called – it will either be equal to GetObjTMAfterWSM() or GetObjTMBeforeWSM(). Developers should use GetObjTMBeforeWSM() if what is wanted is the object TM and not the identity matrix. For non-deformable objects this matrix may include the NodeTM, the object-offset transformation and the world space modifier affect. This matrix could be used, for example, if you have a TriObject and wanted to get the world space coordinate of one of its vertices. You could do this by taking the vertex coordinate in object space and multiplying it by the matrix returned from this method. This matrix is also often used inside an object's Display() and HitTest() methods. When an object goes to draw itself (in its BaseObject::Display() method) it is given a node pointer. What the object normally does is use the node pointer and calls GetObjectTM(). It then takes the matrix returned and sets it into the graphics window (using GraphicsWindow::setTransform()). In this way, when the object starts drawing points in object space, they will be transformed with this matrix. This will transform the points into world space when they are drawn. The Object TM is not inherited.
Parameters
timeSpecifies the time to retrieve the object's transform matrix.
validPoints to storage for the validity interval of the transformation matrix.
Returns
The object's transformation matrix.

Implemented in INodeTransformed.

◆ GetObjTMBeforeWSM()

virtual Matrix3 GetObjTMBeforeWSM ( TimeValue  time,
Interval valid = NULL 
)
pure virtual
Remarks
This method explicitly retrieves the pipeline ObjectState TM before any world space modifiers have been applied. This includes the node's TM and the object-offset transformation (but not any world space modifier affect). See the section on the Geometry Pipeline System for additional details on this method.
Parameters
timeSpecifies the time to retrieve the transform matrix.
validPoints to storage for the validity interval of the transformation matrix.

Implemented in INodeTransformed.

◆ GetObjTMAfterWSM()

virtual Matrix3 GetObjTMAfterWSM ( TimeValue  time,
Interval valid = NULL 
)
pure virtual
Remarks
This method explicitly retrieves the pipeline ObjectState TM after any world space modifiers have been applied. This includes the Node TM, the object-offset transformation, and any world space modifier affects. In some cases a world space modifier can actually deform the TM itself if it cannot deform the object. Examples of this are cameras and lights. These objects do not have any 'object' to deform, so the space warp deforms the TM instead. See the section on the Geometry Pipeline System for additional details on this method. Note: Beware of calling this method from inside a function that performs a mesh traversal as doing so can invalidate the mesh.
Parameters
timeSpecifies the time to retrieve the object's transform matrix.
validPoints to storage for the validity interval of the transformation matrix.

Implemented in INodeTransformed.

◆ EvalWorldState()

virtual const ObjectState & EvalWorldState ( TimeValue  time,
BOOL  evalHidden = TRUE 
)
pure virtual
Remarks
This method should be called when a developer needs to work with an object that is the result of the node's pipeline. This is the object that the appears in the scene.

This may not be an object that anyone has a reference to - it may just be an object that has flowed down the pipeline. For example, if there is a Sphere in the scene that has a Bend and Taper applied, EvalWorldState() would return an ObjectState containing a TriObject. This is the result of the sphere turning into a TriObject and being bent and tapered (just as it appeared in the scene).

If a developer needs to access the object that the node in the scene references, then the method INode::GetObjectRef() should be used instead.
Parameters
timeSpecifies the time to retrieve the object state.
evalHiddenIf FALSE and the node is hidden, the pipeline will not actually be evaluated (however the TM will).
Returns
The ObjectState that is the result of the pipeline. See Class ObjectState.
// Get the object from the node
ObjectState os = node->EvalWorldState(ip->GetTime());
{
obj = (GeomObject*)os.obj;
//...
}
This is the base class for the creation of Geometric Object plug-ins.
Definition: object.h:3935
The ObjectState is the structure that flows up the geometry pipeline.
Definition: object.h:287
Object * obj
Pointer to the object in the pipeline.
Definition: object.h:298
#define GEOMOBJECT_CLASS_ID
Geometric object super-class ID.
Definition: plugapi.h:442
The following code shows how a TriObject can be retrieved from a node. Note on the code that if you call ConvertToType() on an object and it returns a pointer other than itself, you are responsible for deleting that object.
// Retrieve the TriObject from the node
int deleteIt;
TriObject *triObject = GetTriObjectFromNode(ip->GetSelNode(0), deleteIt);
// Use the TriObject if available
if (!triObject) return;
// ...
// Delete it when done...
if (deleteIt) triObject->DeleteMe();
// Return a pointer to a TriObject given an INode or return NULL
// if the node cannot be converted to a TriObject
TriObject *Utility::GetTriObjectFromNode(INode *node, int &deleteIt)
{
deleteIt = FALSE;
Object *obj = node->EvalWorldState(ip->GetTime()).obj;
{
TriObject *tri = (TriObject *) obj->ConvertToType(ip->GetTime(),
// Note that the TriObject should only be deleted
// if the pointer to it is not equal to the object
// pointer that called ConvertToType()
if (obj != tri) deleteIt = TRUE;
return tri;
}
else
{
return NULL;
}
}
Definition: maxtypes.h:67
virtual const ObjectState & EvalWorldState(TimeValue time, BOOL evalHidden=TRUE)=0
virtual CoreExport int CanConvertToType(Class_ID obtype)
Indicates whether the object can be converted to the specified type.
virtual CoreExport Object * ConvertToType(TimeValue t, Class_ID obtype)
This method converts this object to the type specified and returns a pointer it.
CoreExport void DeleteMe()
Deletes an instance of this class.
Definition: triobj.h:63
#define TRIOBJ_CLASS_ID
TriObject class ID.
Definition: plugapi.h:582

Implemented in INodeTransformed.

◆ GetParentNode()

virtual INode * GetParentNode ( )
pure virtual
Remarks
Retrieves the parent node of this node. If the node is not linked, its parent is the root node. This may be checked using INode::IsRootNode().
Example
static BOOL IsAncestorSelected(INode *node)
{
if (node->GetParentNode()) {
if (node->GetParentNode()->Selected()) return TRUE;
return IsAncestorSelected(node->GetParentNode());
} else {
return FALSE;
}
}
virtual int Selected()=0

Implemented in INodeTransformed.

◆ AttachChild()

virtual void AttachChild ( INode node,
int  keepTM = 1 
)
pure virtual
Remarks
Makes the specified node a child of this node.
Parameters
nodeSpecifies the node to attach.
keepTMIf nonzero, the world transform matrix of the specified (child) node is unchanged after the attach operation, i.e. INode::GetNodeTM returns the same matrix both before and after the attach operation. Otherwise, the world transform of the specified (child) node is affected by the parent node's transform.

Implemented in INodeTransformed.

◆ Detach()

virtual void Detach ( TimeValue  t,
int  keepTM = 1 
)
pure virtual
Remarks
Detaches this node from its parent.
Parameters
tSpecifies the time at which to detach the node.
keepTMIf nonzero, the world transform matrix of the detached node is unchanged, i.e. INode::GetNodeTM returns the same matrix both before and after the detach operation. Otherwise, the world transform of the detached node may change as a result of the detach operation since the node stops inheriting its parent node's transform.
Note
The node is detached from its current parent and attached to the scene's root node.

Implemented in INodeTransformed.

◆ NumberOfChildren()

virtual int NumberOfChildren ( )
pure virtual
Remarks
Returns the number of children of this node.

Implemented in INodeTransformed.

◆ GetChildNode()

virtual INode * GetChildNode ( int  i)
pure virtual
Remarks
Retrieves the 'i-th' child node of this node.
Parameters
iSpecifies the child node to retrieve.

Implemented in INodeTransformed.

◆ Delete()

virtual void Delete ( TimeValue  t,
int  keepChildPosition 
)
inlinevirtual
Remarks
This method will delete the node, handle removing it from the hierarchy, and handle undo.
Parameters
tThe time for the deletion.
keepChildPositionIf TRUE the position of any children of this node are kept the same; otherwise linked children may move due to the deletion.

Reimplemented in INodeTransformed.

392{}

◆ Hide()

virtual void Hide ( BOOL  onOff)
pure virtual

Controls the hidden state of the node in the scene.

Parameters
onOffPass TRUE to hide the node in the scene; pass FALSE to make the node visible.

Implemented in INodeTransformed.

◆ IsHidden()

virtual int IsHidden ( DWORD  hflags = 0,
BOOL  forRenderer = FALSE 
)
inlinevirtual

Determines if the node is hidden in the scene.

Parameters
hflagsIf you pass 0, you will get the hidden state of the node. If you pass one or more of the flags shown below, the method checks the Class_ID of the node to see if it's hidden by the specified category. You may specify one or more of the following values:

HIDE_OBJECTS
HIDE_SHAPES
HIDE_LIGHTS
HIDE_CAMERAS
HIDE_HELPERS
HIDE_WSMS
HIDE_SYSTEMS
HIDE_PARTICLES
HIDE_ALL
HIDE_NONE

See the method Interface::GetHideByCategoryFlags() for how to retrieve the currently set values to use as the flags for this method.
forRendererIf true, test to see if the node is hidden for the render, else if it is hidden in the viewport
Returns
Nonzero if the node is hidden; otherwise 0.

Reimplemented in INodeTransformed.

421{return 0;}

◆ IsNodeHidden()

virtual int IsNodeHidden ( BOOL  forRenderer = FALSE)
inlinevirtual

Returns nonzero if the node is hidden in any way.

This method takes into account both the node hidden attribute and the 'Hide By Category' flags.

Parameters
forRendererIf true, test to see if the node is hidden for the render, else if it is hidden in the viewport returns zero.

Reimplemented in INodeTransformed.

427{return 0;}

◆ IsFrozen()

virtual int IsFrozen ( )
pure virtual

Determines if the node is frozen in any way in the scene.

A node can have the frozen property set, or be frozen by 'ghosting'

Returns
Nonzero if the node is frozen; otherwise 0.

Implemented in INodeTransformed.

◆ Freeze()

virtual void Freeze ( BOOL  onOff)
pure virtual

Controls the frozen state of the node in the scene.

A frozen node is visible but cannot be picked.

Parameters
onOffTRUE if the node should be frozen; FALSE if the node should not be frozen.

Implemented in INodeTransformed.

◆ SetShowFrozenWithMtl()

virtual void SetShowFrozenWithMtl ( BOOL  onOff)
pure virtual
Remarks
This method allows you to set the NODE_SHOW_FRZN_WITH_MTL flag in the node so that the node will be displayed in a frozen state with materials applied.
Parameters
onOffTRUE to set the flag; FALSE to disable.

Implemented in INodeTransformed.

◆ ShowFrozenWithMtl()

virtual int ShowFrozenWithMtl ( )
pure virtual
Remarks
This method returns the state of the NODE_SHOW_FRZN_WITH_MTL flag in the node and whether it is enabled or disabled.

Implemented in INodeTransformed.

◆ XRayMtl()

virtual void XRayMtl ( BOOL  onOff)
pure virtual

Set the X-Ray node property.

The X-Ray Material display property allows you to quickly make objects transparent. This method toggles it on or off for this node.

Parameters
onOffTRUE to use; FALSE to not use.

Implemented in INodeTransformed.

◆ HasXRayMtl()

virtual int HasXRayMtl ( )
pure virtual

Returns nonzero if the X-Ray Material display property is on for the node; otherwise zero.

Implemented in INodeTransformed.

◆ BoxMode()

virtual void BoxMode ( BOOL  onOff)
pure virtual
Remarks
Controls if the node is displayed with a bounding box representation in the scene.
Parameters
onOffTRUE to display the node as its bounding box; FALSE for normal display.

Implemented in INodeTransformed.

◆ GetBoxMode()

virtual int GetBoxMode ( )
pure virtual
Remarks
Determines if the node is displayed in box mode in the scene.
Returns
Nonzero if the node is displayed in box mode; otherwise 0.

Implemented in INodeTransformed.

◆ AllEdges()

virtual void AllEdges ( BOOL  onOff)
pure virtual
Remarks
Controls the display of all the edges of the node (including "hidden" ones).
Parameters
onOffTRUE to display all the node's edges; FALSE to not display "hidden" edges.

Implemented in INodeTransformed.

◆ GetAllEdges()

virtual int GetAllEdges ( )
pure virtual
Remarks
Determines if all the edges of the node are displayed.
Returns
Nonzero if all the edges (including "hidden" ones) are displayed; otherwise 0.

Implemented in INodeTransformed.

◆ VertTicks()

virtual void VertTicks ( int  onOff)
pure virtual
Remarks
This method allows you to enable or disable the display of vertex ticks on the node.
Parameters
onOffTRUE to enable; FALSE to disable.

Implemented in INodeTransformed.

◆ GetVertTicks()

virtual int GetVertTicks ( )
pure virtual
Remarks
This method returns the state of the vertex ticks display. TRUE if enabled; FALSE if disabled.

Implemented in INodeTransformed.

◆ BackCull()

virtual void BackCull ( BOOL  onOff)
pure virtual
Remarks
Controls if the node is displayed using back-face culling (faces whose surface normals are pointing away from the observer are not drawn).
Parameters
onOffTRUE if the node should be drawn using back-face culling; FALSE if all faces should be drawn.

Implemented in INodeTransformed.

◆ GetBackCull()

virtual int GetBackCull ( )
pure virtual
Remarks
Determines if back-face culling is being used to draw the node.
Returns
Nonzero if back-face culling is used; otherwise 0.

Implemented in INodeTransformed.

◆ UnhideObjectAndLayer()

virtual void UnhideObjectAndLayer ( bool  dolayer = true)
inlinevirtual

Makes the node, and optionally the layer, visible in the scene.

Parameters
dolayerPass TRUE to unhide the node in the scene; pass FALSE to make the node visible.
496{Hide(FALSE);}
virtual void Hide(BOOL onOff)=0
Controls the hidden state of the node in the scene.

◆ IsObjectHidden()

virtual int IsObjectHidden ( )
inlinevirtual

Returns the hidden state of this node in the scene.

Returns
non-zero if this node is hidden, else false
500{return 0;}

◆ UnfreezeObjectAndLayer()

virtual void UnfreezeObjectAndLayer ( bool  dolayer = true)
inlinevirtual

Unfreeze the node, and optionally its layer.

Parameters
dolayerif true, unfreeze the layer
504{Freeze(FALSE);}
virtual void Freeze(BOOL onOff)=0
Controls the frozen state of the node in the scene.

◆ IsObjectFrozen()

virtual int IsObjectFrozen ( )
inlinevirtual

Test the frozen property of this node.

Returns
non-zero if this node is frozen, else zero
508{return 0;};

◆ HasObjectXRayMtl()

virtual int HasObjectXRayMtl ( )
inlinevirtual

Get the X-Ray node property.

The X-Ray Material display property allows you to quickly make objects transparent.

Returns
TRUE if X-Ray materials are enabled; else FALSE
514{return 0;};

◆ IgnoreExtents()

virtual void IgnoreExtents ( BOOL  onOff)
pure virtual

Ignore this node during zoom extents.

Parameters
onOffIf true, Set this node to be ignored during zoom extents.

Implemented in INodeTransformed.

◆ GetIgnoreExtents()

virtual int GetIgnoreExtents ( )
pure virtual

Is this node ignored during zoom extents.

Returns
true if this node is to be ignored during zoom extents.

Implemented in INodeTransformed.

◆ SetCastShadows()

virtual void SetCastShadows ( BOOL  onOff)
pure virtual
Remarks
Sets the shadow casting attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow casting on; FALSE to turn it off.

Implemented in INodeTransformed.

◆ CastShadows()

virtual int CastShadows ( )
pure virtual
Remarks
Retrieves the shadow casting attribute of the node.
Returns
Nonzero indicates the node casts shadows; zero if the node does not cast shadows.

Implemented in INodeTransformed.

◆ SetRcvShadows()

virtual void SetRcvShadows ( BOOL  onOff)
pure virtual
Remarks
Sets the shadow receiving attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow receiving on; FALSE to turn it off.

Implemented in INodeTransformed.

◆ RcvShadows()

virtual int RcvShadows ( )
pure virtual
Remarks
Retrieves the shadow receiving attribute of the node.
Returns
Nonzero indicates the node receives shadows; zero if the node does not receive shadows.

Implemented in INodeTransformed.

◆ SetMotBlur()

virtual void SetMotBlur ( int  kind)
pure virtual
Remarks
Sets the type of motion blur used by the node.
Parameters
kindThe kind of motion blur. One of the following values:

0: None.
1: Object Motion Blur.
2: Image Motion Blur.

◆ MotBlur()

virtual int MotBlur ( )
pure virtual
Remarks
Retrieves the type of motion blur used by the node.
Returns
One of the following values:

0: None
1: Object Motion Blur.
2: Image Motion Blur.

Implemented in INodeTransformed.

◆ GetImageBlurMultiplier()

virtual float GetImageBlurMultiplier ( TimeValue  t)
inlinevirtual
Remarks
Returns the image motion blur multiplier value at the specified time.
Parameters
tThe time to retrieve the value.

Reimplemented in INodeTransformed.

558{ return 1.0f;}

◆ SetImageBlurMultiplier()

virtual void SetImageBlurMultiplier ( TimeValue  t,
float  m 
)
inlinevirtual
Remarks
Sets the image blur multiplier value for the node. This is used to increase or decrease the length of the blur 'streak'.
Parameters
tThe time to set the value.
mThe value to set.

Reimplemented in INodeTransformed.

564{};

◆ SetImageBlurMultController()

virtual void SetImageBlurMultController ( Control cont)
inlinevirtual
Remarks
Sets the controller used for the image blur multiplier value.
Parameters
contPoints for the controller to use.

Reimplemented in INodeTransformed.

568{}

◆ GetImageBlurMultController()

virtual Control * GetImageBlurMultController ( )
inlinevirtual
Remarks
Returns a pointer to the controller for the image blur multiplier value.

Reimplemented in INodeTransformed.

571{return NULL; }

◆ GetMotBlurOnOff()

virtual BOOL GetMotBlurOnOff ( TimeValue  t)
inlinevirtual
Remarks
Returns TRUE if the object motion blur controller is 'on' at the specified time; otherwise FALSE.
Parameters
tThe time to check.
Default Implementation:
{ return 1; }

Reimplemented in INodeTransformed.

579{ return 1; }

◆ SetMotBlurOnOff()

virtual void SetMotBlurOnOff ( TimeValue  t,
BOOL  m 
)
inlinevirtual
Remarks
Sets the state of the object motion blur controller to on or off at the specified time.
Parameters
tThe time to set the value.
mTRUE for on; FALSE for off.
Default Implementation:
{}

Reimplemented in INodeTransformed.

586{ }

◆ GetMotBlurOnOffController()

virtual Control * GetMotBlurOnOffController ( )
inlinevirtual
Remarks
Returns a pointer to the controller handling the object motion blur on / off setting.
Default Implementation:
{ return NULL;}

Reimplemented in INodeTransformed.

591{ return NULL;}

◆ SetMotBlurOnOffController()

virtual void SetMotBlurOnOffController ( Control cont)
inlinevirtual
Remarks
Sets the controller used for handling the object motion blur on / off setting.
Parameters
contPoints to the controller to set.
Default Implementation:
{}

Reimplemented in INodeTransformed.

597{ }

◆ SetRenderable()

virtual void SetRenderable ( BOOL  onOff)
pure virtual
Remarks
Sets the state of the node's renderable flag. If this flag is on the node will appear in rendered images; if off it won't.
Parameters
onOffTRUE for on; FALSE for off.

Implemented in INodeTransformed.

◆ Renderable()

virtual int Renderable ( )
pure virtual
Remarks
Returns non-zero if the renderable flag is on; zero if off.

Implemented in INodeTransformed.

◆ SetApplyAtmospherics()

virtual void SetApplyAtmospherics ( BOOL  onOff)
pure virtual
Remarks
This method allows you to set the "apply atmospherics" flag for the node.
Parameters
onOffTRUE to enable the flag, FALSE to disable.

Implemented in INodeTransformed.

◆ ApplyAtmospherics()

virtual int ApplyAtmospherics ( )
pure virtual
Remarks
This method returns the on/off state of the "apply atmospherics" flag.

Implemented in INodeTransformed.

◆ SetPrimaryVisibility()

virtual void SetPrimaryVisibility ( bool  onOff)
pure virtual
Remarks
This method allows you to set the primary visibility flag and define whether or not the node is visible to the camera.
Parameters
onOffTRUE to enable the flag, FALSE to disable.

Implemented in INodeTransformed.

◆ GetPrimaryVisibility()

virtual bool GetPrimaryVisibility ( ) const
pure virtual
Remarks
This method returns the on/off state of the primary visibility to determine whether or not the node is visible to the camera.

Implemented in INodeTransformed.

◆ SetSecondaryVisibility()

virtual void SetSecondaryVisibility ( bool  onOff)
pure virtual
Remarks
This method allows you to set the secondary visibility flag and define whether or not the node is visible to reflections and refractions..
Parameters
onOffTRUE to enable the flag, FALSE to disable.

Implemented in INodeTransformed.

◆ GetSecondaryVisibility()

virtual bool GetSecondaryVisibility ( ) const
pure virtual
Remarks
This method returns the on/off state of the secondary visibility to determine whether or not the node is visible to reflections and refractions.

Implemented in INodeTransformed.

◆ SetGenerateCaustics()

virtual void SetGenerateCaustics ( BOOL  onOff)
inlinevirtual
Remarks
Sets the shadow casting attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow casting on; FALSE to turn it off.

Reimplemented in INodeTransformed.

633{}

◆ GenerateCaustics()

virtual int GenerateCaustics ( )
inlinevirtual
Remarks
Sets the shadow casting attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow casting on; FALSE to turn it off.

Reimplemented in INodeTransformed.

634{return 0;}

◆ SetRcvCaustics()

virtual void SetRcvCaustics ( BOOL  onOff)
inlinevirtual
Remarks
Sets the shadow casting attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow casting on; FALSE to turn it off.

Reimplemented in INodeTransformed.

635{}

◆ RcvCaustics()

virtual int RcvCaustics ( )
inlinevirtual
Remarks
Sets the shadow casting attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow casting on; FALSE to turn it off.

Reimplemented in INodeTransformed.

636{return 0;}

◆ SetGenerateGlobalIllum()

virtual void SetGenerateGlobalIllum ( BOOL  onOff)
inlinevirtual
Remarks
Sets the shadow casting attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow casting on; FALSE to turn it off.

Reimplemented in INodeTransformed.

638{}

◆ GenerateGlobalIllum()

virtual int GenerateGlobalIllum ( )
inlinevirtual
Remarks
Sets the shadow casting attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow casting on; FALSE to turn it off.

Reimplemented in INodeTransformed.

639{return 0;}

◆ SetRcvGlobalIllum()

virtual void SetRcvGlobalIllum ( BOOL  onOff)
inlinevirtual
Remarks
Sets the shadow casting attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow casting on; FALSE to turn it off.

Reimplemented in INodeTransformed.

640{}

◆ RcvGlobalIllum()

virtual int RcvGlobalIllum ( )
inlinevirtual
Remarks
Sets the shadow casting attribute of the node to on or off.
Parameters
onOffTRUE to turn shadow casting on; FALSE to turn it off.

Reimplemented in INodeTransformed.

641{return 0;}

◆ SetCVertMode()

virtual void SetCVertMode ( int  onOff)
inlinevirtual
Remarks
Sets the vertex color flag to on or off. This controls the display of assigned vertex colors. Vertex colors are assigned in the editable mesh in vertex or face sub-object level. Vertex colors only appear in viewports using Smooth or Smooth + Highlight display modes, regardless of the state of this flag.
Parameters
onOffNon-zero for on; zero for off.
652{}

◆ GetCVertMode()

virtual int GetCVertMode ( )
inlinevirtual
Remarks
Returns non-zero if the vertex color flag if on; otherwise zero.
655{return 0;}

◆ SetShadeCVerts()

virtual void SetShadeCVerts ( int  onOff)
inlinevirtual
Remarks
Sets the vertex color shaded flag. This determines whether the vertex colors appears shaded in the viewport. When this is off, the colors are unshaded, and appear in their pure RGB values, looking a little like self-illuminated materials. When on, the colors appear like any other assigned color in the viewports
Parameters
onOffNon-zero of on; zero of off.
663{}

◆ GetShadeCVerts()

virtual int GetShadeCVerts ( )
inlinevirtual
Remarks
Returns non-zero if the vertex color shaded flag is on; zero if off.
666{return 0;}

◆ GetVertexColorType()

virtual int GetVertexColorType ( )
inlinevirtual
Remarks
Get the node's vertex color "type". This is one of the nodeVertexColorType enums above.
670{ return 0; }

◆ SetVertexColorType()

virtual void SetVertexColorType ( int  nvct)
inlinevirtual
Remarks
Set the node's vertex color "type". This is one of the nodeVertexColorType enums above.
674{ }

◆ GetVertexColorMapChannel()

virtual int GetVertexColorMapChannel ( )
inlinevirtual

get the map channel to be displayed as vertex color.

677{ return 1; }

◆ SetVertexColorMapChannel()

virtual void SetVertexColorMapChannel ( int  vcmc)
inlinevirtual

set the map channel to be displayed as vertex color.

679{ }

◆ GetTrajectoryON()

virtual int GetTrajectoryON ( )
inlinevirtual
Remarks
Returns non-zero if the trajectory display is on; zero if the trajectory display is off.
685{return 0;}

◆ SetTrajectoryON()

virtual void SetTrajectoryON ( BOOL  onOff)
inlinevirtual
Remarks
This method toggles the trajectory display for the node.
Parameters
onOffTRUE for on; FALSE for off.
689{}

◆ ShowBone()

virtual void ShowBone ( int  boneVis)
pure virtual
Remarks
Controls the display of Bones in the scene. A bone is just the link (or line) connecting the node to its parent. These are the same options as available in the 3ds Max user interface in the Display branch, under Link Display, i.e. Display Links and Link Replaces Object.
Parameters
boneVisSpecifies the display state:

0: Bones are not drawn.
1: Bones are drawn.
2: Only bones are shown.

Implemented in INodeTransformed.

◆ BoneAsLine()

virtual void BoneAsLine ( int  onOff)
pure virtual
Remarks
Controls the display of Bones as simple lines in the scene.
Parameters
onOffNon-zero if bones should be shown as lines only; 0 for normal display.

Implemented in INodeTransformed.

◆ IsBoneShowing()

virtual BOOL IsBoneShowing ( )
pure virtual
Remarks
Returns TRUE if the node's bone is turned on; otherwise FALSE.

Implemented in INodeTransformed.

◆ IsBoneOnly()

virtual BOOL IsBoneOnly ( )
inlinevirtual
Remarks
Returns TRUE if the bone is showing but the object is hidden; FALSE if both the bone and the node is hidden.

Reimplemented in INodeTransformed.

712{ return 0; }

◆ SetTargetNodePair()

virtual void SetTargetNodePair ( int  onOff)
inlinevirtual
Remarks
This method is used for hit-testing and selecting node and target as a single unit. In 3ds Max 2.0 and later you can click on the line connecting, say, a camera to its target and drag that around in the viewports. Doing so moves both the camera and its target as a locked pair. To accomplish this, the camera, light, and tape measure objects (those with two nodes linked by a Look At controller) check for a hit on the object-target line. If they get there (but not at the object or target itself), then they call this method passing TRUE. Then, when a hit is registered, 3ds Max checks the value of this variable (by calling GetTargetNodePair()), and, if it is TRUE, selects both the target and the node. If it's FALSE, then either the target or the node, but not both, gets selected, as with 3ds Max 1.x. For sample code see /MAXSDK/SAMPLES/OBJECTS/LIGHT.CPP or TAPEHELP.CPP.
Example
virtual void HitTest(MaxSDK::Graphics::HitTestContext& hittestContext, MaxSDK::Graphics::DrawContext& drawContext)
{
ViewExp* vpt = const_cast<ViewExp*>(drawContext.GetViewExp());
if (vpt->GetViewCamera() == drawContext.GetCurrentNode())
{
return;
}
drawContext.GetCurrentNode()->SetTargetNodePair(0);
__super::Display(drawContext);
}
virtual void SetTargetNodePair(int onOff)
Definition: inode.h:737
Typically ICustomRenderItem::Draw() and ICustomRenderItem::HitTest() bring instance of this class as ...
Definition: DrawContext.h:29
virtual const ViewExp * GetViewExp() const =0
Get current ViewExp Note: Legacy GraphicsWindow object also available in the ViewExp.
virtual INode * GetCurrentNode()=0
Get current INode object /return INode object.
This is a hit test context class.
Definition: HittestContext.h:19
virtual INode * GetViewCamera()=0
Parameters
onOffTRUE for on; FALSE for off.
Default Implementation:
{}
737{}

◆ GetTargetNodePair()

virtual int GetTargetNodePair ( )
inlinevirtual
Remarks
Returns the target/node pair setting stored by 3ds Max. See SetTargetNodePair() above for details.
Default Implementation:
{ return 0; }
743{ return 0; }

◆ GetWireColor()

virtual DWORD GetWireColor ( )
pure virtual
Remarks
Retrieves the node's wire-frame color. See COLORREF-DWORD format.

Implemented in INodeTransformed.

◆ SetWireColor()

virtual void SetWireColor ( DWORD  newcol)
pure virtual
Remarks
Sets the node's wire-frame color. This can be any of the 16 million possible colors in 24 bit. See COLORREF-DWORD format.
Parameters
newcolSpecifies the new wire-frame color for the node. It may be specified using the RGB macro, for example: RGB(0,0,255);

Implemented in INodeTransformed.

◆ Selected()

virtual int Selected ( )
pure virtual
Remarks
Determines if the node is selected.
Returns
Non-zero if the node is selected; otherwise 0.

Implemented in INodeTransformed.

◆ Dependent()

virtual int Dependent ( )
pure virtual
Remarks
Returns non-zero if the node has its dependent flag set; otherwise 0. This is dependent in the sense of 3ds Max's Views/Show Dependencies mode. When in the Modify branch, Show Dependencies will show all the nodes that are dependent on the current modifier or object being editing by highlighting them in green. It also set a flag in the node. This method allows a developer to check this flag.

Implemented in INodeTransformed.

◆ IsRootNode()

virtual int IsRootNode ( )
pure virtual
Remarks
Determines if this node is the root node (does not have a parent node).
Example
bool UnflaggedNodeDeleter::Proc(INode * pNode)
{
// NOTE: should be called with Enumerate(procfirst = false) !
// Delete flagged node unless it is the root.
if (!pNode->IsRootNode() && !pNode->TestAFlag(A_WORK1)) {
pNode->Delete(0,TRUE);
}
return true;
}
bool TestAFlag(DWORD mask) const
Tests one or more bits in the Animatable flags.
Definition: Animatable.h:338
virtual int IsRootNode()=0
virtual void Delete(TimeValue t, int keepChildPosition)
Definition: inode.h:392
#define A_WORK1
Definition: AnimatableFlags.h:216
Returns
Non-zero if the node is the root node; otherwise 0.

Implemented in INodeTransformed.

◆ GetTransformLock()

virtual BOOL GetTransformLock ( int  type,
int  axis 
)
pure virtual
Remarks
Retrieves the specified transform lock state of the node. When the user is doing interactive Moving / Rotating / Scaling these locks simply remove one of the components.
Parameters
typeSee transformLockTypes.
axisSee Transform Lock Axis.
Returns
TRUE if the lock is set; otherwise FALSE.

Implemented in INodeTransformed.

◆ SetTransformLock()

virtual void SetTransformLock ( int  type,
int  axis,
BOOL  onOff 
)
pure virtual
Remarks
Sets the specified transform lock state of the node. When the user is doing interactive Moving / Rotating / Scaling these locks simply remove one of the components.
Parameters
typeSee Transform Lock Types.
axisSee Transform Lock Axis.
onOffTRUE sets the lock on; FALSE sets the lock off.

Implemented in INodeTransformed.

◆ IsTarget()

virtual int IsTarget ( )
pure virtual
Remarks
Determines if the node is a target node of a lookat controller.
Returns
Non-zero if the node is a target; otherwise 0.

Implemented in INodeTransformed.

◆ SetIsTarget()

virtual void SetIsTarget ( BOOL  b)
pure virtual
Remarks
This method controls the property of the node indicating if it's a target or not. Calling this is necessary when hooking up targets as the target node must have its IsTarget() property set.
Parameters
bTRUE for set; FALSE for off.

Implemented in INodeTransformed.

◆ GetTarget()

virtual INode * GetTarget ( )
pure virtual
Remarks
Retrieves this node's target node if any.
Returns
NULL if this node has no target.

Implemented in INodeTransformed.

◆ GetLookatNode()

virtual INode * GetLookatNode ( )
pure virtual
Remarks
If this node is a target of a lookat controller, this method finds the node that looks at it.
Returns
The node that looks at this node or NULL if the node is not a target.

Implemented in INodeTransformed.

◆ GetParentTM()

virtual Matrix3 GetParentTM ( TimeValue  t)
pure virtual
Remarks
Retrieves the parent node's transformation matrix. This is simply for convenience. It is the equivalent to the following code: node->GetParentNode()->GetNodeTM();
Parameters
tSpecifies the time to retrieve the transformation matrix.
Returns
The parent node's transformation matrix.

Implemented in INodeTransformed.

◆ GetTargetTM()

virtual int GetTargetTM ( TimeValue  t,
Matrix3 m 
)
pure virtual
Remarks
Retrieves the target node's transformation matrix. This is simply for convenience. It is the equivalent to the following code:

node->GetTarget()->GetNodeTM();
Parameters
tSpecifies the time to retrieve the transformation matrix.
mThe result is stored here.
Returns
Nonzero if the target matrix was retrieved (the node had a target); otherwise 0.

Implemented in INodeTransformed.

◆ GetObjectRef()

virtual Object * GetObjectRef ( )
pure virtual
Remarks
Returns the object that this node references unless the node has been bound to a Space Warp. In that case this method will not return the WSM derived object even though the node's object reference points at it. Instead it will return the item that the WSM derived object references. Thus, this method will always return essentially the object space portion of the pipeline. In contrast, see GetObjOrWSMRef() below. See the Geometry Pipeline System section for additional details.

Implemented in INodeTransformed.

◆ SetObjectRef()

virtual void SetObjectRef ( Object o)
pure virtual
Remarks
Sets the object that this node references. See the Geometry Pipeline System section for additional details.
Parameters
oThe object this node will reference.

Implemented in INodeTransformed.

◆ GetObjOrWSMRef()

virtual Object * GetObjOrWSMRef ( )
pure virtual
Remarks
This method returns the actual object reference of the node directly. So if this node is bound to a Space Warp this method will return a WSM derived object. If you want the object space portion of the pipeline see GetObjectRef() above.

Implemented in INodeTransformed.

◆ GetTMController()

virtual Control * GetTMController ( )
pure virtual
Remarks
Retrieves the node's transform controller. The standard 3ds Max transform controllers each have sub-controllers for position, rotation and scale. To access the data of the node's transform controller you may use Class IKeyControl. The following code fragment shows an example of how this may be done for a PRS controller.
c = node->GetTMController()->GetPositionController();
Definition: control.h:1055
virtual Control * GetPositionController()
Definition: control.h:1154
Definition: istdplug.h:1573
#define GetKeyControlInterface(anim)
Definition: AnimatableInterfaceIDs.h:114
With this controller interface you can use its methods to get information about the keys. For example:
int num = ikeys->GetNumKeys();
virtual int GetNumKeys()=0
Example
// Pre-multiply in position, rotation, scale order
TimeValue t = ip->GetTime();
pos = node->GetTMController()->GetPositionController();
pos->GetValue(t, &tmat, valid, CTRL_RELATIVE);
rot = node->GetTMController()->GetRotationController();
rot->GetValue(t, &tmat, valid, CTRL_RELATIVE);
scl = node->GetTMController()->GetScaleController();
scl->GetValue(t, &tmat, valid, CTRL_RELATIVE);
@ CTRL_RELATIVE
Definition: control.h:1007
controller mat max min numsubs x z controller keys x z pos
Definition: generics.inl:208

Implemented in INodeTransformed.

◆ SetTMController()

virtual BOOL SetTMController ( Control m3cont)
pure virtual
Remarks
Sets the node's transform controller.
Parameters
m3contThe Matrix3 transform controller to use. This controller must return a SuperClassID of CTRL_MATRIX3_CLASS_ID
Returns
TRUE if the controller was a valid transform controller for this node, and the reference was successfully created, else FALSE.

Implemented in INodeTransformed.

◆ GetVisController()

virtual Control * GetVisController ( )
pure virtual
Remarks
Returns the visibility controller for this node.

Implemented in INodeTransformed.

◆ SetVisController()

virtual void SetVisController ( Control cont)
pure virtual
Remarks
Sets the visibility controller for this node.
Parameters
contThe controller to use for visibility control.

Implemented in INodeTransformed.

◆ GetVisibility() [1/2]

virtual float GetVisibility ( TimeValue  t,
Interval valid = NULL 
)
pure virtual
Remarks
Retrieves the visibility of the node at the time passed and updates the validity interval passed. Values < 0 indicate off while values > 0 indicate on. The node is fully visible (opaque) when 1.0 and fully invisible (transparent) when 0.0.
Note
this value may be inherited by the children of this node
Example
// Check visibility
vis = pNode->GetVisibility(t);
if (vis < 0.0f) {
vis = 0.0f;
SetFlag(INST_HIDE, 1);
return 1;
}
if (vis > 1.0f) vis = 1.0f;
#define INST_HIDE
instance is hidden
Definition: RenderInstance.h:27
Parameters
tThe time to get the visibility value.
validThe validity interval to update based on the validity of the visibility.

Implemented in INodeTransformed.

◆ GetVisibility() [2/2]

virtual float GetVisibility ( TimeValue  t,
View view,
Interval valid = NULL 
)
inlinevirtual
Remarks
Gets the visibility for the node within the specified view at the time passed, and updates the validity. The visibility calculated includes the view dependent Level Of Detail visibility calculated by the Nodes visibility controller. See also Control::EvalVisibility for more info.
Parameters
tThe time to get the visibility value.
viewThis is the view to calculate the view-dependent LOD visibility from.
validThe validity interval to update based on the validity of the visibility.
Returns
The visibility of the node as rendered. Values <= 0 are invisible, and values >= 1 are fully opaque.
933{return GetVisibility(t,valid);}
virtual float GetVisibility(TimeValue t, Interval *valid=NULL)=0

◆ SetVisibility()

virtual void SetVisibility ( TimeValue  t,
float  vis 
)
pure virtual
Remarks
Sets the visibility of the node to the value passed at the time passed.
Parameters
tThe time to set the visibility value.
visThe visibility of the node to set. This is treated like a boolean value where < 0 means off and > 0 means on.

Implemented in INodeTransformed.

◆ GetLocalVisibility()

virtual float GetLocalVisibility ( TimeValue  t,
Interval valid = NULL 
)
pure virtual
Remarks
Returns the local visibility of the node. The value returned from this method is treated like a boolean value where < 0 means off and > 0 means on. If a node returns TRUE from GetInheritVisibility() then its visibility is determined by this method. If GetInheritVisibility() method returns FALSE then the visibility of the node is determined by GetVisibility().
Note
This value does not take into account the parent nodes visibility, and is not inherited by the children of this node
Parameters
tThe time to get the local visibility value.
validThe validity interval to update based on the validity of the local visibility controller.

Implemented in INodeTransformed.

◆ GetInheritVisibility()

virtual BOOL GetInheritVisibility ( )
pure virtual
Remarks
Returns TRUE if the node's visibility is determined by the visibility of the parent of the node; otherwise returns FALSE.

Implemented in INodeTransformed.

◆ SetInheritVisibility()

virtual void SetInheritVisibility ( BOOL  onOff)
pure virtual
Remarks
This method is called to set the state of the node's inherit visibility flag.
Parameters
onOffPass TRUE to have the node inherit its visibility from its parent; otherwise pass FALSE and the node's visibility will be determine by the node itself (not its parent).

Implemented in INodeTransformed.

◆ SetRenderOccluded()

virtual void SetRenderOccluded ( BOOL  onOff)
pure virtual
Remarks
Sets the state of the node's 'Render Occluded Object' flag.
Parameters
onOffTRUE for on; FALSE for off.

Implemented in INodeTransformed.

◆ GetRenderOccluded()

virtual BOOL GetRenderOccluded ( )
pure virtual
Remarks
Returns TRUE if the node's 'Render Occluded Object' flag is set; otherwise FALSE.

Implemented in INodeTransformed.

◆ GetMtl()

virtual Mtl * GetMtl ( )
pure virtual
Remarks
Returns a pointer to the renderer material for the node. If the value returned is NULL the user has not assigned a material yet. See Class Mtl, Materials, Textures and Maps.
Example
// Get material for node
mtl = node->GetMtl();
if (!mtl) {
// Node has no material, create a dummy material based on wireframe color
// This is done so the renderer does not have to worry about nodes
// without materials. It will, in effect, assure that every node has
// a valid material.
mtl = new DumMtl( (Color)(node->GetWireColor()) );
DebugPrint(_T("\tCreated dummy material for: %s.\n"), node->GetName());
}
Definition: color.h:73
UtilExport void DebugPrint(const MCHAR *format,...)

Implemented in INodeTransformed.

◆ SetMtl()

virtual void SetMtl ( Mtl matl)
pure virtual
Remarks
Sets the renderer material used by the node. If the value set is NULL it indicates a material has not been assigned. In this case, the renderer uses the wireframe color of the node for rendering. See Class Mtl, Materials, Textures and Maps.
Parameters
matlThe materials used to render the node.

Implemented in INodeTransformed.

◆ Mtls()

virtual Material * Mtls ( )
pure virtual
Remarks
Returns a pointer to the GraphicsWindow materials. See NumMtls() below for the number of entries in this array.

Implemented in INodeTransformed.

◆ NumMtls()

virtual int NumMtls ( )
pure virtual
Remarks
Returns the number of entries in the array of Materials returned by Mtls() above.

Implemented in INodeTransformed.

◆ SetObjOffsetPos()

virtual void SetObjOffsetPos ( Point3  p)
pure virtual
Remarks
Sets the position portion of the object offset from the node. See the Advanced Topics section on Transformation and Rotation for an overview of the object offset transformation.
Parameters
pSpecifies the position portion of the object-offset.

Implemented in INodeTransformed.

◆ GetObjOffsetPos()

virtual Point3 GetObjOffsetPos ( )
pure virtual
Remarks
Returns the position portion of the object-offset from the node as a Point3. See the Advanced Topics section on Transformation and Rotation for an overview of the object offset transformation.

Implemented in INodeTransformed.

◆ SetObjOffsetRot()

virtual void SetObjOffsetRot ( Quat  q)
pure virtual
Remarks
Sets the rotation portion of the object-offset from the node. See the Advanced Topics section on Transformation and Rotation for an overview of the object offset transformation.
Parameters
qThe rotation offset.

Implemented in INodeTransformed.

◆ GetObjOffsetRot()

virtual Quat GetObjOffsetRot ( )
pure virtual
Remarks
Returns the rotation portion of the object-offset from the node. See the Advanced Topics section on Transformation and Rotation for an overview of the object offset transformation.

Implemented in INodeTransformed.

◆ SetObjOffsetScale()

virtual void SetObjOffsetScale ( ScaleValue  sv)
pure virtual
Remarks
Sets the scale portion of the object-offset matrix. See the Advanced Topics section on Transformation and Rotation for an overview of the object offset transformation.
Parameters
svThe scale portion of the offset. See Class ScaleValue.

Implemented in INodeTransformed.

◆ GetObjOffsetScale()

virtual ScaleValue GetObjOffsetScale ( )
pure virtual
Remarks
Returns the scale portion of the object-offset from the node. See Class ScaleValue. See the Advanced Topics section on Transformation and Rotation for an overview of the object offset transformation.

Implemented in INodeTransformed.

◆ CenterPivot()

virtual void CenterPivot ( TimeValue  t,
BOOL  moveObject 
)
pure virtual
Remarks
Centers the pivot to the object. The effect is the same as Hierarchy Panel/Pivot - [Center to Object or Center to Pivot]
Parameters
[in]t- not used
[in]moveObject- If true, the object is moved to be centered on the pivot.
If false, the pivot is centered on the object

Implemented in INodeTransformed.

◆ AlignPivot()

virtual void AlignPivot ( TimeValue  t,
BOOL  moveObject 
)
pure virtual
Remarks
Resets the pivot alignment. The effect is the same as Hierarchy Panel/Pivot - [Align to Object or Align to Pivot]
Parameters
[in]t- not used
[in]moveObject- If true, the object is rotated to be aligned with the pivot.
If false, the pivot rotation is reset to be realigned with the object

Implemented in INodeTransformed.

◆ WorldAlignPivot()

virtual void WorldAlignPivot ( TimeValue  t,
BOOL  moveObject 
)
pure virtual
Remarks
Aligns the object to the world . The effect is the same as Hierarchy Panel/Pivot/[Affect Pivot Only or Affect Object Only]/ - Align to World
Parameters
[in]t- not used
[in]moveObject- If true, the object is rotated to be aligned with the world.
If false, the pivot rotation is set to be aligned with the world

Implemented in INodeTransformed.

◆ AlignToParent()

virtual void AlignToParent ( TimeValue  t)
pure virtual
Remarks
Aligns the pivot to the node's parent's pivot, or to world if no parent.
Parameters
[in]t- not used

Implemented in INodeTransformed.

◆ AlignToWorld()

virtual void AlignToWorld ( TimeValue  t)
pure virtual
Remarks
Aligns the pivot to the to world
Parameters
[in]t- not used

Implemented in INodeTransformed.

◆ ResetTransform()

virtual void ResetTransform ( TimeValue  t,
BOOL  scaleOnly 
)
pure virtual
Remarks
Resets the pivot offset transform. The effect is the same as Hierarchy Panel/Pivot/[Reset Transform or Reset Scale]
Parameters
[in]t- not used
[in]scaleOnly- If true, reset only the offset scale. Else reset the rotation and scale parts

Implemented in INodeTransformed.

◆ ResetPivot()

virtual void ResetPivot ( TimeValue  t)
pure virtual
Remarks
Resets the pivot transform. The effect is the same as Hierarchy Panel/Pivot/Reset Pivot
Parameters
[in]t- not used

Implemented in INodeTransformed.

◆ MayResetTransform()

virtual bool MayResetTransform ( )
pure virtual
Remarks
Indicates whether a call to ResetTransform() will succeed. The ResetTransform() method also checks this internally, so it's not necessary to check beforehand.
Returns
true if ResetTransform will succeed, false if no change would occur

Implemented in INodeTransformed.

◆ FlagForeground()

virtual void FlagForeground ( TimeValue  t,
BOOL  notify = TRUE 
)
pure virtual
Remarks
Flags the node to put it in the foreground. For additional information see Foreground / Background Planes.
Parameters
tThe time to put the node in the foreground.
notifyIf TRUE, the reference message REFMSG_FLAGDEPENDENTS with PART_PUT_IN_FG is sent.

Implemented in INodeTransformed.

◆ IsActiveGrid()

virtual int IsActiveGrid ( )
pure virtual
Remarks
Determines if this node is the active grid object.
Returns
Nonzero indicates the node is the active grid object; zero indicates it is not.

Implemented in INodeTransformed.

◆ SetNodeLong()

virtual void SetNodeLong ( LONG_PTR  l)
pure virtual
Remarks
This method provides temporary storage of data with the node. Data stored with the node is only valid before you return control.
Parameters
lThe data to store with the node.

Implemented in INodeTransformed.

◆ GetNodeLong()

virtual LONG_PTR GetNodeLong ( )
pure virtual
Remarks
Returns the value set by SetNodeLong

Implemented in INodeTransformed.

◆ GetRenderData()

virtual RenderData * GetRenderData ( )
pure virtual
Remarks
Returns the render data for the node. See Class RenderData.

Implemented in INodeTransformed.

◆ SetRenderData()

virtual void SetRenderData ( RenderData rd)
pure virtual
Remarks
Sets the render data for the node.
Parameters
rdThe render data to set.

Implemented in INodeTransformed.

◆ GetUserPropBuffer()

virtual void GetUserPropBuffer ( MSTR buf)
pure virtual
Remarks
This method allows access to the entire user defined property text buffer.
Parameters
bufThe buffer to hold the user defined property text.

Implemented in INodeTransformed.

◆ SetUserPropBuffer()

virtual void SetUserPropBuffer ( const MSTR buf)
pure virtual
Remarks
This method allows a developer to set to the entire user defined property text buffer.
Parameters
bufThe buffer containing the user defined property text.

Implemented in INodeTransformed.

◆ GetUserPropString()

virtual BOOL GetUserPropString ( const MSTR key,
MSTR string 
)
pure virtual
Remarks
This method retrieves a string based on the key passed.
Parameters
keyThe key (or name) of the user defined property text.
stringStorage for the string to retrieve.
Returns
TRUE if the key was found; otherwise FALSE.

Implemented in INodeTransformed.

◆ GetUserPropInt()

virtual BOOL GetUserPropInt ( const MSTR key,
int val 
)
pure virtual
Remarks
Retrieves an integer value from the node based on the key passed.
Parameters
keyThe key (or name) of the data to retrieve.
valStorage for the integer value.
Returns
TRUE if the key was found; otherwise FALSE.

Implemented in INodeTransformed.

◆ GetUserPropFloat()

virtual BOOL GetUserPropFloat ( const MSTR key,
float &  val 
)
pure virtual
Remarks
Retrieves a floating point value from the node based on the key passed.
Parameters
keyThe key (or name) of the data to retrieve.
valStorage for the float value.
Returns
TRUE if the key was found; otherwise FALSE.

Implemented in INodeTransformed.

◆ GetUserPropBool()

virtual BOOL GetUserPropBool ( const MSTR key,
BOOL &  b 
)
pure virtual
Remarks
Retrieves a boolean value from the node based on the key passed.
Parameters
keyThe key (or name) of the data to retrieve.
bStorage for the boolean value.
Returns
TRUE if the key was found; otherwise FALSE.

Implemented in INodeTransformed.

◆ SetUserPropString()

virtual void SetUserPropString ( const MSTR key,
const MSTR string 
)
pure virtual
Remarks
Stores a string in the node using the key passed. If the key name already exists it is overwritten; otherwise it is created.
Parameters
keyThe key (or name) of the data to store.
stringThe string to store.

Implemented in INodeTransformed.

◆ SetUserPropInt()

virtual void SetUserPropInt ( const MSTR key,
int  val 
)
pure virtual
Remarks
Stores an integer value in the node using the key passed. If the key name already exists it is overwritten; otherwise it is created.
Parameters
keyThe key (or name) of the data to store.
valThe value to store.

Implemented in INodeTransformed.

◆ SetUserPropFloat()

virtual void SetUserPropFloat ( const MSTR key,
float  val 
)
pure virtual
Remarks
Stores a floating point value in the node using the key passed. If the key name already exists it is overwritten; otherwise it is created.
Parameters
keyThe key (or name) of the data to store.
valThe value to store.

Implemented in INodeTransformed.

◆ SetUserPropBool()

virtual void SetUserPropBool ( const MSTR key,
BOOL  b 
)
pure virtual
Remarks
Stores a boolean value in the node using the key passed. If the key name already exists it is overwritten; otherwise it is created.
Parameters
keyThe key (or name) of the data to store.
bThe value to store.

Implemented in INodeTransformed.

◆ UserPropExists()

virtual BOOL UserPropExists ( const MSTR key)
pure virtual
Remarks
This method simply checks to see if a key exists.
Parameters
keyThe key string to search for.
Returns
TRUE if the key was found; otherwise FALSE.

Implemented in INodeTransformed.

◆ GetGBufID()

virtual ULONG GetGBufID ( )
pure virtual
Remarks
Returns the G-Buffer ID of this node. This is the ID available in the BMM_CHAN_NODE_ID channel. See Working with Bitmaps(G-Buffer) for additional details.

Implemented in INodeTransformed.

◆ SetGBufID()

virtual void SetGBufID ( ULONG  id)
pure virtual
Remarks
Sets the G-Buffer ID of this node. This is the ID available in the BMM_CHAN_NODE_ID channel. See Working with Bitmaps(G-Buffer) for additional details.
Parameters
idThe G-Buffer ID.

Implemented in INodeTransformed.

◆ GetRenderID()

virtual UWORD GetRenderID ( )
inlinevirtual
Remarks
Returns the G-Buffer render ID of the node. This is set by the renderer during a video post render when the BMM_CHAN_NODE_RENDER_ID is requested.

Reimplemented in INodeTransformed.

1224{ return 0xffff; }

◆ SetRenderID()

virtual void SetRenderID ( UWORD  id)
inlinevirtual
Remarks
Sets the G-Buffer render ID of the node. This is set by the renderer during a video post render when the BMM_CHAN_NODE_RENDER_ID is requested. The following methods deal with IK parameters associated with a node.

Reimplemented in INodeTransformed.

1229{}

◆ GetHandle()

virtual ULONG GetHandle ( )
inlinevirtual
Remarks
This method returns the unique node handle. Each node is assigned a unique node handle.
Returns
Zero.
Note
For additional information regarding transformation matrices, see the Advanced Topics section on Transformation and Rotation .
1239{ return kNullHandle; }
static const ULONG kNullHandle
This represents the value of an invalid node handle.
Definition: inode.h:60

◆ Move()

virtual void Move ( TimeValue  t,
const Matrix3 tmAxis,
const Point3 val,
BOOL  localOrigin = FALSE,
BOOL  affectKids = TRUE,
int  pivMode = PIV_NONE,
BOOL  ignoreLocks = FALSE 
)
pure virtual
Remarks
This method may be called to move the node about the specified axis system. Either the pivot point, or the geometry of the object, or both the pivot and the object may be transformed. Optionally, any children of the node can be counter transformed so they don't move.
Parameters
tThe time to transform the node.
tmAxisThe axis system about which the node is transformed.
valThe amount of the transformation relative to the axis system.
localOriginIf TRUE the transformation takes place about the nodes local origin; otherwise about the world origin.
affectKidsTRUE If TRUE any child nodes are transformed along with the parent node. If FALSE any children of the node are counter transformed so they don't move.
pivModeOne of the following values:

PIV_NONE
Move both the pivot point and the geometry of the object.

PIV_PIVOT_ONLY
Move the pivot point only.

PIV_OBJECT_ONLY
Move the geometry of the object only.
ignoreLocksIf TRUE any transform locks associated with the node are ignored; otherwise the locks govern the application of the transformation.

Implemented in INodeTransformed.

◆ Rotate() [1/2]

virtual void Rotate ( TimeValue  t,
const Matrix3 tmAxis,
const AngAxis val,
BOOL  localOrigin = FALSE,
BOOL  affectKids = TRUE,
int  pivMode = PIV_NONE,
BOOL  ignoreLocks = FALSE 
)
pure virtual
Remarks
This method may be called to rotate the node about the specified axis system. Either the pivot point, or the geometry of the object, or both the pivot and the object may be transformed. Optionally, any children of the node can be counter transformed so they don't rotate.
Parameters
tThe time to transform the node.
tmAxisThe axis system about which the node is transformed.
valThe amount of the transformation.
localOriginIf TRUE the transformation takes place about the nodes local origin; otherwise about the world origin.
affectKidsIf TRUE any child nodes are transformed along with the parent node. If FALSE any children of the node are counter transformed so they don't rotate.
pivModeOne of the following values:

PIV_NONE
Move both the pivot point and the geometry of the object.

PIV_PIVOT_ONLY
Move the pivot point only.

PIV_OBJECT_ONLY
Move the geometry of the object only.
ignoreLocksIf TRUE any transform locks associated with the node are ignored; otherwise the locks govern the application of the transformation.

Implemented in INodeTransformed.

◆ Rotate() [2/2]

virtual void Rotate ( TimeValue  t,
const Matrix3 tmAxis,
const Quat val,
BOOL  localOrigin = FALSE,
BOOL  affectKids = TRUE,
int  pivMode = PIV_NONE,
BOOL  ignoreLocks = FALSE 
)
pure virtual
Remarks
This method may be called to rotate the node about the specified axis system. Either the pivot point, or the geometry of the object, or both the pivot and the object may be transformed. Optionally, any children of the node can be counter transformed so they don't rotate.
Parameters
tThe time to transform the node.
tmAxisThe axis system about which the node is transformed.
valThe amount of the transformation.
localOriginIf TRUE the transformation takes place about the nodes local origin; otherwise about the world origin.
affectKidsIf TRUE any child nodes are transformed along with the parent node. If FALSE any children of the node are counter transformed so they don't rotate.
pivModeOne of the following values:

PIV_NONE
Move both the pivot point and the geometry of the object.

PIV_PIVOT_ONLY
Move the pivot point only.

PIV_OBJECT_ONLY
Move the geometry of the object only.
ignoreLocksIf TRUE any transform locks associated with the node are ignored; otherwise the locks govern the application of the transformation.

Implemented in INodeTransformed.

◆ Scale()

virtual void Scale ( TimeValue  t,
const Matrix3 tmAxis,
const Point3 val,
BOOL  localOrigin = FALSE,
BOOL  affectKids = TRUE,
int  pivMode = PIV_NONE,
BOOL  ignoreLocks = FALSE 
)
pure virtual
Remarks
This method may be called to scale the node about the specified axis system. Either the pivot point, or the geometry of the object, or both the pivot and the object may be transformed. Optionally, any children of the node can be counter transformed so they don't scale.
Parameters
tThe time to transform the node.
tmAxisThe axis system about which the node is transformed.
valThe amount of the transformation.
localOriginIf TRUE the transformation takes place about the nodes local origin; otherwise about the world origin.
affectKidsIf TRUE any child nodes are transformed along with the parent node. If FALSE any children of the node are counter transformed so they don't scale.
pivModeOne of the following values:

PIV_NONE
Move both the pivot point and the geometry of the object.

PIV_PIVOT_ONLY
Move the pivot point only.

PIV_OBJECT_ONLY
Move the geometry of the object only.
ignoreLocksIf TRUE any transform locks associated with the node are ignored; otherwise the locks govern the application of the transformation.

Implemented in INodeTransformed.

◆ IsGroupMember()

virtual BOOL IsGroupMember ( )
pure virtual
Remarks
Returns TRUE if this node is a member of a group; otherwise FALSE.

Implemented in INodeTransformed.

◆ IsGroupHead()

virtual BOOL IsGroupHead ( )
pure virtual
Remarks
Returns TRUE if this node is the head of a group; otherwise FALSE.

Implemented in INodeTransformed.

◆ IsOpenGroupMember()

virtual BOOL IsOpenGroupMember ( )
inlinevirtual
Remarks
Returns TRUE if this node is a member of an open group; otherwise FALSE.
Default Implementation:
{return 0; }

Reimplemented in INodeTransformed.

1352{return 0; }

◆ IsOpenGroupHead()

virtual BOOL IsOpenGroupHead ( )
inlinevirtual
Remarks
Returns TRUE if this node is the head of a group and that group is open; otherwise FALSE.
Default Implementation:
{return 0; }

Reimplemented in INodeTransformed.

1357{return 0; }

◆ SetGroupMember()

virtual void SetGroupMember ( BOOL  b)
inlinevirtual
Remarks
A node is marked as a group member or not. This method sets this state.
Parameters
bTRUE to mark the node as a group member; FALSE to indicate it's not in a group.

Reimplemented in INodeTransformed.

1361{}

◆ SetGroupHead()

virtual void SetGroupHead ( BOOL  b)
inlinevirtual
Remarks
A node is marked as the group head or not. This method sets this state.
Parameters
bTRUE to mark the node as a group head; FALSE to indicate it's not a group head.

Reimplemented in INodeTransformed.

1365{}

◆ SetGroupMemberOpen()

virtual void SetGroupMemberOpen ( BOOL  b)
inlinevirtual
Remarks
A node is marked as an open group member or not. This method sets this state.
Parameters
bTRUE to mark the node as a open; FALSE to indicate it's not open.

Reimplemented in INodeTransformed.

1369{}

◆ SetGroupHeadOpen()

virtual void SetGroupHeadOpen ( BOOL  b)
inlinevirtual
Remarks
A node is marked as being the head of a group and being open or not. This method sets this state.
Parameters
bTRUE to mark the node as an open group head; FALSE to indicate it's not an open group head.

Reimplemented in INodeTransformed.

1374{}

◆ GetPosTaskWeight()

virtual float GetPosTaskWeight ( )
inlinevirtual
Remarks
This method returns the position weight for the node.
1381{return 1.0f;}

◆ GetRotTaskWeight()

virtual float GetRotTaskWeight ( )
inlinevirtual
Remarks
This method returns the rotation weight for the node.
1384{return 1.0f;}

◆ SetPosTaskWeight()

virtual void SetPosTaskWeight ( float  w)
inlinevirtual
Remarks
This method sets the position weight for the node.
Parameters
wThe position weight for the node. This value is >= 0.0.
1388{}

◆ SetRotTaskWeight()

virtual void SetRotTaskWeight ( float  w)
inlinevirtual
Remarks
This method sets the rotation weight for the node.
Parameters
wThe rotation weight for the node. This value is >= 0.0.
1392{}

◆ GetTaskAxisState()

virtual BOOL GetTaskAxisState ( int  which,
int  axis 
)
inlinevirtual
Remarks
Returns TRUE of FALSE to indicate if the specified axis is set for position or rotation.
Parameters
whichIndicates if the method returns the position state or the rotation state:

0: specifies position;
1: specifies rotation.
axisThe axis to check. Values are as follows:

0: specifies X
1: specifies Y
2: specifies Z.
1402{return TRUE;}

◆ SetTaskAxisState()

virtual void SetTaskAxisState ( int  which,
int  axis,
BOOL  onOff 
)
inlinevirtual
Remarks
Sets the specified axis state for position or rotation.
Parameters
whichIndicates if the method returns the position state or the rotation state:

0: specifies position
1: specifies rotation.
axisThe axis to check. Values are as follows:

0: specifies X
1 specifies Y
2 specifies Z
onOffTRUE for on; FALSE for off.
1413{}

◆ GetTaskAxisStateBits()

virtual DWORD GetTaskAxisStateBits ( )
inlinevirtual
Remarks
This method returns the same information as GetTaskAxisState() above.
Returns
The first three bits indicate position X, Y and Z. Then the next three bits indicate rotation X, Y, Z.
1418{return 127;}

◆ CreateWSMDerivedObject()

virtual void CreateWSMDerivedObject ( )
inlinevirtual
Remarks
Calling this method will create a WSM derived object for this node if one doesn't already exist.
Default Implementation:
{}
1431{}

◆ GetWSMDerivedObject()

virtual IDerivedObject * GetWSMDerivedObject ( )
inlinevirtual
Remarks
This method pointer to the WSM Derived object for this node. Note that there is at most one WSM derived object per node.
Default Implementation:
{return NULL;}
1437{return NULL;}

◆ GetXRefFile()

virtual CoreExport MaxSDK::AssetManagement::AssetUser GetXRefFile ( int  i)
virtual
Remarks
Returns the file asset of the scene xref whose index is passed.
Parameters
iThe zero based index of the scene xref (0 to GetXRefFileCount()-1). {return MaxSDK::AssetManagement::AssetUser();}

◆ SetXRefFile()

virtual void SetXRefFile ( int  i,
const MaxSDK::AssetManagement::AssetUser file,
BOOL  reload 
)
inlinevirtual
Remarks
Sets the file asset of the scene xref whose index is passed.
Parameters
iThe zero based index of the scene xref (0 to GetXRefFileCount()-1).
fileThe file to set.
reloadTRUE to reload; FALSE to not reload.
Default Implementation:
{}
1457{}

◆ GetXRefFileCount()

virtual int GetXRefFileCount ( )
inlinevirtual
Remarks
Returns the number of scene xrefs.
Default Implementation:
{return 0;}
Example
void Xrefutil::MergeAllXrefScenes(HWND hWnd)
{
// *** MergeAllXrefScenes ***
//
// Merges ("binds") all XRef Scenes into the
// current scene. Just using RootNode::BindXRefFile
// will merge in the real scene objects from the xref'd
// scene as real modifiable objects, and delete the
// xref scene link from the scene hierarchy.
INode * pNode = NULL;
int i, numxrefscenes;
INode * pRootNode = m_pInterface->GetRootNode();
if (!pRootNode) {
return;
}
numxrefscenes = pRootNode->GetXRefFileCount();
for (i = 0; i < numxrefscenes; i++) {
pRootNode->BindXRefFile(i);
}
}
virtual BOOL BindXRefFile(int i)
Definition: inode.h:1496
virtual int GetXRefFileCount()
Definition: inode.h:1465
1465{return 0;}

◆ AddNewXRefFile()

virtual BOOL AddNewXRefFile ( const MaxSDK::AssetManagement::AssetUser file,
BOOL  loadNow = TRUE,
BOOL  hideInManagerUI = FALSE 
)
inlinevirtual
Remarks
Adds the specified file to the scene and optionally updates the scene now.
Parameters
fileThe file asset to load.
loadNowIf TRUE the file is loaded immediately and the scene updated; if FALSE the scene is now updated until the user requests it.
hideInManagerUIIf TRUE (default value is FALSE) the scene xref flag XREF_SCENE_HIDEINMANAGERUI will be set, so that the scene xref will not be listed in the scene XRef manager UI.
Returns
TRUE if the XRef was loaded; otherwise FALSE.
Default Implementation:
{return FALSE;}
Example
void Xrefutil::AddNewXrefScene(HWND hWnd)
{
// *** AddNewXrefScene ***
//
// Add new XRef'd Scene to current scene -- simply get the
// name of the .MAX file, and use RootNode::AddNewXRefFile
// to hook that xref'd scene into the current scene hierarchy
//
// Note: Don't confuse XRef scenes with XRef objects.
// XRef scenes live as special children of the (single) root
// node of the current scene, basically as "XRef'd root nodes"
// of the external scene. Note that merged-in XRef Root Nodes
// can come from original scenes that already had another scene
// xref'd in, and so-on. See the SDK documentation on the
// various XRef Scene APIs on the INode object, keeping in mind
// that these APIs only function when the INode is in fact the
// root node of the scene.
//
TSTR filename = _T("");
INode * pRootNode = m_pInterface->GetRootNode();
if (!pRootNode) {
return;
}
if (!DoOpenSaveDialog(filename, true)) {
return;
}
AssetUser asset = IAssetManager::GetInstance()->GetAsset(filename,kXRefAsset);
pRootNode->AddNewXRefFile(asset, TRUE);
m_pInterface->RedrawViews(m_pInterface->GetTime());
}
virtual BOOL AddNewXRefFile(const MaxSDK::AssetManagement::AssetUser &file, BOOL loadNow=TRUE, BOOL hideInManagerUI=FALSE)
Definition: inode.h:1479
#define TSTR
Definition: strclass.h:1067
1479{return FALSE;}

◆ DeleteXRefFile()

virtual BOOL DeleteXRefFile ( int  i)
inlinevirtual
Remarks
This method removes the 'i-th' Scene XRef.
Parameters
iThe zero based index of the Scene XRef to load.
Returns
TRUE if the file was deleted from the scene; otherwise FALSE.
Default Implementation:
{return FALSE;}
1486{return FALSE;}

◆ BindXRefFile()

virtual BOOL BindXRefFile ( int  i)
inlinevirtual
Remarks
This methods binds the specified XRef. This deletes the XRef after merging it into the scene.
Parameters
iThe zero based index of the XRef to bind.
Returns
TRUE if the file was deleted; otherwise FALSE.
Default Implementation:
{return FALSE;}
Example
See GetXRefFileCount()
1496{return FALSE;}

◆ DeleteAllXRefs()

virtual void DeleteAllXRefs ( )
inlinevirtual
Remarks
This method deletes all the XRefs from the scene. This is called when loading a new file, resetting or clearing the scene.
Default Implementation:
{}
1502{}

◆ ReloadXRef()

virtual BOOL ReloadXRef ( int  i)
inlinevirtual
Remarks
This method will reload (updates from disk) the specified XRef.
Parameters
iThe zero based index of the XRef to reload.
Returns
TRUE if the XRef was reloaded; otherwise FALSE.
Default Implementation:
{return FALSE;}
Example
void Xrefutil::RefreshAllXrefScenes(HWND hWnd)
{
// *** RefreshAllXrefScenes ***
//
// Refreshes all Xref'd Scenes -- mimics
// MAX's "Update Now" button on XRef Scene dialog,
// with all xref'd scenes selected.
//
// Simply walk through all XRef'd scenes (hanging off root)
// and use RootNode::ReloadXRef() to reload each one.
INode * pNode = NULL;
int i, numxrefscenes;
INode * pRootNode = m_pInterface->GetRootNode();
if (!pRootNode) {
return;
}
numxrefscenes = pRootNode->GetXRefFileCount();
for (i = 0; i < numxrefscenes; i++) {
pRootNode->ReloadXRef(i);
}
}
virtual BOOL ReloadXRef(int i)
Definition: inode.h:1512
1512{return FALSE;}

◆ FlagXrefChanged()

virtual void FlagXrefChanged ( int  i)
inlinevirtual
Remarks
This method indicates that the specified XRef has been changed and should be updated.
Parameters
iThe zero based index of the XRef to flag.
Default Implementation:
{}
1518{}

◆ UpdateChangedXRefs()

virtual BOOL UpdateChangedXRefs ( BOOL  redraw = TRUE)
inlinevirtual
Remarks
This method updates all XRefs which have their changed flag set.
Parameters
redrawTRUE to redraw the scene; otherwise FALSE.
Returns
TRUE if the XRefs were loaded okay; otherwise FALSE.
Default Implementation:
{return FALSE;}
1525{return FALSE;}

◆ GetXRefTree()

virtual INode * GetXRefTree ( int  i)
inlinevirtual
Remarks
Returns the root node of the tree for the specified XRef. This method, when called on a root node, will access the various XRef scenes. Note that these can be nested so calling this on the root node of the scene will return the root node of one of the scene XRefs. Calling it on the root node of the scene XRef will get the root node of a nested XRef and so on. Note that this is not the parent of the XRef (see GetXRefParent() below).
Parameters
iThe zero based index of the XRef.
Default Implementation:
{return NULL;}
1537{return NULL;}

◆ GetXRefParent()

virtual INode * GetXRefParent ( int  i)
inlinevirtual
Remarks
Returns the parent node of the specified XRef. This is the node in the scene (if any) which the scene XRef is linked to through the special bind function in the scene XRef dialog.
Parameters
iThe zero based index of the XRef.
Default Implementation:
{return NULL;}
1545{return NULL;}

◆ SetXRefParent()

virtual void SetXRefParent ( int  i,
INode par,
BOOL  autoOffset = TRUE 
)
inlinevirtual
Remarks
Sets the parent of the specified XRef to the node passed.
Parameters
iThe zero based index of the XRef.
parThe parent node to set.
autoOffsetAutomatically offset XRef so that it keeps its world TM.
Default Implementation:
{}
1553{}

◆ FindUnresolvedXRefs()

virtual BOOL FindUnresolvedXRefs ( Tab< MSTR * > &  fnames)
inlinevirtual
Remarks
Generates a table of names for the unresolved XRefs in the scene.
Parameters
fnamesThe table of names. See Template Class Tab.
Returns
Returns TRUE if there are still unresolved XRefs; otherwise FALSE.
Default Implementation:
{return FALSE;}
1560{return FALSE;}

◆ AttemptToResolveUnresolvedXRefs()

virtual void AttemptToResolveUnresolvedXRefs ( )
inlinevirtual
Remarks
This method tries to load any XRefs that are currently unresolved.
Default Implementation:
{}
1565{}

◆ GetXRefFlags()

virtual DWORD GetXRefFlags ( int  i)
inlinevirtual
Remarks
Returns the state of flags for the specified XRef.
Parameters
iThe zero based index of the XRef whose flags are returned.
Returns
See XRef Flag Bits.
Default Implementation:
{return 0;}
1572{return 0;}

◆ SetXRefFlags()

virtual void SetXRefFlags ( int  i,
DWORD  flag,
BOOL  onOff 
)
inlinevirtual
Remarks
Sets the state of the specified flags in the specified XRef to on or off.
Parameters
iThe zero based index of the XRef whose flags are set.
flagSee XRef Flag Bits.
onOffTRUE for on; FALSE for off.
Default Implementation:
{}
1580{}

◆ IsSceneXRefNode()

virtual bool IsSceneXRefNode ( ) const
inlinevirtual
Remarks
This method tells if the INode is a scene XRef node or not.
Returns
true if the node is a scene XRef node, false otherwise.
1585{ return false; }

◆ SetBoneNodeOnOff()

virtual void SetBoneNodeOnOff ( BOOL  onOff,
TimeValue  t 
)
inlinevirtual
Remarks
Sets the bone on/off property of the node.
Parameters
onOffPass TRUE for on; FALSE for off.
tThe time at which to set the property.
Default Implementation:
{}
1596{}

◆ SetBoneAutoAlign()

virtual void SetBoneAutoAlign ( BOOL  onOff)
inlinevirtual
Remarks
Sets the bone auto-align property of the node.
Parameters
onOffPass TRUE for on; FALSE for off.
Default Implementation:
{}
1602{}

◆ SetBoneFreezeLen()

virtual void SetBoneFreezeLen ( BOOL  onOff)
inlinevirtual
Remarks
Sets the bone freeze length property of the node.
onOff Pass TRUE for on; FALSE for off.
Default Implementation:
{}
1608{}

◆ SetBoneScaleType()

virtual void SetBoneScaleType ( int  which)
inlinevirtual
Remarks
Sets the bone scale (stretch) type to the specified value.
Parameters
whichOne of the following values:

BONE_SCALETYPE_SCALE
BONE_SCALETYPE_SQUASH
BONE_SCALETYPE_NONE
Default Implementation:
{}
1617{}

◆ SetBoneAxis()

virtual void SetBoneAxis ( int  which)
inlinevirtual
Remarks
Sets the bone axis of the node to the specified value.
Parameters
whichOne of the following values:

BONE_AXIS_X
BONE_AXIS_Y
BONE_AXIS_Z
Default Implementation:
{}
1626{}

◆ SetBoneAxisFlip()

virtual void SetBoneAxisFlip ( BOOL  onOff)
inlinevirtual
Remarks
Sets the state of the bone axis flip toggle.
Parameters
onOffPass TRUE for on; FALSE for off.
Default Implementation:
{}
1632{}

◆ GetBoneNodeOnOff()

virtual BOOL GetBoneNodeOnOff ( )
inlinevirtual
Remarks
Returns TRUE if the bone property is on; FALSE if off.
Default Implementation:
{return FALSE;}
1637{return FALSE;}

◆ GetBoneNodeOnOff_T()

virtual BOOL GetBoneNodeOnOff_T ( TimeValue  t)
inlinevirtual
Remarks
Returns TRUE if the bone property is on at a specfied time; FALSE if off.
Parameters
tThe time value at which to check the bond node.
Default Implementation:
{return FALSE;}
1643{ return GetBoneNodeOnOff(); } // for write property access via MXS
virtual BOOL GetBoneNodeOnOff()
Definition: inode.h:1637

◆ GetBoneAutoAlign()

virtual BOOL GetBoneAutoAlign ( )
inlinevirtual
Remarks
Returns TRUE if the bone auto-align property is on; FALSE if off.
Default Implementation:
{return FALSE;}
1648{return FALSE;}

◆ GetBoneFreezeLen()

virtual BOOL GetBoneFreezeLen ( )
inlinevirtual
Remarks
Returns TRUE if the freeze length property is on; FALSE if off.
Default Implementation:
{return FALSE;}
1653{return FALSE;}

◆ GetBoneScaleType()

virtual int GetBoneScaleType ( )
inlinevirtual
Remarks
Returns a value which indicates the bone scale type.
Returns
One of the following values:

BONE_SCALETYPE_SCALE
BONE_SCALETYPE_SQUASH
BONE_SCALETYPE_NONE
Default Implementation:
{return 0;}
1662{return 0;}

◆ GetBoneAxis()

virtual int GetBoneAxis ( )
inlinevirtual
Remarks
Returns a value which indicates the bone axis.
Returns
One of the following values:

BONE_AXIS_X
BONE_AXIS_Y
BONE_AXIS_Z
Default Implementation:
{return 0;}
1671{return 0;}

◆ GetBoneAxisFlip()

virtual BOOL GetBoneAxisFlip ( )
inlinevirtual
Remarks
Returns TRUE if the axis flip toggle is on; FALSE if off.
Default Implementation:
{return FALSE;}
1676{return FALSE;}

◆ RealignBoneToChild()

virtual void RealignBoneToChild ( TimeValue  t)
inlinevirtual
Remarks
Calling this method is the equivalent of pressing the Realign button in the UI.
Parameters
tThe time at which to reset the initial child position.
Default Implementation:
{}
1682{}

◆ ResetBoneStretch()

virtual void ResetBoneStretch ( TimeValue  t)
inlinevirtual
Remarks
Calling this method is the equivalent of pressing the Reset Stretch button in the UI. This will cause the X-axis of the bone to realign to point at the child bone (or average pivot of multiple children).
Parameters
tThe time at which to reset the bone stretch.
Default Implementation:
{}
1690{}

◆ GetStretchTM()

virtual Matrix3 GetStretchTM ( TimeValue  t,
Interval valid = NULL 
)
inlinevirtual
Remarks
This method returns the strechTM without the object offset included. Normally matrix concatenation occurs in the following manner:
objectTM = objectOffsetTM * stretchTM * nodeTM
A plug-in that uses the objectTM will transparently inherit the effects of the stretchTM. However if a plug-in (such as skin) wants the stretchTM included but not the object offset, this method will return the stretchTM alone. If the node is not a bone or has no stretching, this method will return the identity.
Parameters
tThe time at which to obtain the strechtTM.
validThe interval.
Default Implementation:
{return Matrix3(1);}
1705{ return Matrix3{}; }

◆ GetInterface() [1/3]

BaseInterface * GetInterface ( Interface_ID  id)
inlinevirtual
Remarks
Returns a pointer to the interface whose ID is specified.
Parameters:
Interface_ID id

The ID of the interface to return.
Default Implementation:
{ return NULL; }

Reimplemented from FPMixinInterface.

1710{ return (id == INODE_INTERFACE) ? this : FPMixinInterface::GetInterface(id); }
virtual BaseInterface * GetInterface(Interface_ID id)
Definition: ifnpub.h:595
#define INODE_INTERFACE
Definition: inode.h:37

◆ GetDesc()

FPInterfaceDesc * GetDesc ( )
inlinevirtual
Remarks
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

Definition: ifnpub.h:325
CoreExport Interface * GetCOREInterface()

◆ PROP_FNS() [1/14]

◆ PROP_FNS() [2/14]

◆ PROP_FNS() [3/14]

◆ PROP_FNS() [4/14]

◆ PROP_FNS() [5/14]

◆ PROP_FNS() [6/14]

PROP_FNS ( getBoneAxis  ,
GetBoneAxis  ,
setBoneAxis  ,
SetBoneAxis  ,
TYPE_ENUM   
)

◆ PROP_FNS() [7/14]

◆ RO_PROP_TFN()

RO_PROP_TFN ( getStretchTM  ,
GetStretchTM  ,
TYPE_MATRIX3_BV   
)

◆ PROP_TFNS()

◆ VFNT_1()

VFNT_1 ( setBoneNodeOnOffM  ,
SetBoneNodeOnOff  ,
TYPE_BOOL   
)

◆ VFNT_0() [1/2]

◆ VFNT_0() [2/2]

VFNT_0 ( resetBoneStretch  ,
ResetBoneStretch   
)

◆ PROP_FNS() [8/14]

◆ PROP_FNS() [9/14]

◆ PROP_FNS() [10/14]

◆ PROP_FNS() [11/14]

PROP_FNS ( getCVertMode  ,
GetCVertMode  ,
setCVertMode  ,
SetCVertMode  ,
TYPE_INT   
)

◆ PROP_FNS() [12/14]

◆ PROP_FNS() [13/14]

◆ PROP_FNS() [14/14]

◆ RO_PROP_FN() [1/2]

RO_PROP_FN ( getNodeHandle  ,
GetHandle  ,
TYPE_DWORD   
)

◆ RO_PROP_FN() [2/2]

RO_PROP_FN ( isSceneXRefNode  ,
IsSceneXRefNode  ,
TYPE_bool   
)

◆ CopyProperties()

CoreExport void CopyProperties ( INode from)
Remarks
Calling this method copies the various display, rendering, bone and other general parameters from the "from" object. This is used in Edit(able) Spline and Edit(able) Patch to copy node settings into new nodes created by the "Detach" operations.
Parameters:
INode *frame A pointer to the INode to copy the properties from.

◆ WasLoadedByLastMerge()

virtual bool WasLoadedByLastMerge ( ) const
inlinevirtual
Remarks
Determines if this node was loaded during last merge
Returns
true if the node was loaded during last merge; otherwise false.
1783{ return false; }

◆ GetInterface() [2/3]

CoreExport void * GetInterface ( ULONG  id)
overridevirtual

Inherited from Animatable.

Returns a pointer to the interface.

Parameters
id- The id of the interface.
Returns
A Pointer to the Interface

Reimplemented from ReferenceTarget.

◆ GetInterface() [3/3]

CoreExport BaseInterface * GetInterface ( Interface_ID  id)
overridevirtual

Inherited from Animatable.

Returns a pointer to the Base Interface for the interface ID passed.

Parameters
id- The unique ID of the interface to get
Returns
A Pointer to the Interface

Reimplemented from FPMixinInterface.

Member Data Documentation

◆ ID

constexpr Interface_ID ID = INODE_INTERFACE
staticconstexpr

◆ kNullHandle

const ULONG kNullHandle = 0
static

This represents the value of an invalid node handle.