MRPT  1.9.9
mrpt::maps::CHeightGridMap2D_Base Class Referenceabstract

Detailed Description

Virtual base class for Digital Elevation Model (DEM) maps.

See derived classes for details. This class implements those operations which are especific to DEMs.

Definition at line 22 of file CHeightGridMap2D_Base.h.

#include <mrpt/maps/CHeightGridMap2D_Base.h>

Inheritance diagram for mrpt::maps::CHeightGridMap2D_Base:
Inheritance graph

Classes

struct  TPointInsertParams
 Extra params for insertIndividualPoint() More...
 

Public Member Functions

 CHeightGridMap2D_Base ()
 
virtual ~CHeightGridMap2D_Base ()
 
bool dem_internal_insertObservation (const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D *robotPose=nullptr)
 Internal method called by internal_insertObservation() More...
 
Specific API for Digital Elevation Model (DEM) maps
bool intersectLine3D (const mrpt::math::TLine3D &r1, mrpt::math::TObject3D &obj) const
 Gets the intersection between a 3D line and a Height Grid map (taking into account the different heights of each individual cell) More...
 
bool getMinMaxHeight (float &z_min, float &z_max) const
 Computes the minimum and maximum height in the grid. More...
 
virtual bool insertIndividualPoint (const double x, const double y, const double z, const TPointInsertParams &params=TPointInsertParams())=0
 Update the DEM with one new point. More...
 
virtual double dem_get_resolution () const =0
 
virtual size_t dem_get_size_x () const =0
 
virtual size_t dem_get_size_y () const =0
 
virtual bool dem_get_z_by_cell (const size_t cx, const size_t cy, double &z_out) const =0
 Get cell 'z' by (cx,cy) cell indices. More...
 
virtual bool dem_get_z (const double x, const double y, double &z_out) const =0
 Get cell 'z' (x,y) by metric coordinates. More...
 
virtual void dem_update_map ()=0
 Ensure that all observations are reflected in the map estimate. More...
 

Constructor & Destructor Documentation

◆ CHeightGridMap2D_Base()

CHeightGridMap2D_Base::CHeightGridMap2D_Base ( )

Definition at line 26 of file CHeightGridMap2D_Base.cpp.

◆ ~CHeightGridMap2D_Base()

CHeightGridMap2D_Base::~CHeightGridMap2D_Base ( )
virtual

Definition at line 27 of file CHeightGridMap2D_Base.cpp.

Member Function Documentation

◆ dem_get_resolution()

virtual double mrpt::maps::CHeightGridMap2D_Base::dem_get_resolution ( ) const
pure virtual

◆ dem_get_size_x()

virtual size_t mrpt::maps::CHeightGridMap2D_Base::dem_get_size_x ( ) const
pure virtual

◆ dem_get_size_y()

virtual size_t mrpt::maps::CHeightGridMap2D_Base::dem_get_size_y ( ) const
pure virtual

◆ dem_get_z()

virtual bool mrpt::maps::CHeightGridMap2D_Base::dem_get_z ( const double  x,
const double  y,
double &  z_out 
) const
pure virtual

Get cell 'z' (x,y) by metric coordinates.

Returns
false if out of bounds or un-observed cell.

Implemented in mrpt::maps::CHeightGridMap2D, and mrpt::maps::CHeightGridMap2D_MRF.

Referenced by intersectLine3D().

◆ dem_get_z_by_cell()

virtual bool mrpt::maps::CHeightGridMap2D_Base::dem_get_z_by_cell ( const size_t  cx,
const size_t  cy,
double &  z_out 
) const
pure virtual

Get cell 'z' by (cx,cy) cell indices.

Returns
false if out of bounds or un-observed cell.

Implemented in mrpt::maps::CHeightGridMap2D, and mrpt::maps::CHeightGridMap2D_MRF.

Referenced by getMinMaxHeight().

◆ dem_internal_insertObservation()

◆ dem_update_map()

virtual void mrpt::maps::CHeightGridMap2D_Base::dem_update_map ( )
pure virtual

Ensure that all observations are reflected in the map estimate.

Implemented in mrpt::maps::CHeightGridMap2D, and mrpt::maps::CHeightGridMap2D_MRF.

Referenced by dem_internal_insertObservation().

◆ getMinMaxHeight()

bool CHeightGridMap2D_Base::getMinMaxHeight ( float &  z_min,
float &  z_max 
) const

Computes the minimum and maximum height in the grid.

Returns
False if there is no observed cell yet.

Definition at line 28 of file CHeightGridMap2D_Base.cpp.

References dem_get_size_x(), dem_get_size_y(), dem_get_z_by_cell(), mrpt::keep_max(), and mrpt::keep_min().

Referenced by mrpt::maps::CHeightGridMap2D::getAs3DObject(), and intersectLine3D().

◆ insertIndividualPoint()

virtual bool mrpt::maps::CHeightGridMap2D_Base::insertIndividualPoint ( const double  x,
const double  y,
const double  z,
const TPointInsertParams params = TPointInsertParams() 
)
pure virtual

Update the DEM with one new point.

See also
mrpt::maps::CMetricMap::insertObservation() for inserting higher-level objects like 2D/3D LIDAR scans
Returns
true if updated OK, false if (x,y) is out of bounds

Implemented in mrpt::maps::CHeightGridMap2D, and mrpt::maps::CHeightGridMap2D_MRF.

Referenced by dem_internal_insertObservation().

◆ intersectLine3D()

bool CHeightGridMap2D_Base::intersectLine3D ( const mrpt::math::TLine3D r1,
mrpt::math::TObject3D obj 
) const

Gets the intersection between a 3D line and a Height Grid map (taking into account the different heights of each individual cell)

Definition at line 57 of file CHeightGridMap2D_Base.cpp.

References dem_get_resolution(), dem_get_z(), getMinMaxHeight(), mrpt::math::TObject3D::getPoint(), mrpt::math::intersect(), min, MRPT_END, MRPT_START, mrpt::math::TPoint3D::norm(), mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020