Functions to test if there are self intersections, and to report faces that do intersect.
|
template<class ConcurrencyTag = Sequential_tag, class TriangleMesh , class FaceRange , class FacePairOutputIterator , class NamedParameters > |
FacePairOutputIterator | CGAL::Polygon_mesh_processing::self_intersections (const FaceRange &face_range, const TriangleMesh &tmesh, FacePairOutputIterator out, const NamedParameters &np) |
|
template<class ConcurrencyTag = Sequential_tag, class TriangleMesh , class FacePairOutputIterator , class NamedParameters > |
FacePairOutputIterator | CGAL::Polygon_mesh_processing::self_intersections (const TriangleMesh &tmesh, FacePairOutputIterator out, const NamedParameters &np) |
|
template<class ConcurrencyTag = Sequential_tag, class FaceRange , class TriangleMesh , class NamedParameters > |
bool | CGAL::Polygon_mesh_processing::does_self_intersect (const FaceRange &face_range, const TriangleMesh &tmesh, const NamedParameters &np) |
|
template<class ConcurrencyTag = Sequential_tag, class TriangleMesh , class NamedParameters > |
bool | CGAL::Polygon_mesh_processing::does_self_intersect (const TriangleMesh &tmesh, const NamedParameters &np) |
|
◆ does_self_intersect() [1/2]
template<class ConcurrencyTag = Sequential_tag, class FaceRange , class TriangleMesh , class NamedParameters >
bool CGAL::Polygon_mesh_processing::does_self_intersect |
( |
const FaceRange & |
face_range, |
|
|
const TriangleMesh & |
tmesh, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/self_intersections.h>
tests if a set of faces of a triangulated surface mesh self-intersects. This function depends on the package PkgBoxIntersectionD
- Precondition
CGAL::is_triangle_mesh(tmesh)
- Template Parameters
-
- Parameters
-
face_range | the set of faces to test for self-intersection |
tmesh | the triangulated surface mesh to be tested |
np | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
vertex_point_map | the property map with the points associated to the vertices of tmesh . If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in TriangleMesh |
geom_traits | an instance of a geometric traits class, model of SelfIntersectionTraits |
- Returns
true
if the faces in face_range
self-intersect
◆ does_self_intersect() [2/2]
template<class ConcurrencyTag = Sequential_tag, class TriangleMesh , class NamedParameters >
bool CGAL::Polygon_mesh_processing::does_self_intersect |
( |
const TriangleMesh & |
tmesh, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/self_intersections.h>
tests if a triangulated surface mesh self-intersects. This function depends on the package PkgBoxIntersectionD
- Precondition
CGAL::is_triangle_mesh(tmesh)
- Template Parameters
-
- Parameters
-
tmesh | the triangulated surface mesh to be tested |
np | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
vertex_point_map | the property map with the points associated to the vertices of tmesh . If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in TriangleMesh |
geom_traits | an instance of a geometric traits class, model of PMPSelfIntersectionTraits |
- Returns
true
if tmesh
self-intersects
◆ self_intersections() [1/2]
template<class ConcurrencyTag = Sequential_tag, class TriangleMesh , class FaceRange , class FacePairOutputIterator , class NamedParameters >
FacePairOutputIterator CGAL::Polygon_mesh_processing::self_intersections |
( |
const FaceRange & |
face_range, |
|
|
const TriangleMesh & |
tmesh, |
|
|
FacePairOutputIterator |
out, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/self_intersections.h>
collects intersections between a subset of faces of a triangulated surface mesh. Two faces are said to intersect if the corresponding triangles intersect and the intersection is not an edge nor a vertex incident to both faces.
This function depends on the package PkgBoxIntersectionD
- Precondition
CGAL::is_triangle_mesh(tmesh)
- Template Parameters
-
ConcurrencyTag | enables sequential versus parallel algorithm. Possible values are Sequential_tag , Parallel_tag , and Parallel_if_available_tag . |
FaceRange | a model of ConstRange with value type boost::graph_traits<TriangleMesh>::face_descriptor . |
TriangleMesh | a model of FaceListGraph |
FacePairOutputIterator | a model of OutputIterator holding objects of type std::pair<boost::graph_traits<TriangleMesh>::face_descriptor, boost::graph_traits<TriangleMesh>::face_descriptor> |
NamedParameters | a sequence of Named Parameters |
- Parameters
-
face_range | the range of faces to check for self-intersection. |
tmesh | the triangulated surface mesh to be checked |
out | output iterator to be filled with all pairs of non-adjacent faces that intersect |
np | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
vertex_point_map | the property map with the points associated to the vertices of pmesh . If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in TriangleMesh |
geom_traits | an instance of a geometric traits class, model of PMPSelfIntersectionTraits |
◆ self_intersections() [2/2]
template<class ConcurrencyTag = Sequential_tag, class TriangleMesh , class FacePairOutputIterator , class NamedParameters >
FacePairOutputIterator CGAL::Polygon_mesh_processing::self_intersections |
( |
const TriangleMesh & |
tmesh, |
|
|
FacePairOutputIterator |
out, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/self_intersections.h>
collects intersections between all the faces of a triangulated surface mesh. Two faces are said to intersect if the corresponding triangles intersect and the intersection is not an edge nor a vertex incident to both faces.
This function depends on the package PkgBoxIntersectionD
- Precondition
CGAL::is_triangle_mesh(tmesh)
- Template Parameters
-
ConcurrencyTag | enables sequential versus parallel algorithm. Possible values are Sequential_tag , Parallel_tag , and Parallel_if_available_tag . |
TriangleMesh | a model of FaceListGraph |
FacePairOutputIterator | a model of OutputIterator holding objects of type std::pair<boost::graph_traits<TriangleMesh>::face_descriptor, boost::graph_traits<TriangleMesh>::face_descriptor> |
NamedParameters | a sequence of Named Parameters |
- Parameters
-
tmesh | the triangulated surface mesh to be checked |
out | output iterator to be filled with all pairs of non-adjacent faces that intersect. In case tmesh contains some degenerate faces, for each degenerate face f a pair (f,f) will be put in out before any other self intersection between non-degenerate faces. These are the only pairs where degenerate faces will be reported. |
np | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
vertex_point_map | the property map with the points associated to the vertices of pmesh . If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in TriangleMesh |
geom_traits | an instance of a geometric traits class, model of PMPSelfIntersectionTraits |
- Returns
out