From 90b3b10170d7a7f278338b74d84ae6efceaacf77 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Wed, 10 Apr 2024 08:49:35 +0100 Subject: Introduce a basic terrain surface type asset --- game/geoData.h | 3 ++- game/surface.cpp | 7 +++++++ game/surface.h | 11 +++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 game/surface.cpp create mode 100644 game/surface.h 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 #include #include @@ -22,7 +23,7 @@ class GeoData : public OpenMesh::TriMesh_ArrayKernelT { private: GeoData(); - OpenMesh::FPropHandleT surface; + OpenMesh::FPropHandleT 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>; + bool persist(Persistence::PersistenceStore & store) override; + + glm::vec3 colorBias; + float quality; +}; -- cgit v1.2.3