17#ifndef IGNITION_MATH_SPHERICALCOORDINATES_HH_
18#define IGNITION_MATH_SPHERICALCOORDINATES_HH_
26#include <ignition/math/config.hh>
32 inline namespace IGNITION_MATH_VERSION_NAMESPACE
34 class SphericalCoordinatesPrivate;
82 const double _elevation,
223#pragma warning(disable: 4251)
227 private: std::unique_ptr<SphericalCoordinatesPrivate> dataPtr;
An angle and related functions.
Definition Angle.hh:48
Convert spherical coordinates for planetary surfaces.
Definition SphericalCoordinates.hh:39
SphericalCoordinates & operator=(const SphericalCoordinates &_sc)
Assignment operator.
void SetSurface(const SurfaceType &_type)
Set SurfaceType for planetary surface model.
static SurfaceType Convert(const std::string &_str)
Convert a string to a SurfaceType.
SphericalCoordinates(const SurfaceType _type, const ignition::math::Angle &_latitude, const ignition::math::Angle &_longitude, const double _elevation, const ignition::math::Angle &_heading)
Constructor with surface type, angle, and elevation inputs.
void SetLongitudeReference(const ignition::math::Angle &_angle)
Set reference longitude.
SurfaceType Surface() const
Get SurfaceType currently in use.
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.
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.
double ElevationReference() const
Get reference elevation in meters.
SphericalCoordinates()
Constructor.
bool operator==(const SphericalCoordinates &_sc) const
Equality operator, result = this == _sc.
ignition::math::Vector3d GlobalFromLocalVelocity(const ignition::math::Vector3d &_xyz) const
Convert a Cartesian velocity vector in the local frame to a global Cartesian frame with components Ea...
SphericalCoordinates(const SurfaceType _type)
Constructor with surface type input.
void SetLatitudeReference(const ignition::math::Angle &_angle)
Set reference geodetic latitude.
bool operator!=(const SphericalCoordinates &_sc) const
Inequality.
ignition::math::Vector3d SphericalFromLocalPosition(const ignition::math::Vector3d &_xyz) const
Convert a Cartesian position vector to geodetic coordinates.
void UpdateTransformationMatrix()
Update coordinate transformation matrix with reference location.
CoordinateType
Unique identifiers for coordinate types.
Definition SphericalCoordinates.hh:52
SphericalCoordinates(const SphericalCoordinates &_sc)
Copy constructor.
ignition::math::Angle LatitudeReference() const
Get reference geodetic latitude.
ignition::math::Angle HeadingOffset() const
Get heading offset for the reference frame, expressed as angle from East to x-axis,...
~SphericalCoordinates()
Destructor.
void SetHeadingOffset(const ignition::math::Angle &_angle)
Set heading angle offset for the frame.
ignition::math::Vector3d LocalFromGlobalVelocity(const ignition::math::Vector3d &_xyz) const
Convert a Cartesian velocity vector with components East, North, Up to a local cartesian frame vector...
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 SetElevationReference(const double _elevation)
Set reference elevation above sea level in meters.
SurfaceType
Unique identifiers for planetary surface models.
Definition SphericalCoordinates.hh:43
ignition::math::Vector3d LocalFromSphericalPosition(const ignition::math::Vector3d &_xyz) const
Convert a geodetic position vector to Cartesian coordinates.
ignition::math::Angle LongitudeReference() const
Get reference longitude.
The Vector3 class represents the generic vector containing 3 elements.
Definition Vector3.hh:40