mirror of https://github.com/CGAL/cgal
Update doc of Named Parameters for PMP
This commit is contained in:
parent
65a696adbb
commit
4354c5b0e8
|
|
@ -1,51 +1,8 @@
|
||||||
/*!
|
/*!
|
||||||
\defgroup namedparameters Named Parameters
|
\defgroup namedparameterspmp Named Parameters for Polygon Mesh Processing
|
||||||
\ingroup PkgPolygonMeshProcessing
|
\ingroup PkgPolygonMeshProcessing
|
||||||
|
|
||||||
\cgalHeading{How to use BGL Optional Named Parameters}
|
In this package, all functions optional parameters are implemented as BGL optional named parameters (see \ref BGLNamedParameters for more information on how to use them).
|
||||||
|
|
||||||
The notion of named parameters was introduced in the BGL.
|
|
||||||
You can read about it in the following site: http://www.boost.org/libs/graph/doc/bgl_named_params.html.
|
|
||||||
Named parameters allow the user to specify only those parameters which are really needed, by name, making the parameter ordering unimportant.
|
|
||||||
|
|
||||||
Say there is a function `f()` that takes 3 parameters called name, age and gender, and you have variables `n`, `a` and `g` to pass as parameters to that function. Without named parameters, you would call it like this: `f(n,a,g)`, whereas with named parameters, you call it like this: `f(name(n).age(a).gender(g))`.
|
|
||||||
|
|
||||||
That is, you give each parameter a name by wrapping it into a function whose name matches that of the parameter. The entire list of named parameters is really a composition of function calls separated by a dot ( .). Thus, if the function takes a mix of mandatory and named parameters, you use a comma to separate the last non-named parameter from the first named parameters, like this:
|
|
||||||
|
|
||||||
`f(non_named_par0, non_named_par1, name(n).age(a).gender(g))`
|
|
||||||
|
|
||||||
When you use named parameters, the ordering is irrelevant, so `f(name(n).age(a).gender(g))` is equivalent to `f(age(a).gender(g).name(n))`, and you can just omit any named parameter that has a default value.
|
|
||||||
|
|
||||||
The sequence of named parameters should start with `CGAL::Polygon_mesh_processing::parameters::`.
|
|
||||||
`#CGAL::Polygon_mesh_processing::parameters::all_default()` can be used to indicate
|
|
||||||
that default values of optional named parameters must be used.
|
|
||||||
|
|
||||||
|
|
||||||
\cgalHeading{Example}
|
|
||||||
|
|
||||||
See below a sample call of a function that uses the optional BGL named parameters.
|
|
||||||
|
|
||||||
\code
|
|
||||||
// pmesh : polygon mesh with patches to be refined
|
|
||||||
// faces : the range of faces defining the patches to refine
|
|
||||||
// faces_out : output iterator into which descriptors of new faces are put
|
|
||||||
// vertices_out : output iterator into which descriptors of new vertices are put
|
|
||||||
// vertex_point_map : the property map with the points associated to the vertices of `pmesh`
|
|
||||||
// density_control_factor : factor to control density of the output mesh
|
|
||||||
refine(pmesh
|
|
||||||
, faces
|
|
||||||
, faces_out
|
|
||||||
, vertices_out
|
|
||||||
, CGAL::Polygon_mesh_processing::parameters::vertex_point_map(vpmap)
|
|
||||||
.density_control_factor(d));
|
|
||||||
\endcode
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\cgalHeading{List of Available Named Parameters}
|
|
||||||
|
|
||||||
In this package, all functions optional parameters are implemented as BGL optional named parameters.
|
|
||||||
|
|
||||||
Since the parameters of the various polygon mesh processing functions defined in this
|
Since the parameters of the various polygon mesh processing functions defined in this
|
||||||
package are redundant, their long descriptions are centralized below.
|
package are redundant, their long descriptions are centralized below.
|
||||||
|
|
@ -58,6 +15,8 @@ In the following, we assume that the following types are provided as template pa
|
||||||
<li>`GeomTraits` a geometric traits class in which constructions are performed and predicates evaluated. Everywhere in this package, a \cgal `Kernel` fulfills the requirements.
|
<li>`GeomTraits` a geometric traits class in which constructions are performed and predicates evaluated. Everywhere in this package, a \cgal `Kernel` fulfills the requirements.
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
`#CGAL::Polygon_mesh_processing::parameters::all_default()` can be used to indicate
|
||||||
|
that default values of optional named parameters must be used.
|
||||||
|
|
||||||
Here is the list of the named parameters available in this package:
|
Here is the list of the named parameters available in this package:
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue