Public Member Functions | List of all members
gazebo::rendering::Heightmap Class Reference

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...
 

Detailed Description

Rendering a terrain using heightmap information.

Constructor & Destructor Documentation

gazebo::rendering::Heightmap::Heightmap ( ScenePtr  _scene)

Constructor.

Parameters
[in]_scenePointer to the scene that will contain the heightmap
virtual gazebo::rendering::Heightmap::~Heightmap ( )
virtual

Destructor.

Member Function Documentation

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.

Parameters
[in]_cameraCamera associated with the mouse press.
[in]_mousePosPosition of the mouse in viewport coordinates.
[in]_outsideRadiusControls the radius of effect.
[in]_insideRadiusControls the size of the radius with the maximum effect (value between 0 and 1).
[in]_weightControls modification magnitude.
Returns
True if the terrain was modified
double gazebo::rendering::Heightmap::GetAvgHeight ( Ogre::Vector3  _pos,
double  _brushSize 
)

Get the average height around a point.

Parameters
[in]_posPosition in world coordinates.
[in]_brushSizeControls the radius of effect.
double gazebo::rendering::Heightmap::GetHeight ( double  _x,
double  _y,
double  _z = 1000 
)

Get the height at a location.

Parameters
[in]_xX location
[in]_yY location
[in]_zZ location
Returns
The height at the specified location
common::Image gazebo::rendering::Heightmap::GetImage ( ) const

Get the heightmap as an image.

Returns
An image that contains the terrain data.
Ogre::TerrainGroup::RayResult gazebo::rendering::Heightmap::GetMouseHit ( CameraPtr  _camera,
math::Vector2i  _mousePos 
)

Calculate a mouse ray hit on the terrain.

Parameters
[in]_cameraCamera associated with the mouse press.
[in]_mousePosPosition of the mouse in viewport coordinates.
Returns
The result of the mouse ray hit.
Ogre::TerrainGroup* gazebo::rendering::Heightmap::GetOgreTerrain ( ) const

Get a pointer to the OGRE terrain group object.

Returns
Pointer to the OGRE terrain.
unsigned int gazebo::rendering::Heightmap::GetTerrainSubdivisionCount ( ) const

Get the number of subdivision the terrain will be split into.

Returns
Number of terrain subdivisions
void gazebo::rendering::Heightmap::Load ( )

Load the heightmap.

void gazebo::rendering::Heightmap::LoadFromMsg ( ConstVisualPtr &  _msg)

Load the heightmap from a visual message.

Parameters
[in]_msgThe 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.

Parameters
[in]_cameraCamera associated with the mouse press.
[in]_mousePosPosition of the mouse in viewport coordinates.
[in]_outsideRadiusControls the radius of effect.
[in]_insideRadiusControls the size of the radius with the maximum effect (value between 0 and 1).
[in]_weightControls modification magnitude.
Returns
True if the terrain was modified
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.

Parameters
[in]_cameraCamera associated with the mouse press.
[in]_mousePosPosition of the mouse in viewport coordinates.
[in]_outsideRadiusControls the radius of effect.
[in]_insideRadiusControls the size of the radius with the maximum effect (value between 0 and 1).
[in]_weightControls modification magnitude.
Returns
True if the terrain was modified
void gazebo::rendering::Heightmap::SetWireframe ( bool  _show)

Set the heightmap to render in wireframe mode.

Parameters
[in]_showTrue 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.

Parameters
[in]_cameraCamera associated with the mouse press.
[in]_mousePosPosition of the mouse in viewport coordinates.
[in]_outsideRadiusControls the radius of effect.
[in]_insideRadiusControls the size of the radius with the maximum effect (value between 0 and 1).
[in]_weightControls modification magnitude.
Returns
True if the terrain was modified
void gazebo::rendering::Heightmap::SplitHeights ( const std::vector< float > &  _heightmap,
int  _n,
std::vector< std::vector< float > > &  _v 
)

Split a terrain into subterrains.

Parameters
[in]_heightmapSource vector of floats with the heights.
[in]_nNumber of subterrains.
[out]_vDestination vector with the subterrains.

The documentation for this class was generated from the following file: