CGAL 4.12 - CGAL and the Boost Graph Library

The algorithms of the Bgl often have many parameters with default values that are appropriate for most cases.

In general, when no special treatment is applied, the values of such parameters are passed as a sequence. Deviating from the default for a certain parameter requires the user to explicitly pass values for all preceding parameters. The solution to this problem is to first write a tag and then the parameter, which for Dijkstra's shortest path algorithm might look as follows:

std::vector<vertex_descriptor> p(num_vertices(g));
std::vector<int> d(num_vertices(g));
vertex_descriptor s = vertex(A, g);
dijkstra_shortest_paths(g, s, predecessor_map(&p[0]).distance_map(&d[0]));

In the Bgl manual, this is called named parameters. The named parameters in the example use the tags predecessor_map and distance_map and they are concatenated with the dot operator.

In the following, we assume that PolygonMesh is a model of the concept FaceGraph. Note that for some functions, the type might be more specific:

Here is the list of the named parameters available in this package:

 vertex_point_map is the property map with the points associated to the vertices of the polygon mesh. Type: a class model of ReadablePropertyMap with boost::graph_traits::vertex_descriptor as key type and a CGAL point type as value type. Default:boost::get(CGAL::vertex_point, pmesh) vertex_index_map is the property map containing the index of each vertex of the input polygon mesh. Type: a class model of ReadablePropertyMap with boost::graph_traits::vertex_descriptor as key type and the value type typename boost::property_traits::type>::value_type Default:boost::get(CGAL::vertex_index, pmesh) halfedge_index_map is the property map containing the index of each halfedge of the input polygon mesh. Type: a class model of ReadablePropertyMap with boost::graph_traits::halfedge_descriptor as key type and the value type: typename boost::property_traits::type>::value_type Default:boost::get(CGAL::halfedge_index, pmesh) If this internal property map exists, its values should be initialized. edge_index_map is the property map containing the index of each edge of the input polygon mesh. Type: a class model of ReadablePropertyMap with boost::graph_traits::edge_descriptor as key type and the value type: typename boost::property_traits::type>::value_type Default:boost::get(CGAL::edge_index, pmesh) If this internal property map exists, its values should be initialized. face_index_map is the property map containing the index of each face of the input polygon mesh. Type: a class model of ReadablePropertyMap with boost::graph_traits::face_descriptor as key type and the value type: typename boost::property_traits::type>::value_type Default:boost::get(CGAL::face_index, pmesh) If this internal property map exists, its values should be initialized. edge_is_constrained_map is the property map containing information about edges of the input polygon mesh being marked or not. Type: a class model of ReadWritePropertyMap with boost::graph_traits::edge_descriptor as key type and bool as value type. It should be default constructible. Default: a default property map where no edge is constrained METIS_options is a parameter used in partition_graph() and partition_dual_graph() to pass options to the METIS graph partitioner. The many options of METIS are not described here. Instead, users should refer to METIS' documentation. Type: an array of size METIS_NOPTIONS with value type idx_t (an integer type defined by METIS). Default: an array of size METIS_NOPTIONS with value type idx_t, initialized using the function METIS_SetDefaultOptions(). vertex_partition_id_map is the property map storing for each vertex of the mesh the id of the subpart of the partition that has been assigned to this vertex. Type: a class model of ReadWritePropertyMap with boost::graph_traits::vertex_descriptor as key type and int as value type. Default: None: this property map is used to store the partition IDs of the vertices as result of a partition algorithm; if it is not provided, this information is simply inaccessible. face_partition_id_map is the property map storing for each face of the mesh the id of the subpart of the partition that has been assigned to this face. Type: a class model of ReadWritePropertyMap with boost::graph_traits::face_descriptor as key type and int as value type. Default: None: this property map is used to store the partition IDs of the faces as result of a partition algorithm; if it is not provided, this information is simply inaccessible.