Ponca  aa50bfdf187919869239c5b44b748842569114c1
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::KdTree< DataPoint > Struct Template Reference

Abstract KdTree type with KdTreeDefaultTraits. More...

#include <kdTree.h>

+ Inheritance diagram for Ponca::KdTree< DataPoint >:
+ Collaboration diagram for Ponca::KdTree< DataPoint >:

Additional Inherited Members

- Public Types inherited from Ponca::KdTreeBase< KdTreeDefaultTraits< DataPoint > >
using DataPoint = typename Traits::DataPoint
 DataPoint given by user via Traits.
 
using IndexType = typename Traits::IndexType
 Type used to index points into the PointContainer.
 
using LeafSizeType = typename Traits::LeafSizeType
 Type used to store the size of leaf nodes.
 
using PointContainer = typename Traits::PointContainer
 Container for DataPoint used inside the KdTree.
 
using IndexContainer = typename Traits::IndexContainer
 Container for indices used inside the KdTree.
 
using NodeIndexType = typename Traits::NodeIndexType
 Type used to index nodes into the NodeContainer.
 
using NodeType = typename Traits::NodeType
 Type of nodes used inside the KdTree.
 
using NodeContainer = typename Traits::NodeContainer
 Container for nodes used inside the KdTree.
 
using Scalar = typename DataPoint::Scalar
 Scalar given by user via DataPoint.
 
using VectorType = typename DataPoint::VectorType
 VectorType given by user via DataPoint.
 
using AabbType = typename NodeType::AabbType
 Bounding box type given by user via NodeType.
 
- Public Member Functions inherited from Ponca::KdTreeBase< KdTreeDefaultTraits< DataPoint > >
void build (PointUserContainer &&points, Converter c)
 Generate a tree from a custom contained type converted using the specified converter.
 
void build (PointUserContainer &&points)
 Generate a tree from a custom contained type converted using DefaultConverter.
 
void build (PointUserContainer &&points, Converter c)
 
void clear ()
 Clear tree data.
 
NodeIndexType node_count () const
 
IndexType sample_count () const
 
IndexType point_count () const
 
NodeIndexType leaf_count () const
 
PointContainerpoints ()
 
const PointContainerpoints () const
 
const NodeContainernodes () const
 
const IndexContainersamples () const
 
LeafSizeType min_cell_size () const
 Read leaf min size.
 
void set_min_cell_size (LeafSizeType min_cell_size)
 Write leaf min size.
 
IndexType pointFromSample (IndexType sample_index) const
 Return the point index associated with the specified sample index.
 
DataPointpointDataFromSample (IndexType sample_index)
 Return the DataPoint associated with the specified sample index.
 
const DataPointpointDataFromSample (IndexType sample_index) const
 Return the DataPoint associated with the specified sample index.
 
KdTreeKNearestPointQuery< KdTreeDefaultTraits< DataPoint > > k_nearest_neighbors (const VectorType &point, IndexType k) const
 
KdTreeKNearestIndexQuery< KdTreeDefaultTraits< DataPoint > > k_nearest_neighbors (IndexType index, IndexType k) const
 
KdTreeNearestPointQuery< KdTreeDefaultTraits< DataPoint > > nearest_neighbor (const VectorType &point) const
 
KdTreeNearestIndexQuery< KdTreeDefaultTraits< DataPoint > > nearest_neighbor (IndexType index) const
 
KdTreeRangePointQuery< KdTreeDefaultTraits< DataPoint > > range_neighbors (const VectorType &point, Scalar r) const
 
KdTreeRangeIndexQuery< KdTreeDefaultTraits< DataPoint > > range_neighbors (IndexType index, Scalar r) const
 
bool valid () const
 
void print (std::ostream &os, bool verbose=false) const
 
void buildWithSampling (PointUserContainer &&points, IndexUserContainer sampling, Converter c)
 
- Static Public Attributes inherited from Ponca::KdTreeBase< KdTreeDefaultTraits< DataPoint > >
static constexpr std::size_t MAX_NODE_COUNT
 The maximum number of nodes that the kd-tree can have.
 
static constexpr std::size_t MAX_POINT_COUNT
 The maximum number of points that can be stored in the kd-tree.
 
static constexpr int MAX_DEPTH
 The maximum depth of the kd-tree.
 
static constexpr bool SUPPORTS_SUBSAMPLING
 
- Protected Member Functions inherited from Ponca::KdTreeBase< KdTreeDefaultTraits< DataPoint > >
void buildWithSampling (PointUserContainer &&points, IndexUserContainer sampling, Converter c)
 Generate a tree sampled from a custom contained type converted using a Converter
 
void buildWithSampling (PointUserContainer &&points, IndexUserContainer sampling)
 Generate a tree sampled from a custom contained type converted using a KdTreeBase::DefaultConverter.
 
- Protected Attributes inherited from Ponca::KdTreeBase< KdTreeDefaultTraits< DataPoint > >
PointContainer m_points
 
NodeContainer m_nodes
 
IndexContainer m_indices
 
LeafSizeType m_min_cell_size
 Minimal number of points per leaf.
 
NodeIndexType m_leaf_count
 Number of leaves in the Kdtree (computed during construction)
 

Detailed Description

template<typename DataPoint>
struct Ponca::KdTree< DataPoint >

Abstract KdTree type with KdTreeDefaultTraits.

See also
KdTreeDefaultTraits for the default trait interface documentation.
KdTreeBase for complete API
Warning
It is not possible to create instances of type KdTree. This type must only be used to store pointers to KdTreeDense or KdTreeSparse objects, e.g. the declaration
// Abstract pointer type that can receive KdTreeSparse or KdTreeDense objects
KdTree<DataPoint> *kdtree {nullptr};
Abstract KdTree type with KdTreeDefaultTraits.
Definition: kdTree.h:47
// assign sparse
kdtree = new KdTreeSparse<DataPoint> (points, sampling);
[KdTreeDense type definition]
Definition: kdTree.h:84
// assign dense
kdtree = new KdTreeDense<DataPoint> (points);
[KdTree type definition]
Definition: kdTree.h:66
[KdTree type definition]

Definition at line 47 of file kdTree.h.