37 inline TCoords(
const int _deg,
const int _min,
const double _sec ) { setDegMinSec(_deg,_min,_sec); }
38 inline TCoords(
const double dec ) { setFromDecimal(dec); }
42 inline operator double(
void)
const {
return decimal_value; }
45 inline operator double& (void) {
return decimal_value; }
54 inline void getDegMinSec(
int °rees,
int &minutes,
double &seconds)
const 56 double aux =
std::abs(decimal_value);
58 minutes = (int)((aux - degrees)*60.0f);
59 seconds = ((aux - degrees)*60.0f - minutes)*60.0f;
60 if( decimal_value<0 ) degrees = -degrees;
64 inline void setDegMinSec(
const int degrees,
const int minutes,
const double seconds)
66 decimal_value =
std::abs(degrees)+minutes/60.0+seconds/3600.0;
67 if(degrees<0) decimal_value = - decimal_value;
75 getDegMinSec( deg,min,sec);
88 inline TEllipsoid() : sa( 6378137.0 ), sb( 6356752.314245 ), name(
"WGS84") {}
89 inline TEllipsoid(
const double _sa,
const double _sb,
const string _name ) : sa(_sa), sb(_sb), name(_name) {}
128 TGeodeticCoords(
const double _lat,
const double _lon,
const double _height) : lat(_lat),lon(_lon),height(_height) {}
130 inline bool isClear()
const {
return lat.getDecimalValue()==0 && lon.getDecimalValue()==0 && height==0; }
151 const double _dX,
const double _dY,
const double _dZ,
152 const double _Rx,
const double _Ry,
const double _Rz,
154 dX(_dX), dY(_dY), dZ(_dZ)
166 double m11, m12, m13, m21, m22, m23, m31, m32,
m33;
170 const double _dX,
const double _dY,
const double _dZ,
171 const double _m11,
const double _m12,
const double _m13,
172 const double _m21,
const double _m22,
const double _m23,
173 const double _m31,
const double _m32,
const double _m33,
175 dX(_dX), dY(_dY), dZ(_dZ), m11(_m11), m12(_m12), m13(_m13), m21(_m21), m22(_m22), m23(_m23), m31(_m31), m32(_m32), m33(_m33)
193 const double _dX,
const double _dY,
const double _dZ,
194 const double _Xp,
const double _Yp,
const double _Zp,
195 const double _Rx,
const double _Ry,
const double _Rz,
197 dX(_dX), dY(_dY), dZ(_dZ), Xp(_Xp), Yp(_Yp), Zp(_Zp)
217 const double _dX,
const double _dY,
218 const double _alpha,
const double _dS,
219 const double _Xp,
const double _Yp ) :
220 dX(_dX), dY(_dY), Xp(_Xp), Yp(_Yp)
232 const double _a,
const double _b,
233 const double _c,
const double _d ) :
234 a(_a), b(_b), c(_c), d(_d) {}
248 const double _dX,
const double _dY,
const double _dZ,
249 const double _Rx,
const double _Ry,
const double _Rz,
251 dX(_dX), dY(_dY), dZ(_dZ)
265 double a,b,c,d,e,f,
g;
268 const double _a,
const double _b,
const double _c,
269 const double _d,
const double _e,
const double _f,
const double _g ) :
270 a(_a), b(_b), c(_c), d(_d), e(_e), f(_f), g(_g) { }
282 const double _dX,
const double _dY,
const double _DZ,
284 dX(_dX), dY(_dY), DZ(_DZ)
300 const double _dX,
const double _dY,
301 const double _dSx,
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()
bool TOPO_IMPEXP operator==(const TCoords &a, const TCoords &o)
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
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.
double Rz
Rotation components.
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 Rz
Rotation components (in secs)
double dS
Scale factor (in ppm) (Scale is 1+dS/1e6)
double dSy
Scale factor in X and Y.
double dS
Scale factor (Scale is 1+dS)
string name
the ellipsoid name
TEllipsoid(const double _sa, const double _sb, const string _name)
static TEllipsoid Ellipsoid_Krasovsky_1940()
void getDegMinSec(int °rees, int &minutes, double &seconds) const
Return the Deg Min' Sec'' representation of this value.
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...
std::string getAsString() const
Return a string in the format "DEGdeg MIN' SEC''".
TDatumHelmert2D_TOPCON(const double _a, const double _b, const double _c, const double _d)
Parameters for a topographic transfomation.
static TEllipsoid Ellipsoid_WGS66()
double sb
smallest semiaxis of the reference ellipsoid (in meters)
Parameters for a topographic transfomation.
double Rz
Rotation components.
static TEllipsoid Ellipsoid_Nuevo_Internacional_1967()
TCoords lon
Longitude (in degrees)
static TEllipsoid Ellipsoid_Helmert_1906()
mrpt::math::TPoint3D TGeocentricCoords
static TEllipsoid Ellipsoid_Internacional_1909()
double Zp
To be substracted to the input point.
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()
static TEllipsoid Ellipsoid_Walbeck_1817()
static TEllipsoid Ellipsoid_Clarke_1880()
static TEllipsoid Ellipsoid_GRS80()
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
double dS
Scale factor (Scale is 1+dS)
static TEllipsoid Ellipsoid_WGS84()
TCoords(const int _deg, const int _min, const double _sec)
std::ostream TOPO_IMPEXP & operator<<(std::ostream &out, const TCoords &o)
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)
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
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.
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)
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()
mrpt::math::TPoint3D TUTMCoords
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)
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)
bool TOPO_IMPEXP operator!=(const TCoords &a, const TCoords &o)
static TEllipsoid Ellipsoid_Airy_Modificado_1965()