CGAL 5.0  Polygon Mesh Processing

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.
Functions  
template<typename PolygonMesh , typename FaceOutputIterator , typename NamedParameters >  
FaceOutputIterator  CGAL::Polygon_mesh_processing::connected_component (typename boost::graph_traits< PolygonMesh >::face_descriptor seed_face, const PolygonMesh &pmesh, FaceOutputIterator out, const NamedParameters &np) 
discovers all the faces in the same connected component as seed_face and records them in out . More...  
template<typename PolygonMesh , typename FaceComponentMap , typename NamedParameters >  
boost::property_traits< FaceComponentMap >::value_type  CGAL::Polygon_mesh_processing::connected_components (const PolygonMesh &pmesh, FaceComponentMap fcm, const NamedParameters &np) 
computes for each face the index of the corresponding connected component. More...  
template<typename PolygonMesh , typename NamedParameters >  
std::size_t  CGAL::Polygon_mesh_processing::keep_largest_connected_components (PolygonMesh &pmesh, std::size_t nb_components_to_keep, const NamedParameters &np) 
removes the small connected components and all isolated vertices. More...  
template<typename PolygonMesh , typename ThresholdValueType , typename NamedParameters >  
std::size_t  CGAL::Polygon_mesh_processing::keep_large_connected_components (PolygonMesh &pmesh, const ThresholdValueType threshold_value, const NamedParameters &np) 
removes connected components whose size is (strictly) smaller than a given threshold value, where the size of a connected component is computed as the sum of the individual sizes of all the faces of the connected component. More...  
template<typename PolygonMesh , typename ComponentRange , typename FaceComponentMap , typename NamedParameters >  
void  CGAL::Polygon_mesh_processing::keep_connected_components (PolygonMesh &pmesh, const ComponentRange &components_to_keep, const FaceComponentMap &fcm, const NamedParameters &np) 
keeps the connected components designated by theirs ids in components_to_keep , and removes the other connected components as well as all isolated vertices. More...  
template<typename PolygonMesh , typename ComponentRange , typename FaceComponentMap , typename NamedParameters >  
void  CGAL::Polygon_mesh_processing::remove_connected_components (PolygonMesh &pmesh, const ComponentRange &components_to_remove, const FaceComponentMap &fcm, const NamedParameters &np) 
Removes in pmesh the connected components designated by theirs ids in components_to_remove as well as all isolated vertices. More...  
template<typename PolygonMesh , typename FaceRange , typename NamedParameters >  
void  CGAL::Polygon_mesh_processing::remove_connected_components (PolygonMesh &pmesh, const FaceRange &components_to_remove, const NamedParameters &np) 
keeps the connected components not designated by the faces in components_to_remove , and removes the other connected components and all isolated vertices. More...  
template<typename PolygonMesh , typename FaceRange , typename NamedParameters >  
void  CGAL::Polygon_mesh_processing::keep_connected_components (PolygonMesh &pmesh, const FaceRange &components_to_keep, const NamedParameters &np) 
keeps the connected components designated by the faces in components_to_keep , and removes the other connected components and all isolated vertices. More...  
FaceOutputIterator CGAL::Polygon_mesh_processing::connected_component  (  typename boost::graph_traits< PolygonMesh >::face_descriptor  seed_face, 
const PolygonMesh &  pmesh,  
FaceOutputIterator  out,  
const NamedParameters &  np  
) 
#include <CGAL/Polygon_mesh_processing/connected_components.h>
discovers all the faces in the same connected component as seed_face
and records them in out
.
seed_face
will also be added in out
.
PolygonMesh  a model of FaceGraph 
FaceOutputIterator  a model of OutputIterator that accepts faces of type boost::graph_traits<PolygonMesh>::face_descriptor . 
NamedParameters  a sequence of Named Parameters 
seed_face  a face of pmesh from which exploration starts to detect the connected component that contains it 
pmesh  the polygon mesh 
out  the output iterator that collects faces from the same connected component as seed_face 
np  optional Named Parameters described below 
edge_is_constrained_map  a property map containing the constrainedornot status of each edge of pmesh 
boost::property_traits<FaceComponentMap>::value_type CGAL::Polygon_mesh_processing::connected_components  (  const PolygonMesh &  pmesh, 
FaceComponentMap  fcm,  
const NamedParameters &  np  
) 
#include <CGAL/Polygon_mesh_processing/connected_components.h>
computes for each face the index of the corresponding connected component.
A property map for CGAL::face_index_t
must be either available as an internal property map to pmesh
or provided as one of the Named Parameters.
PolygonMesh  a model of FaceListGraph 
FaceComponentMap  a model of WritablePropertyMap with boost::graph_traits<PolygonMesh>::face_descriptor as key type and boost::graph_traits<PolygonMesh>::faces_size_type as value type. 
NamedParameters  a sequence of Named Parameters 
pmesh  the polygon mesh 
fcm  the property map with indices of components associated to faces in pmesh 
np  optional Named Parameters described below 
edge_is_constrained_map  a property map containing the constrainedornot status of each edge of pmesh 
face_index_map  a property map containing the index of each face of pmesh 
void CGAL::Polygon_mesh_processing::keep_connected_components  (  PolygonMesh &  pmesh, 
const ComponentRange &  components_to_keep,  
const FaceComponentMap &  fcm,  
const NamedParameters &  np  
) 
#include <CGAL/Polygon_mesh_processing/connected_components.h>
keeps the connected components designated by theirs ids in components_to_keep
, and removes the other connected components as well as all isolated vertices.
The connected component id of a face is given by fcm
.
pmesh
a nonmanifold surface, then the behavior of this function is undefined.Property maps for CGAL::vertex_index_t
must be either available as internal property map to pmesh
or provided as Named Parameters.
PolygonMesh  a model of FaceListGraph and MutableFaceGraph 
NamedParameters  a sequence of Named Parameters 
ComponentRange  a range of ids convertible to std::size 
FaceComponentMap  a model of ReadWritePropertyMap with boost::graph_traits<PolygonMesh>::face_descriptor as key type and boost::graph_traits<PolygonMesh>::faces_size_type as value type. 
components_to_keep  the range of ids of connected components to keep 
pmesh  the polygon mesh 
fcm  the property map with indices of components associated to faces in pmesh . After calling this function, the values of fcm are undefined. 
np  optional Named Parameters described below 
vertex_index_map  a property map containing the index of each vertex of pmesh 
void CGAL::Polygon_mesh_processing::keep_connected_components  (  PolygonMesh &  pmesh, 
const FaceRange &  components_to_keep,  
const NamedParameters &  np  
) 
#include <CGAL/Polygon_mesh_processing/connected_components.h>
keeps the connected components designated by the faces in components_to_keep
, and removes the other connected components and all isolated vertices.
Property maps for CGAL::face_index_t
and CGAL::vertex_index_t
must be either available as internal property maps to pmesh
or provided as Named Parameters.
pmesh
a nonmanifold surface, then the behavior of this function is undefined.PolygonMesh  a model of FaceListGraph and MutableFaceGraph 
NamedParameters  a sequence of Named Parameters 
FaceRange  a range of boost::graph_traits<PolygonMesh>::face_descriptor indicating the connected components to be kept. 
pmesh  the polygon mesh 
components_to_keep  a face range, including one face or more on each component to be kept 
np  optional Named Parameters, amongst those described below 
edge_is_constrained_map  a property map containing the constrainedornot status of each edge of pmesh 
face_index_map  a property map containing the index of each face of pmesh 
vertex_index_map  a property map containing the index of each vertex of pmesh 
std::size_t CGAL::Polygon_mesh_processing::keep_large_connected_components  (  PolygonMesh &  pmesh, 
const ThresholdValueType  threshold_value,  
const NamedParameters &  np  
) 
#include <CGAL/Polygon_mesh_processing/connected_components.h>
removes connected components whose size is (strictly) smaller than a given threshold value, where the size of a connected component is computed as the sum of the individual sizes of all the faces of the connected component.
By default, the size of a face is 1
(and thus the size of a connected component is the number of faces it contains), but it is also possible to pass custom sizes, such as the area of the face.
Property maps for CGAL::face_index_t
and CGAL::vertex_index_t
must be either available as internal property maps to pmesh
or provided as Named Parameters.
PolygonMesh  a model of FaceListGraph and MutableFaceGraph 
ThresholdValueType  the type of the threshold value 
NamedParameters  a sequence of Named Parameters 
pmesh  the polygon mesh 
threshold_value  any connected component with a size (strictly) smaller than this value will be discarded 
np  optional Named Parameters, amongst those described below 
edge_is_constrained_map  a property map containing the constrainedornot status of each edge of pmesh 
face_index_map  a property map containing the index of each face of pmesh 
vertex_index_map  a property map containing the index of each vertex of pmesh 
face_size_map  a property map containing a size for each face of pmesh . The value type of this property map is chosen by the user, but must be constructible from 0 and support operator+=() and comparisons. 
ThresholdValueType
must be the same type as the value type of the property map. Otherwise, ThresholdValueType
must be std::size_t
.std::size_t CGAL::Polygon_mesh_processing::keep_largest_connected_components  (  PolygonMesh &  pmesh, 
std::size_t  nb_components_to_keep,  
const NamedParameters &  np  
) 
#include <CGAL/Polygon_mesh_processing/connected_components.h>
removes the small connected components and all isolated vertices.
Keep the nb_components_to_keep
largest connected components, where the size of a connected component is computed as the sum of the individual sizes of all the faces of the connected component. By default, the size of a face is 1
(and thus the size of a connected component is the number of faces it contains), but it is also possible to pass custom sizes, such as the area of the face.
Property maps for CGAL::face_index_t
and CGAL::vertex_index_t
must be either available as internal property maps to pmesh
or provided as Named Parameters.
PolygonMesh  a model of FaceListGraph and MutableFaceGraph 
NamedParameters  a sequence of Named Parameters 
pmesh  the polygon mesh 
nb_components_to_keep  the number of components to be kept 
np  optional Named Parameters, amongst those described below 
edge_is_constrained_map  a property map containing the constrainedornot status of each edge of pmesh 
face_index_map  a property map containing the index of each face of pmesh 
vertex_index_map  a property map containing the index of each vertex of pmesh 
face_size_map  a property map containing a size for each face of pmesh . The value type of this property map is chosen by the user, but must be constructible from 0 and support operator+=() and comparisons. 
void CGAL::Polygon_mesh_processing::remove_connected_components  (  PolygonMesh &  pmesh, 
const ComponentRange &  components_to_remove,  
const FaceComponentMap &  fcm,  
const NamedParameters &  np  
) 
#include <CGAL/Polygon_mesh_processing/connected_components.h>
Removes in pmesh
the connected components designated by theirs ids in components_to_remove
as well as all isolated vertices.
The connected component id of a face is given by fcm
.
pmesh
a nonmanifold surface, then the behavior of this function is undefined.Property maps for CGAL::vertex_index_t
must be either available as internal property map to pmesh
or provided as Named Parameters.
PolygonMesh  a model of FaceListGraph and MutableFaceGraph 
NamedParameters  a sequence of Named Parameters 
ComponentRange  a range of ids convertible to std::size 
FaceComponentMap  a model of ReadWritePropertyMap with boost::graph_traits<PolygonMesh>::face_descriptor as key type and boost::graph_traits<PolygonMesh>::faces_size_type as value type. 
components_to_remove  the range of ids of connected components to remove 
pmesh  the polygon mesh 
fcm  the property map with indices of components associated to faces in pmesh . After calling this function, the values of fcm are undefined. 
np  optional Named Parameters described below 
vertex_index_map  a property map containing the index of each vertex of pmesh 
void CGAL::Polygon_mesh_processing::remove_connected_components  (  PolygonMesh &  pmesh, 
const FaceRange &  components_to_remove,  
const NamedParameters &  np  
) 
#include <CGAL/Polygon_mesh_processing/connected_components.h>
keeps the connected components not designated by the faces in components_to_remove
, and removes the other connected components and all isolated vertices.
Property maps for CGAL::face_index_t
and CGAL::vertex_index_t
must be either available as internal property maps to pmesh
or provided as Named Parameters.
pmesh
a nonmanifold surface, then the behavior of this function is undefined.PolygonMesh  a model of FaceListGraph and MutableFaceGraph 
NamedParameters  a sequence of Named Parameters 
FaceRange  a range of boost::graph_traits<PolygonMesh>::face_descriptor indicating the connected components to be removed. 
components_to_remove  a face range, including one face or more on each component to be removed 
pmesh  the polygon mesh 
np  optional Named Parameters, amongst those described below 
edge_is_constrained_map  a property map containing the constrainedornot status of each edge of pmesh 
face_index_map  a property map containing the index of each face of pmesh 
vertex_index_map  a property map containing the index of each vertex of pmesh 