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
|
||||
|
||||
\cgalHeading{How to use BGL Optional Named Parameters}
|
||||
|
||||
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.
|
||||
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).
|
||||
|
||||
Since the parameters of the various polygon mesh processing functions defined in this
|
||||
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.
|
||||
</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:
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue