|
Waterflow
Visualize water in terrain
|
Handles the shallow water testcase simulation. More...
#include <shallowGPU.h>
Public Member Functions | |
| ShallowGPU (DataHandler *t, std::vector< Flood_Fill_data * > FFDataIn) | |
| Constructor for shallowGPU. | |
| void | cycleBuffer () |
| change output buffer | |
| void | initGPU () |
| Initializes GPU for simulation. | |
| void | runSimGPU (GLfloat dt=1.0f/30.0f) |
| Runs the simulation one timestep. | |
Public Attributes | |
| GLuint | addProgram |
| shader used for simulation | |
| GLuint | advectVelocityXProgram |
| shader used for simulation | |
| GLuint | advectVelocityYProgram |
| shader used for simulation | |
| GLuint | advectWaterProgram |
| shader used for simulation | |
| GLuint | shallowBuffers [9] |
| Buffers used for passing data between shaders. | |
| GLuint | updateHeightProgram |
| shader used for simulation | |
| GLuint | updateVelocityProgram |
| shader used for simulation | |
Private Member Functions | |
| int | clip (int n, int lower, int upper) |
| clamps the int value | |
| float | clipf (GLfloat n, GLfloat lower, GLfloat upper) |
| clamps the float value | |
| void | floodFill (float *u, int x, int z, float height) |
| Floodfills point x,z to height and saves in heightmap u. | |
| void | initFloodFill (float *u) |
| Runs the floodfill algorithms. | |
| void | Print (GLuint bID, std::string msg, int iter) const |
| Prints debug info for buffer at bID. | |
| void | PrintHelper (std::string start_end, std::string msg, int iter) const |
| helper function for print. | |
| void | PrintNumber (float value) const |
| helper function for print. | |
Private Attributes | |
| GLuint | bufferOut |
| Out buffer to be rendered. | |
| GLuint | cycle |
| Cycle used for selecting render output. | |
| std::vector< Flood_Fill_data * > | flood |
| Floodfill data structure. | |
| float * | flow |
| Array of added flow per iteration. | |
| DataHandler * | terr |
| Handle to terrain. | |
| GLint | texHeight |
| height of simulation area | |
| GLint | texWidth |
| width of simulation area | |
| GLfloat | totTime |
| Variable for time measurements. | |
Static Private Attributes | |
| static bool | DEBUG = false |
| Print debug information (should be static member instead) | |
Handles the shallow water testcase simulation.
Definition at line 15 of file shallowGPU.h.
| ShallowGPU::ShallowGPU | ( | DataHandler * | t, |
| std::vector< Flood_Fill_data * > | FFDataIn | ||
| ) | [inline] |
Constructor for shallowGPU.
Must take handle to terrain and a floodfill data vector
Definition at line 86 of file shallowGPU.h.
| int ShallowGPU::clip | ( | int | n, |
| int | lower, | ||
| int | upper | ||
| ) | [private] |
clamps the int value
Clamps the int value n, between lower and upper.
Definition at line 64 of file shallowGPU.cpp.
| GLfloat ShallowGPU::clipf | ( | GLfloat | n, |
| GLfloat | lower, | ||
| GLfloat | upper | ||
| ) | [private] |
clamps the float value
Clamps the float value n, between lower and upper.
Definition at line 68 of file shallowGPU.cpp.
| void ShallowGPU::floodFill | ( | float * | u, |
| int | x, | ||
| int | z, | ||
| float | height | ||
| ) | [private] |
Floodfills point x,z to height and saves in heightmap u.
Data is provided for floodpoints at construction.
Definition at line 25 of file shallowGPU.cpp.
| void ShallowGPU::initFloodFill | ( | float * | u | ) | [private] |
Runs the floodfill algorithms.
Data is provided for floodpoints at construction.
Definition at line 244 of file shallowGPU.cpp.
| void ShallowGPU::Print | ( | GLuint | bID, |
| std::string | msg, | ||
| int | iter | ||
| ) | const [private] |
Prints debug info for buffer at bID.
Prints the message and the iteration aswell.
Definition at line 360 of file shallowGPU.cpp.
| void ShallowGPU::runSimGPU | ( | GLfloat | dt = 1.0f/30.0f | ) |
Runs the simulation one timestep.
Definition at line 252 of file shallowGPU.cpp.