CGAL 6.1.2 - Fast Intersection and Distance Computation (AABB Tree): CGAL::AABB_face_graph_triangle_primitive< FaceGraph, VertexPointPMap, OneFaceGraphPerTree, CacheDatum > Class Template Reference

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

Loading...
Searching...
No Matches
List of all members | Public Member Functions | Static Public Member Functions
CGAL::AABB_face_graph_triangle_primitive< FaceGraph, VertexPointPMap, OneFaceGraphPerTree, CacheDatum > Class Template Reference
Reference Manual

`#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. The triangle type of the primitive (`Datum`) is `CGAL::Kernel_traits< boost::property_traits< VertexPointPMap >::value_type >::Kernel::Triangle_3`.

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>::const_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 `FaceGraph` 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_halfedge_graph_segment_primitive<HalfedgeGraph,VertexPointPMap,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, AABB_tree/AABB_polyhedron_facet_intersection_example.cpp, and AABB_tree/AABB_ray_shooting_example.cpp.

## Public Member Functions
template<class Iterator >
| AABB_face_graph_triangle_primitive (Iterator it, const FaceGraph &graph, VertexPointPMap vppm)
| constructs a primitive.
| AABB_face_graph_triangle_primitive (face_descriptor fd, const FaceGraph &graph, VertexPointPMap vppm)
| constructs a primitive.

## 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.
unspecified_type | Id
| Id type:

## Constructor & Destructor Documentation

## ◆ AABB_face_graph_triangle_primitive() [1/2]

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
| ) |  |

constructs a primitive.

Template Parameters

  Iterator | an input iterator with `Id` as value type.

If `VertexPointPMap` is the default of the class, an additional constructor is available with `vppm` set to `get(vertex_point, graph)`.

## ◆ AABB_face_graph_triangle_primitive() [2/2]

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 | ( | face_descriptor | fd,
|  | 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 `get(vertex_point, graph)`.

## Member Data Documentation

## ◆ Id

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

unspecified_type CGAL::AABB_face_graph_triangle_primitive< FaceGraph, VertexPointPMap, OneFaceGraphPerTree, CacheDatum >::Id

Id type:

- `boost::graph_traits<FaceGraph>::face_descriptor` if `OneFaceGraphPerTree` is `CGAL::Tag_true`
- `std::pair<boost::graph_traits<FaceGraph>::face_descriptor, const FaceGraph*>` if `OneFaceGraphPerTree` is `CGAL::Tag_false`