Пример #1
0
        /// <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
            });
        }