Template Class VoxelGrid
Defined in File bonxai.hpp
Nested Relationships
Nested Types
Class Documentation
-
template<typename DataT>
class VoxelGrid Public Types
Public Functions
-
inline explicit VoxelGrid(double voxel_size, uint8_t inner_bits = 2, uint8_t leaf_bits = 3)
VoxelGrid constructor.
-
inline uint32_t innetBits() const
-
inline uint32_t leafBits() const
-
inline double voxelSize() const
-
inline size_t memUsage() const
getMemoryUsage returns the amount of bytes used by this data structure
-
inline void releaseUnusedMemory()
Try freeing memory; this will discard grids where all the cells are OFF. Note that the memory release is NOT guaranteed, since we are using a memory pool too. CAREFULL: This will invalidate all the existing Accessors (you need to create new ones).
-
inline size_t activeCellsCount() const
Return the total number of active cells.
-
inline CoordT posToCoord(double x, double y, double z) const
posToCoord is used to convert real coordinates to CoordT indices.
-
inline CoordT posToCoord(const Point3D &pos) const
posToCoord is used to convert real coordinates to CoordT indices.
-
template<class VisitorFunction>
inline void forEachCell(VisitorFunction func) const forEachCell apply a function of type:
to each active element of the grid.void(const DataT&, const CoordT&)
-
template<class VisitorFunction>
inline void forEachCell(VisitorFunction func) forEachCell apply a function of type:
to each active element of the grid.void(DataT&, const CoordT&)
-
inline void clear(ClearOption opt)
-
inline ConstAccessor createConstAccessor() const
-
class Accessor : public Bonxai::VoxelGrid<DataT>::ConstAccessor
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::createAccessor()
Public Functions
-
inline 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).
-
inline 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.
-
inline 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).
-
inline 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).
-
inline 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.
-
inline bool setValue(const CoordT &coord, const DataT &value)
-
class ConstAccessor
Subclassed by Bonxai::VoxelGrid< DataT >::Accessor
Public Functions
-
inline const DataT *value(const CoordT &coord) const
value getter.
- Parameters:
coord – coordinate of the cell.
- Returns:
return the pointer to the value or nullptr if not set.
-
inline bool isCellOn(const CoordT &coord) const
isCellOn only check if a cell is in “On” state
- Parameters:
coordinate – of the cell.
-
inline const InnerGrid *lastInnerGrid() const
lastInnerGrid returns the pointer to the InnerGrid in the cache.
Protected Attributes
-
inline const DataT *value(const CoordT &coord) const
-
inline explicit VoxelGrid(double voxel_size, uint8_t inner_bits = 2, uint8_t leaf_bits = 3)