CGAL 5.0  CGAL and the Boost Graph Library

Several functions to enlarge or reduce a kring selection of vertices, edges, or faces.
Functions  
template<class FaceRange , class FaceGraph , class IsFaceSelectedPMap , class OutputIterator >  
OutputIterator  CGAL::expand_face_selection (const FaceRange &selection, FaceGraph &fg, unsigned int k, IsFaceSelectedPMap is_selected, OutputIterator out) 
Augments a selection with faces of fg that are adjacent to a face in selection . More...  
template<class FaceRange , class FaceGraph , class IsFaceSelectedPMap , class OutputIterator >  
OutputIterator  CGAL::reduce_face_selection (const FaceRange &selection, FaceGraph &fg, unsigned int k, IsFaceSelectedPMap is_selected, OutputIterator out) 
Diminishes a selection of faces from faces adjacent to a nonselected face. More...  
template<class HalfedgeRange , class FaceGraph , class OutputIterator >  
OutputIterator  CGAL::select_incident_faces (const HalfedgeRange &hedges, FaceGraph &fg, OutputIterator out) 
Discovers and puts in out all faces incident to the target vertex of a halfedge in hedges . More...  
template<class EdgeRange , class HalfedgeGraph , class IsEdgeSelectedPMap , class OutputIterator >  
OutputIterator  CGAL::expand_edge_selection (const EdgeRange &selection, HalfedgeGraph &fg, unsigned int k, IsEdgeSelectedPMap is_selected, OutputIterator out) 
Augments a selection with edges of fg that are adjacent to an edge in selection . More...  
template<class EdgeRange , class HalfedgeGraph , class IsEdgeSelectedPMap , class OutputIterator >  
OutputIterator  CGAL::reduce_edge_selection (const EdgeRange &selection, HalfedgeGraph &fg, unsigned int k, IsEdgeSelectedPMap is_selected, OutputIterator out) 
Diminishes a selection of edges from edges adjacent to a nonselected edge. More...  
template<class VertexRange , class HalfedgeGraph , class IsVertexSelectedPMap , class OutputIterator >  
OutputIterator  CGAL::expand_vertex_selection (const VertexRange &selection, HalfedgeGraph &fg, unsigned int k, IsVertexSelectedPMap is_selected, OutputIterator out) 
Augments a selection with vertices of fg that are adjacent to a vertex in selection . More...  
template<class VertexRange , class HalfedgeGraph , class IsVertexSelectedPMap , class OutputIterator >  
OutputIterator  CGAL::reduce_vertex_selection (const VertexRange &selection, HalfedgeGraph &fg, unsigned int k, IsVertexSelectedPMap is_selected, OutputIterator out) 
Diminishes a selection of vertices from vertices adjacent to a nonselected vertex. More...  
template<class TriangleMesh , class FaceRange , class IsSelectedMap >  
void  CGAL::expand_face_selection_for_removal (const FaceRange &faces_to_be_deleted, TriangleMesh &tm, IsSelectedMap is_selected) 
Expands a selection of faces so that their removal does not create any non manifold vertex. More...  
OutputIterator CGAL::expand_edge_selection  (  const EdgeRange &  selection, 
HalfedgeGraph &  fg,  
unsigned int  k,  
IsEdgeSelectedPMap  is_selected,  
OutputIterator  out  
) 
#include <CGAL/boost/graph/selection.h>
Augments a selection with edges of fg
that are adjacent to an edge in selection
.
This process is applied k
times considering all edges added in the previous steps. Two edges are said to be adjacent if they are incident to the same face or vertex. Each new edge added in the selection is added exactly once in out
.
EdgeRange  a range of edge descriptors, model of Range . Its iterator type is InputIterator . 
FaceGraph  a model of FaceGraph . 
IsEdgeSelectedPMap  a model of ReadWritePropertyMap with boost::graph_traits<FaceGraph>::edge_descriptor as key type and bool as value type. 
OutputIterator  an output iterator accepting edge descriptors. 
selection  the initial selection of edges that will be expanded. 
fg  the graph containing the selected edges. 
k  the number of times the expansion procedure is iteratively applied. 
is_selected  indicates if an edge is part of the selection. It is updated by the function to accommodate new edges added to the selection. 
out  new edges added to the selection are added exactly once in out . 
OutputIterator CGAL::expand_face_selection  (  const FaceRange &  selection, 
FaceGraph &  fg,  
unsigned int  k,  
IsFaceSelectedPMap  is_selected,  
OutputIterator  out  
) 
#include <CGAL/boost/graph/selection.h>
Augments a selection with faces of fg
that are adjacent to a face in selection
.
This process is applied k
times considering all faces added in the previous steps. Two faces are said to be adjacent if they share a vertex or an edge. Each new face added in the selection is added exactly once in out
.
FaceRange  a range of face descriptors, model of Range . Its iterator type is InputIterator . 
FaceGraph  a model of FaceGraph . 
IsFaceSelectedPMap  a model of ReadWritePropertyMap with boost::graph_traits<FaceGraph>::face_descriptor as key type and bool as value type. 
OutputIterator  an output iterator accepting face descriptors. 
selection  the initial selection of faces that will be expanded. 
fg  the graph containing the selected faces. 
k  the number of times the expansion procedure is iteratively applied. 
is_selected  indicates if a face is part of the selection. It is updated by the function to accommodate new faces added to the selection. 
out  new faces added to the selection are added exactly once in out . 
void CGAL::expand_face_selection_for_removal  (  const FaceRange &  faces_to_be_deleted, 
TriangleMesh &  tm,  
IsSelectedMap  is_selected  
) 
#include <CGAL/boost/graph/selection.h>
Expands a selection of faces so that their removal does not create any non manifold vertex.
For each vertex that is incident to a selected face, we turn around that vertex and check if there is exactly one set of consecutive selected faces. If not, additional faces around that vertex are selected to match this condition.
TriangleMesh  a model of FaceGraph that is triangulated. 
FaceRange  a range of boost::graph_traits<TriangleMesh>::face_descriptor , with an iterator type model of ForwardIterator . 
IsSelectedMap  a model of ReadWritePropertyMap with boost::graph_traits<TriangleMesh>::face_descriptor as key and bool as value. 
tm  the triangle mesh. 
faces_to_be_deleted  the range of selected faces. 
is_selected  a property map containing the selectedornot status of each face of tm . It must associate true to each face of faces_to_be_deleted and false to any other face of tm . It will be modified if the face selection must be expanded. 
OutputIterator CGAL::expand_vertex_selection  (  const VertexRange &  selection, 
HalfedgeGraph &  fg,  
unsigned int  k,  
IsVertexSelectedPMap  is_selected,  
OutputIterator  out  
) 
#include <CGAL/boost/graph/selection.h>
Augments a selection with vertices of fg
that are adjacent to a vertex in selection
.
This process is applied k
times considering all vertices added in the previous steps. Two vertices are said to be adjacent if they are part of the same face. Each new vertex added in the selection is added exactly once in out
.
VertexRange  a range of vertex descriptors, model of Range . Its iterator type is InputIterator . 
FaceGraph  a model of FaceGraph . 
IsVertexSelectedPMap  a model of ReadWritePropertyMap with boost::graph_traits<FaceGraph>::vertex_descriptor as key type and bool as value type. 
OutputIterator  an output iterator accepting vertex descriptors. 
selection  the initial selection of vertices that will be expanded. 
fg  the graph containing the selected vertices. 
k  the number of times the expansion procedure is iteratively applied. 
is_selected  indicates if a vertex is part of the selection. It is updated by the function to accommodate new vertices added to the selection. 
out  new vertices added to the selection are added exactly once in out . 
OutputIterator CGAL::reduce_edge_selection  (  const EdgeRange &  selection, 
HalfedgeGraph &  fg,  
unsigned int  k,  
IsEdgeSelectedPMap  is_selected,  
OutputIterator  out  
) 
#include <CGAL/boost/graph/selection.h>
Diminishes a selection of edges from edges adjacent to a nonselected edge.
This process is applied k
times considering all edges removed in the previous steps. Two edges are said to be adjacent if they are incident to the same face or vertex. Each edge removed from the selection is added exactly once in out
.
EdgeRange  a range of edge descriptors, model of Range . Its iterator type is InputIterator . 
FaceGraph  a model of FaceGraph . 
IsEdgeSelectedPMap  a model of ReadWritePropertyMap with boost::graph_traits<FaceGraph>::edge_descriptor as key type and bool as value type. 
OutputIterator  an output iterator accepting edge descriptors. 
selection  the initial selection of edges that will be reduced. 
fg  the graph containing the selected edges. 
k  the number of times the reduction procedure is iteratively applied. 
is_selected  indicates if an edge is part of the selection. It is updated by the function to accommodate edges removed from the selection. 
out  edges removed from the selection are added exactly once in out . 
OutputIterator CGAL::reduce_face_selection  (  const FaceRange &  selection, 
FaceGraph &  fg,  
unsigned int  k,  
IsFaceSelectedPMap  is_selected,  
OutputIterator  out  
) 
#include <CGAL/boost/graph/selection.h>
Diminishes a selection of faces from faces adjacent to a nonselected face.
This process is applied k
times considering all faces removed in the previous steps. Two faces are said to be adjacent if they share a vertex or an edge. Each face removed from the selection is added exactly once in out
.
FaceRange  a range of face descriptors, model of Range . Its iterator type is InputIterator . 
FaceGraph  a model of FaceGraph . 
IsFaceSelectedPMap  a model of ReadWritePropertyMap with boost::graph_traits<FaceGraph>::face_descriptor as key type and bool as value type. 
OutputIterator  an output iterator accepting face descriptors. 
selection  the initial selection of faces that will be expanded. 
fg  the graph containing the selected faces. 
k  the number of times the reduction procedure is iteratively applied. 
is_selected  indicates if a face is part of the selection. It is updated by the function to accommodate faces removed from the selection. 
out  faces removed from the selection are added exactly once in out . 
update isselected attribute and output iterator
OutputIterator CGAL::reduce_vertex_selection  (  const VertexRange &  selection, 
HalfedgeGraph &  fg,  
unsigned int  k,  
IsVertexSelectedPMap  is_selected,  
OutputIterator  out  
) 
#include <CGAL/boost/graph/selection.h>
Diminishes a selection of vertices from vertices adjacent to a nonselected vertex.
This process is applied k
times considering all vertices removed in the previous steps. Two vertices are said to be adjacent if they are part of the same face. Each vertex removed from the selection is added exactly once in out
.
VertexRange  a range of vertex descriptors, model of Range . Its iterator type is InputIterator . 
FaceGraph  a model of FaceGraph . 
IsVertexSelectedPMap  a model of ReadWritePropertyMap with boost::graph_traits<FaceGraph>::vertex_descriptor as key type and bool as value type. 
OutputIterator  an output iterator accepting vertex descriptors. 
selection  the initial selection of vertices that will be reduced. 
fg  the graph containing the selected vertices. 
k  the number of times the reduction procedure is iteratively applied. 
is_selected  indicates if a vertex is part of the selection. It is updated by the function to accommodate vertices removed from the selection. 
out  vertices removed from the selection are added exactly once in out . 
OutputIterator CGAL::select_incident_faces  (  const HalfedgeRange &  hedges, 
FaceGraph &  fg,  
OutputIterator  out  
) 
#include <CGAL/boost/graph/selection.h>
Discovers and puts in out
all faces incident to the target vertex of a halfedge in hedges
.
Faces are put exactly once in out
.
HalfedgeRange  a range of halfedge descriptors, model of Range . Its iterator type is InputIterator . 
HalfedgeGraph  a model of HalfedgeGraph . 
OutputIterator  an output iterator accepting face descriptors. 
hedges  the range a halfedge descriptors consider during the face selection. 
fg  the graph containing the input halfedges. 
out  faces added to the selection are added exactly once in out . 