- Timestamp:
- Jan 10, 2006, 1:20:12 AM (19 years ago)
- Location:
- trunk/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/graphics/importer/grid.cc
r6454 r6458 33 33 this->_sizeX = sizeX; 34 34 this->_sizeY = sizeY; 35 this->_gridSpacingX = sizeX / rows; 36 this->_gridSpacingY = sizeY / columns; 35 37 } 36 38 … … 43 45 // delete what has to be deleted here 44 46 } 47 48 49 void Grid::rebuildNormals(float maxHeight) 50 { 51 for (unsigned int i = 1; i < this->_rows-1; i++) 52 { 53 for (unsigned int j = 1; j < this->_columns-1; j++) 54 { 55 Vector test( 56 (this->vertex(i*_columns+j).y + this->vertex((i-1)*_columns+j).y - this->vertex((i+1)*_columns+j).y ) /maxHeight, 57 1.0, 58 (this->vertex(i*_columns+j).y - this->vertex(i*_columns+j-1).y + this->vertex(i*_columns+j+1).y)/maxHeight 59 ); 60 this->normal( i*_columns+j) = test.getNormalized(); 61 } 62 63 } 64 65 } -
trunk/src/lib/graphics/importer/grid.h
r6457 r6458 29 29 30 30 31 void rebui dNormals();31 void rebuildNormals(float maxHeight); 32 32 33 33 private: 34 34 float _sizeX; 35 35 float _sizeY; 36 37 float _gridSpacingX; 38 float _gridSpacingY; 36 39 37 40 unsigned int _rows; -
trunk/src/world_entities/environments/water.cc
r6457 r6458 34 34 35 35 this->resX = this->resY = 10; 36 this->sizeX = this->sizeY = 1.0; 36 this->sizeX = this->sizeY = 1.0f; 37 this->height = 0.5f; 37 38 this->grid = NULL; 38 39 … … 61 62 .describe("sets the resolution of the water surface") 62 63 .defaultValues(2, 10, 10); 64 65 LoadParam(root, "height", this, Water, setHeight) 66 .describe("the height of the Waves") 67 .defaultValues(1, 0.5f); 63 68 } 64 69 … … 69 74 this->grid = new Grid(this->sizeX, this->sizeY, this->resX, this->resY); 70 75 71 this->grid->debug();72 76 this->setModel(this->grid, 0); 73 77 } … … 85 89 } 86 90 91 void Water::setHeight(float height) 92 { 93 this->height = height; 94 } 95 96 87 97 void Water::draw() const 88 98 { … … 98 108 for (unsigned int j = 0; j < this->grid->columns(); j++) 99 109 { 100 this->grid->height(i,j) = 15.0*sin(((float)i/(float)this->grid->rows() *phase)+101 15*cos((float)j/(float)this->grid->columns()) * phase);110 this->grid->height(i,j) = this->height*sin(((float)i/(float)this->grid->rows() *phase)+ 111 this->height*cos((float)j/(float)this->grid->columns()) * phase); 102 112 } 103 113 } 114 this->grid->rebuildNormals(this->height); 104 115 } -
trunk/src/world_entities/environments/water.h
r6457 r6458 28 28 void setResolution(unsigned int resX, unsigned int resY); 29 29 void setSize(float sizeX, float sizeY); 30 void setHeight(float height); 30 31 void rebuildGrid(); 31 32 … … 36 37 Grid* grid; //!< The water-surface-model to render with 37 38 Material* waterMaterial; 39 float height; //!< The hight of the Water 38 40 39 41 unsigned int resX, resY;
Note: See TracChangeset
for help on using the changeset viewer.