template<class HalfedgeGraph, class VertexPointPMap = Default, class OneHalfedgeGraphPerTree = Tag_true, class CacheDatum = Tag_false>
class CGAL::AABB_halfedge_graph_segment_primitive< HalfedgeGraph, VertexPointPMap, OneHalfedgeGraphPerTree, CacheDatum >
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
.
- Is Model Of:
AABBPrimitive
if OneHalfedgeGraphPerTree
is CGAL::Tag_false
, and AABBPrimitiveWithSharedData
if OneHalfedgeGraphPerTree
is CGAL::Tag_true
.
- Template Parameters
-
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). |
- See also
AABBPrimitive
-
AABB_primitive<Id,ObjectPropertyMap,PointPropertyMapPolyhedron,ExternalPropertyMaps,CacheDatum>
-
AABB_face_graph_triangle_primitive<FaceGraph,OneFaceGraphPerTree,CacheDatum>
-
boost::graph_traits<Polyhedron>
- Examples:
- AABB_tree/AABB_halfedge_graph_edge_example.cpp, and AABB_tree/AABB_polyhedron_edge_example.cpp.