\( \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.10 - CGAL and the Boost Graph Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages

Functions

template<typename FaceGraph >
bool CGAL::is_border (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true if the halfedge hd is on a border.
 
template<typename FaceGraph >
bool CGAL::is_border_edge (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true if the halfedge hd or the opposite halfedge is on a border.
 
template<typename FaceGraph >
bool CGAL::is_border (typename boost::graph_traits< FaceGraph >::edge_descriptor ed, const FaceGraph &g)
 returns true if the edge e is on a border.
 
template<typename FaceGraph >
boost::optional< typename
boost::graph_traits< FaceGraph >
::halfedge_descriptor > 
CGAL::is_border (typename boost::graph_traits< FaceGraph >::vertex_descriptor vd, const FaceGraph &g)
 returns a halfedge which is on a border and whose target vertex is vd, if such a halfedge exists.
 
template<typename FaceGraph >
bool CGAL::is_closed (const FaceGraph &g)
 returns true if there are no border edges.
 
template<typename FaceGraph >
bool CGAL::is_bivalent (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true if the target of hd has exactly two incident edges.
 
template<typename FaceGraph >
bool CGAL::is_bivalent_mesh (const FaceGraph &g)
 returns true if all vertices have exactly two incident edges.
 
template<typename FaceGraph >
bool CGAL::is_trivalent (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true if the target of hd has exactly three incident edges.
 
template<typename FaceGraph >
bool CGAL::is_trivalent_mesh (const FaceGraph &g)
 returns true if all vertices have exactly three incident edges.
 
template<typename FaceGraph >
bool CGAL::is_isolated_triangle (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the connected component denoted by hd is a triangle. More...
 
template<typename FaceGraph >
bool CGAL::is_triangle (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the face denoted by hd is a triangle, that is it has three incident halfedges.
 
template<typename FaceGraph >
bool CGAL::is_triangle_mesh (const FaceGraph &g)
 returns true if all faces are triangles.
 
template<typename FaceGraph >
bool CGAL::is_isolated_quad (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the connected component denoted by hd is a quadrilateral.
 
template<typename FaceGraph >
bool CGAL::is_quad (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the face denoted by hd is a quad, that is it has four incident halfedges.
 
template<typename FaceGraph >
bool CGAL::is_quad_mesh (const FaceGraph &g)
 returns true if all faces are quadrilaterals.
 
template<typename FaceGraph >
bool CGAL::is_tetrahedron (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the connected component denoted by hd is a tetrahedron.
 
template<typename FaceGraph >
bool CGAL::is_hexahedron (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the connected component denoted by hd is a hexahedron.
 
template<typename Graph , typename P >
boost::graph_traits< Graph >
::halfedge_descriptor 
CGAL::make_triangle (const P &p0, const P &p1, const P &p2, Graph &g)
 Creates an isolated triangle with border edges in g having p0, p1, and p2 as points and adds it to the graph g. More...
 
template<typename Graph , typename P >
boost::graph_traits< Graph >
::halfedge_descriptor 
CGAL::make_quad (const P &p0, const P &p1, const P &p2, const P &p3, Graph &g)
 Creates an isolated quad with border edges in g having p0, p1, p2, and p3 as points and adds it to the graph g. More...
 
template<typename Graph , typename P >
boost::graph_traits< Graph >
::halfedge_descriptor 
CGAL::make_hexahedron (const P &p0, const P &p1, const P &p2, const P &p3, const P &p4, const P &p5, const P &p6, const P &p7, Graph &g)
 Creates an isolated hexahedron in g having p0, p1, ... , and p7 as points and adds it to the graph g. More...
 
template<typename Graph , typename P >
boost::graph_traits< Graph >
::halfedge_descriptor 
CGAL::make_tetrahedron (const P &p0, const P &p1, const P &p2, const P &p3, Graph &g)
 Creates an isolated tetrahedron in g having p0, p1, p2, and p3 as points and adds it to the graph g. More...
 
template<typename FaceGraph >
void CGAL::clear (FaceGraph &g)
 removes all vertices, faces and halfedges from a graph. More...
 
template<typename SourceMesh , typename TargetMesh , typename V2V = Emptyset_iterator, typename H2H = Emptyset_iterator, typename F2F = Emptyset_iterator, typename Src_vpm = typename boost::property_map<SourceMesh, vertex_point_t>::const_type, typename Tgt_vpm = typename boost::property_map<TargetMesh, vertex_point_t>::type>
void CGAL::copy_face_graph (const SourceMesh &sm, TargetMesh &tm, V2V v2v=V2V(), H2H h2h=H2H(), F2F f2f=F2F(), Src_vpm sm_vpm=get(vertex_point, sm), Tgt_vpm tm_vpm=get(vertex_point, tm))
 copies a source model of FaceListGraph into a target model of a FaceListGraph. More...
 

Function Documentation

template<typename FaceGraph >
void CGAL::clear ( FaceGraph g)

removes all vertices, faces and halfedges from a graph.

Calls remove_edge(), remove_vertex(), and remove_face() for each edge, vertex or face.

If the graph has a member function clear(), it will be called instead.

Template Parameters
FaceGraphmodel of MutableHalfedgeGraph and MutableFaceGraph
Parameters
gthe graph to clear

#include <CGAL/boost/graph/helpers.h>

template<typename SourceMesh , typename TargetMesh , typename V2V = Emptyset_iterator, typename H2H = Emptyset_iterator, typename F2F = Emptyset_iterator, typename Src_vpm = typename boost::property_map<SourceMesh, vertex_point_t>::const_type, typename Tgt_vpm = typename boost::property_map<TargetMesh, vertex_point_t>::type>
void CGAL::copy_face_graph ( const SourceMesh &  sm,
TargetMesh &  tm,
V2V  v2v = V2V(),
H2H  h2h = H2H(),
F2F  f2f = F2F(),
Src_vpm  sm_vpm = get(vertex_point, sm),
Tgt_vpm  tm_vpm = get(vertex_point, tm) 
)

copies a source model of FaceListGraph into a target model of a FaceListGraph.

OutputIterators can be provided to produce a mapping between source and target elements. The target graph is not cleared.

Template Parameters
SourceMesha model of FaceListGraph. The descriptor types boost::graph_traits<SourceMesh>::vertex_descriptor and boost::graph_traits<SourceMesh>::face_descriptor must be models of Hashable.
TargetMesha model of FaceListGraph
V2Va model of OutputIterator accepting std::pair<sm_vertex_descriptor, tm_vertex_descriptor>
H2Ha model of OutputIterator accepting std::pair<sm_halfedge_descriptor, tm_halfedge_descriptor>
F2Fa model of OutputIterator accepting std::pair<sm_face_descriptor, tm_face_descriptor>
Src_vpma model of ReadablePropertyMap with sm_vertex_descriptor as key
Tgt_vpma model of WritablePropertyMap with tm_vertex_descriptor as key where the prefix sm_ and tm_ mean belonging to the source and target mesh respectively.

The types sm_vertex_descriptor and sm_face_descriptor must be models of the concept Hashable.

Parameters
smthe source mesh
tmthe target mesh
v2vpairs of vertex_descriptors from sm and corresponding vertex_descriptors in tm are added to v2v
h2hpairs of halfedge_descriptors from sm and corresponding halfedge_descriptors in tm are added to h2h
f2fpairs of face_descriptors from sm and corresponding face_descriptors in tm are added to f2f
sm_vpmvertex point map for sm
tm_vpmvertex point map for tm

The points from sm to tm are converted using CGAL::Cartesian_converter<SourceKernel, TargetKernel>. SourceKernel and TargetKernel are deduced using CGAL::Kernel_traits from the value types of Src_vpm and Tgt_vpm.

Other properties are not copied.

#include <CGAL/boost/graph/copy_face_graph.h>

template<typename FaceGraph >
bool CGAL::is_isolated_triangle ( typename boost::graph_traits< FaceGraph >::halfedge_descriptor  hd,
const FaceGraph g 
)

returns true iff the connected component denoted by hd is a triangle.

Precondition
g must be valid.

#include <CGAL/boost/graph/helpers.h>

template<typename Graph , typename P >
boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_hexahedron ( const P &  p0,
const P &  p1,
const P &  p2,
const P &  p3,
const P &  p4,
const P &  p5,
const P &  p6,
const P &  p7,
Graph &  g 
)

Creates an isolated hexahedron in g having p0, p1, ... , and p7 as points and adds it to the graph g.

Returns
the halfedge which has the target vertex associated with p0, in the face with the vertices with the points p0, p1, p2, and p3.

#include <CGAL/boost/graph/helpers.h>

template<typename Graph , typename P >
boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_quad ( const P &  p0,
const P &  p1,
const P &  p2,
const P &  p3,
Graph &  g 
)

Creates an isolated quad with border edges in g having p0, p1, p2, and p3 as points and adds it to the graph g.

Returns
the non-border halfedge which has the target vertex associated with p0.

#include <CGAL/boost/graph/helpers.h>

template<typename Graph , typename P >
boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_tetrahedron ( const P &  p0,
const P &  p1,
const P &  p2,
const P &  p3,
Graph &  g 
)

Creates an isolated tetrahedron in g having p0, p1, p2, and p3 as points and adds it to the graph g.

Returns
the halfedge which has the target vertex associated with p0, in the face with the vertices with the points p0, p1, and p2.

#include <CGAL/boost/graph/helpers.h>

template<typename Graph , typename P >
boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_triangle ( const P &  p0,
const P &  p1,
const P &  p2,
Graph &  g 
)

Creates an isolated triangle with border edges in g having p0, p1, and p2 as points and adds it to the graph g.

Returns
the non-border halfedge which has the target vertex associated with p0.

#include <CGAL/boost/graph/helpers.h>