Ponca  eb7239a9c07e156fb1edc6faac7fe89e2b256bda
Point Cloud Analysis library
Loading...
Searching...
No Matches
Ponca::KdTreeSparseBase< Traits > Class Template Reference

Customizable base class for KdTreeSparse datastructure. More...

#include <kdTree.h>

Inheritance diagram for Ponca::KdTreeSparseBase< Traits >:
Collaboration diagram for Ponca::KdTreeSparseBase< Traits >:

Public Member Functions

 KdTreeSparseBase ()=default
 Default constructor creating an empty tree.
template<typename PointUserContainer>
 KdTreeSparseBase (PointUserContainer &&points)
 Constructor generating a tree from a custom contained type converted using a Traits::ContainerConverter.
template<typename PointUserContainer, typename IndexUserContainer>
 KdTreeSparseBase (PointUserContainer &&points, IndexUserContainer sampling)
 Constructor generating a tree sampled from a custom contained type converted using a Traits::ContainerConverter.
void buildWithSampling (PointUserContainer &&points, IndexUserContainer &&sampling, PointConverter 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.
Public Member Functions inherited from Ponca::KdTreeBase< Traits >
void build (PointUserContainer &&points, PointConverter 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.
PONCA_MULTIARCH_HOST void build (PointUserContainer &&points, PointConverter c)
PONCA_MULTIARCH_HOST void buildWithSampling (PointUserContainer &&points, IndexUserContainer &&sampling, PointConverter c)
Public Member Functions inherited from Ponca::StaticKdTreeBase< Traits >
NodeIndexType nodeCount () const
 Get the number of nodes in the KdTree.
IndexType sampleCount () const
 Get the number of indices.
IndexType pointCount () const
 Get the number of points.
NodeIndexType leafCount () const
 Get the number of leafs in the KdTree.
PointContainer & points ()
 Get the internal point container.
const NodeContainer & nodes () const
 Get the internal node container.
const IndexContainer & samples () const
 Get the internal indice container.
const Buffers & buffers () const
 Get access to the internal buffer, for instance to prepare GPU binding.
LeafSizeType minCellSize () const
 Read leaf min size.
void setMinCellSize (LeafSizeType min_cell_size)
 Write leaf min size.
IndexType pointFromSample (IndexType sample_index) const
 Return the point index associated with the specified sample index.
DataPoint & pointDataFromSample (IndexType sample_index)
 Return the DataPoint associated with the specified sample index.
KdTreeKNearestPointQuery< Traits > kNearestNeighbors (const VectorType &point, IndexType k) const
 Computes a Query object to iterate over the k-nearest neighbors of a point. The returned object can be reset and reused with the () operator (using the same argument types as parameters).
KdTreeKNearestPointQuery< Traits > kNearestNeighborsQuery () const
 Convenience function that provides an empty k-nearest neighbors Query object.
KdTreeKNearestIndexQuery< Traits > kNearestNeighborsIndexQuery () const
 Convenience function that provides an empty k-nearest neighbors Query object.
KdTreeNearestPointQuery< Traits > nearestNeighbor (const VectorType &point) const
 Computes a Query object that contains the nearest point. The returned object can be reset and reused with the () operator (using the same argument types as parameters).
KdTreeNearestIndexQuery< Traits > nearestNeighborQuery () const
 Convenience function that provides an empty nearest neighbor Query object.
KdTreeNearestIndexQuery< Traits > nearestNeighborIndexQuery () const
 Convenience function that provides an empty nearest neighbor Query object.
KdTreeRangePointQuery< Traits > rangeNeighbors (const VectorType &point, Scalar r) const
 Computes a Query object to iterate over the neighbors that are inside a given radius. The returned object can be reset and reused with the () operator (using the same argument types as parameters).
KdTreeRangePointQuery< Traits > rangeNeighborsQuery () const
 Convenience function that provides an empty range neighbor Query object.
KdTreeRangeIndexQuery< Traits > rangeNeighborsIndexQuery () const
 KdTreeBase::rangeNeighborsQuery.
bool valid () const
void print (std::ostream &os, bool verbose=false) const

Static Public Attributes

static constexpr bool SUPPORTS_SUBSAMPLING = true
Static Public Attributes inherited from Ponca::StaticKdTreeBase< Traits >
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

Additional Inherited Members

Public Types inherited from Ponca::KdTreeBase< Traits >
using Base
using Traits
 Traits of the KdTree.
using DataPoint
 DataPoint given by user via Traits.
using IndexType
 Type used to index points into the PointContainer.
using LeafSizeType
 Type used to store the size of leaf nodes.
using PointContainer
 Container for DataPoint used inside the KdTree.
using IndexContainer
 Container for indices used inside the KdTree.
using NodeIndexType
 Type used to index nodes into the NodeContainer.
using NodeType
 Type of nodes used inside the KdTree.
using NodeContainer
 Container for nodes used inside the KdTree.
using Scalar
 Scalar given by user via DataPoint.
using VectorType
 VectorType given by user via DataPoint.
using AabbType
 Bounding box type given by user via NodeType.
Public Types inherited from Ponca::StaticKdTreeBase< Traits >
using Traits
 Traits of the KdTree.
using DataPoint
 DataPoint given by user via Traits.
using IndexType
 Type used to index points into the PointContainer.
using LeafSizeType
 Type used to store the size of leaf nodes.
using PointContainer
 Container for DataPoint used inside the KdTree.
using IndexContainer
 Container for indices used inside the KdTree.
using NodeIndexType
 Type used to index nodes into the NodeContainer.
using NodeType
 Type of nodes used inside the KdTree.
using NodeContainer
 Container for nodes used inside the KdTree.
using Scalar
 Scalar given by user via DataPoint.
using VectorType
 VectorType given by user via DataPoint.
using AabbType
 Bounding box type given by user via NodeType.
Protected Member Functions inherited from Ponca::KdTreeBase< Traits >
void buildWithSampling (PointUserContainer &&points, IndexUserContainer &&sampling, PointConverter 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::StaticKdTreeBase< Traits >
Buffers m_bufs
 Buffers used to store the KdTree.
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 Traits>
class Ponca::KdTreeSparseBase< Traits >

Customizable base class for KdTreeSparse datastructure.

Note
This version of the KdTree supports construction using a subset of samples.
See also
buildWithSampling
Ponca::KdTreeDense
Ponca::KdTreeSparse
Template Parameters
TraitsTraits type providing the types and constants used by the kd-tree. Must have the same interface as the default traits type.
See also
KdTreeDefaultTraits for the trait interface documentation.

Definition at line 571 of file kdTree.h.

Constructor & Destructor Documentation

◆ KdTreeSparseBase() [1/3]

template<typename Traits>
Ponca::KdTreeSparseBase< Traits >::KdTreeSparseBase ( )
default

Default constructor creating an empty tree.

See also
build

◆ KdTreeSparseBase() [2/3]

template<typename Traits>
template<typename PointUserContainer>
Ponca::KdTreeSparseBase< Traits >::KdTreeSparseBase ( PointUserContainer && points)
inlineexplicit

Constructor generating a tree from a custom contained type converted using a Traits::ContainerConverter.

Definition at line 585 of file kdTree.h.

◆ KdTreeSparseBase() [3/3]

template<typename Traits>
template<typename PointUserContainer, typename IndexUserContainer>
Ponca::KdTreeSparseBase< Traits >::KdTreeSparseBase ( PointUserContainer && points,
IndexUserContainer sampling )
inline

Constructor generating a tree sampled from a custom contained type converted using a Traits::ContainerConverter.

Template Parameters
PointUserContainerInput points, transformed to PointContainer
IndexUserContainerInput sampling, transformed to IndexContainer
Parameters
pointsInput points
samplingSamples used in the tree

Definition at line 597 of file kdTree.h.

Member Function Documentation

◆ buildWithSampling() [1/2]

template<typename Traits>
void Ponca::KdTreeBase< Traits >::buildWithSampling ( PointUserContainer && points,
IndexUserContainer && sampling )
inline

Generate a tree sampled from a custom contained type converted using a KdTreeBase::DefaultConverter.

Template Parameters
PointUserContainerInput points, transformed to PointContainer
IndexUserContainerInput sampling, transformed to IndexContainer
Parameters
pointsInput points
samplingSamples used in the tree

Definition at line 513 of file kdTree.h.

◆ buildWithSampling() [2/2]

template<typename Traits>
void Ponca::KdTreeBase< Traits >::buildWithSampling ( PointUserContainer && points,
IndexUserContainer && sampling,
PointConverter c )
inline

Generate a tree sampled from a custom contained type converted using a Converter.

Template Parameters
PointUserContainerInput point, transformed to PointContainer
IndexUserContainerInput sampling, transformed to IndexContainer
PointConverterCast/Convert input container type to point container data type
Parameters
pointsInput points
samplingIndices of points used in the tree
cCast/Convert input point type to DataType

Member Data Documentation

◆ SUPPORTS_SUBSAMPLING

template<typename Traits>
bool Ponca::KdTreeSparseBase< Traits >::SUPPORTS_SUBSAMPLING = true
staticconstexpr

Definition at line 577 of file kdTree.h.