fix(editor): NaN guards on flattenAroundSelected and createHill

Same NaN-comparison short-circuit pattern: dist >= radius is false
when dist is NaN, so the loop body would run for every vertex and
write garbage heights / bend the terrain unbounded.
This commit is contained in:
Kelsi 2026-05-06 07:39:35 -07:00
parent 12bcd0ef8c
commit f484b742db
2 changed files with 6 additions and 0 deletions

View file

@ -905,6 +905,9 @@ void TerrainEditor::createMesa(const glm::vec3& center, float radius, float heig
void TerrainEditor::createHill(const glm::vec3& center, float radius, float height) {
if (!terrain_) return;
if (!std::isfinite(center.x) || !std::isfinite(center.y) ||
!std::isfinite(radius) || radius <= 0.0f ||
!std::isfinite(height)) return;
recordGeneratorUndo();
for (int ci = 0; ci < 256; ci++) {
auto& chunk = terrain_->chunks[ci];