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 > |
| CGAL::cpp11::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 |
| 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
-
- 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.