RecomputeLocalOffsets function
void
RecomputeLocalOffsets(
- List<Bone> skeleton
)
Implementation
void RecomputeLocalOffsets(List<Bone> skeleton) {
print("recomputing local transform");
final List<VM.Matrix4> toRoot =
List.generate(skeleton.length, (i) => VM.Matrix4.zero());
for (int i = 0; i < skeleton.length; i++) {
Bone bone = skeleton[i];
if (bone.parentNum < 0) {
toRoot[i] = VM.Matrix4.identity() * bone.localTransform;
} else {
toRoot[i] = toRoot[bone.parentNum] * bone.localTransform;
}
bone.offsetTransform.copyInverse(toRoot[i]);
}
}