Generic k-d tree structure. More...
#include <Core/Geometry/KdTree.h>
Classes | |
struct | Node |
Simple K-d tree node. More... | |
Public Types | |
using | Point = Vector< T, K > |
using | BBox = BoundingBox< T, K > |
using | ContainerType = std::vector< Point > |
using | Iterator = typename ContainerType::iterator |
using | ConstIterator = typename ContainerType::const_iterator |
using | NodeContainerType = std::vector< Node > |
using | NodeIterator = typename NodeContainerType::iterator |
using | ConstNodeIterator = typename NodeContainerType::const_iterator |
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 | GetNearestPoint (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 CubbyFlow::KdTree< T, K >
Generic k-d tree structure.
Member Typedef Documentation
◆ BBox
using CubbyFlow::KdTree< T, K >::BBox = BoundingBox<T, K> |
◆ ConstIterator
using CubbyFlow::KdTree< T, K >::ConstIterator = typename ContainerType::const_iterator |
◆ ConstNodeIterator
using CubbyFlow::KdTree< T, K >::ConstNodeIterator = typename NodeContainerType::const_iterator |
◆ ContainerType
using CubbyFlow::KdTree< T, K >::ContainerType = std::vector<Point> |
◆ Iterator
using CubbyFlow::KdTree< T, K >::Iterator = typename ContainerType::iterator |
◆ NodeContainerType
using CubbyFlow::KdTree< T, K >::NodeContainerType = std::vector<Node> |
◆ NodeIterator
using CubbyFlow::KdTree< T, K >::NodeIterator = typename NodeContainerType::iterator |
◆ Point
using CubbyFlow::KdTree< T, K >::Point = Vector<T, K> |
Constructor & Destructor Documentation
◆ KdTree()
CubbyFlow::KdTree< T, K >::KdTree | ( | ) |
Constructs an empty kD-tree instance.
Member Function Documentation
◆ begin() [1/2]
KdTree< T, K >::Iterator CubbyFlow::KdTree< T, K >::begin | ( | ) |
Returns the mutable begin iterator of the item.
◆ begin() [2/2]
KdTree< T, K >::ConstIterator CubbyFlow::KdTree< T, K >::begin | ( | ) | const |
Returns the immutable begin iterator of the item.
◆ BeginNode() [1/2]
KdTree< T, K >::NodeIterator CubbyFlow::KdTree< T, K >::BeginNode | ( | ) |
Returns the mutable begin iterator of the node.
◆ BeginNode() [2/2]
KdTree< T, K >::ConstNodeIterator CubbyFlow::KdTree< T, K >::BeginNode | ( | ) | const |
Returns the immutable begin iterator of the node.
◆ Build()
void CubbyFlow::KdTree< T, K >::Build | ( | const ConstArrayAccessor1< Point > & | points | ) |
Builds internal acceleration structure for given points list.
◆ end() [1/2]
KdTree< T, K >::Iterator CubbyFlow::KdTree< T, K >::end | ( | ) |
Returns the mutable end iterator of the item.
◆ end() [2/2]
KdTree< T, K >::ConstIterator CubbyFlow::KdTree< T, K >::end | ( | ) | const |
Returns the immutable end iterator of the item.
◆ EndNode() [1/2]
KdTree< T, K >::NodeIterator CubbyFlow::KdTree< T, K >::EndNode | ( | ) |
Returns the mutable end iterator of the node.
◆ EndNode() [2/2]
KdTree< T, K >::ConstNodeIterator CubbyFlow::KdTree< T, K >::EndNode | ( | ) | const |
Returns the immutable end iterator of the node.
◆ ForEachNearbyPoint()
void CubbyFlow::KdTree< T, K >::ForEachNearbyPoint | ( | const Point & | origin, |
T | 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] origin The origin position. [in] radius The search radius. [in] callback The callback function.
◆ GetNearestPoint()
size_t CubbyFlow::KdTree< T, K >::GetNearestPoint | ( | const Point & | origin | ) | const |
Returns index of the nearest point.
◆ HasNearbyPoint()
bool CubbyFlow::KdTree< T, K >::HasNearbyPoint | ( | const Point & | origin, |
T | radius | ||
) | const |
Returns true if there are any nearby points for given origin within radius.
- Parameters
-
[in] origin The origin. [in] radius The radius.
- Returns
- True if has nearby point, false otherwise.
◆ Reserve()
void CubbyFlow::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 files:
- Core/Geometry/KdTree.h
- Core/Geometry/KdTree-Impl.h