private static void WriteFrame(XFrame frame, XofFileSaveObject saveObject)
 {
     using (var child = saveObject.AddData(XofFileDefaultTemplates.FrameId, frame.Name, null, null))
     {
         WriteFrameChildren(frame, child);
     }
 }
        private static void WriteFile(XFile file, XofFileSaveObject saveObject)
        {
            if (file.FileVersion != null)
            {
                WriteHeader(file, saveObject);
            }

            foreach (var mesh in file.Meshes)
            {
                WriteMesh(mesh, saveObject);
            }

            foreach (var material in file.Materials)
            {
                WriteMaterial(material, saveObject);
            }

            foreach (var frame in file.Frames)
            {
                WriteFrame(frame, saveObject);
            }

            foreach (var animationSet in file.AnimationSets)
            {
                WriteAnimationSet(animationSet, saveObject);
            }

            if (file.AnimTicksPerSecond != 0)
            {
                WriteAnimTicksPerSecond(file.AnimTicksPerSecond, saveObject);
            }
        }
        private static void WriteMesh(XMesh mesh, XofFileSaveObject saveObject)
        {
            byte[] data = BuildMeshData(mesh);

            using (var child = saveObject.AddData(XofFileDefaultTemplates.MeshId, mesh.Name, null, data))
            {
                WriteMeshChildren(mesh, child);
            }
        }
        private static void WriteMaterial(XMaterial material, XofFileSaveObject saveObject)
        {
            byte[] data = BuildMaterialData(material);

            using (var child = saveObject.AddData(XofFileDefaultTemplates.MaterialId, material.Name, null, data))
            {
                WriteMaterialChildren(material, child);
            }
        }
 private static void WriteAnimationSet(XAnimationSet animationSet, XofFileSaveObject saveObject)
 {
     using (var child = saveObject.AddData(XofFileDefaultTemplates.AnimationSetId, animationSet.Name, null, null))
     {
         foreach (var animation in animationSet.Animations)
         {
             WriteAnimation(animation, child);
         }
     }
 }
Ejemplo n.º 6
0
        private static void ConvertObject(XofFileEnumObject enumObject, XofFileSaveObject saveObject)
        {
            int count = enumObject.GetChildrenCount();

            for (int i = 0; i < count; i++)
            {
                using (var enumData = enumObject.GetChild(i))
                    using (var saveData = saveObject.AddData(enumData))
                    {
                        ConvertData(enumData, saveData);
                    }
            }
        }
        private static void WriteAnimTicksPerSecond(int animTicksPerSecond, XofFileSaveObject saveObject)
        {
            byte[] data;

            using (var ms = new MemoryStream())
                using (var writer = new BinaryWriter(ms))
                {
                    writer.Write(animTicksPerSecond);

                    data = ms.ToArray();
                }

            using (saveObject.AddData(XofFileDefaultTemplates.AnimTicksPerSecondId, null, null, data))
            {
            }
        }
        private static void WriteHeader(XFile file, XofFileSaveObject saveObject)
        {
            byte[] data;

            using (var ms = new MemoryStream())
                using (var writer = new BinaryWriter(ms))
                {
                    writer.Write((short)file.FileVersion.Major);
                    writer.Write((short)file.FileVersion.Minor);
                    writer.Write(file.FileFlags);

                    data = ms.ToArray();
                }

            using (saveObject.AddData(XofFileDefaultTemplates.HeaderId, null, null, data))
            {
            }
        }