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); } } }
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)) { } }