Class VolumetricDataStructureBase

Inheritance Relationships

Derived Types

Class Documentation

class VolumetricDataStructureBase

Subclassed by wavemap::HashedBlocks, wavemap::HashedChunkedWaveletOctree, wavemap::HashedWaveletOctree, wavemap::VolumetricOctree, wavemap::WaveletOctree

Public Types

using Ptr = std::shared_ptr<VolumetricDataStructureBase>
using ConstPtr = std::shared_ptr<const VolumetricDataStructureBase>
using IndexedLeafVisitorFunction = std::function<void(const OctreeIndex &index, FloatingPoint value)>

Public Functions

inline explicit VolumetricDataStructureBase(const VolumetricDataStructureConfig &config)
virtual ~VolumetricDataStructureBase() = default
virtual bool empty() const = 0
virtual size_t size() const = 0
virtual void threshold() = 0
virtual void prune() = 0
inline virtual void pruneSmart()
virtual void clear() = 0
inline FloatingPoint getMinCellWidth() const
inline FloatingPoint getMinLogOdds() const
inline FloatingPoint getMaxLogOdds() const
virtual size_t getMemoryUsage() const = 0
virtual IndexElement getTreeHeight() const = 0
virtual Index3D getMinIndex() const = 0
virtual Index3D getMaxIndex() const = 0
virtual FloatingPoint getCellValue(const Index3D &index) const = 0
virtual void setCellValue(const Index3D &index, FloatingPoint new_value) = 0
virtual void addToCellValue(const Index3D &index, FloatingPoint update) = 0
virtual void forEachLeaf(IndexedLeafVisitorFunction visitor_fn) const = 0

Public Static Attributes

static constexpr int kDim = 3

Protected Functions

inline FloatingPoint clamp(FloatingPoint value) const
inline FloatingPoint clampedAdd(FloatingPoint value, FloatingPoint update) const

Protected Attributes

const VolumetricDataStructureConfig config_