stratgame

annotate level/src/terrain.cc @ 4:cd12944a8ea8

foo
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 25 May 2012 05:28:20 +0300
parents
children 2e38715de41b
rev   line source
nuclear@4 1 #include "terrain.h"
nuclear@4 2
nuclear@4 3 Terrain::Terrain()
nuclear@4 4 {
nuclear@4 5 root = 0;
nuclear@4 6 }
nuclear@4 7
nuclear@4 8 Terrain::~Terrain()
nuclear@4 9 {
nuclear@4 10 delete root;
nuclear@4 11 }
nuclear@4 12
nuclear@4 13 float Terrain::get_height(float x, float y) const
nuclear@4 14 {
nuclear@4 15 return root->get_height(x, y);
nuclear@4 16 }
nuclear@4 17
nuclear@4 18
nuclear@4 19 TerrainNode::TerrainNode()
nuclear@4 20 {
nuclear@4 21 height = 0;
nuclear@4 22 child[0] = child[1] = child[2] = child[3];
nuclear@4 23 }
nuclear@4 24
nuclear@4 25 TerrainNode::~TerrainNode()
nuclear@4 26 {
nuclear@4 27 for(auto c : child) {
nuclear@4 28 delete c;
nuclear@4 29 }
nuclear@4 30 delete [] height;
nuclear@4 31 }
nuclear@4 32
nuclear@4 33 TerrainNode *TerrainNode::get_child(float x, float y)
nuclear@4 34 {
nuclear@4 35 int xidx = x >= 0.0 ? 1 : 0;
nuclear@4 36 int yidx = y >= 0.0 ? 1 : 0;
nuclear@4 37 return child[y * 2 + x];
nuclear@4 38 }
nuclear@4 39
nuclear@4 40 const TerrainNode *TerrainNode::get_child(float x, float y) const
nuclear@4 41 {
nuclear@4 42 int xidx = x >= 0.0 ? 1 : 0;
nuclear@4 43 int yidx = y >= 0.0 ? 1 : 0;
nuclear@4 44 return child[y * 2 + x];
nuclear@4 45 }
nuclear@4 46
nuclear@4 47 float TerrainNode::get_height(float x, float y) const
nuclear@4 48 {
nuclear@4 49 TerrainNode *child = get_child(x, y);
nuclear@4 50 if(child) {
nuclear@4 51
nuclear@4 52 }
nuclear@4 53 }