\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 3D Fast Intersection and Distance Computation (AABB Tree)

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members | Public Member Functions | Static Public Member Functions
CGAL::AABB_face_graph_triangle_primitive< FaceGraph, VertexPointPMap, OneFaceGraphPerTree, CacheDatum > Class Template Reference
AABB Tree Reference

`#include <CGAL/AABB_face_graph_triangle_primitive.h>`

## Definition

### template<class FaceGraph, class VertexPointPMap = Default, class OneFaceGraphPerTree = Tag_true, class CacheDatum = Tag_false>
class CGAL::AABB_face_graph_triangle_primitive< FaceGraph, VertexPointPMap, OneFaceGraphPerTree, CacheDatum >

Primitive type for a facet of a polyhedral surface.

It wraps a handle to a facet of a polyhedron to a 3D triangle. The polyhedron from which the primitive is built should not be deleted while the AABB tree holding the primitive is in use.

Is Model Of:
  `AABBPrimitiveWithSharedData`

Template Parameters

  FaceGraph | is a model of the face graph concept.
  VertexPointPMap | is a property map with `boost::graph_traits<FaceGraph>::vertex_descriptor` as key type and a CGAL Kernel `Point_3` as value type. The default is `typename boost::property_map< FaceGraph,vertex_point_t>::type`.
  OneFaceGraphPerTree | is either `CGAL::Tag_true` or `CGAL::Tag_false`. In the former case, we guarantee that all the primitives will be from a common polyhedron 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 polyhedra and extra storage is required in the primitives. The default is `CGAL::Tag_true`. This parameter is useless for the moment and will be useful in an upcoming release of CGAL.
  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_halfedge_graph_segment_primitive<HalfedgeGraph,OneHalfedgeGraphPerTree,CacheDatum>`

Examples:
  AABB_tree/AABB_face_graph_triangle_example.cpp, AABB_tree/AABB_insertion_example.cpp, AABB_tree/AABB_polyhedron_facet_distance_example.cpp, and AABB_tree/AABB_polyhedron_facet_intersection_example.cpp.

## Public Member Functions
template<class Iterator >
| AABB_face_graph_triangle_primitive (Iterator it, const FaceGraph &graph, VertexPointPMap_ vppm)
| AABB_face_graph_triangle_primitive (Id id, const FaceGraph &graph, VertexPointPMap_ vppm)
| Constructs a primitive. More...

## Static Public Member Functions
static unspecified_type | construct_shared_data (FaceGraph &graph)
| If `OneFaceGraphPerTree` is CGAL::Tag_true, constructs a `Shared_data` object from a reference to the polyhedon `graph`.

## Types
typedef boost::property_traits < VertexPointPMap > ::value_type | Point
| The point type.
typedef Kernel_traits< Point > ::Kernel::Triangle_3 | Datum
| Geometric data type.
typedef boost::graph_traits < FaceGraph >::face_descriptor | Id
| Id type.

## Constructor & Destructor Documentation

template<class FaceGraph , class VertexPointPMap = Default, class OneFaceGraphPerTree = Tag_true, class CacheDatum = Tag_false>
template<class Iterator >

CGAL::AABB_face_graph_triangle_primitive< FaceGraph, VertexPointPMap, OneFaceGraphPerTree, CacheDatum >::AABB_face_graph_triangle_primitive | ( | Iterator | it,
|  | const FaceGraph & | graph,
|  | VertexPointPMap_ | vppm
| ) |  |

Template Parameters

  Iterator | an input iterator with `Id` as value type. 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)`.

template<class FaceGraph , class VertexPointPMap = Default, class OneFaceGraphPerTree = Tag_true, class CacheDatum = Tag_false>

CGAL::AABB_face_graph_triangle_primitive< FaceGraph, VertexPointPMap, OneFaceGraphPerTree, CacheDatum >::AABB_face_graph_triangle_primitive | ( | Id | id,
|  | const FaceGraph & | 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)`.