spTransformConstraint* spTransformConstraint_create (spTransformConstraintData* data, const spSkeleton* skeleton) { int i; spTransformConstraint* self = NEW(spTransformConstraint); CONST_CAST(spTransformConstraintData*, self->data) = data; self->rotateMix = data->rotateMix; self->translateMix = data->translateMix; self->scaleMix = data->scaleMix; self->shearMix = data->shearMix; self->bonesCount = data->bonesCount; CONST_CAST(spBone**, self->bones) = MALLOC(spBone*, self->bonesCount); for (i = 0; i < self->bonesCount; ++i) self->bones[i] = spSkeleton_findBone(skeleton, self->data->bones[i]->name); self->target = spSkeleton_findBone(skeleton, self->data->target->name); return self; }
spPathConstraint* spPathConstraint_create (spPathConstraintData* data, const spSkeleton* skeleton) { int i; spPathConstraint *self = NEW(spPathConstraint); CONST_CAST(spPathConstraintData*, self->data) = data; self->bonesCount = data->bonesCount; CONST_CAST(spBone**, self->bones) = MALLOC(spBone*, self->bonesCount); for (i = 0; i < self->bonesCount; ++i) self->bones[i] = spSkeleton_findBone(skeleton, self->data->bones[i]->name); self->target = spSkeleton_findSlot(skeleton, self->data->target->name); self->position = data->position; self->spacing = data->spacing; self->rotateMix = data->rotateMix; self->translateMix = data->translateMix; self->spacesCount = 0; self->spaces = 0; self->positionsCount = 0; self->positions = 0; self->worldCount = 0; self->world = 0; self->curvesCount = 0; self->curves = 0; self->lengthsCount = 0; self->lengths = 0; return self; }
spIkConstraint *spIkConstraint_create(spIkConstraintData *data, const spSkeleton *skeleton) { int i; spIkConstraint *self = NEW(spIkConstraint); CONST_CAST(spIkConstraintData*, self->data) = data; self->bendDirection = data->bendDirection; self->mix = data->mix; self->bonesCount = self->data->bonesCount; self->bones = MALLOC(spBone*, self->bonesCount); for (i = 0; i < self->bonesCount; ++i) self->bones[i] = spSkeleton_findBone(skeleton, self->data->bones[i]->name); self->target = spSkeleton_findBone(skeleton, self->data->target->name); return self; }
spBone* SkeletonRenderer::findBone (const std::string& boneName) const { return spSkeleton_findBone(_skeleton, boneName.c_str()); }
spBone* Skeleton::findBone (const char* boneName) const { return spSkeleton_findBone(skeleton, boneName); }