3ds Max C++ API Reference
CSkinEngine Class Reference

#include <ISkinEngine.h>

+ Inheritance diagram for CSkinEngine:

Public Member Functions

 CSkinEngine ()
 
virtual ~CSkinEngine ()
 
STDMETHODIMP SetNumPoints (int numPoints)
 
STDMETHODIMP SetNumBones (int numBones)
 
STDMETHODIMP SetBoneFlags (int boneIdx, DWORD flags)
 
bool UseSplineAnimation ()
 
void SetUseSplineAnimation (bool splineAnim)
 
STDMETHODIMP SetInitTM (float *InitTM)
 
STDMETHODIMP SetInitTM (const Matrix3 &InitTM)
 
STDMETHODIMP SetInitBoneTM (int boneIdx, float *InitTM)
 
STDMETHODIMP SetInitBoneTM (int boneIdx, const Matrix3 &InitTM)
 
STDMETHODIMP SetBoneTM (int boneIdx, float *currentTM)
 
STDMETHODIMP SetBoneTM (int boneIdx, const Matrix3 &currentTM)
 
STDMETHODIMP SetPointData (int pointIdx, int numData, DWORD b_stride, int *BoneIndexArray, DWORD w_stride, float *WeightArray, DWORD sci_stride, int *SubCurveIdxArray, DWORD ssi_stride, int *SubSegIdxArray, DWORD ssd_stride, float *SubSegDistArray, DWORD t_stride, float *TangentsArray, DWORD op_stride, float *OPointsArray)
 
STDMETHODIMP MapPoint (int idx, float *pin, float *pout) const
 
virtual Point3 GetInterpCurvePiece3D (int BoneId, int CurveId, int SegId, float distance) const
 
virtual Point3 GetTangentPiece3D (int BoneId, int CurveId, int SegId, float distance) const
 
void PreComputeBoneXFormTMs ()
 

Protected Member Functions

Point3 SplineAnimation (int vertex, int bone, const Point3 &p) const
 

Protected Attributes

MaxSDK::Array< CBoneDataClassBoneData
 
MaxSDK::Array< PointDataClassPointData
 
Matrix3 m_MeshTM
 
bool mUseSplineAnimation
 

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ CSkinEngine()

◆ ~CSkinEngine()

virtual ~CSkinEngine ( )
virtual

Member Function Documentation

◆ SetNumPoints()

STDMETHODIMP SetNumPoints ( int  numPoints)

◆ SetNumBones()

STDMETHODIMP SetNumBones ( int  numBones)

◆ SetBoneFlags()

STDMETHODIMP SetBoneFlags ( int  boneIdx,
DWORD  flags 
)

◆ UseSplineAnimation()

bool UseSplineAnimation ( )

◆ SetUseSplineAnimation()

void SetUseSplineAnimation ( bool  splineAnim)

◆ SetInitTM() [1/2]

STDMETHODIMP SetInitTM ( float *  InitTM)

◆ SetInitTM() [2/2]

STDMETHODIMP SetInitTM ( const Matrix3 InitTM)

◆ SetInitBoneTM() [1/2]

STDMETHODIMP SetInitBoneTM ( int  boneIdx,
float *  InitTM 
)

◆ SetInitBoneTM() [2/2]

STDMETHODIMP SetInitBoneTM ( int  boneIdx,
const Matrix3 InitTM 
)

◆ SetBoneTM() [1/2]

STDMETHODIMP SetBoneTM ( int  boneIdx,
float *  currentTM 
)

◆ SetBoneTM() [2/2]

STDMETHODIMP SetBoneTM ( int  boneIdx,
const Matrix3 currentTM 
)

◆ SetPointData()

STDMETHODIMP SetPointData ( int  pointIdx,
int  numData,
DWORD  b_stride,
int BoneIndexArray,
DWORD  w_stride,
float *  WeightArray,
DWORD  sci_stride,
int SubCurveIdxArray,
DWORD  ssi_stride,
int SubSegIdxArray,
DWORD  ssd_stride,
float *  SubSegDistArray,
DWORD  t_stride,
float *  TangentsArray,
DWORD  op_stride,
float *  OPointsArray 
)

◆ MapPoint()

STDMETHODIMP MapPoint ( int  idx,
float *  pin,
float *  pout 
) const

◆ GetInterpCurvePiece3D()

virtual Point3 GetInterpCurvePiece3D ( int  BoneId,
int  CurveId,
int  SegId,
float  distance 
) const
virtual

◆ GetTangentPiece3D()

virtual Point3 GetTangentPiece3D ( int  BoneId,
int  CurveId,
int  SegId,
float  distance 
) const
virtual

◆ PreComputeBoneXFormTMs()

void PreComputeBoneXFormTMs ( )

◆ SplineAnimation()

Point3 SplineAnimation ( int  vertex,
int  bone,
const Point3 p 
) const
protected

Member Data Documentation

◆ BoneData

MaxSDK::Array<CBoneDataClass> BoneData
protected

◆ PointData

MaxSDK::Array<PointDataClass> PointData
protected

◆ m_MeshTM

Matrix3 m_MeshTM
protected

◆ mUseSplineAnimation

bool mUseSplineAnimation
protected