|
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 () |
|
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
template<class Point , int _dim, typename Scalar , class _PointContainer , class _IdContainer >
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
-