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 } |