diff options
Diffstat (limited to 'src/client/meshgen/collector.cpp')
-rw-r--r-- | src/client/meshgen/collector.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/client/meshgen/collector.cpp b/src/client/meshgen/collector.cpp index 25457c868..c5f4eb976 100644 --- a/src/client/meshgen/collector.cpp +++ b/src/client/meshgen/collector.cpp @@ -45,9 +45,12 @@ void MeshCollector::append(const TileLayer &layer, const video::S3DVertex *verti scale = 1.0f / layer.scale; u32 vertex_count = p.vertices.size(); - for (u32 i = 0; i < numVertices; i++) + for (u32 i = 0; i < numVertices; i++) { p.vertices.emplace_back(vertices[i].Pos, vertices[i].Normal, vertices[i].Color, scale * vertices[i].TCoords); + m_bounding_radius_sq = std::max(m_bounding_radius_sq, + (vertices[i].Pos - m_center_pos).getLengthSQ()); + } for (u32 i = 0; i < numIndices; i++) p.indices.push_back(indices[i] + vertex_count); @@ -81,8 +84,11 @@ void MeshCollector::append(const TileLayer &layer, const video::S3DVertex *verti video::SColor color = c; if (!light_source) applyFacesShading(color, vertices[i].Normal); - p.vertices.emplace_back(vertices[i].Pos + pos, vertices[i].Normal, color, + auto vpos = vertices[i].Pos + pos; + p.vertices.emplace_back(vpos, vertices[i].Normal, color, scale * vertices[i].TCoords); + m_bounding_radius_sq = std::max(m_bounding_radius_sq, + (vpos - m_center_pos).getLengthSQ()); } for (u32 i = 0; i < numIndices; i++) |