|
CGAL 6.1.3 - Quadtrees, Octrees, and Orthtrees
|
#include <CGAL/Orthtree_traits_base.h>
Inherited by CGAL::Orthtree_traits_point< GeomTraits, PointRange, PointMap, hypercubic_nodes, dimension >.
The class Orthtree_traits_base is a base class providing common choices for types and functors.
The base class is extended by CGAL::Orthtree_traits_point<GeomTraits, PointRange, PointMap, dimension> and by CGAL::Orthtree_traits_face_graph<PolygonMesh, VertexPointMap>.
| GeomTraits | a model of Kernel. |
| dim | dimension of the ambient Euclidean space. |
Types | |
| using | Adjacency = int |
| Adjacency type. | |
| using CGAL::Orthtree_traits_base< GeomTraits, dim >::Adjacency = int |
Adjacency type.
Two directions along each axis in Cartesian space, relative to a node.
Directions are mapped to numbers as 3-bit integers in the 3D case or as 2-bit integers in the 2D case. In the 3d case the numbers 6 and 7 are not used because there are only 6 different directions.
The first two bits indicate the axis (00 = x, 01 = y, 10 = z), the third bit indicates the direction along that axis (0 = -, 1 = +).
The following diagram and table showing the 3D case may be a useful reference (2D case is identical with one dimension less):
3 *
| * 4
| / y+
|/ *
0 *------+------* 1 |
/| |
/ | +-----* x+
5 * | /
* 2 /
* z+
This lookup table may also be helpful:
| Direction | bitset | number | Enum |
|---|---|---|---|
| -x | 000 | 0 | LEFT |
| +x | 001 | 1 | RIGHT |
| -y | 010 | 2 | DOWN |
| +y | 011 | 3 | UP |
| -z | 100 | 4 | BACK |
| +z | 101 | 5 | FRONT |