|
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...
|
|
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 |
|
) |
| |
#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
.
- Note
- If the removal of the connected components makes
pmesh
a non-manifold 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.
- Template 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. |
- Parameters
-
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 |
- Named Parameters
-
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 |
|
) |
| |
#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.
- Note
- If the removal of the connected components makes
pmesh
a non-manifold surface, then the behavior of this function is undefined.
- Template Parameters
-
- Parameters
-
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 |
- Named Parameters
-
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 |
|
) |
| |
#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.
- Template Parameters
-
- 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 |
- Named Parameters
edge_is_constrained_map | a property map containing the constrained-or-not 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. |
- Precondition
- If a face size property map is passed by the user,
ThresholdValueType
must be the same type as the value type of the property map. Otherwise, ThresholdValueType
must be std::size_t
.
- Returns
- the number of connected components removed (ignoring isolated vertices).
- Examples:
- Polygon_mesh_processing/connected_components_example.cpp.
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 |
|
) |
| |
#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.
- Template Parameters
-
- Parameters
-
pmesh | the polygon mesh |
nb_components_to_keep | the number of components to be kept |
np | optional Named Parameters, amongst those described below |
- Named Parameters
edge_is_constrained_map | a property map containing the constrained-or-not 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. |
- Returns
- the number of connected components removed (ignoring isolated vertices).
- Examples:
- Polygon_mesh_processing/connected_components_example.cpp.
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 |
|
) |
| |
#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
.
- Note
- If the removal of the connected components makes
pmesh
a non-manifold 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.
- Template 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. |
- Parameters
-
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 |
- Named Parameters
-
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 |
|
) |
| |
#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.
- Note
- If the removal of the connected components makes
pmesh
a non-manifold surface, then the behavior of this function is undefined.
- Template Parameters
-
- Parameters
-
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 |
- Named Parameters
-