X-Git-Url: https://eleni.mutantstargoat.com/git/?a=blobdiff_plain;f=src%2Fterrain.h;h=337a03b90b7192a2e8b4610b1461f3a7bf6a969a;hb=1e8963fc3f8191e328bbecd04cfbcba31d7d0bdf;hp=bf9df09d5b4591a9c2a93dfd958e9f9bed2c66b7;hpb=243eb502c5dc70e586a9e81815234069bf623480;p=demo diff --git a/src/terrain.h b/src/terrain.h index bf9df09..337a03b 100644 --- a/src/terrain.h +++ b/src/terrain.h @@ -1,8 +1,9 @@ #ifndef TERRAIN_H_ #define TERRAIN_H_ +#include "image.h" + class Camera; -class Image; class Scene; // terrain 8a ftiaxnei skini k taisma renderer @@ -25,7 +26,7 @@ struct TerrainParams { int tile_vsub; int num_octaves; /* Perlin noise sums */ float noise_freq; /* Perlin noise scaling factor */ - Image *coarse_heightmap; /* mask for low detail heightmap */ + Image coarse_heightmap; /* mask for low detail heightmap */ }; class Terrain { @@ -34,7 +35,7 @@ private: mutable Scene *vis_scene; /* set of visible tiles returned by get_visible */ std::vector tiles; - + public: Material material; @@ -46,6 +47,9 @@ public: bool generate(const TerrainParams ¶ms); Scene *get_visible(const Camera *camera) const; + + float get_height(float u, float v) const; + float get_height(const Vec3 &pos) const; /* world coordinates */ }; #endif // TERRAIN_H_ \ No newline at end of file