17#ifndef GAZEBO_PHYSICS_HEIGHTMAPSHAPE_HH_
18#define GAZEBO_PHYSICS_HEIGHTMAPSHAPE_HH_
22#include <ignition/transport/Node.hh>
24#include <ignition/math/Vector2.hh>
59 public:
virtual void Load(sdf::ElementPtr _sdf);
62 public:
virtual void Init();
66 public:
virtual void SetScale(
const ignition::math::Vector3d &_scale);
74 public: ignition::math::Vector3d
Size()
const;
78 public: ignition::math::Vector3d
Pos()
const;
96 public:
void FillMsg(msgs::Geometry &_msg);
132 private:
int LoadTerrainFile(
const std::string &_filename);
136 private:
void OnRequest(ConstRequestPtr &_msg);
174 private: std::string fileFormat;
177 private: ignition::math::Vector3d heightmapSize;
188 private: ignition::transport::Node nodeIgn;
191 private: ignition::transport::Node::Publisher responsePubIgn;
default namespace for gazebo
Forward declarations for transport.
Encapsulates a generic heightmap data file.
Definition HeightmapData.hh:40
Encapsulates an image that will be interpreted as a heightmap.
Definition ImageHeightmap.hh:40
Encapsulates an image.
Definition Image.hh:66
HeightmapShape collision shape builds a heightmap from an image.
Definition HeightmapShape.hh:46
std::string GetURI() const
Get the URI of the heightmap image.
std::vector< HeightType > heights
Lookup table of heights.
Definition HeightmapShape.hh:147
virtual void SetScale(const ignition::math::Vector3d &_scale)
Set the scale of the heightmap shape.
unsigned int vertSize
Size of the height lookup table.
Definition HeightmapShape.hh:156
int subSampling
The amount of subsampling. Default is 2.
Definition HeightmapShape.hh:162
virtual double ComputeVolume() const
Documentation inherited.
virtual void Init()
Initialize the heightmap.
float HeightType
height field type, float or double
Definition HeightmapShape.hh:48
HeightType GetMaxHeight() const
Get the maximum height.
common::Image GetImage() const
Return an image representation of the heightmap.
bool flipY
True to flip the heights along the y direction.
Definition HeightmapShape.hh:159
int GetSubSampling() const
Get the amount of subsampling.
ignition::math::Vector3d Size() const
Get the size in meters.
ignition::math::Vector2i VertexCount() const
Return the number of vertices, which equals the size of the image used to load the heightmap.
void FillHeightfield(std::vector< double > &heights)
Version of FillHeightfield() for double vectors.
common::HeightmapData * heightmapData
HeightmapData used to generate the heights.
Definition HeightmapShape.hh:153
HeightType GetMinHeight() const
Get the minimum height.
HeightType GetHeight(int _x, int _y) const
Get a height at a position.
virtual ~HeightmapShape()
Destructor.
ignition::math::Vector3d Pos() const
Get the origin in world coordinate frame.
virtual void Load(sdf::ElementPtr _sdf)
Load the heightmap.
void FillHeightfield(std::vector< float > &heights)
Fills the heightmap data (float) into the vector by calling HeightmapData::FillHeightMap with heights...
void FillHeights(msgs::Geometry &_msg) const
Fill a geometry message with this shape's height data.
virtual void ProcessMsg(const msgs::Geometry &_msg)
Update the heightmap from a message.
void FillMsg(msgs::Geometry &_msg)
Fill a geometry message with this shape's data.
common::ImageHeightmap img
Image used to generate the heights.
Definition HeightmapShape.hh:150
HeightmapShape(CollisionPtr _parent)
Constructor.
Base class for all shapes.
Definition Shape.hh:40
boost::shared_ptr< Collision > CollisionPtr
Definition PhysicsTypes.hh:113
boost::shared_ptr< Subscriber > SubscriberPtr
Definition TransportTypes.hh:53
boost::shared_ptr< Publisher > PublisherPtr
Definition TransportTypes.hh:49
boost::shared_ptr< Node > NodePtr
Definition TransportTypes.hh:57
Forward declarations for the common classes.
Definition Animation.hh:27