CGAL 5.2 - 3D Fast Intersection and Distance Computation (AABB Tree)
|
#include <CGAL/AABB_halfedge_graph_segment_primitive.h>
Primitive type for a edge of a polyhedral surface.
It wraps an edge_descriptor
into a 3D segment. The class model of HalfedgeGraph
from which the primitive is built should not be deleted while the AABB tree holding the primitive is in use. The type of the 3D segment is taken from the kernel of the point type which is the value type of VertexPointPMap
(using the Kernel_traits
mechanism). The segment type of the primitive (Datum
) is CGAL::Kernel_traits< boost::property_traits< VertexPointPMap >::value_type >::Kernel::Segment_3
.
AABBPrimitive
if OneHalfedgeGraphPerTree
is CGAL::Tag_false
, and AABBPrimitiveWithSharedData
if OneHalfedgeGraphPerTree
is CGAL::Tag_true
.HalfedgeGraph | is a model of the halfedge graph concept. as key type and a CGAL Kernel Point_3 as value type. |
VertexPointPMap | is a property map with boost::graph_traits<HalfedgeGraph>::vertex_descriptor . The default is typename boost::property_map< HalfedgeGraph,vertex_point_t>::const_type . |
OneHalfedgeGraphPerTree | is either CGAL::Tag_true or CGAL::Tag_false . In the former case, we guarantee that all the primitives will be from a common HalfedgeGraph and some data will be factorized so that the size of the primitive is reduced. In the latter case, the primitives can be from different graphs and extra storage is required in the primitives. The default is CGAL::Tag_true . |
CacheDatum | is either CGAL::Tag_true or CGAL::Tag_false . In the former case, the datum is stored in the primitive, while in the latter it is constructed on the fly to reduce the memory footprint. The default is CGAL::Tag_false (datum is not stored). |
AABBPrimitive
AABB_primitive<Id,ObjectPropertyMap,PointPropertyMapPolyhedron,ExternalPropertyMaps,CacheDatum>
AABB_face_graph_triangle_primitive<FaceGraph,OneFaceGraphPerTree,CacheDatum>
boost::graph_traits<Polyhedron>
Public Member Functions | |
template<class Iterator > | |
AABB_halfedge_graph_segment_primitive (Iterator it, const HalfedgeGraph &graph, VertexPointPMap vppm) | |
constructs a primitive. More... | |
AABB_halfedge_graph_segment_primitive (edge_descriptor ed, const HalfedgeGraph &graph, VertexPointPMap vppm) | |
constructs a primitive. More... | |
Static Public Member Functions | |
static unspecified_type | construct_shared_data (HalfedgeGraph &graph) |
If OneHalfedgeGraphPerTree is CGAL::Tag_true, constructs a Shared_data object from a reference to the halfedge graph. | |
Types | |
typedef boost::property_traits< boost::property_map< HalfedgeGraph, vertex_point_t >::const_type >::value_type | Point |
The point type. | |
typedef Kernel_traits< Point >::Kernel::Segment_3 | Datum |
Geometric data type. | |
unspecified_type | Id |
Id type: More... | |
CGAL::AABB_halfedge_graph_segment_primitive< HalfedgeGraph, VertexPointPMap, OneHalfedgeGraphPerTree, CacheDatum >::AABB_halfedge_graph_segment_primitive | ( | Iterator | it, |
const HalfedgeGraph & | graph, | ||
VertexPointPMap | vppm | ||
) |
constructs a primitive.
Iterator | is an input iterator with Id as value type. |
This example gives a way to call this constructor using the insert-by-range method of the class AABB_tree<Traits>
. If VertexPointPMap
is the default of the class, an additional constructor is available with vppm
set to boost::get(vertex_point, graph)
.
CGAL::AABB_halfedge_graph_segment_primitive< HalfedgeGraph, VertexPointPMap, OneHalfedgeGraphPerTree, CacheDatum >::AABB_halfedge_graph_segment_primitive | ( | edge_descriptor | ed, |
const HalfedgeGraph & | graph, | ||
VertexPointPMap | vppm | ||
) |
constructs a primitive.
If VertexPointPMap
is the default of the class, an additional constructor is available with vppm
set to boost::get(vertex_point, graph)
.
unspecified_type CGAL::AABB_halfedge_graph_segment_primitive< HalfedgeGraph, VertexPointPMap, OneHalfedgeGraphPerTree, CacheDatum >::Id |
Id type:
boost::graph_traits<HalfedgeGraph>::edge_descriptor
if OneHalfedgeGraphPerTree
is Tag_true
std::pair<boost::graph_traits<HalfedgeGraph>::edge_descriptor, const HalfedgeGraph*>
if OneHalfedgeGraphPerTree
is Tag_false