\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.7 - Polygon Mesh Processing
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Polygon_mesh_processing::stitch_borders()

Functions

template<typename PolygonMesh , typename HalfedgePairsRange , typename NamedParameters >
void CGAL::Polygon_mesh_processing::stitch_borders (PolygonMesh &pmesh, const HalfedgePairsRange &hedge_pairs_to_stitch, const NamedParameters &np)
 Stitches together border halfedges in a polygon mesh. More...
 
template<typename PolygonMesh , class NamedParameters >
void CGAL::Polygon_mesh_processing::stitch_borders (PolygonMesh &pmesh, const NamedParameters &np)
 Same as the other overload but the pairs of halfedges to be stitched are automatically found amongst all border halfedges. More...
 

Function Documentation

template<typename PolygonMesh , typename HalfedgePairsRange , typename NamedParameters >
void CGAL::Polygon_mesh_processing::stitch_borders ( PolygonMesh &  pmesh,
const HalfedgePairsRange &  hedge_pairs_to_stitch,
const NamedParameters &  np 
)

Stitches together border halfedges in a polygon mesh.

The halfedges to be stitched are provided in hedge_pairs_to_stitch. For each pair p in this vector, p.second and its opposite will be removed from pmesh.

The vertices that get removed from pmesh are selected as follows: The pair of halfedges in hedge_pairs_to_stitch are processed linearly. Let p be such a pair. If the target of p.first has not been marked for deletion, then the source of p.second is. If the target of p.second has not been marked for deletion, then the source of p.first is. A vertex is marked for deletion if its corresponding point has already be seen with a vertex previously handled.

Precondition
For each halfedge in a pair of hedge_pairs_to_stitch, the corresponding edge is neither degenerated nor incident to a degenerate edge.
Template Parameters
PolygonMesha model of FaceListGraph and MutableFaceGraph that has a property map for boost::vertex_point_t
HalfedgePairsRangea range of std::pair<boost::graph_traits<PolygonMesh>::halfedge_descriptor, boost::graph_traits<PolygonMesh>::halfedge_descriptor>, model of Range. Its iterator type is InputIterator.
NamedParametersa sequence of Named Parameters
Parameters
pmeshthe polygon mesh to be modified by stitching
hedge_pairs_to_stitcha range of std::pair of halfedges to be stitched together
npoptional Named Parameters described below
Named Parameters
vertex_point_mapthe property map with the points associated to the vertices of pmesh

#include <CGAL/Polygon_mesh_processing/stitch_borders.h>

Examples:
Polygon_mesh_processing/stitch_borders_example.cpp.
template<typename PolygonMesh , class NamedParameters >
void CGAL::Polygon_mesh_processing::stitch_borders ( PolygonMesh &  pmesh,
const NamedParameters &  np 
)

Same as the other overload but the pairs of halfedges to be stitched are automatically found amongst all border halfedges.

Two border halfedges h1 and h2 are set to be stitched if the points associated to the source and target vertices of h1 are the same as those of the target and source vertices of h2 respectively.

Precondition
pmesh does not contains any degenerate border edge.
Template Parameters
PolygonMesha model of FaceListGraph and MutableFaceGraph that has a property map for boost::vertex_point_t
NamedParametersa sequence of Named Parameters
Parameters
pmeshthe polygon mesh to be modified by stitching
npoptional sequence of Named Parameters among the ones listed below
Named Parameters
vertex_point_mapthe property map with the points associated to the vertices of pmesh

#include <CGAL/Polygon_mesh_processing/stitch_borders.h>