Multidimensional node used for intersection query. More...
#include <intersectionNode.h>
Collaboration diagram for gr::NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer >:Public Types | |
| enum | { Dim = _dim } |
| typedef _IdContainer | IdContainer |
| typedef _PointContainer | PointContainer |
Public Member Functions | |
| const Point & | center () const |
| Center of the current node. More... | |
| unsigned int | idInRange (unsigned int i) const |
| Access to the i-eme point in the node. Range limits are NOT tested! More... | |
| NdNode (const PointContainer &points, IdContainer &ids, const Point &p=Point::Zero(), unsigned int begin=0, unsigned int end=0) | |
| NdNode (const NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer > &other) | |
| NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer > & | operator= (const NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer > &rhs) |
| const Point & | pointInRange (unsigned int i) const |
| Access to the i-eme point in the node. Range limits are NOT tested! More... | |
| unsigned int | rangeBegin () const |
| First position in the id array defining the current instance range. More... | |
| unsigned int | rangeEnd () const |
| Last position in the id array defining the current instance range. More... | |
| int | rangeLength () const |
| Length of the range covered by this node in the id array. More... | |
| void | split (std::vector< NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer > > &childs, Scalar rootEdgeHalfLength) |
| Split the node and compute child nodes. More... | |
| ~NdNode () | |
Static Public Member Functions | |
| static NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer > | buildUnitRootNode (const PointContainer &points, IdContainer &ids) |
Protected Attributes | |
| unsigned int | _begin |
| First element id in the node. More... | |
| Point | _center |
| Center of the node in the nd-space. More... | |
| unsigned int | _end |
| Last element id in the node. More... | |
| IdContainer & | _ids |
| Ids used to access _points[_ids[i]]. More... | |
| const PointContainer & | _points |
| Input points. More... | |
Detailed Description
template<class Point, int _dim, typename Scalar, class _PointContainer = std::vector<Point>, class _IdContainer = std::vector<unsigned int>>
class gr::NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer >
Multidimensional node used for intersection query.
Each instance store references to the data arrays:
- const access to the input points
- writing access to the dereferencing id array
The working dimension is deduced from the Point class
Member Typedef Documentation
| typedef _IdContainer gr::NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer >::IdContainer |
| typedef _PointContainer gr::NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer >::PointContainer |
Member Enumeration Documentation
| anonymous enum |
Constructor & Destructor Documentation
|
inline |
Here is the call graph for this function:
|
inline |
Here is the call graph for this function:
|
inline |
Member Function Documentation
|
inlinestatic |
Here is the call graph for this function:
|
inline |
Center of the current node.
Here is the call graph for this function:
|
inline |
Access to the i-eme point in the node. Range limits are NOT tested!
Here is the call graph for this function:
|
inline |
Here is the call graph for this function:
|
inline |
Access to the i-eme point in the node. Range limits are NOT tested!
Here is the call graph for this function:
|
inline |
First position in the id array defining the current instance range.
Here is the call graph for this function:
|
inline |
Last position in the id array defining the current instance range.
Here is the call graph for this function:
|
inline |
Length of the range covered by this node in the id array.
Here is the call graph for this function:| void gr::NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer >::split | ( | std::vector< NdNode< Point, _dim, Scalar, _PointContainer, _IdContainer > > & | childs, |
| Scalar | rootEdgeHalfLength | ||
| ) |
Split the node and compute child nodes.
Split the current node in 2^Dim childs using a regular grid.
- Note
- Childs are not stored
- Todo:
- See how to introduce dimension specialization (useful for 2D and 3D)
The IdContainer is updated to partially sort the input ids wrt to the childs range limits.
- Parameters
-
ChildContainer in:
Here is the call graph for this function:Member Data Documentation
|
protected |
First element id in the node.
|
protected |
Center of the node in the nd-space.
|
protected |
Last element id in the node.
|
protected |
Ids used to access _points[_ids[i]].
|
protected |
Input points.
Needed to compute split
The documentation for this class was generated from the following file:
- /home/travis/build/STORM-IRIT/OpenGR/src/gr/accelerators/pairExtraction/intersectionNode.h

1.8.11