Go to the documentation of this file.
39 #ifndef GNSSTK_POSITION_HPP
40 #define GNSSTK_POSITION_HPP
49 #include "gnsstk_export.h"
58 double range(
const Position& A,
const Position& B);
586 {
return setECEF(XYZ[0],XYZ[1],XYZ[2]); }
596 {
return setECEF(XYZ[0],XYZ[1],XYZ[2]); }
650 const std::string& fmt);
688 std::string
printf(
const char *fmt)
const;
694 std::string
printf(
const std::string& fmt)
const
695 {
return printf(fmt.c_str()); }
811 friend std::ostream&
operator<<(std::ostream& s,
909 const double ionoht)
const
975 double r1,
double r2,
1081 #endif // GNSSTK_POSITION_HPP
@ Geodetic
geodetic latitude, longitude, and height above ellipsoid
Position & setGeocentric(const double lat, const double lon, const double rad)
CoordinateSystem getCoordinateSystem() const noexcept
return the coordinate system for this Position
double radiusEarth() const noexcept
void copyEllipsoidModelFrom(const Position &src)
double getRadius() const noexcept
return radius
@ Cartesian
cartesian (Earth-centered, Earth-fixed)
friend Position operator-(const Position &left, const Position &right) noexcept
double getTheta() const noexcept
Position & transformTo(CoordinateSystem sys) noexcept
friend Position operator+(const Position &left, const Position &right) noexcept
Position & asGeodetic() noexcept
void initialize(const double a, const double b, const double c, CoordinateSystem s=Cartesian, const EllipsoidModel *ell=nullptr, const RefFrame &frame=RefFrame())
void setReferenceFrame(const RefFrame &frame) noexcept
friend Position operator*(const int &scale, const Position &right)
friend Position operator*(const double &scale, const Position &right)
friend double range(const Position &A, const Position &B)
double getZ() const noexcept
return ECEF Z coordinate (meters)
double geocentricLatitude() const noexcept
Position & setECEF(const double XYZ[3]) noexcept
Position & setTolerance(const double tol) noexcept
CoordinateSystem system
see CoordinateSystem
double getAltitude() const noexcept
return height above ellipsoid (meters)
static void convertGeocentricToCartesian(const Triple &llr, Triple &xyz) noexcept
double Y() const noexcept
return Y coordinate (meters)
friend Position operator*(const Position &left, const double &scale)
double Z() const noexcept
return Z coordinate (meters)
Position & setSpherical(const double theta, const double phi, const double rad)
Position & setToString(const std::string &str, const std::string &fmt)
std::valarray< double > theArray
void setEllipsoidModel(const EllipsoidModel *ell)
Position & asECEF() noexcept
double height() const noexcept
return height above ellipsoid (meters) (Geodetic).
double azimuth(const Position &Target) const
std::string printf(const char *fmt) const
static void convertCartesianToGeodetic(const Triple &xyz, Triple &llh, const double A, const double eccSq) noexcept
Position & asGeodetic(EllipsoidModel *ell)
double geodeticLatitude() const noexcept
return geodetic latitude (degrees North).
double azimuthGeodetic(const Position &Target) const
Position & setECEF(const double X, const double Y, const double Z) noexcept
const RefFrame & getReferenceFrame() const noexcept
return coordinate RefFrame
double getHeight() const noexcept
return height above ellipsoid (meters)
Angle getZenithAngle(const Position &target, AngleReduced &delta) const
static const GNSSTK_EXPORT double ONE_MM_TOLERANCE
One millimeter tolerance.
static void convertGeodeticToGeocentric(const Triple &geodeticllh, Triple &llr, const double A, const double eccSq) noexcept
double radius() const noexcept
double getGeocentricLatitude() const noexcept
return geocentric latitude (deg N)
std::string printf(const std::string &fmt) const
double getX() const noexcept
return ECEF X coordinate (meters)
@ Geocentric
geocentric (regular spherical coordinates)
friend Position operator*(const Position &left, const int &scale)
double phi() const noexcept
return spherical coordinate phi in degrees
double getGeodeticLatitude() const noexcept
return geodetic latitude (deg N)
static const GNSSTK_EXPORT double ONE_CM_TOLERANCE
One centimeter tolerance.
double getCurvMeridian() const noexcept
std::string asString() const
@ Spherical
spherical coordinates (theta,phi,radius)
static double getPositionTolerance()
Returns the current POSITION_TOLERANCE.
Position & operator+=(const Position &right) noexcept
CoordinateSystem
The coordinate systems supported by Position.
static const GNSSTK_EXPORT double ONE_UM_TOLERANCE
One micron tolerance.
#define GNSSTK_RETHROW(exc)
@ Unknown
unknown coordinate system
static double setPositionTolerance(const double tol)
Changes the POSITION_TOLERANCE for all Position objects.
static GNSSTK_EXPORT double POSITION_TOLERANCE
Default tolerance for time equality in days.
double AEarth
semi-major axis of Earth (meters)
double X() const noexcept
return X coordinate (meters)
double getY() const noexcept
return ECEF Y coordinate (meters)
double getPhi() const noexcept
return spherical coordinate angle phi (deg) (same as longitude)
Position & setECEF(const Triple &XYZ) noexcept
static void convertSphericalToCartesian(const Triple &tpr, Triple &xyz) noexcept
double longitude() const noexcept
Position getIonosphericPiercePoint(const double elev, const double azim, const double ionoht) const noexcept
double getLongitude() const noexcept
return longitude (deg E) (either geocentric or geodetic)
bool operator!=(const Position &right) const noexcept
double range(const Position &A, const Position &B)
friend std::ostream & operator<<(std::ostream &s, const Position &p)
Position & setGeodetic(const double lat, const double lon, const double ht, const EllipsoidModel *ell=nullptr)
double tolerance
tolerance used in comparisons
double theta() const noexcept
return spherical coordinate theta in degrees
bool operator==(const Position &right) const noexcept
static void convertGeodeticToCartesian(const Triple &llh, Triple &xyz, const double A, const double eccSq) noexcept
Position getRayPosition(double dist, const Position &target) const
Position getRayPerigee(const Position &target) const
double elevationGeodetic(const Position &Target) const
static void convertCartesianToSpherical(const Triple &xyz, Triple &tpr) noexcept
static void convertGeocentricToGeodetic(const Triple &llr, Triple &geodeticllh, const double A, const double eccSq) noexcept
double elevation(const Position &Target) const
std::string getSystemName() noexcept
return string giving name of coordinate system
Position & operator-=(const Position &right) noexcept
static void convertCartesianToGeocentric(const Triple &xyz, Triple &llr) noexcept
double eccSquared
square of ellipsoid eccentricity
double getCurvPrimeVertical() const noexcept
gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:40