Functions to fill holes given as a range of halfedges or as range of points.
|
template<typename PolygonMesh , typename OutputIterator , typename NamedParameters > |
OutputIterator | CGAL::Polygon_mesh_processing::triangulate_hole (PolygonMesh &pmesh, typename boost::graph_traits< PolygonMesh >::halfedge_descriptor border_halfedge, OutputIterator out, const NamedParameters &np) |
| triangulates a hole in a polygon mesh. More...
|
|
template<typename PolygonMesh , typename FaceOutputIterator , typename VertexOutputIterator , typename NamedParameters > |
std::pair< FaceOutputIterator, VertexOutputIterator > | CGAL::Polygon_mesh_processing::triangulate_and_refine_hole (PolygonMesh &pmesh, typename boost::graph_traits< PolygonMesh >::halfedge_descriptor border_halfedge, FaceOutputIterator face_out, VertexOutputIterator vertex_out, const NamedParameters &np) |
| triangulates and refines a hole in a polygon mesh. More...
|
|
template<typename PolygonMesh , typename FaceOutputIterator , typename VertexOutputIterator , typename NamedParameters > |
std::tuple< bool, FaceOutputIterator, VertexOutputIterator > | CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole (PolygonMesh &pmesh, typename boost::graph_traits< PolygonMesh >::halfedge_descriptor border_halfedge, FaceOutputIterator face_out, VertexOutputIterator vertex_out, const NamedParameters &np) |
| triangulates, refines and fairs a hole in a polygon mesh. More...
|
|
template<typename PointRange1 , typename PointRange2 , typename OutputIterator , typename NamedParameters > |
OutputIterator | CGAL::Polygon_mesh_processing::triangulate_hole_polyline (const PointRange1 &points, const PointRange2 &third_points, OutputIterator out, const NamedParameters &np) |
| creates triangles to fill the hole defined by points in the range points . More...
|
|
template<typename PointRange , typename OutputIterator , typename NamedParameters > |
OutputIterator | CGAL::Polygon_mesh_processing::triangulate_hole_polyline (const PointRange &points, OutputIterator out, const NamedParameters &np) |
| same as above but the range of third points is omitted. More...
|
|
template<typename PolygonMesh , typename OutputIterator , typename NamedParameters >
OutputIterator CGAL::Polygon_mesh_processing::triangulate_hole |
( |
PolygonMesh & |
pmesh, |
|
|
typename boost::graph_traits< PolygonMesh >::halfedge_descriptor |
border_halfedge, |
|
|
OutputIterator |
out, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
triangulates a hole in a polygon mesh.
The hole must not contain any non-manifold vertex, nor self-intersections. The patch generated does not introduce non-manifold edges nor degenerate triangles. If a hole cannot be triangulated, pmesh
is not modified and nothing is recorded in out
.
- Template Parameters
-
- Parameters
-
pmesh | polygon mesh containing the hole |
border_halfedge | a border halfedge incident to the hole |
out | iterator over patch faces |
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 PolygonMesh |
use_delaunay_triangulation | if true , use the Delaunay triangulation facet search space. If no valid triangulation can be found in this search space, the algorithm falls back to the non-Delaunay triangulations search space to find a solution |
geom_traits | a geometric traits class instance |
- Returns
out
template<typename PointRange1 , typename PointRange2 , typename OutputIterator , typename NamedParameters >
OutputIterator CGAL::Polygon_mesh_processing::triangulate_hole_polyline |
( |
const PointRange1 & |
points, |
|
|
const PointRange2 & |
third_points, |
|
|
OutputIterator |
out, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
creates triangles to fill the hole defined by points in the range points
.
Triangles are recorded into out
using the indices of the input points in the range points
. Note that no degenerate triangles will be produced. If no triangulation can be found, then nothing is recorded in out
.
If faces incident to the polyline outside the hole are known, it is recommended to use this function. The point range third_points
indicates for each pair of consecutive points in the range points
, the third point of the face this segment is incident to. It influences the choice of the best triangulation while avoiding overfolding.
Note that the ranges points
and third_points
may or may not contain duplicated first point at the end of sequence.
- Precondition
third_points.size() == points.size()
- Template Parameters
-
- Parameters
-
points | the range of input points |
third_points | the range of third points |
out | iterator over output patch triangles, described by indices of points in points |
np | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
use_delaunay_triangulation | if true , use the Delaunay triangulation facet search space. If no valid triangulation can be found in this search space, the algorithm falls back to the non-Delaunay triangulations search space to find a solution |
geom_traits | a geometric traits class instance |
- Examples:
- Polygon_mesh_processing/triangulate_polyline_example.cpp.
template<typename PointRange , typename OutputIterator , typename NamedParameters >
OutputIterator CGAL::Polygon_mesh_processing::triangulate_hole_polyline |
( |
const PointRange & |
points, |
|
|
OutputIterator |
out, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
same as above but the range of third points is omitted.
They are not taken into account in the cost computation that leads the hole filling.