namespace mrpt::topography
Overview
This namespace provides topography helper functions, coordinate transformations.
namespace topography { // typedefs typedef mrpt::math::TPoint3D TUTMCoords; typedef mrpt::math::TPoint3D TGeocentricCoords; // structs struct TCoords; struct TDatum10Params; struct TDatum1DTransf; struct TDatum7Params; struct TDatum7Params_TOPCON; struct TDatumHelmert2D; struct TDatumHelmert2D_TOPCON; struct TDatumHelmert3D; struct TDatumHelmert3D_TOPCON; struct TDatumTransfInterpolation; struct TEllipsoid; struct TGeodeticCoords; struct TPathFromRTKInfo; // global functions bool operator == ( const TCoords& a, const TCoords& o ); bool operator != ( const TCoords& a, const TCoords& o ); std::ostream& operator << ( std::ostream& out, const TCoords& o ); bool operator == ( const TGeodeticCoords& a, const TGeodeticCoords& o ); bool operator != ( const TGeodeticCoords& a, const TGeodeticCoords& o ); void geodeticToENU_WGS84(const TGeodeticCoords& in_coords, mrpt::math::TPoint3D& out_ENU_point, const TGeodeticCoords& in_coords_origin); void ENUToGeocentric( const mrpt::math::TPoint3D& in_ENU_point, const TGeodeticCoords& in_coords_origin, TGeocentricCoords& out_coords, const TEllipsoid& ellip ); void geocentricToENU_WGS84(const mrpt::math::TPoint3D& in_geocentric_point, mrpt::math::TPoint3D& out_ENU_point, const TGeodeticCoords& in_coords_origin); void geocentricToENU_WGS84( const std::vector<mrpt::math::TPoint3D>& in_geocentric_points, std::vector<mrpt::math::TPoint3D>& out_ENU_points, const TGeodeticCoords& in_coords_origin ); void geodeticToGeocentric_WGS84(const TGeodeticCoords& in_coords, mrpt::math::TPoint3D& out_point); void geodeticToGeocentric(const TGeodeticCoords& in_coords, TGeocentricCoords& out_point, const TEllipsoid& ellip); void geocentricToGeodetic(const TGeocentricCoords& in_point, TGeodeticCoords& out_coords, const TEllipsoid& ellip = TEllipsoid::Ellipsoid_WGS84()); void transform7params(const mrpt::math::TPoint3D& in_point, const TDatum7Params& in_datum, mrpt::math::TPoint3D& out_point); void transform7params_TOPCON(const mrpt::math::TPoint3D& in_point, const TDatum7Params_TOPCON& in_datum, mrpt::math::TPoint3D& out_point); void transform10params(const mrpt::math::TPoint3D& in_point, const TDatum10Params& in_datum, mrpt::math::TPoint3D& out_point); void transformHelmert2D(const mrpt::math::TPoint2D& p, const TDatumHelmert2D& d, mrpt::math::TPoint2D& o); void transformHelmert2D_TOPCON(const mrpt::math::TPoint2D& p, const TDatumHelmert2D_TOPCON& d, mrpt::math::TPoint2D& o); void transformHelmert3D(const mrpt::math::TPoint3D& p, const TDatumHelmert3D& d, mrpt::math::TPoint3D& o); void transformHelmert3D_TOPCON(const mrpt::math::TPoint3D& p, const TDatumHelmert3D_TOPCON& d, mrpt::math::TPoint3D& o); void transform1D(const mrpt::math::TPoint3D& p, const TDatum1DTransf& d, mrpt::math::TPoint3D& o); void transfInterpolation(const mrpt::math::TPoint3D& p, const TDatumTransfInterpolation& d, mrpt::math::TPoint3D& o); void UTMToGeodetic( double X, double Y, int zone, char hem, double& out_lon, double& out_lat, const TEllipsoid& ellip = TEllipsoid::Ellipsoid_WGS84() ); void UTMToGeodetic( const TUTMCoords& UTMCoords, int zone, char hem, TGeodeticCoords& GeodeticCoords, const TEllipsoid& ellip = TEllipsoid::Ellipsoid_WGS84() ); void GeodeticToUTM( double in_latitude_degrees, double in_longitude_degrees, double& out_UTM_x, double& out_UTM_y, int& out_UTM_zone, char& out_UTM_latitude_band, const TEllipsoid& ellip = TEllipsoid::Ellipsoid_WGS84() ); void geodeticToUTM( const TGeodeticCoords& GeodeticCoords, TUTMCoords& UTMCoords, int& UTMZone, char& UTMLatitudeBand, const TEllipsoid& ellip = TEllipsoid::Ellipsoid_WGS84() ); void GeodeticToUTM( const TGeodeticCoords& GeodeticCoords, TUTMCoords& UTMCoords, int& UTMZone, char& UTMLatitudeBand, const TEllipsoid& ellip = TEllipsoid::Ellipsoid_WGS84() ); void ENU_axes_from_WGS84( double in_longitude_reference_degrees, double in_latitude_reference_degrees, double in_height_reference_meters, mrpt::math::TPose3D& out_ENU, bool only_angles = false ); void ENU_axes_from_WGS84(const TGeodeticCoords& in_coords, mrpt::math::TPose3D& out_ENU, bool only_angles = false); void path_from_rtk_gps( mrpt::poses::CPose3DInterpolator& robot_path, const mrpt::obs::CRawlog& rawlog, size_t rawlog_first, size_t rawlog_last, bool isGUI = false, bool disableGPSInterp = false, int path_smooth_filter_size = 2, TPathFromRTKInfo* outInfo = nullptr ); void registerAllClasses_mrpt_topography(); } // namespace topography