summaryrefslogtreecommitdiff
path: root/game/terrain.h
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-02-09 20:14:51 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2025-02-09 20:14:54 +0000
commit42e16ad8ad853c6e97d7eb6718ee0f78b868be30 (patch)
tree3a91a5922b3557132da271339a665576a7ad714a /game/terrain.h
parentSplit GeoData mesh basics into a subclass (diff)
downloadilt-42e16ad8ad853c6e97d7eb6718ee0f78b868be30.tar.bz2
ilt-42e16ad8ad853c6e97d7eb6718ee0f78b868be30.tar.xz
ilt-42e16ad8ad853c6e97d7eb6718ee0f78b868be30.zip
Combine GeoData and Terrain class hierarchies
Diffstat (limited to 'game/terrain.h')
-rw-r--r--game/terrain.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/game/terrain.h b/game/terrain.h
index c9d09fe..7464bdd 100644
--- a/game/terrain.h
+++ b/game/terrain.h
@@ -4,17 +4,19 @@
#include "collection.h"
#include "config/types.h"
#include "game/worldobject.h"
+#include "geoData.h"
#include "gfx/models/mesh.h"
#include "gfx/models/texture.h"
#include "gfx/renderable.h"
-#include <memory>
class SceneShader;
-class GeoData;
-class Terrain : public WorldObject, public Renderable {
+class Terrain : public GeoData, public WorldObject, public Renderable {
public:
- explicit Terrain(std::shared_ptr<GeoData>);
+ template<typename... P> explicit Terrain(P &&... params) : GeoData {std::forward<P>(params)...}
+ {
+ generateMeshes();
+ }
void render(const SceneShader & shader) const override;
void shadows(const ShadowMapper &) const override;
@@ -30,8 +32,7 @@ public:
private:
void generateMeshes();
- std::shared_ptr<GeoData> geoData;
Collection<MeshT<Vertex>, false> meshes;
- Texture::Ptr grass;
+ Texture::Ptr grass = std::make_shared<Texture>("grass.png");
size_t geoGeneration {};
};