diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2011-05-08 15:52:41 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2011-05-08 15:52:41 +0200 |
commit | 595ac4744b75688f7ca61993c42ea9eedab3a6b7 (patch) | |
tree | 89f7e10b47fb4e709d2896d5e366305ec3a3ced8 /scene.cpp | |
parent | 7d5c1adf8e581599848b3fec54e0af88eb469046 (diff) |
Merged Quadtree and friends into Terrain.
Diffstat (limited to 'scene.cpp')
-rw-r--r-- | scene.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
@@ -16,7 +16,7 @@ Scene::Scene() { running = true; grid = false; normals = false; - terrain = true; + render_terrain = true; gravity = true; last_node = NULL; @@ -48,8 +48,8 @@ Scene::Scene() { soil_texture = load_texture("textures/zooboing-469-sand-modified.jpg"); marker_texture = load_texture("textures/cross.png"); - /* init quadtree */ - qt = new Quadtree(); + /* init terrain */ + terrain = new Terrain(); /* load font */ font = new FTTextureFont("fonts/VeraMono.ttf"); @@ -61,8 +61,8 @@ Scene::Scene() { Scene::~Scene() { if(tool) delete tool; - if(qt) - delete qt; + if(terrain) + delete terrain; delete font; } @@ -129,7 +129,7 @@ bool Scene::select(int x, int y, float& px, float& py, float& pz) { } void Scene::update() { - qt->update(pos.x, pos.z); + terrain->update(pos.x, pos.z); } void Scene::events() { @@ -158,7 +158,7 @@ void Scene::events() { normals = !normals; break; case SDLK_t: - terrain = !terrain; + render_terrain = !render_terrain; break; case SDLK_SPACE: yvel = .05; @@ -174,7 +174,7 @@ void Scene::events() { break; case SDLK_1: if(tool) delete tool; - tool = new RaiseTool(qt); + tool = new RaiseTool(terrain); break; default: break; @@ -284,7 +284,7 @@ void Scene::render() { } std::string move_str; - Quadtree::QuadNode *node = qt->find(pos.x, pos.z); + Terrain::Node *node = terrain->find(pos.x, pos.z); if(node) { if(gravity) { float y = node->get_height(pos.x, pos.z); @@ -316,7 +316,7 @@ void Scene::render() { //glLightfv(GL_LIGHT0, GL_POSITION, light_pos); unsigned int chunks_rendered = 0; - if(terrain) { + if(render_terrain) { terrain_program.use(); GLint show_sel = glGetUniformLocation(terrain_program.get_program(), "show_sel"); glUniform1i(show_sel, show_selection ? 1 : 0); @@ -346,8 +346,8 @@ void Scene::render() { while(!q.empty()) { Quadtree::QuadChunk *chunk = q.front(); q.pop();*/ - for(std::list<Quadtree::QuadChunk*>::iterator it = qt->chunks.begin(); it != qt->chunks.end(); it++) { - Quadtree::QuadChunk *chunk = *it; + for(std::list<Terrain::Chunk*>::iterator it = terrain->chunks.begin(); it != terrain->chunks.end(); it++) { + Terrain::Chunk *chunk = *it; /*if(!chunk->nodes) { for(int i = 0; i < 4; i++) q.push(chunk->children[i]); @@ -390,8 +390,8 @@ void Scene::render() { while(!q.empty()) { Quadtree::QuadChunk *chunk = q.front(); q.pop();*/ - for(std::list<Quadtree::QuadChunk*>::iterator it = qt->chunks.begin(); it != qt->chunks.end(); it++) { - Quadtree::QuadChunk *chunk = *it; + for(std::list<Terrain::Chunk*>::iterator it = terrain->chunks.begin(); it != terrain->chunks.end(); it++) { + Terrain::Chunk *chunk = *it; glPushMatrix(); glTranslatef(-pos.x, -pos.y, -pos.z); /*if(!chunk->nodes) { @@ -406,8 +406,8 @@ void Scene::render() { } } if(normals) { - for(std::list<Quadtree::QuadChunk*>::iterator it = qt->chunks.begin(); it != qt->chunks.end(); it++) { - Quadtree::QuadChunk *chunk = *it; + for(std::list<Terrain::Chunk*>::iterator it = terrain->chunks.begin(); it != terrain->chunks.end(); it++) { + Terrain::Chunk *chunk = *it; glPushMatrix(); glTranslatef(-pos.x, -pos.y, -pos.z); for(unsigned int i = 0; i < chunk->node_count; i++) |