From 4c462408c362f623764c105e3943fb2e6ae0a890 Mon Sep 17 00:00:00 2001 From: gered Date: Sun, 27 Feb 2011 18:03:07 -0500 Subject: [PATCH] ms3d mesh/group data is now exported --- MeshConverter/src/ms3d/ms3d.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/MeshConverter/src/ms3d/ms3d.cpp b/MeshConverter/src/ms3d/ms3d.cpp index d863e5c..7b83772 100644 --- a/MeshConverter/src/ms3d/ms3d.cpp +++ b/MeshConverter/src/ms3d/ms3d.cpp @@ -268,7 +268,7 @@ bool Ms3d::ConvertToMesh(const std::string &file) // triangles chunk fputs("TRI", fp); long numTriangles = m_numTriangles; - long sizeOfTriangles = (sizeof(int) * 3 + (sizeof(float) * 3) * 3 + (sizeof(float) * 2) * 3) * numTriangles + sizeof(long); + long sizeOfTriangles = (sizeof(int) * 4 + (sizeof(float) * 3) * 3 + (sizeof(float) * 2) * 3) * numTriangles + sizeof(long); fwrite(&sizeOfTriangles, sizeof(long), 1, fp); fwrite(&numTriangles, sizeof(long), 1, fp); for (long i = 0; i < numTriangles; ++i) @@ -281,6 +281,9 @@ bool Ms3d::ConvertToMesh(const std::string &file) index = triangle->vertices[2]; fwrite(&index, sizeof(int), 1, fp); + index = triangle->meshIndex; + fwrite(&index, sizeof(int), 1, fp); + for (int j = 0; j < 3; ++j) { fwrite(&triangle->normals[j].x, sizeof(float), 1, fp); @@ -294,6 +297,18 @@ bool Ms3d::ConvertToMesh(const std::string &file) } } + // sub-meshes / groups chunk + fputs("GRP", fp); + long numGroups = m_numMeshes; + long sizeOfGroups = (sizeof(int)) * numGroups + sizeof(long); + fwrite(&sizeOfGroups, sizeof(long), 1, fp); + fwrite(&numGroups, sizeof(long), 1, fp); + for (long i = 0; i < numGroups; ++i) + { + int numTriangles = m_meshes[i].numTriangles; + fwrite(&numTriangles, sizeof(int), 1, fp); + } + // joints chunk fputs("JNT", fp); long numJoints = m_numJoints;