Bone frame
The bone frame is a fixed size array of bones with a compressed matrix (bone space to object space) and 3 userdefined values.
You use it with Instance_AssignBoneFrame on an instance that also refer to a model with bones and bone animation vertex shaders.
The bones in the model have everything that a bone frame has and information about how to place the bones relative to each other.
int BoneFrame_CreateEmpty(void);
Returns the ID to a new bone frame.
Creates a new bone frame with the unit matrix and all user data set to 0.
int BoneFrame_CreateFromDefaultPose(int Model);
Model is a valid model containing the bones that you want to copy to the new bone frame.
Returns the ID to a new bone frame using Model.
Creates a new bone frame from the default pose in Model.
void BoneFrame_Delete(int BoneFrame);
BoneFrame is a valid bone frame.
Removes BoneFrame.
void BoneFrame_GetPosition_OutV3(int BoneFrame, int BoneIndex);
BoneFrame is a valid bone frame. 0 <= BoneIndex <= 63.
Writes the object space start position of the bone in BoneFrame at BoneIndex to (X1,Y1,Z1).
void BoneFrame_SetPosition(int BoneFrame, int BoneIndex, float X, float Y, float Z);
BoneFrame is a valid bone frame. 0 <= BoneIndex <= 63.
The object space start position of the bone in BoneFrame at BoneIndex is set to (X,Y,Z).
void BoneFrame_GetYAxis_OutV3(int BoneFrame, int BoneIndex);
BoneFrame is a valid bone frame. 0 <= BoneIndex <= 63.
Writes the Y axis of the bone in BoneFrame at BoneIndex to (X1,Y1,Z1).
void BoneFrame_SetYAxis(int BoneFrame, int BoneIndex, float X, float Y, float Z);
BoneFrame is a valid bone frame. 0 <= BoneIndex <= 63.
The Y axis of the bone in BoneFrame at BoneIndex is set to (X,Y,Z).
void BoneFrame_GetZAxis_OutV3(int BoneFrame, int BoneIndex);
BoneFrame is a valid bone frame. 0 <= BoneIndex <= 63.
Writes the Z axis of the bone in BoneFrame at BoneIndex to (X1,Y1,Z1).
void BoneFrame_SetZAxis(int BoneFrame, int BoneIndex, float X, float Y, float Z);
BoneFrame is a valid bone frame. 0 <= BoneIndex <= 63.
The Z axis of the bone in BoneFrame at BoneIndex is set to (X,Y,Z).
void BoneFrame_GetUserData_OutV3(int BoneFrame, int BoneIndex);
BoneFrame is a valid bone frame. 0 <= BoneIndex <= 63.
Writes the user data of the bone in BoneFrame at BoneIndex to (X1,Y1,Z1).
void BoneFrame_SetUserData(int BoneFrame, int BoneIndex, float X, float Y, float Z);
BoneFrame is a valid bone frame. 0 <= BoneIndex <= 63.
The user data of the bone in BoneFrame at BoneIndex is set to (X,Y,Z).