示例#1
0
        private void WriteBones(ContentWriter output, ModelBoneContentCollection bones)
        {
            var bonesCount = bones.Count;

            output.Write((UInt32)bonesCount);

            foreach (var bone in bones)
            {
                output.WriteObject(bone.Name);
                output.Write(bone.Transform);
            }

            foreach (var bone in bones)
            {
                WriteBoneReference(output, bonesCount, bone.Parent);

                output.Write((uint)bone.Children.Count);
                foreach (var child in bone.Children)
                {
                    WriteBoneReference(output, bonesCount, child);
                }
            }

            return;
        }
        private void WriteBoneReference(ContentWriter output, ModelBoneContent bone, ModelBoneContentCollection bones)
        {
            var boneCount = bones != null ? bones.Count : 0;
            var boneId    = bone != null
                             ? bone.Index + 1
                             : 0;

            if (boneCount < 255)
            {
                output.Write((byte)boneId);
            }
            else
            {
                output.Write((uint)boneId);
            }
        }
        private void WriteBones(ContentWriter output, ModelBoneContentCollection bones)
        {
            output.Write((uint)bones.Count);

            // Bone properties
            foreach (var bone in bones)
            {
                output.WriteObject(bone.Name);
                output.Write(bone.Transform);
            }

            // Hierarchy
            foreach (var bone in bones)
            {
                WriteBoneReference(output, bone.Parent, bones);

                output.Write((uint)bone.Children.Count);
                foreach (var child in bone.Children)
                {
                    WriteBoneReference(output, child, bones);
                }
            }
        }
示例#4
0
 internal ModelContent(ModelBoneContent root, IList<ModelBoneContent> bones, IList<ModelMeshContent> meshes)
 {
     _root = root;
     _bones = new ModelBoneContentCollection(bones);
     _meshes = new ModelMeshContentCollection(meshes);
 }