6#ifndef TINY3D_T3DSKELETON_H
7#define TINY3D_T3DSKELETON_H
35 T3DMat4FP* boneMatricesFP;
37 uint8_t currentBufferIdx;
68 if(skel->bufferCount > 1) {
69 void* mat = skel->boneMatricesFP + skel->currentBufferIdx * skel->skeletonRef->boneCount;
70 t3d_segment_set(T3D_SEGMENT_SKELETON, mat);
133 assertf(boneIdx >= 0 && boneIdx < skeleton->skeletonRef->boneCount,
"Bone index is out of bounds, idx: %i, boneCount: %i", boneIdx, skeleton->skeletonRef->boneCount);
135 const T3DBone *bone = &skeleton->bones[boneIdx];
139 bone->matrix.m[3][0],
140 bone->matrix.m[3][1],
155 .matrices = skeleton->bufferCount == 1
156 ? skeleton->boneMatricesFP
Definition t3dskeleton.h:21
Definition t3dmodel.h:121
Definition t3dmodel.h:213
Definition t3dmodel.h:150
Definition t3dskeleton.h:33
static void * t3d_segment_placeholder(uint8_t segmentId)
Definition t3d.h:615
void t3d_skeleton_blend(const T3DSkeleton *skelRes, const T3DSkeleton *skelA, const T3DSkeleton *skelB, float factor)
Definition t3dskeleton.c:49
static T3DVec3 t3d_skeleton_get_bone_pos_model_space(const T3DSkeleton *skeleton, int boneIdx)
Definition t3dskeleton.h:132
void t3d_skeleton_update(T3DSkeleton *skeleton)
Definition t3dskeleton.c:61
int t3d_skeleton_find_bone(T3DSkeleton *skeleton, const char *name)
Definition t3dskeleton.c:100
void t3d_skeleton_reset(T3DSkeleton *skeleton)
Definition t3dskeleton.c:39
static void t3d_model_draw_skinned(const T3DModel *model, const T3DSkeleton *skeleton)
Definition t3dskeleton.h:150
void t3d_skeleton_destroy(T3DSkeleton *skeleton)
Definition t3dskeleton.c:109
T3DSkeleton t3d_skeleton_create_buffered(const T3DModel *model, int bufferCount)
Definition t3dskeleton.c:7
T3DSkeleton t3d_skeleton_clone(const T3DSkeleton *skel, bool useMatrices)
Definition t3dskeleton.c:23
static void t3d_skeleton_use(const T3DSkeleton *skel)
Definition t3dskeleton.h:67
static T3DSkeleton t3d_skeleton_create(const T3DModel *model)
Definition t3dskeleton.h:58