Class ClassifiedMap

Nested Relationships

Nested Types

Class Documentation

class ClassifiedMap

Public Types

using HeightType = IndexElement
using BlockHashMap = OctreeBlockHash<NodeData>
using Block = BlockHashMap::Block
using Node = BlockHashMap::Node
using Ptr = std::shared_ptr<ClassifiedMap>
using ConstPtr = std::shared_ptr<const ClassifiedMap>
using IndexedLeafVisitorFunction = std::function<void(const OctreeIndex &index, Occupancy::Mask occupancy)>

Public Functions

ClassifiedMap(FloatingPoint min_cell_width, IndexElement tree_height, const OccupancyClassifier &classifier)
ClassifiedMap(const HashedWaveletOctree &occupancy_map, const OccupancyClassifier &classifier)
ClassifiedMap(const HashedWaveletOctree &occupancy_map, const OccupancyClassifier &classifier, const HashedBlocks &esdf_map, FloatingPoint robot_radius)
inline bool empty() const
inline FloatingPoint getMinCellWidth() const
inline IndexElement getTreeHeight() const
Index3D getMinIndex() const
Index3D getMaxIndex() const
inline Index3D getMinBlockIndex() const
inline Index3D getMaxBlockIndex() const
inline IndexElement getLastResultHeight() const
void update(const HashedWaveletOctree &occupancy_map)
void update(const HashedWaveletOctree &occupancy_map, const HashedBlocks &esdf_map, FloatingPoint robot_radius)
inline bool has(const Index3D &index, Occupancy::Id occupancy_type) const
inline bool has(const OctreeIndex &index, Occupancy::Id occupancy_type) const
inline bool has(const Index3D &index, Occupancy::Mask occupancy_mask) const
inline bool has(const OctreeIndex &index, Occupancy::Mask occupancy_mask) const
inline bool isFully(const Index3D &index, Occupancy::Id occupancy_type) const
inline bool isFully(const OctreeIndex &index, Occupancy::Id occupancy_type) const
inline bool isFully(const Index3D &index, Occupancy::Mask occupancy_mask) const
inline bool isFully(const OctreeIndex &index, Occupancy::Mask occupancy_mask) const
inline bool hasBlock(const Index3D &block_index) const
inline const Block *getBlock(const Index3D &block_index) const
inline const BlockHashMap &getBlockMap() const
inline bool hasNode(const OctreeIndex &index) const
inline const Node *getNode(const OctreeIndex &index) const
inline std::pair<const Node*, HeightType> getNodeOrAncestor(const OctreeIndex &index) const
inline bool hasValue(const OctreeIndex &index) const
inline std::optional<Occupancy::Mask> getValue(const OctreeIndex &index) const
std::pair<std::optional<Occupancy::Mask>, HeightType> getValueOrAncestor(const OctreeIndex &index) const
inline auto &getHashMap()
inline const auto &getHashMap() const
template<typename IndexedBlockVisitor>
void forEachBlock(IndexedBlockVisitor visitor_fn) const
void forEachLeaf(IndexedLeafVisitorFunction visitor_fn, IndexElement termination_height = 0) const
inline void forEachLeafMatching(Occupancy::Id occupancy_type, IndexedLeafVisitorFunction visitor_fn, IndexElement termination_height = 0) const
void forEachLeafMatching(Occupancy::Mask occupancy_mask, IndexedLeafVisitorFunction visitor_fn, IndexElement termination_height = 0) const

Public Static Attributes

static constexpr int kDim = 3
struct NodeData

Public Functions

inline Occupancy::Mask occupancyMask() const
inline Occupancy::Mask childOccupancyMask(NdtreeIndexRelativeChild child_idx) const

Public Members

ChildBitset has_free
ChildBitset has_occupied
ChildBitset has_unobserved