/// <summary> /// Initializes a new instance of <c>ModelSkeleton</c>. /// </summary> public ModelSkeleton(Microsoft.Xna.Framework.Graphics.Model model) { if (model == null) { throw new ArgumentNullException("model"); } var skeleton = model.GetSkeletonData(); if (skeleton != null) { SkeletonRoot = skeleton.SkeletonRoot; InverseAbsoluteBindPose = new ReadOnlyCollection <Matrix>(skeleton.InverseAbsoluteBindPose); } boneTransforms = new Matrix[model.Bones.Count]; model.CopyBoneTransformsTo(boneTransforms); BoneNames = new ReadOnlyCollection <string>(new BoneNameCollection() { Model = model }); parentBones = new ReadOnlyCollection <int>(new ParentBoneCollection() { Model = model }); }