#ifndef TERRAIN_H_
#define TERRAIN_H_
+#include "image.h"
+
class Camera;
-class Image;
class Scene;
// terrain 8a ftiaxnei skini k taisma renderer
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 {
mutable Scene *vis_scene; /* set of visible tiles returned by get_visible */
std::vector<TerrainTile> tiles;
-
+
public:
Material material;
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