#include <IGameModifier.h>
A skin wrapper Class.
This class provides an unified interface to the various skin options present in 3ds Max. This includes Physique and Skin. All the data from skin and physique are stored in the same way, but options exist to find out what skinning option was used. The vertex indexes used here are the same as those for the actual mesh, so this provides a one to one corelation.
The version of the Character Studio that is used for IGame is 3.2.1 - Anything earlier is unsupported
The bones need to be parsed by IGame before this interface can be used.
Public Types | |
enum | SkinType { IGAME_PHYSIQUE, IGAME_SKIN } |
Skinning Modifier Types. More... | |
enum | VertexType { IGAME_RIGID, IGAME_RIGID_BLENDED, IGAME_UNKNOWN } |
Vertex types. More... | |
Public Types inherited from IGameModifier | |
enum | ModType { IGAME_SKINNING, IGAME_MORPHER, IGAME_GENERAL } |
IGame modifier types. More... | |
Public Member Functions | |
virtual int | GetNumOfSkinnedVerts ()=0 |
Get the numbers of vertices effected by this instance of the modifier. More... | |
virtual int | GetNumberOfBones (int vertexIndex)=0 |
Get the numbers of bones effecting the vertex. More... | |
virtual float | GetWeight (int vertexIndex, int boneIndex)=0 |
Get the weight for the bone and vertex index passed in. More... | |
virtual INode * | GetBone (int vertexIndex, int boneIndex)=0 |
Get the 3ds Max bone effecting the vertex. More... | |
virtual IGameNode * | GetIGameBone (int vertexIndex, int boneIndex)=0 |
Get the IGameNode equivalent of the bone effecting the vertex. More... | |
virtual int | GetBoneID (int vertexIndex, int boneIndex)=0 |
Get the IGameNode ID equivalent of the bone effecting the vertex. More... | |
virtual VertexType | GetVertexType (int vertexIndex)=0 |
Get Vertex Type. More... | |
virtual SkinType | GetSkinType ()=0 |
Get the Skinning type. More... | |
virtual bool | GetInitBoneTM (IGameNode *boneNode, GMatrix &intMat)=0 |
Get the bone TM when skin was added. More... | |
virtual bool | GetInitBoneTM (INode *boneNode, GMatrix &intMat)=0 |
Get the bone TM when skin was added. More... | |
virtual void | GetInitSkinTM (GMatrix &intMat)=0 |
Get the original TM for the node with skin. More... | |
virtual int | GetTotalBoneCount ()=0 |
Get the number of bones used by the skinning modifiers. More... | |
virtual int | GetTotalSkinBoneCount ()=0 |
Receive the total number of bones used by the skinning system - this will include bones that are not assigned to any vertex. More... | |
virtual IGameMesh * | GetInitialPose ()=0 |
Returns the mesh before the skin modifier was added. More... | |
virtual int | GetBoneIndex (IGameNode *boneNode, bool usedList=false)=0 |
use the usedList to define if you want to the search all the bones or just the bones actually effecting a vertex More... | |
virtual int | GetBoneIndex (INode *boneNode, bool usedList=false)=0 |
use the usedList to define if you want to the search all the bones or just the bones actually effecting a vertex More... | |
virtual IGameNode * | GetIGameBone (int index, bool usedList=false)=0 |
use the usedList to define if you want to the search all the bones or just the bones actually effecting a vertex More... | |
virtual INode * | GetBone (int index, bool usedList=false)=0 |
use the usedList to define if you want to the search all the bones or just the bones actually effecting a vertex More... | |
IGameSkin (Modifier *mod, INode *node) | |
The IGameSkin constructor. More... | |
Public Member Functions inherited from IGameModifier | |
IGameModifier (Modifier *mod, INode *node) | |
The IGameModifier constructor. More... | |
virtual ModType | GetModifierType ()=0 |
Get IGameModifier type. More... | |
virtual const MCHAR * | GetUIName () |
Get the modifier Name. More... | |
virtual const MCHAR * | GetInternalName () |
Get the modifier Name. More... | |
virtual Modifier * | GetMaxModifier () |
Access to the 3ds Max modifier. More... | |
virtual void | EffectedNodes (Tab< INode * > &nodeList) |
Access to the nodes this modifier is applied to. More... | |
virtual bool | IsSkin () |
Check whether the modifier is a skinning modifier. More... | |
virtual bool | IsMorpher () |
Check whether the modifier is the morpher modifier. More... | |
virtual | ~IGameModifier () |
Public Member Functions inherited from IExportEntity | |
virtual | ~IExportEntity () |
Destructor. More... | |
virtual IPropertyContainer * | GetIPropertyContainer () |
Retrieve the Property Container. More... | |
virtual bool | IsEntitySupported () |
Is the Entity directly supported. More... | |
virtual const MCHAR * | GetClassName ()=0 |
Retrieves the name of the entity class. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from MaxHeapOperators | |
static UtilExport void * | operator new (size_t size) |
Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator new[] (size_t size, int block_type, const char *filename, int line) |
New operator used to allocate arrays of objects. More... | |
static UtilExport void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | aligned_malloc (size_t size, size_t alignment) |
Allocates memory on a specified alignment boundary. More... | |
static UtilExport void * | aligned_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... | |
enum SkinType |
enum VertexType |
The IGameSkin constructor.
|
pure virtual |
Get the numbers of vertices effected by this instance of the modifier.
If the modifier is attached to more than one node, then this will be the count of vertices on the current node
Get the numbers of bones effecting the vertex.
vertexIndex | The index of the vertex |
Get the weight for the bone and vertex index passed in.
vertexIndex | The index of the vertex |
boneIndex | The bone index |
|
pure virtual |
Get Vertex Type.
Specifies whether the Vertex is either Rigid or blended
vertexIndex | The vertex to query |
|
pure virtual |
Get the Skinning type.
This can be used to find out whether 3ds Max's Skin or Physique was used
Get the bone TM when skin was added.
This provides access to the intial Bone TM when the skin modifier was applied.
boneNode | THe IGameNode bone whose matrix is needed |
&intMat | THe matrix to receive the intial TM |
Get the original TM for the node with skin.
This provides access to the intial node TM when the skin modifier was applied.
&intMat | The matrix to receive the intial TM |
|
pure virtual |
Get the number of bones used by the skinning modifiers.
This provides the toal number of bones used by the modifiers. This shouldn't be confused with IGameSkin::GetNumberOfBones, which returns the numbers of bones associated with a vertex.
|
pure virtual |
Receive the total number of bones used by the skinning system - this will include bones that are not assigned to any vertex.
|
pure virtual |
Returns the mesh before the skin modifier was added.
use the usedList to define if you want to the search all the bones or just the bones actually effecting a vertex
use the usedList to define if you want to the search all the bones or just the bones actually effecting a vertex
use the usedList to define if you want to the search all the bones or just the bones actually effecting a vertex