Jet  v1.3.3
Classes | Public Types | Public Member Functions | List of all members
jet::KdTree< T, K > Class Template Referencefinal

Generic k-d tree structure. More...

#include <jet/kdtree.h>

Classes

struct  Node
 Simple K-d tree node. More...
 

Public Types

typedef Vector< T, K > Point
 
typedef BoundingBox< T, K > BBox
 
typedef std::vector< PointContainerType
 
typedef ContainerType::iterator Iterator
 
typedef ContainerType::const_iterator ConstIterator
 
typedef std::vector< NodeNodeContainerType
 
typedef NodeContainerType::iterator NodeIterator
 
typedef NodeContainerType::const_iterator ConstNodeIterator
 

Public Member Functions

 KdTree ()
 Constructs an empty kD-tree instance. More...
 
void build (const ConstArrayAccessor1< Point > &points)
 Builds internal acceleration structure for given points list. More...
 
void forEachNearbyPoint (const Point &origin, T radius, const std::function< void(size_t, const Point &)> &callback) const
 
bool hasNearbyPoint (const Point &origin, T radius) const
 
size_t nearestPoint (const Point &origin) const
 Returns index of the nearest point. More...
 
Iterator begin ()
 Returns the mutable begin iterator of the item. More...
 
Iterator end ()
 Returns the mutable end iterator of the item. More...
 
ConstIterator begin () const
 Returns the immutable begin iterator of the item. More...
 
ConstIterator end () const
 Returns the immutable end iterator of the item. More...
 
NodeIterator beginNode ()
 Returns the mutable begin iterator of the node. More...
 
NodeIterator endNode ()
 Returns the mutable end iterator of the node. More...
 
ConstNodeIterator beginNode () const
 Returns the immutable begin iterator of the node. More...
 
ConstNodeIterator endNode () const
 Returns the immutable end iterator of the node. More...
 
void reserve (size_t numPoints, size_t numNodes)
 Reserves memory space for this tree. More...
 

Detailed Description

template<typename T, size_t K>
class jet::KdTree< T, K >

Generic k-d tree structure.

Member Typedef Documentation

◆ BBox

template<typename T , size_t K>
typedef BoundingBox<T, K> jet::KdTree< T, K >::BBox

◆ ConstIterator

template<typename T , size_t K>
typedef ContainerType::const_iterator jet::KdTree< T, K >::ConstIterator

◆ ConstNodeIterator

template<typename T , size_t K>
typedef NodeContainerType::const_iterator jet::KdTree< T, K >::ConstNodeIterator

◆ ContainerType

template<typename T , size_t K>
typedef std::vector<Point> jet::KdTree< T, K >::ContainerType

◆ Iterator

template<typename T , size_t K>
typedef ContainerType::iterator jet::KdTree< T, K >::Iterator

◆ NodeContainerType

template<typename T , size_t K>
typedef std::vector<Node> jet::KdTree< T, K >::NodeContainerType

◆ NodeIterator

template<typename T , size_t K>
typedef NodeContainerType::iterator jet::KdTree< T, K >::NodeIterator

◆ Point

template<typename T , size_t K>
typedef Vector<T, K> jet::KdTree< T, K >::Point

Constructor & Destructor Documentation

◆ KdTree()

template<typename T , size_t K>
jet::KdTree< T, K >::KdTree ( )

Constructs an empty kD-tree instance.

Member Function Documentation

◆ begin() [1/2]

template<typename T , size_t K>
Iterator jet::KdTree< T, K >::begin ( )

Returns the mutable begin iterator of the item.

◆ begin() [2/2]

template<typename T , size_t K>
ConstIterator jet::KdTree< T, K >::begin ( ) const

Returns the immutable begin iterator of the item.

◆ beginNode() [1/2]

template<typename T , size_t K>
NodeIterator jet::KdTree< T, K >::beginNode ( )

Returns the mutable begin iterator of the node.

◆ beginNode() [2/2]

template<typename T , size_t K>
ConstNodeIterator jet::KdTree< T, K >::beginNode ( ) const

Returns the immutable begin iterator of the node.

◆ build()

template<typename T , size_t K>
void jet::KdTree< T, K >::build ( const ConstArrayAccessor1< Point > &  points)

Builds internal acceleration structure for given points list.

◆ end() [1/2]

template<typename T , size_t K>
Iterator jet::KdTree< T, K >::end ( )

Returns the mutable end iterator of the item.

◆ end() [2/2]

template<typename T , size_t K>
ConstIterator jet::KdTree< T, K >::end ( ) const

Returns the immutable end iterator of the item.

◆ endNode() [1/2]

template<typename T , size_t K>
NodeIterator jet::KdTree< T, K >::endNode ( )

Returns the mutable end iterator of the node.

◆ endNode() [2/2]

template<typename T , size_t K>
ConstNodeIterator jet::KdTree< T, K >::endNode ( ) const

Returns the immutable end iterator of the node.

◆ forEachNearbyPoint()

template<typename T , size_t K>
void jet::KdTree< T, K >::forEachNearbyPoint ( const Point origin,
radius,
const std::function< void(size_t, const Point &)> &  callback 
) const

Invokes the callback function for each nearby point around the origin within given radius.

Parameters
[in]originThe origin position.
[in]radiusThe search radius.
[in]callbackThe callback function.

◆ hasNearbyPoint()

template<typename T , size_t K>
bool jet::KdTree< T, K >::hasNearbyPoint ( const Point origin,
radius 
) const

Returns true if there are any nearby points for given origin within radius.

Parameters
[in]originThe origin.
[in]radiusThe radius.
Returns
True if has nearby point, false otherwise.

◆ nearestPoint()

template<typename T , size_t K>
size_t jet::KdTree< T, K >::nearestPoint ( const Point origin) const

Returns index of the nearest point.

◆ reserve()

template<typename T , size_t K>
void jet::KdTree< T, K >::reserve ( size_t  numPoints,
size_t  numNodes 
)

Reserves memory space for this tree.


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