3ds Max C++ API Reference
ISkinContextData Class Referenceabstract

#include <iskin.h>

+ Inheritance diagram for ISkinContextData:

Public Member Functions

virtual ~ISkinContextData ()
 
virtual int GetNumPoints () const =0
 
virtual int GetNumAssignedBones (int vertexIdx) const =0
 
virtual int GetAssignedBone (int vertexIdx, int boneIdx)=0
 
virtual float GetBoneWeight (int vertexIdx, int boneIdx) const =0
 
virtual int GetSubCurveIndex (int vertexIdx, int boneIdx) const =0
 
virtual int GetSubSegmentIndex (int vertexIdx, int boneIdx) const =0
 
virtual float GetSubSegmentDistance (int vertexIdx, int boneIdx) const =0
 
virtual Point3 GetTangent (int vertexIdx, int boneIdx) const =0
 
virtual Point3 GetOPoint (int vertexIdx, int boneIdx) const =0
 
virtual void SetDQBlendWeight (int index, float v)=0
 
virtual float GetDQBlendWeight (int index) const =0
 

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

Detailed Description

See also
Class ISkin

Description:
This class represents the interface that allows you to get at the local modifier data for skin. The data is stored in the form of vertex weight arrays. Each vertex has an array of boneID's and weights which affect that particular vertex.

Constructor & Destructor Documentation

◆ ~ISkinContextData()

virtual ~ISkinContextData ( )
inlinevirtual
Remarks
Destructor.
70 {}

Member Function Documentation

◆ GetNumPoints()

virtual int GetNumPoints ( ) const
pure virtual
Remarks
This method returns the number of points that skin affects.

◆ GetNumAssignedBones()

virtual int GetNumAssignedBones ( int  vertexIdx) const
pure virtual
Remarks
This method returns the number of bones that control this vertex.
Parameters:
int vertexIdx

The index into the vertex array.

◆ GetAssignedBone()

virtual int GetAssignedBone ( int  vertexIdx,
int  boneIdx 
)
pure virtual
Remarks
This method returns the index of the bone that affecting the vertex
Parameters:
int vertexIdx

The index into the vertex array.

int boneIdx

The index into the affected bone array for that vertex.

◆ GetBoneWeight()

virtual float GetBoneWeight ( int  vertexIdx,
int  boneIdx 
) const
pure virtual
Remarks
This method returns the weight that is affecting the vertex
Parameters:
int vertexIdx

The index into the vertex array.

int boneIdx

The index into the affected bone array for that vertex.

◆ GetSubCurveIndex()

virtual int GetSubCurveIndex ( int  vertexIdx,
int  boneIdx 
) const
pure virtual
Remarks
This method currently returns 0 since the only the first curve is used in for spline animation.
Parameters:
int vertexIdx

The index into the vertex array.

int boneIdx

The index into the affected bone array for that vertex.

◆ GetSubSegmentIndex()

virtual int GetSubSegmentIndex ( int  vertexIdx,
int  boneIdx 
) const
pure virtual
Remarks
This method returns the segment that of the spline that is affecting the vertex.
Parameters:
int vertexIdx

The index into the vertex array.

int boneIdx

The index into the affected bone array for that vertex.

◆ GetSubSegmentDistance()

virtual float GetSubSegmentDistance ( int  vertexIdx,
int  boneIdx 
) const
pure virtual
Remarks
This method returns how far away the point was initially from the curve.
Parameters:
int vertexIdx

The index into the vertex array.

int boneIdx

The index into the affected bone array for that vertex.

◆ GetTangent()

virtual Point3 GetTangent ( int  vertexIdx,
int  boneIdx 
) const
pure virtual
Remarks
This method returns closest initial tangent to the vertex.
Parameters:
int vertexIdx

The index into the vertex array.

int boneIdx

The index into the affected bone array for that vertex.

◆ GetOPoint()

virtual Point3 GetOPoint ( int  vertexIdx,
int  boneIdx 
) const
pure virtual
Remarks
This method returns closest initial point on the curve to the vertex.
Parameters:
int vertexIdx

The index into the vertex array.

int boneIdx

The index into the affected bone array for that vertex.

◆ SetDQBlendWeight()

virtual void SetDQBlendWeight ( int  index,
float  v 
)
pure virtual
Remarks
Sets the DQ blend weight of an individual vert, this is the amount that the DQ solver will contribute to the deformation
Parameters:
int index is the index of the vertex you want to set the weight to

int v is the weight that DQ will use for this vertex should between 0-1

◆ GetDQBlendWeight()

virtual float GetDQBlendWeight ( int  index) const
pure virtual
Remarks
Gets the DQ blend weight of an individual vert, this is the amount that the DQ solver will contribute to the deformation
Parameters:
int index is the index of the vertex you want to get the weight to