- iterator over patch faces
-
Type: a model of
OutputIterator
holdingboost::graph_traits<PolygonMesh>::face_descriptor
for patch faces -
Default:
Emptyset_iterator
CGAL 6.1 - Polygon Mesh Processing
|
Functions to fill holes given as a range of halfedges or as range of points.
Classes | |
struct | CGAL::Polygon_mesh_processing::Hole_filling::Default_visitor |
Default hole filling visitor model of PMPHolefillingVisitor . More... | |
Functions | |
template<typename PolygonMesh , typename NamedParameters = CGAL::parameters::Default_named_parameters> | |
auto | CGAL::Polygon_mesh_processing::triangulate_hole (PolygonMesh &pmesh, typename boost::graph_traits< PolygonMesh >::halfedge_descriptor border_halfedge, const NamedParameters &np=parameters::default_values()) |
triangulates a hole in a polygon mesh. | |
template<typename PolygonMesh , typename OutputIterator , typename NamedParameters = CGAL::parameters::Default_named_parameters> | |
OutputIterator | CGAL::Polygon_mesh_processing::triangulate_hole (PolygonMesh &pmesh, typename boost::graph_traits< PolygonMesh >::halfedge_descriptor border_halfedge, OutputIterator out, const NamedParameters &np=parameters::default_values()) |
triangulates a hole in a polygon mesh. | |
template<typename PolygonMesh , typename NamedParameters = CGAL::parameters::Default_named_parameters> | |
auto | CGAL::Polygon_mesh_processing::triangulate_and_refine_hole (PolygonMesh &pmesh, typename boost::graph_traits< PolygonMesh >::halfedge_descriptor border_halfedge, const NamedParameters &np=parameters::default_values()) |
triangulates and refines a hole in a polygon mesh. | |
template<typename PolygonMesh , typename FaceOutputIterator , typename VertexOutputIterator , typename NamedParameters = CGAL::parameters::Default_named_parameters> | |
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=parameters::default_values()) |
triangulates and refines a hole in a polygon mesh. | |
template<typename PolygonMesh , typename NamedParameters = CGAL::parameters::Default_named_parameters> | |
auto | CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole (PolygonMesh &pmesh, typename boost::graph_traits< PolygonMesh >::halfedge_descriptor border_halfedge, const NamedParameters &np=parameters::default_values()) |
triangulates, refines and fairs a hole in a polygon mesh. | |
template<typename PolygonMesh , typename FaceOutputIterator , typename VertexOutputIterator , typename NamedParameters = CGAL::parameters::Default_named_parameters> | |
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=parameters::default_values()) |
triangulates, refines, and fairs a hole in a polygon mesh. | |
template<typename PointRange1 , typename PointRange2 , typename OutputIterator , typename NamedParameters = parameters::Default_named_parameters> | |
OutputIterator | CGAL::Polygon_mesh_processing::triangulate_hole_polyline (const PointRange1 &points, const PointRange2 &third_points, OutputIterator out, const NamedParameters &np=parameters::default_values()) |
creates triangles to fill the hole defined by points in the range points . | |
template<typename PointRange , typename OutputIterator , typename NamedParameters = CGAL::parameters::Default_named_parameters> | |
OutputIterator | CGAL::Polygon_mesh_processing::triangulate_hole_polyline (const PointRange &points, OutputIterator out, const NamedParameters &np=parameters::default_values()) |
Same as above but the range of third points is omitted. | |
auto CGAL::Polygon_mesh_processing::triangulate_and_refine_hole | ( | PolygonMesh & | pmesh, |
typename boost::graph_traits< PolygonMesh >::halfedge_descriptor | border_halfedge, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
triangulates and refines a hole in a polygon mesh.
PolygonMesh | must be model of MutableFaceGraph |
NamedParameters | a sequence of Named Parameters |
pmesh | polygon mesh which has the hole |
border_halfedge | a border halfedge incident to the hole |
np | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
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 = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
triangulates and refines a hole in a polygon mesh.
face_output_iterator
and vertex_output_iterator
should be used instead.PolygonMesh | must be model of MutableFaceGraph |
FaceOutputIterator | model of OutputIterator holding boost::graph_traits<PolygonMesh>::face_descriptor for patch faces. |
VertexOutputIterator | model of OutputIterator holding boost::graph_traits<PolygonMesh>::vertex_descriptor for patch vertices. |
NamedParameters | a sequence of Named Parameters |
auto CGAL::Polygon_mesh_processing::triangulate_hole | ( | PolygonMesh & | pmesh, |
typename boost::graph_traits< PolygonMesh >::halfedge_descriptor | border_halfedge, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
triangulates a hole in a polygon mesh.
Depending on the choice of the underlying algorithm different preconditions apply. When using the 2D constrained Delaunay triangulation, the border edges of the hole must not intersect the surface. Otherwise, additionally, the boundary of the hole must not contain any non-manifold vertex. 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 the face output iterator.
PolygonMesh | a model of MutableFaceGraph |
NamedParameters | a sequence of Named Parameters |
pmesh | polygon mesh containing the hole |
border_halfedge | a border halfedge incident to the hole |
np | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
| |
| |
| |
|
handle islands
Replace border_halfedge by a range of border halfedges. The first one would describe the hole, the other ones would describe the islands.
Then, insert the holes vertices in the set of possibilities for connecting vertices together
handle the case where an island is reduced to a point
OutputIterator CGAL::Polygon_mesh_processing::triangulate_hole | ( | PolygonMesh & | pmesh, |
typename boost::graph_traits< PolygonMesh >::halfedge_descriptor | border_halfedge, | ||
OutputIterator | out, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
triangulates a hole in a polygon mesh.
face_output_iterator
should be used instead.PolygonMesh | a model of MutableFaceGraph |
OutputIterator | a model of OutputIterator holding boost::graph_traits<PolygonMesh>::face_descriptor for patch faces. |
NamedParameters | a sequence of Named Parameters |
OutputIterator CGAL::Polygon_mesh_processing::triangulate_hole_polyline | ( | const PointRange & | points, |
OutputIterator | out, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#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.
OutputIterator CGAL::Polygon_mesh_processing::triangulate_hole_polyline | ( | const PointRange1 & | points, |
const PointRange2 & | third_points, | ||
OutputIterator | out, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#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.
third_points.size() == points.size()
PointRange | range of points, model of Range . Its iterator type is InputIterator . |
OutputIterator | model of OutputIterator , to collect patch faces. A specialization for CGAL::value_type_traits<OutputIterator> must be available, and the corresponding value type type must have a constructor type(int p0, int p1, int p2) available. The indices correspond to the ones of input points in points . |
NamedParameters | a sequence of Named 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 | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
|
auto CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole | ( | PolygonMesh & | pmesh, |
typename boost::graph_traits< PolygonMesh >::halfedge_descriptor | border_halfedge, | ||
const NamedParameters & | np = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
triangulates, refines and fairs a hole in a polygon mesh.
PolygonMesh | a model of MutableFaceGraph |
NamedParameters | a sequence of Named Parameters |
pmesh | polygon mesh which has the hole |
border_halfedge | a border halfedge incident to the hole |
np | an optional sequence of Named Parameters among the ones listed below |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
bool
with true
if fairing is successful, and the face and vertex output iteratorstd::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 = parameters::default_values() |
||
) |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
triangulates, refines, and fairs a hole in a polygon mesh.
face_output_iterator
and vertex_output_iterator
should be used instead.PolygonMesh | a model of MutableFaceGraph |
FaceOutputIterator | model of OutputIterator holding boost::graph_traits<PolygonMesh>::face_descriptor for patch faces. |
VertexOutputIterator | model of OutputIterator holding boost::graph_traits<PolygonMesh>::vertex_descriptor for patch vertices. |
NamedParameters | a sequence of Named Parameters |