\( \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.8.1 - Polygon Mesh Processing
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Polygon Mesh Processing Reference

hole_filling_ico.png
Sébastien Loriot, Jane Tournois, Ilker O. Yaz
This package provides a collection of methods and classes for polygon mesh processing, ranging from basic operations on simplices, to complex geometry processing algorithms.


Introduced in: CGAL 4.7
Depends on: documented for each function; CGAL and Solvers
BibTeX: cgal:lty-pmp-16a
License: GPL
Windows Demo: Operations on Polyhedra
Common Demo Dlls: dlls

Classified Reference Pages

Parameters

Optional parameters of the functions of this package are implemented as BGL named parameters. The page Named Parameters describes their usage and provides a list of the parameters that are used in this package.

Meshing Functions

Hole Filling Functions

Predicate Functions

Orientation Functions

Combinatorial Repairing Functions

Normal Computation Functions

Connected Components

Geometric Measure functions

Miscellaneous

Modules

 Named Parameters
 How to use BGL Optional Named Parameters

 
 Concepts
 
 Connected Components
 Two faces are in the same connected component if there is a path of adjacent faces such that all edges between two consecutive faces of the path are not marked as constrained.
 
 Hole Filling
 Functions to fill holes given as a range of halfedges or as range of points.
 
 Meshing
 Functions to triangulate faces, and to refine and fair regions of a polygon mesh.
 
 Normal Computation
 Functions to compute unit normals for individual/all vertices or faces.
 
 Geometric Measure Functions
 Functions to compute lengths of edges and borders, areas of faces and patches, as well as volunes of closed meshes.
 
 Intersection Functions
 Functions to test if there are self intersections, and to report faces that do intersect.
 
 Combinatorial Repairing
 Functions to orient polygon soups and to stitch geometrically identical boundaries.
 

Files

file  polygon_mesh_processing.h
 Convenience header file including the headers for all the free functions of this package.
 

Classes

class  CGAL::Side_of_triangle_mesh< TriangleMesh, GeomTraits, VertexPointMap >
 This class provides an efficient point location functionality with respect to a domain bounded by one or several disjoint closed triangle meshes. More...
 
class  CGAL::Polygon_mesh_slicer< TriangleMesh, Traits, VertexPointMap, AABBTree, UseParallelPlaneOptimization >
 Function object that computes the intersection of a plane with a triangulated surface mesh. More...
 

Functions

template<typename PolygonMesh , typename NamedParameters >
CGAL::Bbox_3 CGAL::Polygon_mesh_processing::bbox_3 (const PolygonMesh &pmesh, const NamedParameters &np)
 computes a bounding box of a polygon mesh. More...
 
template<typename PolygonMesh , typename FaceRange , typename HalfedgeOutputIterator , typename NamedParameters >
HalfedgeOutputIterator CGAL::Polygon_mesh_processing::border_halfedges (const FaceRange &faces, const PolygonMesh &pmesh, HalfedgeOutputIterator out, const NamedParameters &np)
 collects the border of a surface patch defined as a face range. More...
 
template<class PolygonMesh >
std::size_t CGAL::Polygon_mesh_processing::remove_isolated_vertices (PolygonMesh &pmesh)
 removes the isolated vertices from any polygon mesh. More...
 

Function Documentation

template<typename PolygonMesh , typename NamedParameters >
CGAL::Bbox_3 CGAL::Polygon_mesh_processing::bbox_3 ( const PolygonMesh &  pmesh,
const NamedParameters &  np 
)

computes a bounding box of a polygon mesh.

Template Parameters
PolygonMesha model of HalfedgeListGraph that has an internal property map for CGAL::vertex_point_t
NamedParametersa sequence of Named Parameters
Parameters
pmesha polygon mesh
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
Returns
a bounding box of pmesh

#include <CGAL/Polygon_mesh_processing/bbox.h>

template<typename PolygonMesh , typename FaceRange , typename HalfedgeOutputIterator , typename NamedParameters >
HalfedgeOutputIterator CGAL::Polygon_mesh_processing::border_halfedges ( const FaceRange &  faces,
const PolygonMesh &  pmesh,
HalfedgeOutputIterator  out,
const NamedParameters &  np 
)

collects the border of a surface patch defined as a face range.

The border is "seen from inside" the patch, i.e. the collected halfedges are the ones that belong to the input faces.

Template Parameters
PolygonMeshmodel of HalfedgeGraph
FaceRangerange of boost::graph_traits<PolygonMesh>::face_descriptor, model of Range. Its iterator type is InputIterator.
HalfedgeOutputIteratormodel of OutputIterator holding boost::graph_traits<PolygonMesh>::halfedge_descriptor for patch border
NamedParametersa sequence of Named Parameters
Parameters
pmeshthe polygon mesh to which faces belong
facesthe range of faces defining the patch around which the border is collected
outthe output iterator that collects halfedges that form the border of faces, seen from inside the surface patch
npoptional sequence of Named Parameters among the ones listed below
Named Parameters
face_index_mapa property map containing the index of each face of pmesh
Returns
out

#include <CGAL/Polygon_mesh_processing/border.h>

Examples:
Polygon_mesh_processing/isotropic_remeshing_example.cpp.
template<class PolygonMesh >
std::size_t CGAL::Polygon_mesh_processing::remove_isolated_vertices ( PolygonMesh &  pmesh)

removes the isolated vertices from any polygon mesh.

A vertex is considered isolated if it is not incident to any simplex of higher dimension.

Template Parameters
PolygonMesha model of FaceListGraph and MutableFaceGraph
Parameters
pmeshthe polygon mesh to be repaired
Returns
number of removed isolated vertices

#include <CGAL/Polygon_mesh_processing/repair.h>