Class WaveletOctree

Inheritance Relationships

Base Type

Class Documentation

class WaveletOctree : public wavemap::MapBase

Public Types

using Ptr = std::shared_ptr<WaveletOctree>
using ConstPtr = std::shared_ptr<const WaveletOctree>
using Config = WaveletOctreeConfig
using Coefficients = HaarCoefficients<FloatingPoint, kDim>
using Transform = HaarTransform<FloatingPoint, kDim>
using NodeType = NdtreeNode<typename Coefficients::Details, kDim>

Public Functions

inline explicit WaveletOctree(const WaveletOctreeConfig &config)
inline virtual bool empty() const override

Whether the map is empty.

inline virtual size_t size() const override

The number of cells or nodes in the map.

virtual void threshold() override

Threshold the occupancy values of all cells in the map to stay within the range specified by its min_log_odds and max_log_odds.

virtual void prune() override

Free up memory by pruning nodes that are no longer needed.

Note

Implementations of this pruning operation should be lossless and does not alter the estimated occupancy posterior.

inline virtual void clear() override

Erase all cells in the map.

inline OctreeIndex::ChildArray getFirstChildIndices() const
virtual Index3D getMinIndex() const override

Index of the minimum corner of the map’s Axis Aligned Bounding Box.

virtual Index3D getMaxIndex() const override

Index of the maximum corner of the map’s Axis Aligned Bounding Box.

inline Index3D getMinPossibleIndex() const
inline Index3D getMaxPossibleIndex() const
inline virtual IndexElement getTreeHeight() const override

Height of the octree used to store the map.

Note

This value is only defined for multi-resolution maps.

inline const WaveletOctreeConfig &getConfig()
inline virtual FloatingPoint getCellValue(const Index3D &index) const override

Query the value of the map at a given index.

inline FloatingPoint getCellValue(const OctreeIndex &index) const
inline virtual void setCellValue(const Index3D &index, FloatingPoint new_value) override

Set the value of the map at a given index.

inline void setCellValue(const OctreeIndex &index, FloatingPoint new_value)
inline virtual void addToCellValue(const Index3D &index, FloatingPoint update) override

Increment the value of the map at a given index.

inline void addToCellValue(const OctreeIndex &index, FloatingPoint update)
virtual void forEachLeaf(typename MapBase::IndexedLeafVisitorFunction visitor_fn) const override
inline Coefficients::Scale &getRootScale()
inline const Coefficients::Scale &getRootScale() const
inline NodeType &getRootNode()
inline const NodeType &getRootNode() const
template<TraversalOrder traversal_order>
inline auto getNodeIterator()
template<TraversalOrder traversal_order>
inline auto getNodeIterator() const
inline virtual size_t getMemoryUsage() const override

The amount of memory used by the map, in bytes.

Public Static Attributes

static constexpr bool kRequiresExplicitThresholding = true