CGAL 5.1 - CGAL and the Boost Graph Library
CGAL and the Boost Graph Library Reference

Andreas Fabri, Fernando Cacciola, Philipp Moeller, and Ron Wein
This package provides a framework for interfacing CGAL data structures with the algorithms of the Boost Graph Library, or BGL for short. It allows to run graph algorithms directly on CGAL data structures which are model of the BGL graph concepts, for example the shortest path algorithm on a Delaunay triangulation in order to compute the Euclidean minimum spanning tree. Furthermore, it introduces several new graph concepts describing halfedge data structures.
Introduced in: CGAL 3.3
BibTeX: cgal:cfw-cbgl-21b
License: LGPL

Classified Reference Pages

Concepts

Properties

CGAL Classes Adapted for the Graph API

A number of CGAL structures have been adapted as graphs for the Bgl. All adapted types are listed here. The pages document which concepts they model, the properties they support, and any possible caveats that a user might encounter.

Helper Classes

Helper Functions

Iterators

Circulators

Euler Operations

Selection

Conversion Functions

Graph Adaptors

Partitioning Methods

I/O Functions

Modules

 Specializations of boost::graph_traits
 
 BGL Named Parameters
 
 Concepts
 
 Properties
 The property tags model of the boost concept PropertyTag.
 
 Dynamic Properties
 
 External Indices
 
 Helper Functions
 
 Iterators and Circulators
 
 Selection Functions
 
 Graph Adaptors
 
 Euler Operations
 
 Partitioning Operations
 
 I/O Functions
 

Files

file  partition.h
 

Functions

template<typename Graph , typename Visitor , typename IsTerminal >
void CGAL::split_graph_into_polylines (const Graph &graph, Visitor &polyline_visitor, IsTerminal is_terminal)
 

Function Documentation

◆ split_graph_into_polylines()

template<typename Graph , typename Visitor , typename IsTerminal >
void CGAL::split_graph_into_polylines ( const Graph &  graph,
Visitor &  polyline_visitor,
IsTerminal  is_terminal 
)

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

splits into polylines the graph g at vertices of degree greater than 2 and at vertices for which is_terminal(v,graph)==true. The polylines are reported using a visitor.

Template Parameters
Grapha model of the boost concepts VertexListGraph and EdgeListGraph.
Visitora class that provides:
  • void start_new_polyline() called when starting the description of a polyline.
  • void add_node(typename boost::graph_traits<Graph>::vertex_descriptor v) called for each vertex v of the polyline currently described. If the polyline is closed this function will be called twice for the first vertex of the cycle picked (once after calling start_new_polyline() and once before the call to end_polyline().
  • void end_polyline() called when the description of a polyline is finished.
IsTerminalA functor providing bool operator()(boost::graph_traits<Graph>::vertex_descriptor v, const Graph& g) const returning true if the vertex v of degree 2 is a polyline endpoint and false otherwise.

An overload without is_terminal is provided if no vertices but those of degree different from 2 are polyline endpoints.

Todo:
Document the version with four parameters
Examples
Surface_mesh_skeletonization/simple_mcfskel_example.cpp.