diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2024-04-10 08:49:35 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2024-04-10 08:49:35 +0100 |
commit | 90b3b10170d7a7f278338b74d84ae6efceaacf77 (patch) | |
tree | 771e9fa22b6fa8c2b2720f1c47cc8182aeb69f67 | |
parent | Add GeoData face property for surface type (diff) | |
download | ilt-90b3b10170d7a7f278338b74d84ae6efceaacf77.tar.bz2 ilt-90b3b10170d7a7f278338b74d84ae6efceaacf77.tar.xz ilt-90b3b10170d7a7f278338b74d84ae6efceaacf77.zip |
Introduce a basic terrain surface type asset
-rw-r--r-- | game/geoData.h | 3 | ||||
-rw-r--r-- | game/surface.cpp | 7 | ||||
-rw-r--r-- | game/surface.h | 11 |
3 files changed, 20 insertions, 1 deletions
diff --git a/game/geoData.h b/game/geoData.h index e3e9bcb..7a2344d 100644 --- a/game/geoData.h +++ b/game/geoData.h @@ -3,6 +3,7 @@ #include "collections.h" // IWYU pragma: keep IterableCollection #include "config/types.h" #include "ray.h" +#include "surface.h" #include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh> #include <filesystem> #include <glm/vec2.hpp> @@ -22,7 +23,7 @@ class GeoData : public OpenMesh::TriMesh_ArrayKernelT<GeoDataTraits> { private: GeoData(); - OpenMesh::FPropHandleT<int> surface; + OpenMesh::FPropHandleT<const Surface *> surface; public: static GeoData loadFromAsciiGrid(const std::filesystem::path &); diff --git a/game/surface.cpp b/game/surface.cpp new file mode 100644 index 0000000..007a9a4 --- /dev/null +++ b/game/surface.cpp @@ -0,0 +1,7 @@ +#include "surface.h" + +bool +Surface::persist(Persistence::PersistenceStore & store) +{ + return STORE_TYPE && STORE_MEMBER(colorBias) && STORE_MEMBER(quality) && Asset::persist(store); +} diff --git a/game/surface.h b/game/surface.h new file mode 100644 index 0000000..ccc5c6c --- /dev/null +++ b/game/surface.h @@ -0,0 +1,11 @@ +#pragma once + +#include "assetFactory/asset.h" + +struct Surface : public Asset { + friend Persistence::SelectionPtrBase<std::shared_ptr<Surface>>; + bool persist(Persistence::PersistenceStore & store) override; + + glm::vec3 colorBias; + float quality; +}; |