17 #ifndef _GAZEBO_SENSORS_GPURAYSENSOR_HH_ 18 #define _GAZEBO_SENSORS_GPURAYSENSOR_HH_ 24 #include <ignition/math/Angle.hh> 25 #include <ignition/math/Pose3.hh> 39 class GpuRaySensorPrivate;
61 public:
virtual void Load(
const std::string &_worldName,
62 sdf::ElementPtr _sdf)
override;
66 public:
virtual void Load(
const std::string &_worldName)
override;
69 public:
virtual void Init()
override;
72 protected:
void ResetLastUpdateTime()
override;
76 protected:
bool NeedsUpdate()
override;
80 public:
void Update(
bool _force)
override;
84 public:
double NextRequiredTimestamp()
const override;
87 protected:
virtual bool UpdateImpl(
const bool _force)
override;
90 protected:
virtual void Fini()
override;
93 public:
virtual std::string Topic()
const override;
97 public:
void SetActive(
bool _value)
override;
105 public: ignition::math::Angle AngleMin()
const;
109 public:
void SetAngleMin(
const double _angle);
113 public: ignition::math::Angle AngleMax()
const;
117 public:
void SetAngleMax(
const double _angle);
121 public:
double AngleResolution()
const;
125 public:
double RangeMin()
const;
129 public:
double RangeMax()
const;
138 public:
double RangeResolution()
const;
142 public:
int RayCount()
const;
146 public:
int RangeCount()
const;
150 public:
int VerticalRayCount()
const;
154 public:
int VerticalRangeCount()
const;
158 public: ignition::math::Angle VerticalAngleMin()
const;
162 public:
void SetVerticalAngleMin(
const double _angle);
166 public: ignition::math::Angle VerticalAngleMax()
const;
170 public:
void SetVerticalAngleMax(
const double _angle);
174 public:
double VerticalAngleResolution()
const;
185 public:
double Range(
const int _index)
const;
189 public:
void Ranges(std::vector<double> &_ranges)
const;
200 public:
double Retro(
const int _index)
const;
211 public:
int Fiducial(
const unsigned int _index)
const;
215 public:
unsigned int CameraCount()
const;
219 public:
bool IsHorizontal()
const;
227 public:
double RayCountRatio()
const;
235 public:
double RangeCountRatio()
const;
239 public:
double HorzFOV()
const;
243 public:
double CosHorzFOV()
const;
247 public:
double VertFOV()
const;
251 public:
double CosVertFOV()
const;
255 public:
double HorzHalfAngle()
const;
259 public:
double VertHalfAngle()
const;
264 std::function<
void(
const float *,
unsigned int,
unsigned int,
265 unsigned int,
const std::string &)> _subscriber);
268 public:
virtual bool IsActive()
const override;
271 private:
void Render();
275 private: std::unique_ptr<GpuRaySensorPrivate> dataPtr;
GPU based laser sensor.
Definition: GpuRaySensor.hh:50
Forward declarations for the common classes.
Definition: Animation.hh:26
boost::shared_ptr< GpuLaser > GpuLaserPtr
Definition: RenderTypes.hh:106
Forward declarations for transport.
sensors
Definition: SensorManager.hh:36
boost::shared_ptr< Connection > ConnectionPtr
Definition: CommonTypes.hh:134
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
Base class for sensors.
Definition: Sensor.hh:51