diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-02-10 20:07:46 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-02-10 20:07:46 +0000 |
commit | c9d9aedb9f29725e1106ce1f7ddbc1707400d105 (patch) | |
tree | 93651384ef65487bd2f0d6d617e0c8256c1b99a0 /game | |
parent | Combine GeoData and Terrain class hierarchies (diff) | |
download | ilt-c9d9aedb9f29725e1106ce1f7ddbc1707400d105.tar.bz2 ilt-c9d9aedb9f29725e1106ce1f7ddbc1707400d105.tar.xz ilt-c9d9aedb9f29725e1106ce1f7ddbc1707400d105.zip |
Replace mesh generation counter with afterChange event
Diffstat (limited to 'game')
-rw-r--r-- | game/geoData.cpp | 9 | ||||
-rw-r--r-- | game/geoData.h | 3 | ||||
-rw-r--r-- | game/terrain.cpp | 8 | ||||
-rw-r--r-- | game/terrain.h | 1 |
4 files changed, 10 insertions, 11 deletions
diff --git a/game/geoData.cpp b/game/geoData.cpp index a1d9762..e035a3c 100644 --- a/game/geoData.cpp +++ b/game/geoData.cpp @@ -64,7 +64,6 @@ GeoData::loadFromAsciiGrid(const std::filesystem::path & input) }); } } - mesh.generation++; mesh.updateAllVertexNormals(); return mesh; @@ -105,7 +104,6 @@ GeoData::createFlat(GlobalPosition2D lower, GlobalPosition2D upper, GlobalDistan } mesh.updateAllVertexNormals(); - mesh.generation++; return mesh; } @@ -526,12 +524,11 @@ GeoData::setHeights(const std::span<const GlobalPosition3D> triangleStrip, const } updateAllVertexNormals(newOrChangedVerts); - generation++; + afterChange(); return out; } -size_t -GeoData::getGeneration() const +void +GeoData::afterChange() { - return generation; } diff --git a/game/geoData.h b/game/geoData.h index d486f22..3d5ea5d 100644 --- a/game/geoData.h +++ b/game/geoData.h @@ -56,7 +56,6 @@ public: }; std::vector<FaceHandle> setHeights(std::span<const GlobalPosition3D> triangleStrip, const SetHeightsOpts &); - [[nodiscard]] size_t getGeneration() const; [[nodiscard]] auto getExtents() const @@ -77,8 +76,8 @@ protected: void updateAllVertexNormals(); template<std::ranges::range R> void updateAllVertexNormals(const R &); void updateVertexNormal(VertexHandle); + virtual void afterChange(); private: GlobalPosition3D lowerExtent {}, upperExtent {}; - size_t generation {}; }; diff --git a/game/terrain.cpp b/game/terrain.cpp index 786b9b0..01af163 100644 --- a/game/terrain.cpp +++ b/game/terrain.cpp @@ -56,10 +56,12 @@ Terrain::generateMeshes() void Terrain::tick(TickDuration) { - if (const auto newGeneration = getGeneration(); newGeneration != geoGeneration) { +} + +void +Terrain::afterChange() +{ generateMeshes(); - geoGeneration = newGeneration; - } } void diff --git a/game/terrain.h b/game/terrain.h index 7464bdd..f0f9621 100644 --- a/game/terrain.h +++ b/game/terrain.h @@ -30,6 +30,7 @@ public: }; private: + void afterChange() override; void generateMeshes(); Collection<MeshT<Vertex>, false> meshes; |