Changeset 7468 in orxonox.OLD for trunk/src/lib/graphics/importer/height_map.cc
- Timestamp:
- May 1, 2006, 11:06:09 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/graphics/importer/height_map.cc
r7467 r7468 11 11 ### File Specific: 12 12 main-programmer: bottac@ee.ethz.ch 13 14 review: patrick boenzli, patrick@orxonox.ethz.ch 13 15 */ 14 16 … … 31 33 32 34 35 /** 36 * default constructor 37 * @param i1 38 */ 33 39 Tile::Tile(int i1, int j1, int i2, int j2, HeightMap* hm ) 34 40 { … … 37 43 lowResModel = new VertexArrayModel(); 38 44 39 this->load(i1,j1,i2,j2,hm,highResModel,4); 40 this->load(i1,j1,i2,j2,hm,lowResModel, 8); 41 } 45 this->load(i1, j1, i2, j2, hm, highResModel,4); 46 this->load(i1, j1, i2, j2, hm, lowResModel, 8); 47 } 48 42 49 43 50 Tile::~Tile() 44 51 { 45 delete highResModel; 46 delete lowResModel; 47 } 52 if( highResModel) 53 delete highResModel; 54 if( lowResModel) 55 delete lowResModel; 56 } 57 48 58 49 59 void Tile::draw() 50 60 { 51 // This Draws the LOD's 52 //FIXME 53 float cameraDistance = (State::getCameraNode()->getAbsCoor() - Vector(this->x, hmref->offsetY , this->z) ).len(); 54 if(cameraDistance < 0) 55 cameraDistance = -cameraDistance; 56 if(cameraDistance > 5000 ) 57 { 58 return; 59 } 60 else if (cameraDistance >= 1000 ) 61 // draw the tile depending on the distance from the camera with different LOD (level of details) 62 float cameraDistance = fabs((State::getCameraNode()->getAbsCoor() - Vector(this->x, heightMapReference->offsetY , this->z) ).len()); 63 64 if (cameraDistance < HM_LOD_HIGH_RES ) 65 { 66 this->drawHighRes(); 67 } 68 else if( cameraDistance < HM_LOD_LOW_RES) 61 69 { 62 70 this->drawLowRes(); 63 71 } 64 else 65 { 66 this->drawHighRes(); 67 } 68 } 69 70 void Tile::drawHighRes() 71 { 72 highResModel->draw(); 73 } 74 75 void Tile::drawLowRes() 76 { 77 lowResModel->draw(); 78 } 72 } 73 79 74 80 75 /* … … 93 88 #define normalVectorField hm->normalVectorField 94 89 95 h mref= hm; // FIXME90 heightMapReference = hm; // FIXME 96 91 97 92 this->x = hm->offsetX + (heightMap->h - ((i1+i2)/2))*scaleX;
Note: See TracChangeset
for help on using the changeset viewer.