34 inline TCoords(
const int _deg,
const int _min,
const double _sec ) { setDegMinSec(_deg,_min,_sec); }
35 inline TCoords(
const double dec ) { setFromDecimal(dec); }
39 inline operator double(
void)
const {
return decimal_value; }
42 inline operator double& (void) {
return decimal_value; }
51 inline void getDegMinSec(
int °rees,
int &minutes,
double &seconds)
const
53 double aux =
std::abs(decimal_value);
55 minutes = (int)((aux - degrees)*60.0f);
56 seconds = ((aux - degrees)*60.0f - minutes)*60.0f;
57 if( decimal_value<0 ) degrees = -degrees;
61 inline void setDegMinSec(
const int degrees,
const int minutes,
const double seconds)
63 decimal_value =
std::abs(degrees)+minutes/60.0+seconds/3600.0;
64 if(degrees<0) decimal_value = - decimal_value;
72 getDegMinSec( deg,min,sec);
85 inline TEllipsoid() : sa( 6378137.0 ), sb( 6356752.314245 ), name(
"WGS84") {}
86 inline TEllipsoid(
const double _sa,
const double _sb,
const std::string &_name ) : sa(_sa), sb(_sb), name(_name) {}
124 TGeodeticCoords(
const double _lat,
const double _lon,
const double _height) :
lat(_lat),
lon(_lon),height(_height) {}
126 inline bool isClear()
const {
return lat.getDecimalValue()==0 &&
lon.getDecimalValue()==0 && height==0; }
147 const double _dX,
const double _dY,
const double _dZ,
148 const double _Rx,
const double _Ry,
const double _Rz,
150 dX(_dX), dY(_dY), dZ(_dZ)
162 double m11, m12, m13, m21, m22, m23, m31, m32, m33;
166 const double _dX,
const double _dY,
const double _dZ,
167 const double _m11,
const double _m12,
const double _m13,
168 const double _m21,
const double _m22,
const double _m23,
169 const double _m31,
const double _m32,
const double _m33,
171 dX(_dX), dY(_dY), dZ(_dZ), m11(_m11), m12(_m12), m13(_m13), m21(_m21), m22(_m22), m23(_m23), m31(_m31), m32(_m32), m33(_m33)
189 const double _dX,
const double _dY,
const double _dZ,
190 const double _Xp,
const double _Yp,
const double _Zp,
191 const double _Rx,
const double _Ry,
const double _Rz,
193 dX(_dX), dY(_dY), dZ(_dZ), Xp(_Xp), Yp(_Yp), Zp(_Zp)
213 const double _dX,
const double _dY,
214 const double _alpha,
const double _dS,
215 const double _Xp,
const double _Yp ) :
216 dX(_dX), dY(_dY), Xp(_Xp), Yp(_Yp)
228 const double _a,
const double _b,
229 const double _c,
const double _d ) :
230 a(_a), b(_b), c(_c), d(_d) {}
244 const double _dX,
const double _dY,
const double _dZ,
245 const double _Rx,
const double _Ry,
const double _Rz,
247 dX(_dX), dY(_dY), dZ(_dZ)
261 double a,b,c,d,e,f,g;
264 const double _a,
const double _b,
const double _c,
265 const double _d,
const double _e,
const double _f,
const double _g ) :
266 a(_a), b(_b), c(_c), d(_d), e(_e), f(_f), g(_g) { }
278 const double _dX,
const double _dY,
const double _DZ,
280 dX(_dX), dY(_dY), DZ(_DZ)
296 const double _dX,
const double _dY,
297 const double _dSx,
const double _dSy,
const double _beta ) :
mrpt::math::TPoint3D TUTMCoords
std::ostream TOPO_IMPEXP & operator<<(std::ostream &out, const TCoords &o)
bool TOPO_IMPEXP operator!=(const TCoords &a, const TCoords &o)
mrpt::math::TPoint3D TGeocentricCoords
bool TOPO_IMPEXP operator==(const TCoords &a, const TCoords &o)
double DEG2RAD(const double x)
Degrees to radians.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
A coordinate that is stored as a simple "decimal" angle in degrees, but can be retrieved/set in the f...
void setFromDecimal(const double dec)
Set from a decimal value (XX.YYYYY) in degrees.
TCoords(const int _deg, const int _min, const double _sec)
double getDecimalValue() const
Get the decimal value (XX.YYYYY), in degrees - you can also use the automatic conversion between TCoo...
void getDegMinSec(int °rees, int &minutes, double &seconds) const
Return the Deg Min' Sec'' representation of this value.
std::string getAsString() const
Return a std::string in the format "DEGdeg MIN' SEC''".
TCoords(const double dec)
void setDegMinSec(const int degrees, const int minutes, const double seconds)
Set the coordinate from its Deg Min' Deg'' parts.
double decimal_value
Also obtained directly through the double(void) operator using a TCoords anywhere were a double is ex...
Parameters for a topographic transfomation.
double dS
Scale factor (Scale is 1+dS)
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)
Parameters for a topographic transfomation.
double dS
Scale factor (Scale is 1+dS)
TDatum1DTransf(const double _dX, const double _dY, const double _DZ, const double _dS)
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)
double dS
Scale factor (in ppm) (Scale is 1+dS/1e6)
Parameters for a topographic transfomation.
double dS
Scale factor (in ppm) (Scale is 1+dS/1e6)
TDatum7Params(const double _dX, const double _dY, const double _dZ, const double _Rx, const double _Ry, const double _Rz, const double _dS)
TDatumHelmert2D_TOPCON(const double _a, const double _b, const double _c, const double _d)
Parameters for a topographic transfomation.
TDatumHelmert2D(const double _dX, const double _dY, const double _alpha, const double _dS, const double _Xp, const double _Yp)
Parameters for a topographic transfomation.
TDatumHelmert3D_TOPCON(const double _a, const double _b, const double _c, const double _d, const double _e, const double _f, const double _g)
Parameters for a topographic transfomation.
double dS
Scale factor (Scale is 1+dS)
TDatumHelmert3D(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.
TDatumTransfInterpolation(const double _dX, const double _dY, const double _dSx, const double _dSy, const double _beta)
double beta
Distortion angle.
static TEllipsoid Ellipsoid_WGS84()
static TEllipsoid Ellipsoid_Mercury_1960()
static TEllipsoid Ellipsoid_Walbeck_1817()
static TEllipsoid Ellipsoid_Fischer_1968()
static TEllipsoid Ellipsoid_Nuevo_Internacional_1967()
static TEllipsoid Ellipsoid_Clarke_1880()
static TEllipsoid Ellipsoid_Clarke_1866()
static TEllipsoid Ellipsoid_Krasovsky_1940()
static TEllipsoid Ellipsoid_WGS72()
static TEllipsoid Ellipsoid_Internacional_1924()
static TEllipsoid Ellipsoid_Hough_1960()
static TEllipsoid Ellipsoid_Bessel_1841()
static TEllipsoid Ellipsoid_Airy_1830()
static TEllipsoid Ellipsoid_Internacional_1909()
TEllipsoid(const double _sa, const double _sb, const std::string &_name)
static TEllipsoid Ellipsoid_Hayford_1909()
static TEllipsoid Ellipsoid_Fischer_1960()
std::string name
the ellipsoid name
static TEllipsoid Ellipsoid_GRS80()
static TEllipsoid Ellipsoid_Helmert_1906()
static TEllipsoid Ellipsoid_Sudamericano_1969()
static TEllipsoid Ellipsoid_WGS66()
double sa
largest semiaxis of the reference ellipsoid (in meters)
double sb
smallest semiaxis of the reference ellipsoid (in meters)
static TEllipsoid Ellipsoid_Airy_Modificado_1965()
static TEllipsoid Ellipsoid_Mercury_Modificado_1968()
A set of geodetic coordinates: latitude, longitude and height, defined over a given geoid (typically,...
TCoords lat
Latitude (in degrees)
double height
Geodetic height (in meters)
TGeodeticCoords(const double _lat, const double _lon, const double _height)
TCoords lon
Longitude (in degrees)