From 041127185167b50fa858a66bd4e052e52193da81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Sat, 5 Jun 2021 19:09:12 +0200 Subject: [PATCH] Utility/Mesh: Fix Recenter() method for other vertex layouts --- examples/DeferredShading/main.cpp | 1 + src/Nazara/Utility/Mesh.cpp | 9 +++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/DeferredShading/main.cpp b/examples/DeferredShading/main.cpp index b14f6b103..33de55fec 100644 --- a/examples/DeferredShading/main.cpp +++ b/examples/DeferredShading/main.cpp @@ -83,6 +83,7 @@ int main() Nz::MeshParams meshParams; meshParams.storage = Nz::DataStorage::Software; + meshParams.center = true; meshParams.matrix = Nz::Matrix4f::Rotate(Nz::EulerAnglesf(0.f, 90.f, 180.f)) * Nz::Matrix4f::Scale(Nz::Vector3f(0.002f)); meshParams.vertexDeclaration = Nz::VertexDeclaration::Get(Nz::VertexLayout::XYZ_Normal_UV); diff --git a/src/Nazara/Utility/Mesh.cpp b/src/Nazara/Utility/Mesh.cpp index 93e5a08d9..23a1ba615 100644 --- a/src/Nazara/Utility/Mesh.cpp +++ b/src/Nazara/Utility/Mesh.cpp @@ -515,15 +515,12 @@ namespace Nz { StaticMesh& staticMesh = static_cast(*data.subMesh); - BufferMapper mapper(*staticMesh.GetVertexBuffer(), BufferAccess::ReadWrite); - MeshVertex* vertices = static_cast(mapper.GetPointer()); + VertexMapper mapper(*staticMesh.GetVertexBuffer()); + SparsePtr position = mapper.GetComponentPtr(VertexComponent::Position); std::size_t vertexCount = staticMesh.GetVertexCount(); for (std::size_t i = 0; i < vertexCount; ++i) - { - vertices->position -= center; - vertices++; - } + *position++ -= center; // Our AABB doesn't change shape, only position Boxf aabb = staticMesh.GetAABB();