17 #ifndef GAZEBO_RENDERING_HEIGHTMAP_HH_
18 #define GAZEBO_RENDERING_HEIGHTMAP_HH_
23 #include <ignition/math/Vector3.hh>
24 #include <ignition/math/Vector2.hh>
26 #include "gazebo/msgs/MessageTypes.hh"
55 class HeightmapPrivate;
76 public:
void LoadFromMsg(ConstVisualPtr &_msg);
83 public:
double Height(
const double _x,
const double _y,
84 const double _z = 1000)
const;
96 const ignition::math::Vector2i &_mousePos,
97 const double _outsideRadius,
98 const double _insideRadius,
99 const double _weight = 0.1);
111 const ignition::math::Vector2i &_mousePos,
112 const double _outsideRadius,
113 const double _insideRadius,
114 const double _weight = 0.1);
126 const ignition::math::Vector2i &_mousePos,
127 const double _outsideRadius,
128 const double _insideRadius,
129 const double _weight = 0.1);
141 const ignition::math::Vector2i &_mousePos,
142 const double _outsideRadius,
143 const double _insideRadius,
144 const double _weight = 0.1);
149 public:
double AvgHeight(
const ignition::math::Vector3d &_pos,
150 const double _brushSize)
const;
154 public:
void SetWireframe(
const bool _show);
158 public: Ogre::TerrainGroup *OgreTerrain()
const;
169 public: Ogre::TerrainGroup::RayResult MouseHit(
CameraPtr _camera,
170 const ignition::math::Vector2i &_mousePos)
const;
176 public:
void SplitHeights(
const std::vector<float> &_heightmap,
177 const int _n, std::vector<std::vector<float> > &_v);
182 public:
unsigned int TerrainSubdivisionCount()
const;
186 public:
void SetMaterial(
const std::string &_materialName);
190 public: std::string MaterialName()
const;
199 public:
void SetLOD(
const unsigned int _value);
203 public:
unsigned int LOD()
const;
209 private:
void CreateMaterial();
218 private:
void ModifyTerrain(Ogre::Vector3 _pos,
219 const double _outsideRadius,
const double _insideRadius,
220 const double _weight,
const std::string &_op);
224 private:
bool InitBlendMaps(Ogre::Terrain *_terrain);
227 private:
void ConfigureTerrainDefaults();
232 private:
void DefineTerrain(
const int _x,
const int _y);
236 private:
void SetupShadows(
const bool _enabled);
245 private:
void UpdateTerrainHash(
const std::string &_hash,
246 const boost::filesystem::path &_terrainDir);
253 private:
bool PrepareTerrain(
254 const boost::filesystem::path &_terrainDirPath);
257 private:
void SaveHeightmap();
261 private: std::unique_ptr<HeightmapPrivate> dataPtr;
boost::shared_ptr< Scene > ScenePtr
Definition: RenderTypes.hh:81
Rendering a terrain using heightmap information.
Definition: Heightmap.hh:62
Encapsulates an image.
Definition: Image.hh:74
boost::shared_ptr< Camera > CameraPtr
Definition: RenderTypes.hh:89