31 inline TCoords(
const int _deg,
const int _min,
const double _sec)
47 inline void getDegMinSec(
int& degrees,
int& minutes,
double& seconds)
const 51 minutes = (int)((aux - degrees) * 60.0f);
52 seconds = ((aux - degrees) * 60.0f - minutes) * 60.0f;
58 const int degrees,
const int minutes,
const double seconds)
60 decimal_value = std::abs(degrees) + minutes / 60.0 + seconds / 3600.0;
74 bool operator==(
const TCoords& a,
const TCoords& o);
75 bool operator!=(
const TCoords& a,
const TCoords& o);
77 std::ostream&
operator<<(std::ostream&
out,
const TCoords& o);
83 const double _sa,
const double _sb,
const std::string& _name)
91 double sb{6356752.314245};
97 return TEllipsoid(6378137.000, 6356752.314245,
"WGS84");
101 return TEllipsoid(6378135.000, 6356750.519915,
"WGS72");
105 return TEllipsoid(6378145.000, 6356759.769356,
"WGS66");
109 return TEllipsoid(6376896.000, 6355834.846700,
"Walbeck_1817");
113 return TEllipsoid(6378160.000, 6356774.720000,
"Sudamericano_1969");
118 6378157.500, 6356772.200000,
"Nuevo_Internacional_1967");
123 6378150.000, 6356768.337303,
"Mercury_Modificado_1968");
127 return TEllipsoid(6378166.000, 6356784.283666,
"Mercury_1960");
131 return TEllipsoid(6378245.000, 6356863.018800,
"Krasovsky_1940");
135 return TEllipsoid(6378388.000, 6356911.946130,
"Internacional_1924");
139 return TEllipsoid(6378388.000, 6356911.946130,
"Internacional_1909");
143 return TEllipsoid(6378270.000, 6356794.343479,
"Hough_1960");
147 return TEllipsoid(6378200.000, 6356818.170000,
"Helmert_1906");
151 return TEllipsoid(6378388.000, 6356911.946130,
"Hayford_1909");
155 return TEllipsoid(6378137.000, 6356752.314140,
"GRS80");
159 return TEllipsoid(6378150.000, 6356768.330000,
"Fischer_1968");
163 return TEllipsoid(6378166.000, 6356784.280000,
"Fischer_1960");
167 return TEllipsoid(6378249.145, 6356514.869550,
"Clarke_1880");
171 return TEllipsoid(6378206.400, 6356583.800000,
"Clarke_1866");
175 return TEllipsoid(6377397.155, 6356078.962840,
"Bessel_1841");
179 return TEllipsoid(6377340.189, 6356034.447900,
"Airy_Modificado_1965");
183 return TEllipsoid(6377563.396, 6356256.910000,
"Airy_1830");
214 bool operator==(
const TGeodeticCoords& a,
const TGeodeticCoords& o);
215 bool operator!=(
const TGeodeticCoords& a,
const TGeodeticCoords& o);
230 const double _dX,
const double _dY,
const double _dZ,
const double _Rx,
231 const double _Ry,
const double _Rz,
const double _dS)
232 :
dX(_dX),
dY(_dY),
dZ(_dZ)
250 const double _dX,
const double _dY,
const double _dZ,
const double _m11,
251 const double _m12,
const double _m13,
const double _m21,
252 const double _m22,
const double _m23,
const double _m31,
253 const double _m32,
const double _m33,
const double _dS)
286 const double _dX,
const double _dY,
const double _dZ,
const double _Xp,
287 const double _Yp,
const double _Zp,
const double _Rx,
const double _Ry,
288 const double _Rz,
const double _dS)
310 const double _dX,
const double _dY,
const double _alpha,
311 const double _dS,
const double _Xp,
const double _Yp)
312 :
dX(_dX),
dY(_dY),
Xp(_Xp),
Yp(_Yp)
324 const double _a,
const double _b,
const double _c,
const double _d)
325 :
a(_a),
b(_b),
c(_c),
d(_d)
343 const double _dX,
const double _dY,
const double _dZ,
const double _Rx,
344 const double _Ry,
const double _Rz,
const double _dS)
345 :
dX(_dX),
dY(_dY),
dZ(_dZ)
362 const double _a,
const double _b,
const double _c,
const double _d,
363 const double _e,
const double _f,
const double _g)
364 :
a(_a),
b(_b),
c(_c),
d(_d),
e(_e),
f(_f),
g(_g)
380 const double _dX,
const double _dY,
const double _DZ,
const double _dS)
381 :
dX(_dX),
dY(_dY),
DZ(_DZ)
400 const double _dX,
const double _dY,
const double _dSx,
401 const double _dSy,
const double _beta)
double sa
largest semiaxis of the reference ellipsoid (in meters)
static TEllipsoid Ellipsoid_Fischer_1968()
double getDecimalValue() const
Get the decimal value (XX.YYYYY), in degrees - you can also use the automatic conversion between TCoo...
static TEllipsoid Ellipsoid_Fischer_1960()
static TEllipsoid Ellipsoid_Sudamericano_1969()
static TEllipsoid Ellipsoid_Airy_1830()
TDatum1DTransf(const double _dX, const double _dY, const double _DZ, const double _dS)
double dS
Scale factor (in ppm) (Scale is 1+dS/1e6)
Parameters for a topographic transfomation.
TDatum7Params(const double _dX, const double _dY, const double _dZ, const double _Rx, const double _Ry, const double _Rz, const double _dS)
Parameters for a topographic transfomation.
std::string std::string format(std::string_view fmt, ARGS &&... args)
double Rx
Rotation components.
std::string name
the ellipsoid name
TDatumHelmert3D(const double _dX, const double _dY, const double _dZ, const double _Rx, const double _Ry, const double _Rz, const double _dS)
A set of geodetic coordinates: latitude, longitude and height, defined over a given geoid (typically...
double dS
Scale factor (in ppm) (Scale is 1+dS/1e6)
TEllipsoid(const double _sa, const double _sb, const std::string &_name)
bool operator!=(const TCoords &a, const TCoords &o)
bool operator==(const TCoords &a, const TCoords &o)
double dS
Scale factor (Scale is 1+dS)
static TEllipsoid Ellipsoid_Krasovsky_1940()
double Xp
To be substracted to the input point.
void getDegMinSec(int °rees, int &minutes, double &seconds) const
Return the Deg Min' Sec'' representation of this value.
double Rx
Rotation components.
void setFromDecimal(const double dec)
Set from a decimal value (XX.YYYYY) in degrees.
A coordinate that is stored as a simple "decimal" angle in degrees, but can be retrieved/set in the f...
double dSx
Scale factor in X and Y.
std::string getAsString() const
Return a std::string in the format "DEGdeg MIN' SEC''".
TDatumHelmert2D_TOPCON(const double _a, const double _b, const double _c, const double _d)
double Rx
Rotation components (in secs)
Parameters for a topographic transfomation.
static TEllipsoid Ellipsoid_WGS66()
double sb
smallest semiaxis of the reference ellipsoid (in meters)
Parameters for a topographic transfomation.
static TEllipsoid Ellipsoid_Nuevo_Internacional_1967()
TCoords lon
Longitude (in degrees)
static TEllipsoid Ellipsoid_Helmert_1906()
static TEllipsoid Ellipsoid_Internacional_1909()
constexpr double DEG2RAD(const double x)
Degrees to radians.
static TEllipsoid Ellipsoid_Mercury_1960()
static TEllipsoid Ellipsoid_Mercury_Modificado_1968()
static TEllipsoid Ellipsoid_WGS72()
double dS
Scale factor (Scale is 1+dS)
static TEllipsoid Ellipsoid_Hough_1960()
TPoint3D_< double > TPoint3D
Lightweight 3D point.
static TEllipsoid Ellipsoid_Walbeck_1817()
static TEllipsoid Ellipsoid_Clarke_1880()
static TEllipsoid Ellipsoid_GRS80()
double dS
Scale factor (Scale is 1+dS)
static TEllipsoid Ellipsoid_WGS84()
TCoords(const int _deg, const int _min, const double _sec)
TDatum10Params(const double _dX, const double _dY, const double _dZ, const double _Xp, const double _Yp, const double _Zp, const double _Rx, const double _Ry, const double _Rz, const double _dS)
TCoords(const double dec)
TGeodeticCoords(const double _lat, const double _lon, const double _height)
TDatumTransfInterpolation(const double _dX, const double _dY, const double _dSx, const double _dSy, const double _beta)
double beta
Distortion angle.
static TEllipsoid Ellipsoid_Hayford_1909()
Parameters for a topographic transfomation.
mrpt::vision::TStereoCalibResults out
TDatum7Params_TOPCON(const double _dX, const double _dY, const double _dZ, const double _m11, const double _m12, const double _m13, const double _m21, const double _m22, const double _m23, const double _m31, const double _m32, const double _m33, const double _dS)
TDatumHelmert2D(const double _dX, const double _dY, const double _alpha, const double _dS, const double _Xp, const double _Yp)
std::ostream & operator<<(std::ostream &out, const TCoords &o)
void setDegMinSec(const int degrees, const int minutes, const double seconds)
Set the coordinate from its Deg Min' Deg'' parts.
double height
Geodetic height (in meters)
static TEllipsoid Ellipsoid_Clarke_1866()
static TEllipsoid Ellipsoid_Bessel_1841()
TDatumHelmert3D_TOPCON(const double _a, const double _b, const double _c, const double _d, const double _e, const double _f, const double _g)
This namespace provides topography helper functions, coordinate transformations.
double decimal_value
Also obtained directly through the double(void) operator using a TCoords anywhere were a double is ex...
static TEllipsoid Ellipsoid_Internacional_1924()
Parameters for a topographic transfomation.
Parameters for a topographic transfomation.
TCoords lat
Latitude (in degrees)
static TEllipsoid Ellipsoid_Airy_Modificado_1965()