diff --git a/src/Magnum/MeshTools/Subdivide.h b/src/Magnum/MeshTools/Subdivide.h index 5cfc614f4..ce09d1b98 100644 --- a/src/Magnum/MeshTools/Subdivide.h +++ b/src/Magnum/MeshTools/Subdivide.h @@ -49,10 +49,13 @@ duplicate vertices in the mesh is up to user. template void subdivide(std::vector& indices, std::vector& vertices, Interpolator interpolator) { CORRADE_ASSERT(!(indices.size()%3), "MeshTools::subdivide(): index count is not divisible by 3!", ); - std::size_t indexCount = indices.size(); + /* For each triangle it'll generate three new vertices and three more + triangles */ indices.reserve(indices.size()*4); + vertices.reserve(vertices.size() + indices.size()); /* Subdivide each face to four new */ + std::size_t indexCount = indices.size(); for(std::size_t i = 0; i != indexCount; i += 3) { /* Interpolate each side */ UnsignedInt newVertices[3];