17 #ifndef _GAZEBO_SPHERICALCOORDINATES_HH_
18 #define _GAZEBO_SPHERICALCOORDINATES_HH_
22 #include <ignition/math/Angle.hh>
23 #include <ignition/math/Vector3.hh>
32 class SphericalCoordinatesPrivate;
81 const ignition::math::Angle &_latitude,
82 const ignition::math::Angle &_longitude,
84 const ignition::math::Angle &_heading);
94 const ignition::math::Vector3d &_xyz)
const;
101 const ignition::math::Vector3d &_xyz)
const;
117 public:
static double Distance(
const ignition::math::Angle &_latA,
118 const ignition::math::Angle &_lonA,
119 const ignition::math::Angle &_latB,
120 const ignition::math::Angle &_lonB);
168 const ignition::math::Vector3d &_xyz)
const;
175 const ignition::math::Vector3d &_xyz)
const;
185 public: ignition::math::Vector3d
195 const ignition::math::Vector3d &_vel,
200 private: SphericalCoordinatesPrivate *dataPtr;
common
Definition: FuelModelDatabase.hh:42
Convert spherical coordinates for planetary surfaces.
Definition: SphericalCoordinates.hh:40
void UpdateTransformationMatrix()
Update coordinate transformation matrix with reference location.
SphericalCoordinates(const SurfaceType _type)
Constructor with surface type input.
SurfaceType
Unique identifiers for planetary surface models.
Definition: SphericalCoordinates.hh:44
static double Distance(const ignition::math::Angle &_latA, const ignition::math::Angle &_lonA, const ignition::math::Angle &_latB, const ignition::math::Angle &_lonB)
Get the distance between two points expressed in geographic latitude and longitude.
ignition::math::Angle LatitudeReference() const
Get reference geodetic latitude.
void SetLatitudeReference(const ignition::math::Angle &_angle)
Set reference geodetic latitude.
ignition::math::Angle HeadingOffset() const
Get heading offset for gazebo reference frame, expressed as angle from East to gazebo x-axis,...
void SetElevationReference(double _elevation)
Set reference elevation above sea level in meters.
SphericalCoordinates(const SurfaceType _type, const ignition::math::Angle &_latitude, const ignition::math::Angle &_longitude, double _elevation, const ignition::math::Angle &_heading)
Constructor with surface type, angle, and elevation inputs.
ignition::math::Vector3d GlobalFromLocal(const ignition::math::Vector3d &_xyz) const
Convert a Cartesian velocity vector in the local gazebo frame to a global Cartesian frame with compon...
SphericalCoordinates()
Constructor.
double GetElevationReference() const
Get reference elevation in meters.
static SurfaceType Convert(const std::string &_str)
Convert a string to a SurfaceType.
void SetLongitudeReference(const ignition::math::Angle &_angle)
Set reference longitude.
ignition::math::Vector3d LocalFromGlobal(const ignition::math::Vector3d &_xyz) const
Convert a Cartesian vector with components East, North, Up to a local Gazebo cartesian frame vector X...
~SphericalCoordinates()
Destructor.
ignition::math::Vector3d VelocityTransform(const ignition::math::Vector3d &_vel, const CoordinateType &_in, const CoordinateType &_out) const
Convert between velocity in SPHERICAL/ECEF/LOCAL/GLOBAL frame.
void SetHeadingOffset(const ignition::math::Angle &_angle)
Set heading angle offset for gazebo frame.
ignition::math::Vector3d PositionTransform(const ignition::math::Vector3d &_pos, const CoordinateType &_in, const CoordinateType &_out) const
Convert between positions in SPHERICAL/ECEF/LOCAL/GLOBAL frame.
ignition::math::Vector3d LocalFromSpherical(const ignition::math::Vector3d &_xyz) const
Convert a geodetic position vector to Cartesian coordinates.
ignition::math::Vector3d SphericalFromLocal(const ignition::math::Vector3d &_xyz) const
Convert a Cartesian position vector to geodetic coordinates.
CoordinateType
Unique identifiers for coordinate types.
Definition: SphericalCoordinates.hh:53
void SetSurfaceType(const SurfaceType &_type)
Set SurfaceType for planetary surface model.
ignition::math::Angle LongitudeReference() const
Get reference longitude.
SurfaceType GetSurfaceType() const
Get SurfaceType currently in use.
Forward declarations for the common classes.
Definition: Animation.hh:27