CGAL 4.9 - Polygon Mesh Processing
|
Functions to fill holes given as a range of halfedges or as range of points.
Functions | |
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 CGAL_PMP_NP_TEMPLATE_PARAMETERS > | |
OutputIterator | CGAL::Polygon_mesh_processing::triangulate_hole_polyline (const PointRange &points, OutputIterator out, const CGAL_PMP_NP_CLASS &np) |
same as above but the range of third points is omitted. More... | |
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.
PolygonMesh | must be model of MutableFaceGraph that has an internal property map for CGAL::vertex_point_t |
FacetOutputIterator | 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 |
pmesh | polygon mesh which has the hole |
border_halfedge | a border halfedge incident to the hole |
face_out | output iterator over patch faces |
vertex_out | output iterator over patch vertices without including the boundary |
np | optional sequence of Named Parameters among the ones listed below |
vertex_point_map | the property map with the points associated to the vertices of pmesh |
density_control_factor | factor to control density of the ouput mesh, where larger values cause denser refinements, as in refine() |
use_delaunay_triangulation | if true , use the Delaunay triangulation facet search space |
geom_traits | a geometric traits class instance |
face_out
and vertex_out
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
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.
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
.
PolygonMesh | a model of MutableFaceGraph that has an internal property map for CGAL::vertex_point_t |
OutputIterator | a model of OutputIterator holding boost::graph_traits<PolygonMesh>::face_descriptor for patch faces. |
NamedParameters | a sequence of Named 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 |
vertex_point_map | the property map with the points associated to the vertices of pmesh |
use_delaunay_triangulation | if true , use the Delaunay triangulation facet search space |
geom_traits | a geometric traits class instance |
out
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
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
.
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 | optional sequence of Named Parameters among the ones listed below |
use_delaunay_triangulation | if true , use the Delaunay triangulation facet search space |
geom_traits | a geometric traits class instance |
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
OutputIterator CGAL::Polygon_mesh_processing::triangulate_hole_polyline | ( | const PointRange & | points, |
OutputIterator | out, | ||
const CGAL_PMP_NP_CLASS & | np | ||
) |
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.
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
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.
PolygonMesh | a model of MutableFaceGraph that has an internal property map for CGAL::vertex_point_t |
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 |
pmesh | polygon mesh which has the hole |
border_halfedge | a border halfedge incident to the hole |
face_out | output iterator over patch faces |
vertex_out | output iterator over patch vertices without including the boundary |
np | optional sequence of Named Parameters among the ones listed below |
vertex_point_map | the property map with the points associated to the vertices of pmesh |
use_delaunay_triangulation | if true , use the Delaunay triangulation facet search space |
density_control_factor | factor to control density of the ouput mesh, where larger values cause denser refinements, as in refine() |
fairing_continuity | tangential continuity of the output surface patch |
sparse_linear_solver | an instance of the sparse linear solver used for fairing |
geom_traits | a geometric traits class instance |
bool
: true
if fairing is successfulface_out
vertex_out
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>