Functions to test if there are self intersections, and to report faces that do intersect.
|
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...
|
|
template<class FaceRange , class TriangleMesh , class NamedParameters > |
bool | CGAL::Polygon_mesh_processing::does_self_intersect (const FaceRange &face_range, const TriangleMesh &tmesh, const NamedParameters &np) |
| tests if a set of faces of a triangulated surface mesh self-intersects. More...
|
|
◆ does_self_intersect() [1/2]
template<class TriangleMesh , class NamedParameters >
bool CGAL::Polygon_mesh_processing::does_self_intersect |
( |
const TriangleMesh & |
tmesh, |
|
|
const NamedParameters & |
np |
|
) |
| |
◆ does_self_intersect() [2/2]
template<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 Intersecting Sequences of dD Iso-oriented Boxes
- 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 should 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-intersects
◆ self_intersections() [1/2]
template<class TriangleMesh , class OutputIterator , class NamedParameters >
OutputIterator CGAL::Polygon_mesh_processing::self_intersections |
( |
const TriangleMesh & |
tmesh, |
|
|
OutputIterator |
out, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/self_intersections.h>
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
-
- 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 should be available in TriangleMesh |
geom_traits | an instance of a geometric traits class, model of PMPSelfIntersectionTraits |
- Returns
out
- Examples:
- Polygon_mesh_processing/self_intersections_example.cpp.
◆ self_intersections() [2/2]
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 |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/self_intersections.h>
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
-
- 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 should be available in TriangleMesh |
geom_traits | an instance of a geometric traits class, model of PMPSelfIntersectionTraits |