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:37
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
@ EARTH_WGS84
Model of reference ellipsoid for earth, based on WGS 84 standard.
Definition SphericalCoordinates.hh:47
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
@ ECEF
Earth centered, earth fixed Cartesian.
Definition SphericalCoordinates.hh:58
@ LOCAL
Heading-adjusted tangent plane (X, Y, Z)
Definition SphericalCoordinates.hh:64
@ SPHERICAL
Latitude, Longitude and Altitude by SurfaceType.
Definition SphericalCoordinates.hh:55
@ GLOBAL
Local tangent plane (East, North, Up)
Definition SphericalCoordinates.hh:61
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