CGAL 6.0.2 - Quadtrees, Octrees, and Orthtrees

Loading...
Searching...
No Matches
List of all members
OrthtreeTraitsWithData Concept Reference
Quadtrees, Octrees and Orthtrees Reference » Concepts

## Definition

The concept `OrthtreeTraitsWithData` defines the requirements for the template parameter of the `CGAL::Orthtree` class for a node type that stores data.

Refines
  `OrthtreeTraits`

Has models
  `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`.

## Member Typedef Documentation

## ◆ Construct_root_node_contents

using OrthtreeTraitsWithData::Construct_root_node_contents = unspecified_type

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.

## ◆ Distribute_node_contents

using OrthtreeTraitsWithData::Distribute_node_contents = unspecified_type

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.

## ◆ Node_data

using OrthtreeTraitsWithData::Node_data = unspecified_type

The data type contained by each node.

Must be default constructible, copy constructible and copy assignable.