\( \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 - 3D Fast Intersection and Distance Computation (AABB Tree)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::AABB_face_graph_triangle_primitive< FaceGraph, VertexPointPMap, OneFaceGraphPerTree, CacheDatum > Class Template 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. 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
FaceGraphis a model of the face graph concept.
VertexPointPMapis 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.
OneFaceGraphPerTreeis 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.
CacheDatumis 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, 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)
 
 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
Iteratoran 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 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 get(vertex_point, graph).