public void ComputeBonePositions(Bone bone, Matrix world)
{
var translateMatrix = Matrix.CreateTranslation(bone.Translation);
var rotationMatrix = Matrix.CreateFromQuaternion(bone.Rotation);
var myWorld = (rotationMatrix * translateMatrix)*world;
bone.AbsolutePosition = Vector3.Transform(Vector3.Zero, myWorld);
bone.AbsoluteMatrix = myWorld;
foreach (var child in bone.Children)
{
ComputeBonePositions(child, myWorld);
}
}