added everything
This commit is contained in:
453
lib/maxsdk70/include/iMorphByBone.h
Executable file
453
lib/maxsdk70/include/iMorphByBone.h
Executable file
@@ -0,0 +1,453 @@
|
||||
#ifndef __IMORPHBYBONE__H
|
||||
#define __IMORPHBYBONE__H
|
||||
|
||||
#include "iFnPub.h"
|
||||
|
||||
//***************************************************************
|
||||
//Function Publishing System stuff
|
||||
//****************************************************************
|
||||
#define MORPHBYBONE_INTERFACE Interface_ID(0xDE17A34f, 0x8B52E4E3)
|
||||
|
||||
|
||||
enum { morphbybone_addbone,
|
||||
morphbybone_removebone,
|
||||
morphbybone_selectbone,
|
||||
morphbybone_getselectedbone,
|
||||
morphbybone_getselectedmorph,
|
||||
morphbybone_selectvertices,
|
||||
morphbybone_isselectedvertex,
|
||||
morphbybone_resetgraph,
|
||||
morphbybone_grow,morphbybone_shrink,
|
||||
morphbybone_ring,morphbybone_loop,
|
||||
|
||||
morphbybone_createmorph,
|
||||
morphbybone_removemorph,
|
||||
morphbybone_editmorph,
|
||||
|
||||
morphbybone_clearvertices,
|
||||
morphbybone_deletevertices,
|
||||
morphbybone_resetorientation,
|
||||
|
||||
morphbybone_reloadtarget,
|
||||
morphbybone_mirrorpaste,
|
||||
morphbybone_editfalloffgraph,
|
||||
|
||||
morphbybone_setexternalnode,
|
||||
|
||||
morphbybone_moveverts,
|
||||
morphbybone_transformverts,
|
||||
|
||||
morphbybone_numberofbones,
|
||||
|
||||
morphbybone_bonegetinitialnodetm,
|
||||
morphbybone_bonesetinitialnodetm,
|
||||
|
||||
morphbybone_bonegetinitialobjecttm,
|
||||
morphbybone_bonesetinitialobjecttm,
|
||||
|
||||
morphbybone_bonegetinitialparenttm,
|
||||
morphbybone_bonesetinitialparenttm,
|
||||
|
||||
morphbybone_bonegetnumberofmorphs,
|
||||
|
||||
morphbybone_bonegetmorphname,
|
||||
morphbybone_bonesetmorphname,
|
||||
|
||||
morphbybone_bonegetmorphangle,
|
||||
morphbybone_bonesetmorphangle,
|
||||
|
||||
morphbybone_bonegetmorphtm,
|
||||
morphbybone_bonesetmorphtm,
|
||||
|
||||
morphbybone_bonegetmorphparenttm,
|
||||
morphbybone_bonesetmorphparenttm,
|
||||
|
||||
morphbybone_bonegetmorphisdead,
|
||||
morphbybone_bonegetmorphsetdead,
|
||||
|
||||
morphbybone_bonegetmorphnumpoints,
|
||||
morphbybone_bonesetmorphnumpoints,
|
||||
|
||||
morphbybone_bonegetmorphvertid,
|
||||
morphbybone_bonesetmorphvertid,
|
||||
|
||||
morphbybone_bonegetmorphvec,
|
||||
morphbybone_bonesetmorphvec,
|
||||
|
||||
morphbybone_bonegetmorphpvec,
|
||||
morphbybone_bonesetmorphpvec,
|
||||
|
||||
morphbybone_bonegetmorphop,
|
||||
morphbybone_bonesetmorphop,
|
||||
|
||||
morphbybone_bonegetmorphowner,
|
||||
morphbybone_bonesetmorphowner,
|
||||
|
||||
morphbybone_bonegetmorphfalloff,
|
||||
morphbybone_bonesetmorphfalloff,
|
||||
|
||||
morphbybone_bonegetjointtype,
|
||||
morphbybone_bonesetjointtype,
|
||||
|
||||
morphbybone_update,
|
||||
|
||||
morphbybone_getweight,
|
||||
|
||||
morphbybone_bonegetmorphenabled,
|
||||
morphbybone_bonesetmorphenabled,
|
||||
|
||||
};
|
||||
//****************************************************************
|
||||
|
||||
|
||||
class IMorphByBone : public FPMixinInterface
|
||||
{
|
||||
public:
|
||||
|
||||
//Function Publishing System
|
||||
//Function Map For Mixin Interface
|
||||
//*************************************************
|
||||
BEGIN_FUNCTION_MAP
|
||||
|
||||
VFN_1(morphbybone_addbone, fnAddBone, TYPE_INODE);
|
||||
VFN_1(morphbybone_removebone, fnRemoveBone, TYPE_INODE);
|
||||
VFN_2(morphbybone_selectbone, fnSelectBone, TYPE_INODE,TYPE_STRING);
|
||||
FN_0(morphbybone_getselectedbone, TYPE_INODE, fnGetSelectedBone);
|
||||
FN_0(morphbybone_getselectedmorph, TYPE_STRING, fnGetSelectedMorph);
|
||||
VFN_2(morphbybone_selectvertices, fnSelectVertices, TYPE_INODE,TYPE_BITARRAY);
|
||||
FN_2(morphbybone_isselectedvertex,TYPE_BOOL, fnIsSelectedVertex, TYPE_INODE,TYPE_INT);
|
||||
|
||||
VFN_0(morphbybone_resetgraph, fnResetGraph);
|
||||
VFN_0(morphbybone_grow, fnGrow);
|
||||
VFN_0(morphbybone_shrink, fnShrink);
|
||||
VFN_0(morphbybone_ring, fnRing);
|
||||
VFN_0(morphbybone_loop, fnLoop);
|
||||
|
||||
VFN_1(morphbybone_createmorph, fnCreateMorph, TYPE_INODE);
|
||||
VFN_2(morphbybone_removemorph, fnRemoveMorph, TYPE_INODE,TYPE_STRING);
|
||||
|
||||
VFN_1(morphbybone_editmorph, fnEdit,TYPE_BOOL);
|
||||
|
||||
VFN_0(morphbybone_clearvertices, fnClearSelectedVertices);
|
||||
VFN_0(morphbybone_deletevertices, fnDeleteSelectedVertices);
|
||||
|
||||
VFN_2(morphbybone_resetorientation, fnResetOrientation, TYPE_INODE,TYPE_STRING);
|
||||
VFN_2(morphbybone_reloadtarget, fnReloadTarget, TYPE_INODE,TYPE_STRING);
|
||||
VFN_1(morphbybone_mirrorpaste, fnMirrorPaste, TYPE_INODE);
|
||||
|
||||
VFN_2(morphbybone_editfalloffgraph, fnEditFalloffGraph, TYPE_INODE,TYPE_STRING);
|
||||
|
||||
VFN_3(morphbybone_setexternalnode, fnSetExternalNode, TYPE_INODE,TYPE_STRING,TYPE_INODE);
|
||||
|
||||
VFN_1(morphbybone_moveverts, fnMoveVerts, TYPE_POINT3);
|
||||
|
||||
VFN_2(morphbybone_transformverts, fnTransFormVerts, TYPE_MATRIX3, TYPE_MATRIX3);
|
||||
|
||||
FN_0(morphbybone_numberofbones, TYPE_INT, fnNumberOfBones);
|
||||
|
||||
FN_1(morphbybone_bonegetinitialnodetm, TYPE_MATRIX3, fnBoneGetInitialNodeTM, TYPE_INODE);
|
||||
VFN_2(morphbybone_bonesetinitialnodetm, fnBoneSetInitialNodeTM, TYPE_INODE, TYPE_MATRIX3);
|
||||
|
||||
FN_1(morphbybone_bonegetinitialobjecttm, TYPE_MATRIX3, fnBoneGetInitialObjectTM, TYPE_INODE);
|
||||
VFN_2(morphbybone_bonesetinitialobjecttm, fnBoneSetInitialObjectTM, TYPE_INODE, TYPE_MATRIX3);
|
||||
|
||||
FN_1(morphbybone_bonegetinitialparenttm, TYPE_MATRIX3, fnBoneGetInitialParentTM, TYPE_INODE);
|
||||
VFN_2(morphbybone_bonesetinitialparenttm, fnBoneSetInitialParentTM, TYPE_INODE, TYPE_MATRIX3);
|
||||
|
||||
FN_1(morphbybone_bonegetnumberofmorphs, TYPE_INT, fnBoneGetNumberOfMorphs,TYPE_INODE);
|
||||
|
||||
FN_2(morphbybone_bonegetmorphname, TYPE_STRING, fnBoneGetMorphName,TYPE_INODE,TYPE_INT);
|
||||
VFN_3(morphbybone_bonesetmorphname, fnBoneSetMorphName,TYPE_INODE,TYPE_INT,TYPE_STRING);
|
||||
|
||||
FN_2(morphbybone_bonegetmorphangle, TYPE_FLOAT, fnBoneGetMorphAngle,TYPE_INODE,TYPE_INT);
|
||||
VFN_3(morphbybone_bonesetmorphangle, fnBoneSetMorphAngle,TYPE_INODE,TYPE_INT,TYPE_FLOAT);
|
||||
|
||||
FN_2(morphbybone_bonegetmorphtm, TYPE_MATRIX3, fnBoneGetMorphTM,TYPE_INODE,TYPE_INT);
|
||||
VFN_3(morphbybone_bonesetmorphtm, fnBoneSetMorphTM,TYPE_INODE,TYPE_INT,TYPE_MATRIX3);
|
||||
|
||||
FN_2(morphbybone_bonegetmorphparenttm, TYPE_MATRIX3, fnBoneGetMorphParentTM,TYPE_INODE,TYPE_INT);
|
||||
VFN_3(morphbybone_bonesetmorphparenttm, fnBoneSetMorphParentTM,TYPE_INODE,TYPE_INT,TYPE_MATRIX3);
|
||||
|
||||
FN_2(morphbybone_bonegetmorphisdead, TYPE_BOOL, fnBoneGetMorphIsDead,TYPE_INODE,TYPE_INT);
|
||||
VFN_3(morphbybone_bonegetmorphsetdead, fnBoneSetMorphSetDead,TYPE_INODE,TYPE_INT,TYPE_BOOL);
|
||||
|
||||
FN_2 (morphbybone_bonegetmorphnumpoints, TYPE_INT, fnBoneGetMorphNumPoints,TYPE_INODE,TYPE_INT);
|
||||
VFN_3(morphbybone_bonesetmorphnumpoints, fnBoneSetMorphNumPoints,TYPE_INODE,TYPE_INT,TYPE_INT);
|
||||
|
||||
|
||||
FN_3 (morphbybone_bonegetmorphvertid, TYPE_INT, fnBoneGetMorphVertID,TYPE_INODE,TYPE_INT,TYPE_INT);
|
||||
VFN_4(morphbybone_bonesetmorphvertid, fnBoneSetMorphVertID,TYPE_INODE,TYPE_INT,TYPE_INT,TYPE_INT);
|
||||
|
||||
|
||||
FN_3 (morphbybone_bonegetmorphvec, TYPE_POINT3, fnBoneGetMorphVec,TYPE_INODE,TYPE_INT,TYPE_INT);
|
||||
VFN_4(morphbybone_bonesetmorphvec, fnBoneSetMorphVec,TYPE_INODE,TYPE_INT,TYPE_INT,TYPE_POINT3);
|
||||
|
||||
FN_3 (morphbybone_bonegetmorphpvec, TYPE_POINT3, fnBoneGetMorphPVec,TYPE_INODE,TYPE_INT,TYPE_INT);
|
||||
VFN_4(morphbybone_bonesetmorphpvec, fnBoneSetMorphPVec,TYPE_INODE,TYPE_INT,TYPE_INT,TYPE_POINT3);
|
||||
|
||||
|
||||
FN_3 (morphbybone_bonegetmorphop, TYPE_POINT3, fnBoneGetMorphOP,TYPE_INODE,TYPE_INT,TYPE_INT);
|
||||
VFN_4(morphbybone_bonesetmorphop, fnBoneSetMorphOP,TYPE_INODE,TYPE_INT,TYPE_INT,TYPE_POINT3);
|
||||
|
||||
|
||||
FN_3 (morphbybone_bonegetmorphowner, TYPE_INODE, fnBoneGetMorphOwner,TYPE_INODE,TYPE_INT,TYPE_INT);
|
||||
VFN_4(morphbybone_bonesetmorphowner, fnBoneSetMorphOwner,TYPE_INODE,TYPE_INT,TYPE_INT,TYPE_INODE);
|
||||
|
||||
FN_2 (morphbybone_bonegetmorphfalloff, TYPE_INT, fnBoneGetMorphFalloff,TYPE_INODE,TYPE_INT);
|
||||
VFN_3(morphbybone_bonesetmorphfalloff, fnBoneSetMorphFalloff,TYPE_INODE,TYPE_INT,TYPE_INT);
|
||||
|
||||
FN_1 (morphbybone_bonegetjointtype, TYPE_INT, fnBoneGetJointType,TYPE_INODE);
|
||||
VFN_2(morphbybone_bonesetjointtype, fnBoneSetJointType,TYPE_INODE,TYPE_INT);
|
||||
|
||||
VFN_0(morphbybone_update, fnUpdate);
|
||||
|
||||
FN_2(morphbybone_getweight, TYPE_FLOAT, fnGetWeight,TYPE_INODE,TYPE_STRING);
|
||||
|
||||
|
||||
FN_2 (morphbybone_bonegetmorphenabled, TYPE_BOOL, fnBoneGetMorphEnabled,TYPE_INODE,TYPE_INT);
|
||||
VFN_3(morphbybone_bonesetmorphenabled, fnBoneSetMorphEnabled,TYPE_INODE,TYPE_INT,TYPE_BOOL);
|
||||
|
||||
|
||||
END_FUNCTION_MAP
|
||||
|
||||
|
||||
FPInterfaceDesc* GetDesc(); // <-- must implement
|
||||
//note functions that start with fn are to be used with maxscript since these expect 1 based indices
|
||||
|
||||
/// void fnAddBone(INode *node)=0;
|
||||
/// This adds a bone to the system
|
||||
/// INode *node the bone to add
|
||||
virtual void fnAddBone(INode *node)=0;
|
||||
|
||||
/// void fnRemoveBone(INode *node)
|
||||
/// This removes a bone from the system
|
||||
/// INode *node the bone to remove
|
||||
virtual void fnRemoveBone(INode *node)=0;
|
||||
|
||||
/// void fnSelectBone(INode *node,TCHAR* morphName)
|
||||
/// This selects a bone and/or morph in the selection list. If the morphName is null
|
||||
/// only the bone will be selected.
|
||||
/// INode *node this is the node to be selected
|
||||
/// TCHAR* morphName this is the morph to be selected
|
||||
virtual void fnSelectBone(INode *node,TCHAR* morphName)=0;
|
||||
|
||||
/// INode* fnGetSelectedBone()
|
||||
/// This returns the current active bone
|
||||
virtual INode* fnGetSelectedBone()=0;
|
||||
|
||||
/// TCHAR* fnGetSelectedMorph()
|
||||
/// This returns the name of the current selected morph
|
||||
virtual TCHAR* fnGetSelectedMorph()=0;
|
||||
|
||||
/// void fnSelectVertices(INode *node,BitArray *sel)
|
||||
/// This lets you select vertices.
|
||||
/// INode *node this is the node that owns the modifier, this is used to find a specific
|
||||
/// instance of the modifier and apply it to the right local data
|
||||
/// BitArray *sel the selection array
|
||||
virtual void fnSelectVertices(INode *node,BitArray *sel)=0;
|
||||
/// BOOL fnIsSelectedVertex(INode *node,int index)
|
||||
/// INode *node this is the node that owns the modifier, this is used to find a specific
|
||||
/// instance of the modifier and apply it to the right local data
|
||||
/// int index this the index of the vertex that you want to check
|
||||
virtual BOOL fnIsSelectedVertex(INode *node,int index)=0;
|
||||
|
||||
/// void fnResetGraph()
|
||||
/// this is equivalent to pressing the reset graph button in the UI which
|
||||
/// resets the the soft selection graph to a sinual graph
|
||||
virtual void fnResetGraph()=0;
|
||||
/// void fnShrink()
|
||||
/// This contracts your vertex selection
|
||||
virtual void fnShrink()=0;
|
||||
/// void fnGrow()
|
||||
/// This expands your vertex selection
|
||||
virtual void fnGrow()=0;
|
||||
/// void fnRing()
|
||||
/// This turns your current selection into a ring selection
|
||||
virtual void fnRing()=0;
|
||||
/// void fnLoop()
|
||||
/// This turns your current selection into a loop selection
|
||||
virtual void fnLoop()=0;
|
||||
|
||||
/// void fnCreateMorph(INode *node)
|
||||
/// This creates a new morph for a bone
|
||||
/// INode *node this is the bone that you want to create the morph on
|
||||
virtual void fnCreateMorph(INode *node)=0;
|
||||
|
||||
/// void fnRemoveMorph(INode *node, TCHAR *name)
|
||||
/// This removes a morph target
|
||||
/// INode *node this is the bone that owns the morph that you want to remove
|
||||
/// TCHAR *name this is the name of the morph that you want to remove
|
||||
virtual void fnRemoveMorph(INode *node, TCHAR *name)=0;
|
||||
|
||||
/// fnEdit(BOOL edit)
|
||||
/// This toggles on/off the edit morph mode. The current active morph is the one
|
||||
/// that will be edited
|
||||
/// BOOL edit the edit mode state
|
||||
virtual void fnEdit(BOOL edit)=0;
|
||||
|
||||
/// void fnClearSelectedVertices()
|
||||
/// This ie equivalent to press the clear verts button in the UI which takes the
|
||||
/// selected vertices and sets their delta to zero
|
||||
virtual void fnClearSelectedVertices()=0;
|
||||
/// void fnDeleteSelectedVertices()
|
||||
/// This ie equivalent to press the delet verts button in the UI which takes the
|
||||
/// selected vertices and removes them from the current morph
|
||||
virtual void fnDeleteSelectedVertices()=0;
|
||||
|
||||
/// void fnResetOrientation(INode *node, TCHAR *name)
|
||||
/// This resets the orientation of morph to the current orientation of the bone that owns it
|
||||
/// INode *node this is the bone that owns the morph to be reset
|
||||
/// TCHAR *name this is the name of the morph to be reset
|
||||
virtual void fnResetOrientation(INode *node, TCHAR *name)=0;
|
||||
/// void fnReloadTarget(INode *node, TCHAR *name)
|
||||
/// This reloads the external mesh for a morph if there is one
|
||||
/// INode *node this is the bone that owns the morph to be reloaded
|
||||
/// TCHAR *name this is the name of the morph to be reloaded
|
||||
virtual void fnReloadTarget(INode *node, TCHAR *name)=0;
|
||||
|
||||
/// fnMirrorPaste(INode *node)
|
||||
/// This mirror pastes the node to its mirror target based on the mirror parameters
|
||||
/// INode *node this is the node that is to be mirrored
|
||||
virtual void fnMirrorPaste(INode *node)=0;
|
||||
|
||||
/// void fnEditFalloffGraph(INode *node, TCHAR *name)
|
||||
/// This brings up the falloff graph of a morph if there is one
|
||||
/// INode *node this is the bone that owns the morph
|
||||
/// TCHAR *name this is the name of the morph to to have its graph brought up
|
||||
virtual void fnEditFalloffGraph(INode *node, TCHAR *name)=0;
|
||||
/// void fnSetExternalNode(INode *node, TCHAR *name,INode *exnode)
|
||||
/// This lets you set the external mesh node for a morph
|
||||
/// INode *node this is the bone that owns the morph
|
||||
/// TCHAR *name this is the name of the morph to to have its external node set
|
||||
virtual void fnSetExternalNode(INode *node, TCHAR *name,INode *exnode)=0;
|
||||
|
||||
/// void fnMoveVerts(Point3 vec)
|
||||
/// This moves the selected vertices along a vec which is applied to an active morph if there is one
|
||||
/// Point3 vec this is the vec which the vertices are moved.
|
||||
virtual void fnMoveVerts(Point3 vec)=0;
|
||||
/// void fnTransFormVerts(Matrix3 a, Matrix3 b)
|
||||
/// This transforms the selected vertices which is applied to an active morph if there is one
|
||||
/// Matrix a this is matrix transformation
|
||||
/// Matrix b this is the space?
|
||||
virtual void fnTransFormVerts(Matrix3 a, Matrix3 b)=0;
|
||||
|
||||
/// int fnNumberOfBones()
|
||||
/// This is the number of bones in the system
|
||||
virtual int fnNumberOfBones() = 0;
|
||||
|
||||
/// Matrix3* fnBoneGetInitialNodeTM(INode *node)
|
||||
/// This returns the initial node tm of bone. This is the tm of the bone
|
||||
/// when it is added to the system
|
||||
/// the initial node tm is used to determine the actual deformation
|
||||
/// INode *node this is the bone that you want get the tm from
|
||||
virtual Matrix3* fnBoneGetInitialNodeTM(INode *node) = 0;
|
||||
/// void fnBoneSetInitialNodeTM(INode *node, Matrix3 tm)
|
||||
/// This lets you set the initial node tm of a bone
|
||||
/// INode *node this is the bone that you want set the tm on
|
||||
/// Matrix3 tm this is the initial tm
|
||||
virtual void fnBoneSetInitialNodeTM(INode *node, Matrix3 tm) = 0;
|
||||
|
||||
|
||||
/// Matrix3* fnBoneGetInitialObjectTM(INode *node)
|
||||
/// This returns the initial object tm of bone. This is the tm of the bone
|
||||
/// when it is added to the system
|
||||
/// the initial object tm is used only for display
|
||||
/// INode *node this is the bone that you want get the tm from
|
||||
virtual Matrix3* fnBoneGetInitialObjectTM(INode *node) = 0;
|
||||
/// void fnBoneSetInitialObjectTM(INode *node, Matrix3 tm)
|
||||
/// This lets you set the initial object tm of a bone
|
||||
/// INode *node this is the bone that you want set the tm on
|
||||
/// Matrix3 tm this is the initial tm
|
||||
virtual void fnBoneSetInitialObjectTM(INode *node, Matrix3 tm) = 0;
|
||||
|
||||
|
||||
/// Matrix3* fnBoneGetInitialParentTM(INode *node)
|
||||
/// This returns the initial node tm parent that owns bone.
|
||||
/// INode *node this is the bone that you want get the parent tm from
|
||||
virtual Matrix3* fnBoneGetInitialParentTM(INode *node) = 0;
|
||||
/// void fnBoneSetInitialParentTM(INode *node, Matrix3 tm)
|
||||
/// This lets you set the parent tm of a bone.
|
||||
/// INode *node this is the bone that you want set the tm on
|
||||
/// Matrix3 tm this is the parent tm
|
||||
virtual void fnBoneSetInitialParentTM(INode *node, Matrix3 tm) = 0;
|
||||
|
||||
/// int fnBoneGetNumberOfMorphs(INode *node)
|
||||
/// This returns the number of morphs that a bone owns
|
||||
/// INode *node this the bone to get the number of morphs from
|
||||
virtual int fnBoneGetNumberOfMorphs(INode *node) = 0;
|
||||
|
||||
/// the follow le get/set properties of individual morphs they all follow the same format
|
||||
/// INode *node is the bone that owns the morph
|
||||
/// int morphIndex is the index of the morph
|
||||
virtual TCHAR* fnBoneGetMorphName(INode *node, int morphIndex) = 0;
|
||||
virtual void fnBoneSetMorphName(INode *node, int morphIndex,TCHAR* name) = 0;
|
||||
|
||||
virtual float fnBoneGetMorphAngle(INode *node, int morphIndex) = 0;
|
||||
virtual void fnBoneSetMorphAngle(INode *node, int morphIndex,float angle) = 0;
|
||||
|
||||
|
||||
virtual Matrix3* fnBoneGetMorphTM(INode *node, int morphIndex) = 0;
|
||||
virtual void fnBoneSetMorphTM(INode *node, int morphIndex,Matrix3 tm) = 0;
|
||||
|
||||
virtual Matrix3* fnBoneGetMorphParentTM(INode *node, int morphIndex) = 0;
|
||||
virtual void fnBoneSetMorphParentTM(INode *node, int morphIndex,Matrix3 tm) = 0;
|
||||
|
||||
virtual BOOL fnBoneGetMorphIsDead(INode *node, int morphIndex) = 0;
|
||||
virtual void fnBoneSetMorphSetDead(INode *node, int morphIndex,BOOL dead) = 0;
|
||||
|
||||
virtual int fnBoneGetMorphNumPoints(INode *node, int morphIndex) = 0;
|
||||
virtual void fnBoneSetMorphNumPoints(INode *node, int morphIndex, int numberPoints) = 0;
|
||||
|
||||
///These let you get access to the morph vertex properties
|
||||
///every morph contains a list of vertices and properties
|
||||
/// INode *node is the bone that owns the morph
|
||||
/// int morphIndex is the index of the morph
|
||||
/// int ithIndex is which vertex you want to get info about
|
||||
/// the index back into the mesh vertex list
|
||||
virtual int fnBoneGetMorphVertID(INode *node, int morphIndex, int ithIndex) = 0;
|
||||
virtual void fnBoneSetMorphVertID(INode *node, int morphIndex, int ithIndex, int vertIndex) = 0;
|
||||
|
||||
/// the vector in local bone space
|
||||
virtual Point3* fnBoneGetMorphVec(INode *node, int morphIndex, int ithIndex) = 0;
|
||||
virtual void fnBoneSetMorphVec(INode *node, int morphIndex, int ithIndex, Point3 vec) = 0;
|
||||
|
||||
/// the vector in parent space
|
||||
virtual Point3* fnBoneGetMorphPVec(INode *node, int morphIndex, int ithIndex) = 0;
|
||||
virtual void fnBoneSetMorphPVec(INode *node, int morphIndex, int ithIndex, Point3 vec) = 0;
|
||||
|
||||
/// the original point before any deformation
|
||||
virtual Point3* fnBoneGetMorphOP(INode *node, int morphIndex, int ithIndex) = 0;
|
||||
virtual void fnBoneSetMorphOP(INode *node, int morphIndex, int ithIndex, Point3 vec) = 0;
|
||||
|
||||
/// this returns which node owns the vertex if ther modifier is instanced
|
||||
virtual INode* fnBoneGetMorphOwner(INode *node, int morphIndex, int ithIndex) = 0;
|
||||
virtual void fnBoneSetMorphOwner(INode *node, int morphIndex, int ithIndex, INode *onode) = 0;
|
||||
|
||||
virtual int fnBoneGetMorphFalloff(INode *node, int morphIndex) = 0;
|
||||
virtual void fnBoneSetMorphFalloff(INode *node, int morphIndex, int falloff) = 0;
|
||||
|
||||
|
||||
virtual int fnBoneGetJointType(INode *node) = 0;
|
||||
virtual void fnBoneSetJointType(INode *node, int jointType) = 0;
|
||||
|
||||
/// void fnUpdate()
|
||||
/// This forces a system to update
|
||||
virtual void fnUpdate() = 0;
|
||||
|
||||
/// float fnGetWeight(INode *node, TCHAR*name)
|
||||
/// This return the weight of particular morph is contributing
|
||||
/// INode *node is the bone that owns the morph
|
||||
/// TCHAR*name this is the name of the morph
|
||||
virtual float fnGetWeight(INode *node, TCHAR*name) = 0;
|
||||
|
||||
virtual BOOL fnBoneGetMorphEnabled(INode *node, int morphIndex) = 0;
|
||||
virtual void fnBoneSetMorphEnabled(INode *node, int morphIndex, BOOL enabled) = 0;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // __ILAG__H
|
||||
Reference in New Issue
Block a user