\( \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.9 - Polygon Mesh Processing
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Intersection Functions

Functions to test if there are self intersections, and to report faces that do intersect.

Functions

template<class TriangleMesh , class OutputIterator , class NamedParameters >
OutputIterator CGAL::Polygon_mesh_processing::self_intersections (const TriangleMesh &tmesh, OutputIterator out, const NamedParameters &np)
 detects and records self-intersections of a triangulated surface mesh. More...
 
template<class TriangleMesh , class FaceRange , class OutputIterator , class NamedParameters >
OutputIterator CGAL::Polygon_mesh_processing::self_intersections (const FaceRange &face_range, const TriangleMesh &tmesh, OutputIterator out, const NamedParameters &np)
 Same as above but the self-intersections reported are only limited to the faces in face_range. More...
 
template<class TriangleMesh , class NamedParameters >
bool CGAL::Polygon_mesh_processing::does_self_intersect (const TriangleMesh &tmesh, const NamedParameters &np)
 tests if a triangulated surface mesh self-intersects. More...
 

Function Documentation

template<class TriangleMesh , class NamedParameters >
bool CGAL::Polygon_mesh_processing::does_self_intersect ( const TriangleMesh &  tmesh,
const NamedParameters &  np 
)

tests if a triangulated surface mesh self-intersects.

This function depends on the package Intersecting Sequences of dD Iso-oriented Boxes

Precondition
CGAL::is_triangle_mesh(tmesh)
Template Parameters
TriangleMesha model of FaceListGraph that has an internal property map for CGAL::vertex_point_t
NamedParametersa sequence of Named Parameters
Parameters
tmeshthe triangulated surface mesh to be tested
npoptional sequence of Named Parameters among the ones listed below
Named Parameters
vertex_point_mapthe property map with the points associated to the vertices of tmesh
geom_traitsan instance of a geometric traits class, model of SelfIntersectionTraits
Returns
true if tmesh self-intersects

#include <CGAL/Polygon_mesh_processing/self_intersections.h>

Examples:
Polygon_mesh_processing/self_intersections_example.cpp.
template<class TriangleMesh , class OutputIterator , class NamedParameters >
OutputIterator CGAL::Polygon_mesh_processing::self_intersections ( const TriangleMesh &  tmesh,
OutputIterator  out,
const NamedParameters &  np 
)

detects and records self-intersections of a triangulated surface mesh.

This function depends on the package Intersecting Sequences of dD Iso-oriented Boxes

Precondition
CGAL::is_triangle_mesh(tmesh)
Template Parameters
TriangleMesha model of FaceListGraph that has an internal property map for CGAL::vertex_point_t
OutputIteratora model of OutputIterator holding objects of type std::pair<boost::graph_traits<TriangleMesh>::face_descriptor, boost::graph_traits<TriangleMesh>::face_descriptor>
NamedParametersa sequence of Named Parameters
Parameters
tmeshthe triangulated surface mesh to be checked
outoutput iterator to be filled with all pairs of non-adjacent faces that intersect
npoptional sequence of Named Parameters among the ones listed below
Named Parameters
vertex_point_mapthe property map with the points associated to the vertices of pmesh
geom_traitsan instance of a geometric traits class, model of SelfIntersectionTraits
Returns
out

#include <CGAL/Polygon_mesh_processing/self_intersections.h>

Examples:
Polygon_mesh_processing/self_intersections_example.cpp.
template<class TriangleMesh , class FaceRange , class OutputIterator , class NamedParameters >
OutputIterator CGAL::Polygon_mesh_processing::self_intersections ( const FaceRange &  face_range,
const TriangleMesh &  tmesh,
OutputIterator  out,
const NamedParameters &  np 
)

Same as above but the self-intersections reported are only limited to the faces in face_range.

Precondition
CGAL::is_triangle_mesh(tmesh)
Template Parameters
FaceRangerange of boost::graph_traits<PolygonMesh>::face_descriptor, model of Range. Its iterator type is RandomAccessIterator.
TriangleMesha model of FaceListGraph that has an internal property map for CGAL::vertex_point_t
OutputIteratora model of OutputIterator holding objects of type std::pair<boost::graph_traits<TriangleMesh>::face_descriptor, boost::graph_traits<TriangleMesh>::face_descriptor>
NamedParametersa sequence of Named Parameters
Parameters
face_rangethe range of faces to check for self-intersection.
tmeshthe triangulated surface mesh to be checked
outoutput iterator to be filled with all pairs of non-adjacent faces that intersect
npoptional sequence of Named Parameters among the ones listed below
Named Parameters
vertex_point_mapthe property map with the points associated to the vertices of pmesh
geom_traitsan instance of a geometric traits class, model of SelfIntersectionTraits

#include <CGAL/Polygon_mesh_processing/self_intersections.h>