3ds Max C++ API Reference
IGameIKChain Class Referenceabstract

Simple wrapper for IKChains. More...

#include <IGameObject.h>

+ Inheritance diagram for IGameIKChain:

Public Member Functions

virtual int GetNumberofBonesinChain ()=0
 Get the number of nodes that make up the chain. More...
 
virtual IGameNodeGetIGameNodeInChain (int index)=0
 Access to the n'th node in the chain. More...
 
virtual IGamePropertyGetSwivelData ()=0
 Get the swivel data. More...
 
virtual IGameControlGetIKEnabledController ()=0
 Get the controller for the IK enable. More...
 
- Public Member Functions inherited from IGameObject
 IGameObject ()
 Default constructor. More...
 
IGAMEEXPORT void GetBoundingBox (Box3 &bb)
 The bounding box of the object. More...
 
IGAMEEXPORT bool IsRenderable ()
 Check if object renderable. More...
 
virtual ObjectTypes GetIGameType ()=0
 The IGame object type. More...
 
IGAMEEXPORT ObjectGetMaxObject ()
 Access to the actual 3ds Max object. More...
 
IGAMEEXPORT MaxType GetMaxType ()
 The 3ds Max object type. More...
 
IGAMEEXPORT int GetNumModifiers ()
 The number of modifiers active on the object. More...
 
IGAMEEXPORT IGameModifierGetIGameModifier (int index)
 Access to IGame modifier. More...
 
IGAMEEXPORT IGameObject (INode *node)
 The IGameObject constructor. More...
 
IGAMEEXPORT bool CastShadows ()
 Check if Object casts shadows. More...
 
IGAMEEXPORT bool IsObjectSkinned ()
 Check if object skinned. More...
 
IGAMEEXPORT IGameSkinGetIGameSkin ()
 Access to the Skin interface. More...
 
IGAMEEXPORT bool IsObjectXRef ()
 Check if XRef object. More...
 
IGAMEEXPORT GMatrix GetIGameObjectTM ()
 Access to the ObjectTM. More...
 
virtual bool InitializeData ()
 Extract the 3ds Max data into IGame data. More...
 
virtual ~IGameObject ()=0
 
- Public Member Functions inherited from IExportEntity
virtual ~IExportEntity ()
 Destructor. More...
 
virtual IPropertyContainerGetIPropertyContainer ()
 Retrieve the Property Container. More...
 
virtual bool IsEntitySupported ()
 Is the Entity directly supported. More...
 
virtual const MCHARGetClassName ()=0
 Retrieves the name of the entity class. More...
 

Additional Inherited Members

- Public Types inherited from IGameObject
enum  ObjectTypes {
  IGAME_UNKNOWN , IGAME_LIGHT , IGAME_MESH , IGAME_SPLINE ,
  IGAME_CAMERA , IGAME_HELPER , IGAME_BONE , IGAME_IKCHAIN ,
  IGAME_XREF
}
 Various IGame Object types. More...
 
enum  MaxType {
  IGAME_MAX_UNKNOWN , IGAME_MAX_GEOM , IGAME_MAX_SHAPE , IGAME_MAX_LIGHT ,
  IGAME_MAX_CAMERA , IGAME_MAX_BONE , IGAME_MAX_HELPER
}
 Various 3ds Max Object types. More...
 
- 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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 
- Protected Member Functions inherited from IGameObject
void SetNode (INode *n)
 
- Protected Attributes inherited from IGameObject
INodegameNode
 
ObjectgameObject
 

Detailed Description

Simple wrapper for IKChains.

An IGame wrapper around the IKChain object.
This object be used as a basis for character export. All nodes used in the chain are maintained by the IGameIKChain interface. This allows animation to be exported based on whether it is in IK or FK mode. If the IK is enabled then the IGameControl retrieved from the IGameNode will be that of the End Effector for the chain. If it is in FK mode then the IGameControl from the nodes in the chain would be used for the FK calculation.

Member Function Documentation

◆ GetNumberofBonesinChain()

virtual int GetNumberofBonesinChain ( )
pure virtual

Get the number of nodes that make up the chain.

Returns
The number of nodes in the chain

◆ GetIGameNodeInChain()

virtual IGameNode* GetIGameNodeInChain ( int  index)
pure virtual

Access to the n'th node in the chain.

Parameters
indexThe index of the node to access
Returns
An IGameNode representation of the node

◆ GetSwivelData()

virtual IGameProperty* GetSwivelData ( )
pure virtual

Get the swivel data.

The swivel data used in the IK calculation

Returns
The IGameProperty for the swivel data

◆ GetIKEnabledController()

virtual IGameControl* GetIKEnabledController ( )
pure virtual

Get the controller for the IK enable.

Access to the Enabled controller - this defines whether IK or FK are used. When IK the end effector is used to control the transforms, in FK the individual nodes can be positioned independent of the effector

Returns
An IGameControl pointer for the Enabled controller. This controller does not have direct access, so should be sampled using IGameControlType::IGAME_FLOAT