Changeset 8719 in orxonox.OLD for trunk/src/world_entities/environments/mapped_water.h
- Timestamp:
- Jun 22, 2006, 2:13:18 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/world_entities/environments/mapped_water.h
r8037 r8719 1 1 /*! 2 2 * @file mapped_water.h 3 * 3 * worldentity for flat, cool looking, mapped water 4 4 */ 5 /*! example input in .oxw file with the standard values 6 <MappedWater> 7 <waterpos>0,0,0</waterpos> 8 <watersize>100,100</watersize> 9 <wateruv>9</wateruv><!-- size of the waves --> 10 <waterflow>0.08</waterflow> 11 <lightpos>0,10,0</lightpos> 12 <waterangle>0</waterangle> 13 <normalmapscale>0.25</normalmapscale><!-- you won't see a big differnce if you change that --> 14 </MappedWater> 15 */ 16 5 17 6 18 #ifndef _MAPPED_WATER_H 7 19 #define _MAPPED_WATER_H 8 20 9 /* INCLUDES */10 21 #include "world_entity.h" 11 22 #include "material.h" 12 23 #include "shader.h" 13 24 25 14 26 class MappedWater : public WorldEntity 15 27 { 16 17 18 28 public: 29 MappedWater(const TiXmlElement* root = NULL); 30 virtual ~MappedWater(); 19 31 20 32 void loadParams(const TiXmlElement* root); 21 33 34 void draw() const; 35 void tick(float dt); 22 36 23 void activateReflection(); 24 void deactivateReflection(); 37 // function to prepare renderpaths for creation of refleaction and reflaction textures 38 void activateReflection(); 39 void deactivateReflection(); 40 void activateRefraction(); 41 void deactivateRefraction(); 25 42 26 void activateRefraction(); 27 void deactivateRefraction(); 43 // functions to set parameters for the water, usually they're called through loadparam 44 void setLightPos(float x, float y, float z) { this->lightPos = Vector(x,y,z); }; 45 void setWaterPos(float x, float y, float z) { this->waterPos = Vector(x,y,z); }; 46 void setWaterSize(float x, float z) { this->xWidth = x; this->zWidth = z; }; 47 void setWaterAngle(float angle) { this->waterAngle = angle; }; 48 void setWaterUV(float uv) { this->waterUV = uv; }; 49 void setWaterFlow(float flow) { this->waterFlow = flow; }; 50 void setNormalMapScale(float scale) { this->kNormalMapScale = scale; }; 28 51 29 void draw() const; 30 void tick(float dt); 52 private: 53 void initParams(); 54 void initTextures(); 55 void initShaders(); 31 56 32 private: 33 void setLightPosition(float x, float y, float z) { this->lightPos = Vector(x,y,z); }; 34 void setHeight(float height); 57 private: 58 Vector waterPos; //!< position of the water 59 float xWidth, zWidth; //!< size of the water quad 60 Vector lightPos; //!< position of the light that is used to render the reflection 61 float waterAngle; //!< defines how much the water will be turned around the point waterPos 35 62 36 private: 37 float waterHeight; //!< y-coord of the Water 63 float move; //!< textures coords, speeds, positions for the shaded textures.... 64 float move2; 65 float waterUV; //!< size of the waves 66 float waterFlow; //!< speed of the water 67 float normalUV; 68 float kNormalMapScale; 38 69 39 float move; //!< textures coords, speeds, positions for the shaded textures.... 40 float move2; //!< 41 float g_WaterUV; //!< 42 float g_WaterFlow; //!< 43 float refrUV; //!< 44 float normalUV; //!< 45 float kNormalMapScale; //!< 46 47 int textureSize; //!< size of the texture 48 Vector lightPos; 49 Material mat; 50 Shader* shader; 51 Shader::Uniform* cam_uni; //!< uniform that is used for the camera position 52 70 int textureSize; //!< height and width of the texture 71 Material mat; 72 Shader* shader; 73 Shader::Uniform* cam_uni; //!< uniform that is used for the camera position 53 74 }; 54 75 55 #endif /* _MAPPED_WATER_H */76 #endif
Note: See TracChangeset
for help on using the changeset viewer.