|
CGAL 5.1 - CGAL and the Boost Graph Library
|
Generic convenience functions for testing if an edge is a border edge, if a mesh is triangular, for conversion between models of different FaceGraph concepts, etc.
Most functions are in the header file <CGAL/boost/graph/helpers.h>
Functions | |
| template<typename FaceGraph > | |
| bool | CGAL::is_border (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_border_edge (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_border (typename boost::graph_traits< FaceGraph >::edge_descriptor ed, const FaceGraph &g) |
| 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) |
| template<typename FaceGraph > | |
| bool | CGAL::is_closed (const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_bivalent (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_bivalent_mesh (const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_trivalent (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_trivalent_mesh (const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_isolated_triangle (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_triangle (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_triangle_mesh (const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_isolated_quad (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_quad (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_quad_mesh (const FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_tetrahedron (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename Graph > | |
| bool | CGAL::is_valid_halfedge_graph (const Graph &g, bool verb=false) |
checks the integrity of g. More... | |
| template<typename Graph > | |
| bool | CGAL::is_valid_face_graph (const Graph &g, bool verb=false) |
checks the integrity of g. More... | |
| template<typename Mesh > | |
| bool | CGAL::is_valid_polygon_mesh (const Mesh &g, bool verb=false) |
checks the integrity of g. More... | |
| template<typename FaceGraph > | |
| bool | CGAL::is_hexahedron (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g) |
| template<typename FaceGraph > | |
| void | CGAL::clear (FaceGraph &g) |
| template<typename FaceGraph > | |
| bool | CGAL::is_empty (const FaceGraph &g) |
| template<typename Graph > | |
| int | CGAL::vertex_index_in_face (const typename boost::graph_traits< Graph >::vertex_descriptor vd, const typename boost::graph_traits< Graph >::face_descriptor fd, const Graph &g) |
returns the number of calls to next() one has to apply to the halfedge hd for source(hd, mesh) == vd to be true, starting from hd = halfedge(fd, tm). More... | |
| template<typename Graph > | |
| int | CGAL::halfedge_index_in_face (typename boost::graph_traits< Graph >::halfedge_descriptor he, const Graph &g) |
returns the number of calls to next(hd, tm) one has to apply to hd for hd == he to be true, starting from hd = halfedge(face(he, tm), tm). More... | |
| 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 its vertices initialized to p0, p1 and p2, 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 its vertices initialized to p0, p1, p2, and p3, 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 with its vertices initialized to p0, p1, ... , and p7, 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 with its vertices initialized to p0, p1, p2, and p3, and adds it to the graph g. More... | |
| template<class Graph , class P > | |
| boost::graph_traits< Graph >::halfedge_descriptor | CGAL::make_regular_prism (typename boost::graph_traits< Graph >::vertices_size_type nb_vertices, Graph &g, const P &base_center=P(0, 0, 0), typename CGAL::Kernel_traits< P >::Kernel::FT height=1.0, typename CGAL::Kernel_traits< P >::Kernel::FT radius=1.0, bool is_closed=true) |
Creates a triangulated regular prism, outward oriented, having nb_vertices vertices in each of its bases and adds it to the graph g. If center is (0, 0, 0), then the first point of the prism is (radius, height, 0) More... | |
| template<class Graph , class P > | |
| boost::graph_traits< Graph >::halfedge_descriptor | CGAL::make_pyramid (typename boost::graph_traits< Graph >::vertices_size_type nb_vertices, Graph &g, const P &base_center=P(0, 0, 0), typename CGAL::Kernel_traits< P >::Kernel::FT height=1.0, typename CGAL::Kernel_traits< P >::Kernel::FT radius=1.0, bool is_closed=true) |
Creates a pyramid, outward oriented, having nb_vertices vertices in its base and adds it to the graph g. More... | |
| template<class Graph , class P > | |
| boost::graph_traits< Graph >::halfedge_descriptor | CGAL::make_icosahedron (Graph &g, const P ¢er=P(0, 0, 0), typename CGAL::Kernel_traits< P >::Kernel::FT radius=1.0) |
Creates an icosahedron, outward oriented, centered in center and adds it to the graph g. More... | |
| template<class Graph , class CoordinateFunctor > | |
| boost::graph_traits< Graph >::halfedge_descriptor | CGAL::make_grid (typename boost::graph_traits< Graph >::vertices_size_type i, typename boost::graph_traits< Graph >::vertices_size_type j, Graph &g, const CoordinateFunctor &calculator, bool triangulated=false) |
Creates a row major ordered grid with i cells along the width and j cells along the height and adds it to the graph g. An internal property map for CGAL::vertex_point_t must be available in Graph. More... | |
| template<typename SourceMesh , typename TargetMesh , typename NamedParameters1 , typename NamedParameters2 > | |
| void | CGAL::copy_face_graph (const SourceMesh &sm, TargetMesh &tm, const NamedParameters1 &np1, const NamedParameters2 &np2) |
| void CGAL::clear | ( | FaceGraph & | g | ) |
#include <CGAL/boost/graph/helpers.h>
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.
| FaceGraph | model of MutableHalfedgeGraph and MutableFaceGraph |
| g | the graph to clear |
| void CGAL::copy_face_graph | ( | const SourceMesh & | sm, |
| TargetMesh & | tm, | ||
| const NamedParameters1 & | np1, | ||
| const NamedParameters2 & | np2 | ||
| ) |
#include <CGAL/boost/graph/copy_face_graph.h>
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.
| SourceMesh | a model of FaceListGraph. The descriptor types boost::graph_traits<SourceMesh>::vertex_descriptor and boost::graph_traits<SourceMesh>::face_descriptor must be models of Hashable. |
| TargetMesh | a model of FaceListGraph |
| NamedParameters1 | a sequence of Named Parameters |
| NamedParameters2 | a sequence of Named Parameters |
The types sm_vertex_descriptor and sm_face_descriptor must be models of the concept Hashable.
| sm | the source mesh |
| tm | the target mesh |
| np1 | optional sequence of Named Parameters among the ones listed below |
| vertex_point_map | the property map with the points associated to the vertices of sm . If this parameter is omitted, an internal property map for CGAL::vertex_point_t should be available in SourceMesh |
| vertex_to_vertex_output_iterator | an OutputIterator containing the pairs source-vertex, target-vertex. If this parameter is given, then vertex_to_vertex_map cannot be used. |
| halfedge_to_halfedge_output_iterator | an OutputIterator containing the pairs source-halfedge, target-halfedge. If this parameter is given, then halfedge_to_halfedge_map cannot be used. |
| face_to_face_output_iterator | an OutputIterator containing the pairs source-face, target-face. If this parameter is given, then face_to_face_map cannot be used. |
| vertex_to_vertex_map | a ReadWritePropertyMap containing the pairs source-vertex, target-vertex. |
| halfedge_to_halfedge_map | a ReadWritePropertyMap containing the pairs source-halfedge, target-halfedge. |
| face_to_face_map | a ReadWritePropertyMap containing the pairs source-face, target-face. |
| np2 | optional sequence of Named Parameters among the ones listed below |
| vertex_point_map | the property map with the points associated to the vertices of tm. If this parameter is omitted, an internal property map for CGAL::vertex_point_t should be available in TargetMesh |
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 the vertex_point_maps.
Other properties are not copied.
| int CGAL::halfedge_index_in_face | ( | typename boost::graph_traits< Graph >::halfedge_descriptor | he, |
| const Graph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns the number of calls to next(hd, tm) one has to apply to hd for hd == he to be true, starting from hd = halfedge(face(he, tm), tm).
| Graph | a model of FaceGraph. |
| he | a halfedge of g whose index in face(he, tm) is sought |
| g | an object of type Graph |
| bool CGAL::is_bivalent | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true if the target of hd has exactly two incident edges.
| bool CGAL::is_bivalent_mesh | ( | const FaceGraph & | g | ) |
#include <CGAL/boost/graph/helpers.h>
returns true if all vertices have exactly two incident edges.
| bool CGAL::is_border | ( | typename boost::graph_traits< FaceGraph >::edge_descriptor | ed, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true if the edge e is on a border.
| bool CGAL::is_border | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true if the halfedge hd is on a border.
| boost::optional<typename boost::graph_traits<FaceGraph>::halfedge_descriptor> CGAL::is_border | ( | typename boost::graph_traits< FaceGraph >::vertex_descriptor | vd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns a halfedge which is on a border and whose target vertex is vd, if such a halfedge exists.
| bool CGAL::is_border_edge | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true if the halfedge hd or the opposite halfedge is on a border.
| bool CGAL::is_closed | ( | const FaceGraph & | g | ) |
#include <CGAL/boost/graph/helpers.h>
returns true if there are no border edges.
| bool CGAL::is_empty | ( | const FaceGraph & | g | ) |
| bool CGAL::is_hexahedron | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true iff the connected component denoted by hd is a hexahedron.
| bool CGAL::is_isolated_quad | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true iff the connected component denoted by hd is a quadrilateral.
| bool CGAL::is_isolated_triangle | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true iff the connected component denoted by hd is a triangle.
g must be valid. | bool CGAL::is_quad | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true iff the face denoted by hd is a quad, that is it has four incident halfedges.
| bool CGAL::is_quad_mesh | ( | const FaceGraph & | g | ) |
#include <CGAL/boost/graph/helpers.h>
returns true if all faces are quadrilaterals.
| bool CGAL::is_tetrahedron | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true iff the connected component denoted by hd is a tetrahedron.
| bool CGAL::is_triangle | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true iff the face denoted by hd is a triangle, that is it has three incident halfedges.
| bool CGAL::is_triangle_mesh | ( | const FaceGraph & | g | ) |
#include <CGAL/boost/graph/helpers.h>
returns true if all faces are triangles.
| bool CGAL::is_trivalent | ( | typename boost::graph_traits< FaceGraph >::halfedge_descriptor | hd, |
| const FaceGraph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns true if the target of hd has exactly three incident edges.
| bool CGAL::is_trivalent_mesh | ( | const FaceGraph & | g | ) |
#include <CGAL/boost/graph/helpers.h>
returns true if all vertices have exactly three incident edges.
| bool CGAL::is_valid_face_graph | ( | const Graph & | g, |
| bool | verb = false |
||
| ) |
#include <CGAL/boost/graph/helpers.h>
checks the integrity of g.
g is valid if it is a valid HalfedgeListGraph, if it follows the rules of the FaceListGraph concept, and all of its associations are reciprocal. For example, face(halfedge(f,g),g) must be f. calls is_valid_halfedge_graph()
| g | the Graph to test. |
| verb | : if true, the details of the check will be written in the standard output. |
| <tt>Graph</tt> | a model of FaceListGraph |
true if g is valid, false otherwise.is_valid_halfedge_graph() | bool CGAL::is_valid_halfedge_graph | ( | const Graph & | g, |
| bool | verb = false |
||
| ) |
#include <CGAL/boost/graph/helpers.h>
checks the integrity of g.
g is valid if it follows the rules of the HalfedgeListGraph concept, and all of its associations are reciprocal. For example, prev(next(h, g), g) must be h, and next(prev(h, g), g) must be h.
| g | the Graph to test. |
| verb | : if true, the details of the check will be written in the standard output. |
| <tt>Graph</tt> | a model of HalfedgeListGraph |
true if g is valid, false otherwise. | bool CGAL::is_valid_polygon_mesh | ( | const Mesh & | g, |
| bool | verb = false |
||
| ) |
#include <CGAL/boost/graph/helpers.h>
checks the integrity of g.
g is valid if it is a valid FaceListGraph and it has distinct faces on each side of an edge. calls is_valid_face_graph().
| g | the Mesh to test. |
| verb | : if true, the details of the check will be written in the standard output. |
| Mesh | a model of FaceListGraph and HalfedgeListGraph, and follows the definition of a PolygonMesh |
true if g is valid, false otherwise.| boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_grid | ( | typename boost::graph_traits< Graph >::vertices_size_type | i, |
| typename boost::graph_traits< Graph >::vertices_size_type | j, | ||
| Graph & | g, | ||
| const CoordinateFunctor & | calculator, | ||
| bool | triangulated = false |
||
| ) |
#include <CGAL/boost/graph/generators.h>
Creates a row major ordered grid with i cells along the width and j cells along the height and adds it to the graph g. An internal property map for CGAL::vertex_point_t must be available in Graph.
| i | the number of cells along the width. |
| j | the number of cells along the height. |
| g | the graph in which the grid will be created. |
| calculator | the functor that will assign coordinates to the grid vertices. |
| triangulated | decides if a cell is composed of one quad or two triangles. If triangulated is true, the diagonal of each cell is oriented from (0,0) to (1,1) in the cell coordinates. |
| CoordinateFunctor | a function object providing: Point_3 operator()(size_type I, size_type J), with Point_3 being the value_type of the internal property_map for CGAL::vertex_point_t and outputs an object of type boost::property_traits<boost::property_map<Graph,CGAL::vertex_point_t>::type>::value_type. It will be called with arguments (w, h), with w in [0..i] and h in [0..j].Default: a point with positive integer coordinates ( w, h, 0), with w in [0..i] and h in [0..j] |
| 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 | ||
| ) |
#include <CGAL/boost/graph/generators.h>
Creates an isolated hexahedron with its vertices initialized to p0, p1, ... , and p7, and adds it to the graph g.
p0, in the face with the vertices with the points p0, p1, p2, and p3. | boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_icosahedron | ( | Graph & | g, |
| const P & | center = P(0,0,0), |
||
| typename CGAL::Kernel_traits< P >::Kernel::FT | radius = 1.0 |
||
| ) |
#include <CGAL/boost/graph/generators.h>
Creates an icosahedron, outward oriented, centered in center and adds it to the graph g.
| g | the graph in which the icosahedron will be created. |
| center | the center of the sphere in which the icosahedron is inscribed. |
| radius | the radius of the sphere in which the icosahedron is inscribed. |
| boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_pyramid | ( | typename boost::graph_traits< Graph >::vertices_size_type | nb_vertices, |
| Graph & | g, | ||
| const P & | base_center = P(0,0,0), |
||
| typename CGAL::Kernel_traits< P >::Kernel::FT | height = 1.0, |
||
| typename CGAL::Kernel_traits< P >::Kernel::FT | radius = 1.0, |
||
| bool | is_closed = true |
||
| ) |
#include <CGAL/boost/graph/generators.h>
Creates a pyramid, outward oriented, having nb_vertices vertices in its base and adds it to the graph g.
If center is (0, 0, 0), then the first point of the base is (radius, 0, 0)
| nb_vertices | the number of vertices in the base. It must be greater than or equal to 3. |
| g | the graph in which the pyramid will be created |
| base_center | the center of the circle in which the base is inscribed. |
| height | the distance between the base and the apex. |
| radius | the radius of the circle in which the base is inscribed. |
| is_closed | determines if the base must be created or not. If is_closed is true, center is a vertex. |
| boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_quad | ( | const P & | p0, |
| const P & | p1, | ||
| const P & | p2, | ||
| const P & | p3, | ||
| Graph & | g | ||
| ) |
#include <CGAL/boost/graph/generators.h>
Creates an isolated quad with its vertices initialized to p0, p1, p2, and p3, and adds it to the graph g.
p0. | boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_regular_prism | ( | typename boost::graph_traits< Graph >::vertices_size_type | nb_vertices, |
| Graph & | g, | ||
| const P & | base_center = P(0,0,0), |
||
| typename CGAL::Kernel_traits< P >::Kernel::FT | height = 1.0, |
||
| typename CGAL::Kernel_traits< P >::Kernel::FT | radius = 1.0, |
||
| bool | is_closed = true |
||
| ) |
#include <CGAL/boost/graph/generators.h>
Creates a triangulated regular prism, outward oriented, having nb_vertices vertices in each of its bases and adds it to the graph g. If center is (0, 0, 0), then the first point of the prism is (radius, height, 0)
| nb_vertices | the number of vertices per base. It must be greater than or equal to 3. |
| g | the graph in which the regular prism will be created. |
| base_center | the center of the circle in which the lower base is inscribed. |
| height | the distance between the two bases. |
| radius | the radius of the circles in which the bases are inscribed. |
| is_closed | determines if the bases must be created or not. If is_closed is true, center is a vertex. |
| boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_tetrahedron | ( | const P & | p0, |
| const P & | p1, | ||
| const P & | p2, | ||
| const P & | p3, | ||
| Graph & | g | ||
| ) |
#include <CGAL/boost/graph/generators.h>
Creates an isolated tetrahedron with its vertices initialized to p0, p1, p2, and p3, and adds it to the graph g.
p0, in the face with the vertices with the points p0, p1, and p2. | boost::graph_traits<Graph>::halfedge_descriptor CGAL::make_triangle | ( | const P & | p0, |
| const P & | p1, | ||
| const P & | p2, | ||
| Graph & | g | ||
| ) |
#include <CGAL/boost/graph/generators.h>
Creates an isolated triangle with its vertices initialized to p0, p1 and p2, and adds it to the graph g.
p0. | int CGAL::vertex_index_in_face | ( | const typename boost::graph_traits< Graph >::vertex_descriptor | vd, |
| const typename boost::graph_traits< Graph >::face_descriptor | fd, | ||
| const Graph & | g | ||
| ) |
#include <CGAL/boost/graph/helpers.h>
returns the number of calls to next() one has to apply to the halfedge hd for source(hd, mesh) == vd to be true, starting from hd = halfedge(fd, tm).
| Graph | a model of FaceGraph |
| vd | a vertex of g whose index is sought |
| fd | a face of g in which the index of vd is sought |
| g | a mesh of type Graph |
vd is a vertex of fd.