CGAL 4.7 - Polygon Mesh Processing: CGAL::Polygon_mesh_processing::stitch_borders()

\( \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
Functions
CGAL::Polygon_mesh_processing::stitch_borders()
Polygon Mesh Processing Reference

##

## 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

  PolygonMesh | a model of `FaceListGraph` and `MutableFaceGraph` that has a property map for `boost::vertex_point_t`
  HalfedgePairsRange | a range of `std::pair<boost::graph_traits<PolygonMesh>::halfedge_descriptor, boost::graph_traits<PolygonMesh>::halfedge_descriptor>`, model of `Range`. Its iterator type is `InputIterator`.
  NamedParameters | a sequence of Named Parameters

Parameters

  pmesh | the polygon mesh to be modified by stitching
  hedge_pairs_to_stitch | a range of `std::pair` of halfedges to be stitched together
  np | optional Named Parameters described below

Named Parameters

  vertex_point_map | the 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

  PolygonMesh | a model of `FaceListGraph` and `MutableFaceGraph` that has a property map for `boost::vertex_point_t`
  NamedParameters | a sequence of Named Parameters

Parameters

  pmesh | the polygon mesh to be modified by stitching
  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`

`#include <CGAL/Polygon_mesh_processing/stitch_borders.h>`