uvgVPCCenc 1.0.0
uvgVPCCenc is an open-source real-time V-PCC encoder library written in C++ from scratch.
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Attributes | List of all members
nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType > Class Template Reference

#include <nanoflann.hpp>

Collaboration diagram for nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >:

Public Types

using ElementType = typename Distance::ElementType
 
using DistanceType = typename Distance::DistanceType
 
using Offset = typename KDTreeSingleIndexDynamicAdaptor_< Distance, DatasetAdaptor, DIM >::Offset
 
using Size = typename KDTreeSingleIndexDynamicAdaptor_< Distance, DatasetAdaptor, DIM >::Size
 
using Dimension = typename KDTreeSingleIndexDynamicAdaptor_< Distance, DatasetAdaptor, DIM >::Dimension
 

Public Member Functions

const std::vector< index_container_t > & getAllIndices () const
 
 KDTreeSingleIndexDynamicAdaptor (const int dimensionality, const DatasetAdaptor &inputData, const KDTreeSingleIndexAdaptorParams &params=KDTreeSingleIndexAdaptorParams(), const size_t maximumPointCount=1000000000U)
 
 KDTreeSingleIndexDynamicAdaptor (const KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType > &)=delete
 
void addPoints (IndexType start, IndexType end)
 
void removePoint (size_t idx)
 
template<typename RESULTSET >
bool findNeighbors (RESULTSET &result, const ElementType *vec, const SearchParameters &searchParams={}) const
 

Public Attributes

Distance distance_
 

Protected Types

using index_container_t = KDTreeSingleIndexDynamicAdaptor_< Distance, DatasetAdaptor, DIM, IndexType >
 

Protected Attributes

Size leaf_max_size_
 
Size treeCount_
 
Size pointCount_
 
const DatasetAdaptor & dataset_
 The source of our data.
 
std::vector< int > treeIndex_
 
std::unordered_set< int > removedPoints_
 
KDTreeSingleIndexAdaptorParams index_params_
 
Dimension dim_
 Dimensionality of each data point.
 
std::vector< index_container_tindex_
 

Detailed Description

template<typename Distance, class DatasetAdaptor, int32_t DIM = -1, typename IndexType = uint32_t>
class nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >

kd-tree dynaimic index

class to create multiple static index and merge their results to behave as single dynamic index as proposed in Logarithmic Approach.

Example of usage: examples/dynamic_pointcloud_example.cpp

Template Parameters
DatasetAdaptorThe user-provided adaptor (see comments above).
DistanceThe distance metric to use: nanoflann::metric_L1, nanoflann::metric_L2, nanoflann::metric_L2_Simple, etc.
DIMDimensionality of data points (e.g. 3 for 3D points)
IndexTypeWill be typically size_t or int

Member Typedef Documentation

◆ Dimension

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
using nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::Dimension = typename KDTreeSingleIndexDynamicAdaptor_<Distance, DatasetAdaptor, DIM>::Dimension

◆ DistanceType

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
using nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::DistanceType = typename Distance::DistanceType

◆ ElementType

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
using nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::ElementType = typename Distance::ElementType

◆ index_container_t

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
using nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::index_container_t = KDTreeSingleIndexDynamicAdaptor_<Distance, DatasetAdaptor, DIM, IndexType>
protected

◆ Offset

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
using nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::Offset = typename KDTreeSingleIndexDynamicAdaptor_<Distance, DatasetAdaptor, DIM>::Offset

◆ Size

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
using nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::Size = typename KDTreeSingleIndexDynamicAdaptor_<Distance, DatasetAdaptor, DIM>::Size

Constructor & Destructor Documentation

◆ KDTreeSingleIndexDynamicAdaptor() [1/2]

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::KDTreeSingleIndexDynamicAdaptor ( const int  dimensionality,
const DatasetAdaptor &  inputData,
const KDTreeSingleIndexAdaptorParams params = KDTreeSingleIndexAdaptorParams(),
const size_t  maximumPointCount = 1000000000U 
)
inlineexplicit

KDTree constructor

Refer to docs in README.md or online in https://github.com/jlblancoc/nanoflann

The KD-Tree point dimension (the length of each point in the datase, e.g. 3 for 3D points) is determined by means of:

  • The DIM template parameter if >0 (highest priority)
  • Otherwise, the dimensionality parameter of this constructor.
Parameters
inputDataDataset with the input features. Its lifetime must be equal or longer than that of the instance of this class.
paramsBasically, the maximum leaf node size

◆ KDTreeSingleIndexDynamicAdaptor() [2/2]

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::KDTreeSingleIndexDynamicAdaptor ( const KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType > &  )
explicitdelete

Deleted copy constructor

Member Function Documentation

◆ addPoints()

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
void nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::addPoints ( IndexType  start,
IndexType  end 
)
inline

Add points to the set, Inserts all points from [start, end]

◆ findNeighbors()

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
template<typename RESULTSET >
bool nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::findNeighbors ( RESULTSET &  result,
const ElementType vec,
const SearchParameters searchParams = {} 
) const
inline

Find set of nearest neighbors to vec[0:dim-1]. Their indices are stored inside the result object.

Params: result = the result object in which the indices of the nearest-neighbors are stored vec = the vector for which to search the nearest neighbors

Template Parameters
RESULTSETShould be any ResultSet<DistanceType>
Returns
True if the requested neighbors could be found.
See also
knnSearch, radiusSearch
Note
If L2 norms are used, all returned distances are actually squared distances.

◆ getAllIndices()

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
const std::vector< index_container_t > & nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::getAllIndices ( ) const
inline

Get a const ref to the internal list of indices; the number of indices is adapted dynamically as the dataset grows in size.

◆ removePoint()

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
void nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::removePoint ( size_t  idx)
inline

Remove a point from the set (Lazy Deletion)

Member Data Documentation

◆ dataset_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
const DatasetAdaptor& nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::dataset_
protected

The source of our data.

The dataset used by this index

◆ dim_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
Dimension nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::dim_
protected

Dimensionality of each data point.

◆ distance_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
Distance nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::distance_

◆ index_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
std::vector<index_container_t> nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::index_
protected

◆ index_params_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
KDTreeSingleIndexAdaptorParams nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::index_params_
protected

◆ leaf_max_size_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
Size nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::leaf_max_size_
protected

◆ pointCount_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
Size nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::pointCount_
protected

◆ removedPoints_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
std::unordered_set<int> nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::removedPoints_
protected

◆ treeCount_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
Size nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::treeCount_
protected

◆ treeIndex_

template<typename Distance , class DatasetAdaptor , int32_t DIM = -1, typename IndexType = uint32_t>
std::vector<int> nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType >::treeIndex_
protected

treeIndex[idx] is the index of tree in which point at idx is stored. treeIndex[idx]=-1 means that point has been removed.


The documentation for this class was generated from the following file: