class Bonxai::VoxelGrid::Accessor
Class to be used to set and get values of a cell of the Grid.
It uses caching to speed up computation.
Create an instance of this object with the method VoxelGrid::greateAccessor()
#include <mrpt/maps/bonxai/bonxai.hpp> class Accessor { public: // construction Accessor(VoxelGrid& grid); // methods bool setValue(const CoordT& coord, const DataT& value); DataT* value(const CoordT& coord, bool create_if_missing = false); bool setCellOn(const CoordT& coord, const DataT& default_value = DataT()); bool setCellOff(const CoordT& coord); const InnerGrid* lastInnerdGrid() const; const LeafGrid* lastLeafGrid() const; LeafGrid* getLeafGrid(const CoordT& coord, bool create_if_missing = false); };
Methods
bool setValue(const CoordT& coord, const DataT& value)
setValue of a cell.
If the cell did not exist, it is created.
Parameters:
coord |
coordinate of the cell |
value |
value to set. |
Returns:
the previous state of the cell (ON = true).
DataT* value(const CoordT& coord, bool create_if_missing = false)
value getter.
Parameters:
coord |
coordinate of the cell. |
Returns:
return the pointer to the value or nullptr if not set.
bool setCellOn(const CoordT& coord, const DataT& default_value = DataT())
setCellOn is similar to setValue, but the value is changed only if the cell has been created, otherwise, the previous value is used.
Parameters:
coord |
coordinate of the cell. |
default_value |
default value of the cell. Use only if the cell did not exist before. |
Returns:
the previous state of the cell (ON = true).
bool setCellOff(const CoordT& coord)
setCellOff will disable a cell without deleting its content.
Parameters:
coord |
coordinate of the cell. |
Returns:
the previous state of the cell (ON = true).
const InnerGrid* lastInnerdGrid() const
lastInnerdGrid returns the pointer to the InnerGrid in the cache.
const LeafGrid* lastLeafGrid() const
lastLeafGrid returns the pointer to the LeafGrid in the cache.
LeafGrid* getLeafGrid(const CoordT& coord, bool create_if_missing = false)
getLeafGrid gets the pointer to the LeafGrid containing the cell.
It is the basic class used by setValue() and value().
Parameters:
coord |
Coordinate of the cell. |
create_if_missing |
if true, create the Root, Inner and Leaf, if not present. |