diff --git a/src/Nazara/Graphics/Loaders/OBJ/Loader.cpp b/src/Nazara/Graphics/Loaders/OBJ/Loader.cpp index 8ce0a0d83..086b61c26 100644 --- a/src/Nazara/Graphics/Loaders/OBJ/Loader.cpp +++ b/src/Nazara/Graphics/Loaders/OBJ/Loader.cpp @@ -163,6 +163,9 @@ namespace subMesh->SetMaterialIndex(meshes[i].material); subMesh->SetPrimitiveMode(nzPrimitiveMode_TriangleList); + if (parameters.mesh.center) + subMesh->Center(); + // Ce que nous pouvons générer dépend des données à disposition (par exemple les tangentes nécessitent des coordonnées de texture) if (hasNormals && hasTexCoords) subMesh->GenerateTangents(); @@ -174,18 +177,6 @@ namespace mesh->AddSubMesh(meshes[i].name + '_' + materials[meshes[i].material], subMesh); } - if (parameters.mesh.center) - { - unsigned int subMeshCount = mesh->GetSubMeshCount(); - for (unsigned int i = 0; i < subMeshCount; ++i) - { - NzStaticMesh* subMesh = static_cast(mesh->GetSubMesh(i)); - subMesh->Center(); - } - - mesh->InvalidateAABB(); - } - mesh->SetMaterialCount(parser.GetMaterialCount()); model->SetMesh(mesh); diff --git a/src/Nazara/Utility/Loaders/MD5Mesh/Loader.cpp b/src/Nazara/Utility/Loaders/MD5Mesh/Loader.cpp index e9a96ca31..463068048 100644 --- a/src/Nazara/Utility/Loaders/MD5Mesh/Loader.cpp +++ b/src/Nazara/Utility/Loaders/MD5Mesh/Loader.cpp @@ -278,22 +278,14 @@ namespace subMesh->GenerateNormalsAndTangents(); subMesh->SetMaterialIndex(i); + if (parameters.center) + subMesh->Center(); + mesh->AddSubMesh(subMesh); // Material mesh->SetMaterial(i, baseDir + md5Mesh.shader); } - - if (parameters.center) - { - for (unsigned int i = 0; i < meshCount; ++i) - { - NzStaticMesh* subMesh = static_cast(mesh->GetSubMesh(i)); - subMesh->Center(); - } - - mesh->InvalidateAABB(); - } } return true; diff --git a/src/Nazara/Utility/StaticMesh.cpp b/src/Nazara/Utility/StaticMesh.cpp index 229ce0cd0..8516a0b2b 100644 --- a/src/Nazara/Utility/StaticMesh.cpp +++ b/src/Nazara/Utility/StaticMesh.cpp @@ -23,9 +23,7 @@ NzStaticMesh::~NzStaticMesh() void NzStaticMesh::Center() { - ///DOC: Invalider l'AABB après ça - NzBoxf aabb(m_parent->GetAABB()); - NzVector3f offset(aabb.x + aabb.width/2.f, aabb.y + aabb.height/2.f, aabb.z + aabb.depth/2.f); + NzVector3f offset(m_aabb.x + m_aabb.width/2.f, m_aabb.y + m_aabb.height/2.f, m_aabb.z + m_aabb.depth/2.f); NzVertexMapper mapper(this); NzSparsePtr position = mapper.GetComponentPtr(nzVertexComponent_Position);