Loading...
Searching...
No Matches
nanoflann::KDTreeSingleIndexDynamicAdaptor< Distance, DatasetAdaptor, DIM, IndexType > Class Template Reference
nanoflann C++ library for KD-trees » KD-tree classes and adaptors

`#include <nanoflann.hpp>`

## 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

## 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

## 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_t > | index_

## 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

  DatasetAdaptor | The user-provided adaptor (see comments above).
  Distance | The distance metric to use: nanoflann::metric_L1, nanoflann::metric_L2, nanoflann::metric_L2_Simple, etc.
  DIM | Dimensionality of data points (e.g. 3 for 3D points)
  IndexType | Will 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

Initial value:
typename KDTreeSingleIndexDynamicAdaptor_<Distance, DatasetAdaptor, DIM>::Dimension

## 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

protected

Initial value:
KDTreeSingleIndexDynamicAdaptor_<Distance, DatasetAdaptor, DIM, IndexType>
nanoflann::KDTreeSingleIndexDynamicAdaptor_
Definition nanoflann.hpp:2133

## 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 )

inline explicit

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

  inputData | Dataset with the input features. Its lifetime must be equal or longer than that of the instance of this class.
  params | Basically, 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 > & |  | ) |

explicit delete

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

  RESULTSET | Should 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

## 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:

- include/nanoflann.hpp