|
CGAL 5.0 - K Discrete Oriented Polytope Tree (K-DOP Tree)
|
#include <Concepts/KDOPTraits.h>
The concept KDOPTraits provides the geometric primitive types and methods for the class CGAL::KDOP_tree<KDOPTraits>.
^^
CGAL::KDOP_traits<KDOPGeomTraits,KDOPPrimitive> Types | |
| typedef unspecified_type | Geom_traits |
| Type of geometry traits (kernel) | |
| typedef unspecified_type | FT |
| Number type of the geometry kernel. | |
| typedef unspecified_type | KT |
| Type of k-DOP traits. | |
| typedef unspecified_type | Primitive |
| Type of primitives. | |
| typedef unspecified_type | Point_and_primitive_id |
| 3D point and primitive id type | |
| typedef unspecified_type | Point_3 |
| Type of a 3D point. | |
| typedef unspecified_type | Sphere_3 |
| Type of a sphere. | |
| typedef unspecified_type | Bounding_box |
| Type of a bounding box. | |
| typedef unspecified_type | Kdop |
| K-dop type. | |
| typedef unspecified_type | Array_height |
| Type of support heights of a k-DOP. | |
Splitting | |
During the construction of the KDOP tree, the primitives are splitted in the binary way. | |
| typedef unspecified_type | Split_primitives |
| A functor object to split a range of primitives. More... | |
| typedef unspecified_type | Compute_bbox |
| A functor object to compute the bounding box of a set of primitives. More... | |
K-dop computation | |
Different from the implementation of AABB tree, the K-dop computation is after the whole splitting is completed so that the K-dop can be computed recursively in a bottom-top manner, without duplicate computation as in AABB tree where the bounding box is computed after each splitting. | |
| typedef unspecified_type | Compute_kdop |
| A functor object to compute the kdop (support heights) of a set of primitives. More... | |
Intersections | |
| typedef unspecified_type | Do_intersect |
| A functor object to compute intersection predicates between the query and the nodes of the tree. More... | |
| typedef unspecified_type | Intersection |
| A functor object to compute the intersection of a query and a primitive. More... | |
Distance queries | |
| typedef unspecified_type | Closest_point |
| A functor object to compute closest point from the query on a primitive. More... | |
| typedef unspecified_type | Compare_distance |
| A functor object to compare distance between the point and the nodes of the tree. More... | |
Operations | |
| Split_primitives | split_primitives_object () |
| Return the primitive splitting functor. | |
| Compute_bbox | compute_bbox_object () |
| Return the bounding box functor. | |
| Compute_kdop | compute_kdop_object () |
| Return the support heights constructor. | |
| Do_intersect | do_intersect_object () |
| Return the intersection detection functor. | |
| Intersection | intersection_object () |
| Return the intersection constructor. | |
| Compare_distance | compare_distance_object () |
| Return the distance comparison functor. | |
| Closest_point | closest_point_object () |
| Return the closest point computation functor. | |
A functor object to compute closest point from the query on a primitive.
Provides the operator: Point_3 operator()(const Query& query, const Primitive& primitive, const Point_3 & closest); which returns the closest point to query, among closest and all points of the primitive.
A functor object to compare distance between the point and the nodes of the tree.
Provides the operators:
bool operator()(const Query & query, const Kdop & kdop, const Array_height & support_heights, const Point & closest); which returns true iff the k-DOP is closer to query than closest is A functor object to compute the bounding box of a set of primitives.
Provides the operator: Bounding_box operator()(Input_iterator begin, Input_iterator beyond); Iterator type InputIterator must have Primitive as value type.
A functor object to compute the kdop (support heights) of a set of primitives.
Provides the operator: Kdop operator()(Input_iterator begin, Input_iterator beyond); Iterator type InputIterator must have Primitive as value type. The operation contains the union of k-dops of the children of a node in the tree.
A functor object to compute intersection predicates between the query and the nodes of the tree.
Provides the operators:
bool operator()(const Query & q, const Kdop & kdop, const Array_height & support_heights); which returns true iff the query intersects the kdopbool operator()(const Query & q, const Primitive & primitive); which returns true iff the query intersects the primitive A functor object to compute the intersection of a query and a primitive.
Provides the operator: boost::optional<Intersection_and_primitive_id<Query>::Type > operator()(const Query & q, const Primitive& primitive); which returns the intersection as a pair composed of an object and a primitive id, iff the query intersects the primitive.
A functor object to split a range of primitives.
Provides the operator: void operator()(InputIterator first, InputIterator beyond); Iterator type InputIterator must be a model of RandomAccessIterator and have Primitive as value type. The operator is used for determining the primitives assigned to the children nodes of a given node, assuming that the goal is to split at the centroid of the collection of primitives. The primitives assigned to this node are passed as argument to the operator.