CGAL 6.0 - Quadtrees, Octrees, and Orthtrees
|
The concept OrthtreeTraitsWithData
defines the requirements for the template parameter of the CGAL::Orthtree
class for a node type that stores data.
OrthtreeTraits
CGAL::Orthtree_traits_point<GeomTraits, PointRange, PointMap, dimension>
CGAL::Orthtree_traits_face_graph<PolygonMesh, VPM>
CGAL::Orthtree_traits_base<K, dimension>
Types | |
using | Node_data = unspecified_type |
The data type contained by each node. | |
using | Construct_root_node_contents = unspecified_type |
Functor which initializes elements contained by the root node. | |
using | Distribute_node_contents = unspecified_type |
Functor which fills the contents of the nodes children. | |
Operations | |
Construct_root_node_contents | construct_root_node_contents_object () const |
constructs an object of type Construct_root_node_contents . | |
Distribute_node_contents | distribute_node_contents_object () const |
constructs an object of type Distribute_node_contents . | |
Functor which initializes elements contained by the root node.
Each node of a tree has an associated Node_data
value. This functor initializes the Node_data
of the root node. It takes no arguments, and returns an instance of Node_data
.
Provides the operator: Node_data operator()()
Typically, the Node_data
of the root node contains all the elements in the tree. For a tree in which each node contains a span (such as std::span()
) this function would return the span containing all items.
Functor which fills the contents of the nodes children.
Provides the operator: void operator()(Node_index, Orthtree<Traits>&, const Point_d&)
The functor is called during refinement of the Orthtree
on a node after it has been split. The purpose of the functor is to distribute the Node_data
, accessible via tree.data()
, to the data of the nodes children, accessible via tree.children()
. The first parameter is the Node_index
of the node. The second parameter provides the instance of the Orthtree
and the last parameter is the barycenter of the node which will be used as shared corner amongst the children of the node.
For a tree in which each node contains a span, this may mean rearranging the contents of the original node and producing spans containing a subset of its contents for each of its children. For compatibility with locate, the center of the node is considered to be part of the upper half.
The data type contained by each node.
Must be default constructible, copy constructible and copy assignable.