Saxum/terrain.hh

32 lines
916 B
C++
Raw Permalink Normal View History

2014-10-20 17:09:45 +00:00
#ifndef TERRAIN_HH_INCLUDED
#define TERRAIN_HH_INCLUDED
#include <string>
#include "material.hh"
#include <ACGL/OpenGL/Objects/VertexArrayObject.hh>
#include "model.hh"
2014-10-20 17:09:45 +00:00
class Terrain {
public:
Terrain(std::string heightmapFilePath);
Terrain();
2014-10-20 17:09:45 +00:00
~Terrain();
void load();
void render();
Model getModel();
float** getHeightmap();
unsigned int getHeightmapHeight();
unsigned int getHeightmapWidth();
2014-10-20 17:09:45 +00:00
private:
Material material;
std::string heightmapFilePath;
unsigned int heightmapHeight, heightmapWidth;
float** heightmap; //can be accessed like 'float[][]'
bool heightmapChanged;
ACGL::OpenGL::SharedVertexArrayObject triangleMesh;
void makeTriangleMesh();
void set_abData(float* abData, unsigned int dataCount, unsigned int rowNum, unsigned int columnNum);
2014-10-20 17:09:45 +00:00
};
#endif