Rendering a terrain using heightmap information. More...
#include <rendering/rendering.hh>
Public Member Functions | |
Heightmap (ScenePtr _scene) | |
Constructor. More... | |
virtual | ~Heightmap () |
Destructor. More... | |
bool | Flatten (CameraPtr _camera, math::Vector2i _mousePos, double _outsideRadius, double _insideRadius, double _weight=0.1) |
Flatten the terrain based on a mouse press. More... | |
double | GetAvgHeight (Ogre::Vector3 _pos, double _brushSize) |
Get the average height around a point. More... | |
double | GetHeight (double _x, double _y, double _z=1000) |
Get the height at a location. More... | |
common::Image | GetImage () const |
Get the heightmap as an image. More... | |
Ogre::TerrainGroup::RayResult | GetMouseHit (CameraPtr _camera, math::Vector2i _mousePos) |
Calculate a mouse ray hit on the terrain. More... | |
Ogre::TerrainGroup * | GetOgreTerrain () const |
Get a pointer to the OGRE terrain group object. More... | |
unsigned int | GetTerrainSubdivisionCount () const |
Get the number of subdivision the terrain will be split into. More... | |
void | Load () |
Load the heightmap. More... | |
void | LoadFromMsg (ConstVisualPtr &_msg) |
Load the heightmap from a visual message. More... | |
bool | Lower (CameraPtr _camera, math::Vector2i _mousePos, double _outsideRadius, double _insideRadius, double _weight=0.1) |
Lower the terrain based on a mouse press. More... | |
bool | Raise (CameraPtr _camera, math::Vector2i _mousePos, double _outsideRadius, double _insideRadius, double _weight=0.1) |
Raise the terrain based on a mouse press. More... | |
void | SetWireframe (bool _show) |
Set the heightmap to render in wireframe mode. More... | |
bool | Smooth (CameraPtr _camera, math::Vector2i _mousePos, double _outsideRadius, double _insideRadius, double _weight=0.1) |
Smooth the terrain based on a mouse press. More... | |
void | SplitHeights (const std::vector< float > &_heightmap, int _n, std::vector< std::vector< float > > &_v) |
Split a terrain into subterrains. More... | |
Rendering a terrain using heightmap information.
gazebo::rendering::Heightmap::Heightmap | ( | ScenePtr | _scene) |
Constructor.
[in] | _scene | Pointer to the scene that will contain the heightmap |
|
virtual |
Destructor.
bool gazebo::rendering::Heightmap::Flatten | ( | CameraPtr | _camera, |
math::Vector2i | _mousePos, | ||
double | _outsideRadius, | ||
double | _insideRadius, | ||
double | _weight = 0.1 |
||
) |
Flatten the terrain based on a mouse press.
[in] | _camera | Camera associated with the mouse press. |
[in] | _mousePos | Position of the mouse in viewport coordinates. |
[in] | _outsideRadius | Controls the radius of effect. |
[in] | _insideRadius | Controls the size of the radius with the maximum effect (value between 0 and 1). |
[in] | _weight | Controls modification magnitude. |
double gazebo::rendering::Heightmap::GetAvgHeight | ( | Ogre::Vector3 | _pos, |
double | _brushSize | ||
) |
Get the average height around a point.
[in] | _pos | Position in world coordinates. |
[in] | _brushSize | Controls the radius of effect. |
double gazebo::rendering::Heightmap::GetHeight | ( | double | _x, |
double | _y, | ||
double | _z = 1000 |
||
) |
Get the height at a location.
[in] | _x | X location |
[in] | _y | Y location |
[in] | _z | Z location |
common::Image gazebo::rendering::Heightmap::GetImage | ( | ) | const |
Get the heightmap as an image.
Ogre::TerrainGroup::RayResult gazebo::rendering::Heightmap::GetMouseHit | ( | CameraPtr | _camera, |
math::Vector2i | _mousePos | ||
) |
Calculate a mouse ray hit on the terrain.
[in] | _camera | Camera associated with the mouse press. |
[in] | _mousePos | Position of the mouse in viewport coordinates. |
Ogre::TerrainGroup* gazebo::rendering::Heightmap::GetOgreTerrain | ( | ) | const |
Get a pointer to the OGRE terrain group object.
unsigned int gazebo::rendering::Heightmap::GetTerrainSubdivisionCount | ( | ) | const |
Get the number of subdivision the terrain will be split into.
void gazebo::rendering::Heightmap::Load | ( | ) |
Load the heightmap.
void gazebo::rendering::Heightmap::LoadFromMsg | ( | ConstVisualPtr & | _msg) |
Load the heightmap from a visual message.
[in] | _msg | The visual message containing heightmap info |
bool gazebo::rendering::Heightmap::Lower | ( | CameraPtr | _camera, |
math::Vector2i | _mousePos, | ||
double | _outsideRadius, | ||
double | _insideRadius, | ||
double | _weight = 0.1 |
||
) |
Lower the terrain based on a mouse press.
[in] | _camera | Camera associated with the mouse press. |
[in] | _mousePos | Position of the mouse in viewport coordinates. |
[in] | _outsideRadius | Controls the radius of effect. |
[in] | _insideRadius | Controls the size of the radius with the maximum effect (value between 0 and 1). |
[in] | _weight | Controls modification magnitude. |
bool gazebo::rendering::Heightmap::Raise | ( | CameraPtr | _camera, |
math::Vector2i | _mousePos, | ||
double | _outsideRadius, | ||
double | _insideRadius, | ||
double | _weight = 0.1 |
||
) |
Raise the terrain based on a mouse press.
[in] | _camera | Camera associated with the mouse press. |
[in] | _mousePos | Position of the mouse in viewport coordinates. |
[in] | _outsideRadius | Controls the radius of effect. |
[in] | _insideRadius | Controls the size of the radius with the maximum effect (value between 0 and 1). |
[in] | _weight | Controls modification magnitude. |
void gazebo::rendering::Heightmap::SetWireframe | ( | bool | _show) |
Set the heightmap to render in wireframe mode.
[in] | _show | True to render wireframe, false to render solid. |
bool gazebo::rendering::Heightmap::Smooth | ( | CameraPtr | _camera, |
math::Vector2i | _mousePos, | ||
double | _outsideRadius, | ||
double | _insideRadius, | ||
double | _weight = 0.1 |
||
) |
Smooth the terrain based on a mouse press.
[in] | _camera | Camera associated with the mouse press. |
[in] | _mousePos | Position of the mouse in viewport coordinates. |
[in] | _outsideRadius | Controls the radius of effect. |
[in] | _insideRadius | Controls the size of the radius with the maximum effect (value between 0 and 1). |
[in] | _weight | Controls modification magnitude. |
void gazebo::rendering::Heightmap::SplitHeights | ( | const std::vector< float > & | _heightmap, |
int | _n, | ||
std::vector< std::vector< float > > & | _v | ||
) |
Split a terrain into subterrains.
[in] | _heightmap | Source vector of floats with the heights. |
[in] | _n | Number of subterrains. |
[out] | _v | Destination vector with the subterrains. |