CGAL 6.0 - Fast Intersection and Distance Computation (AABB Tree)
Loading...
Searching...
No Matches
CGAL::AABB_primitive< Id, ObjectPropertyMap, PointPropertyMap, ExternalPropertyMaps, CacheDatum > Struct Template Reference

#include <CGAL/AABB_primitive.h>

Definition

template<class Id, class ObjectPropertyMap, class PointPropertyMap, class ExternalPropertyMaps, class CacheDatum>
struct CGAL::AABB_primitive< Id, ObjectPropertyMap, PointPropertyMap, ExternalPropertyMaps, CacheDatum >

Generic primitive type.

The two property maps which are template parameters of the class enable to get the datum and the reference point of the primitive from the identifier. The last template parameter controls whether the primitive class holds a copy of the datum.

Is model of
AABBPrimitive if ExternalPropertyMaps is CGAL::Tag_false
AABBPrimitiveWithSharedData if ExternalPropertyMaps is CGAL::Tag_true
Template Parameters
ObjectPropertyMapis a model of ReadablePropertyMap with Id as key_type. It must be a model of CopyConstructible, DefaultConstructible, and CopyAssignable.
PointPropertyMapis a model of ReadablePropertyMap with Id as key_type. It must be a model of CopyConstructible, DefaultConstructible, and CopyAssignable.
ExternalPropertyMapseither CGAL::Tag_true or CGAL::Tag_false. In the former case, the property maps will be stored in the traits class, while in the latter they will be stored in the primitive (which increases the size of each primitive).
CacheDatumeither 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
AABB_segment_primitive_2<GeomTraits,Iterator,CacheDatum>
AABB_segment_primitive_3<GeomTraits,Iterator,CacheDatum>
AABB_triangle_primitive_2<GeomTraits,Iterator,CacheDatum>
AABB_triangle_primitive_3<GeomTraits,Iterator,CacheDatum>
AABB_halfedge_graph_segment_primitive<HalfedgeGraph,VertexPointPMap,OneHalfedgeGraphPerTree,CacheDatum>
AABB_face_graph_triangle_primitive<FaceGraph,VertexPointPMap,OneFaceGraphPerTree,CacheDatum>

Public Member Functions

 AABB_primitive (Id id, ObjectPropertyMap o_pmap=ObjectPropertyMap(), PointPropertyMap p_pmap=PointPropertyMap())
 constructs a primitive and initializes the property maps.
 
template<class Iterator >
 AABB_primitive (Iterator it, ObjectPropertyMap o_pmap=ObjectPropertyMap(), PointPropertyMap p_pmap=PointPropertyMap())
 constructs a primitive from an iterator with Id as value type and initializes the property maps.
 

Types

typedef boost::property_traits< ObjectPropertyMap >::value_type Datum
 The datum type.
 
typedef boost::property_traits< PointPropertyMap >::value_type Point
 The point type.
 
typedef boost::property_traits< ObjectPropertyMap >::reference Datum_reference
 The reference datum type.
 
typedef boost::property_traits< PointPropertyMap >::reference Point_reference
 The reference point type.
 
typedef Id Id
 Id type.