#include <CGAL/AABB_face_graph_triangle_primitive.h>
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,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.
|
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 .
|
|
◆ AABB_face_graph_triangle_primitive() [1/2]
template<class FaceGraph , class VertexPointPMap = Default, class OneFaceGraphPerTree = Tag_true, class CacheDatum = Tag_false>
template<class Iterator >
- 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 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>
constructs a primitive.
If VertexPointPMap
is the default of the class, an additional constructor is available with vppm
set to get(vertex_point, graph)
.
◆ Id
template<class FaceGraph , class VertexPointPMap = Default, class OneFaceGraphPerTree = Tag_true, class CacheDatum = Tag_false>
Id type:
boost::graph_traits<FaceGraph>::face_descriptor
if OneFaceGraphPerTree
is CGAL::Tag_true
std::pair<boost::graph_traits<FaceGraph>::face_descriptor, FaceGraph>
if OneFaceGraphPerTree
is CGAL::Tag_false