CGAL 6.1.2 - Fast Intersection and Distance Computation (AABB Tree): CGAL::AABB_primitive< Id, ObjectPropertyMap, PointPropertyMap, ExternalPropertyMaps, CacheDatum > Struct Template Reference

CGAL 6.1.2 - Fast Intersection and Distance Computation (AABB Tree)

Loading...
Searching...
No Matches
List of all members | Public Member Functions
CGAL::AABB_primitive< Id, ObjectPropertyMap, PointPropertyMap, ExternalPropertyMaps, CacheDatum > Struct Template Reference
Reference Manual

`#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

  ObjectPropertyMap | is a model of `ReadablePropertyMap` with `Id` as `key_type`. It must be a model of `CopyConstructible`, `DefaultConstructible`, and `CopyAssignable`.
  PointPropertyMap | is a model of `ReadablePropertyMap` with `Id` as `key_type`. It must be a model of `CopyConstructible`, `DefaultConstructible`, and `CopyAssignable`.
  ExternalPropertyMaps | either `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).
  CacheDatum | 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
  `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.