public static void ExportMesh(string path, CLMSH meshOject) { FileStream fileStream = new FileStream(path, FileMode.OpenOrCreate); BinaryWriter writer = new BinaryWriter(fileStream); writer.Write((byte)0x0C); writer.Write((byte)0xE1); writer.Write(meshOject.Dimensions.x); writer.Write(meshOject.Dimensions.y); writer.Write(meshOject.Dimensions.z); writer.Write(meshOject.Vertices); writer.Write(meshOject.Indices); for (int i = 0; i < meshOject.Vertices; i++) { writer.Write(meshOject.VertexBuffer[i].pos.x); writer.Write(meshOject.VertexBuffer[i].pos.y); writer.Write(meshOject.VertexBuffer[i].pos.z); writer.Write(meshOject.VertexBuffer[i].uv.x); writer.Write(meshOject.VertexBuffer[i].uv.y); writer.Write(meshOject.VertexBuffer[i].norm.x); writer.Write(meshOject.VertexBuffer[i].norm.y); writer.Write(meshOject.VertexBuffer[i].norm.z); } for (uint i = 0; i < meshOject.Indices; i++) { writer.Write(meshOject.IndexBuffer[i]); } writer.Close(); fileStream.Close(); }
private void ConvertButton_Click(object sender, RoutedEventArgs e) { string mshFile = System.IO.Path.ChangeExtension(filePath, "clmsh"); Progress.IsEnabled = true; StatusBlock.Text += "\r\n"; StatusBlock.Text += "\r\nLoading obj-file"; ObjObject obj = ObjFileHandler.LoadObjFromText(File.ReadAllLines(filePath)); StatusBlock.Text += "\r\nObject loaded!"; StatusBlock.Text += "\r\nConverting object to CelestialMesh!"; Progress.Value += 25; CLMSH mesh = CLMSHLoader.ConvertOBJ(obj); StatusBlock.Text += "\r\nObject converted!"; StatusBlock.Text += "\r\nSaving file to:"; StatusBlock.Text += "\r\n" + mshFile; Progress.Value += 50; CLMSHFileHandler.ExportMesh(mshFile, mesh); StatusBlock.Text += "\r\n"; StatusBlock.Text += "\r\n!!File Converted!!"; Progress.Value += 25; ConvertButton.IsEnabled = false; }