mirror of https://github.com/CGAL/cgal
Continue doc of GMap for operations.
This commit is contained in:
parent
9d3fe41fbd
commit
417ddaa469
|
|
@ -242,7 +242,7 @@ typedef CGAL::Combinatorial_map<3, Example_items_3> Example_custom_cmap3;
|
|||
|
||||
\section Combinatorial_mapIteration Iteration and Creation Operations
|
||||
|
||||
An important operation in combinatorial maps consists in iterating over specific subsets of darts or over attributes. For that, several <I>ranges</I> are offered (see Section \ref ssecrange "Iterating over Orbits, Cells, and Attributes"). A range is a model of the `Range` concept, thus supporting the two methods `begin()` and `end()` allowing to iterate over all the elements in the range. Several global functions allow to create specific configurations of darts into a combinatorial map (see Section \ref ssecconstruction "Construction Operations"). Darts can be marked during operations, for example when performing a breadth-first search traversal, thanks to Boolean marks (see Sections \ref ssecadvmarks "Boolean Marks").
|
||||
An important operation in combinatorial maps consists in iterating over specific subsets of darts or over attributes. For that, several <I>ranges</I> are offered (see Section \ref ssecrange "Iterating over Orbits, Cells, and Attributes"). A range is a model of the `Range` concept, thus supporting the two methods `begin()` and `end()` allowing to iterate over all the elements in the range. Several global functions allow to create specific configurations of darts into a combinatorial map (see Section \ref ssecconstruction "Construction Operations"). Darts can be marked during operations, for example when performing a breadth-first search traversal, thanks to Boolean marks (see Sections \ref ssecadvmarks "Boolean Marks"). In the following, we denote by `dh0`, `dh1`, `dh2` the dart handles for the darts `d0`, `d1`, `d2`, respectively. That is `d0 == *dh0`.
|
||||
|
||||
\subsection ssecrange Iterating over Orbits, Cells, and Attributes
|
||||
|
||||
|
|
|
|||
|
|
@ -745,7 +745,7 @@ Dart_handle make_edge();
|
|||
/// @{
|
||||
|
||||
/*!
|
||||
Inserts a 0-cell in the 1-cell containing `dh`. Returns a handle on one dart belonging to the new 0-cell.
|
||||
Inserts a 0-cell in the 1-cell containing `dh`. Returns \f$ \alpha_0\f$(`dh`), a handle on one dart belonging to the new 0-cell.
|
||||
\pre \ref GeneralizedMap::dimension "dimension"\f$ \geq\f$ 1 and `*dh`\f$ \in\f$\ref GeneralizedMap::darts "darts()".
|
||||
|
||||
See example in \cgalFigureRef{fig_gmap_insert_vertex}.
|
||||
|
|
@ -787,7 +787,7 @@ If \link GeneralizedMap::are_attributes_automatically_managed `are_attributes_au
|
|||
Dart_handle insert_cell_0_in_cell_2(Dart_handle dh);
|
||||
|
||||
/*!
|
||||
Inserts a 1-cell in the 2-cell containing `dh1` and `dh2`. Returns \f$ \beta_0\f$(`dh1`), a handle on one dart belonging to the new 1-cell.
|
||||
Inserts a 1-cell in the 2-cell containing `dh1` and `dh2`. Returns \f$ \alpha_0(\alpha_1\f$(`dh1`)), a handle on one dart belonging to the new 1-cell and not to the same vertex than `dh1`.
|
||||
\pre `is_insertable_cell_1_in_cell_2(dh1,dh2)`.
|
||||
|
||||
See example in \cgalFigureRef{fig_gmap_insert_edge}.
|
||||
|
|
@ -809,7 +809,7 @@ If \link GeneralizedMap::are_attributes_automatically_managed `are_attributes_au
|
|||
Dart_handle insert_cell_1_in_cell_2(Dart_handle dh1, Dart_handle dh2);
|
||||
|
||||
/*!
|
||||
Inserts a 2-cell along the path of 1-cells containing darts given by the range `[afirst,alast)`. Returns a handle on one dart belonging to the new 2-cell.
|
||||
Inserts a 2-cell along the path of 1-cells containing darts given by the range `[afirst,alast)`. Returns \f$ \alpha_2\f$(*afirst), a handle on one dart belonging to the new 2-cell.
|
||||
\pre `is_insertable_cell_2_in_cell_3(afirst,alast)`.
|
||||
|
||||
See example in \cgalFigureRef{fig_gmap_insert_facet}.
|
||||
|
|
@ -832,7 +832,7 @@ template <class InputIterator>
|
|||
Dart_handle insert_cell_2_in_cell_3(InputIterator afirst, InputIterator alast);
|
||||
|
||||
/*!
|
||||
Inserts a 1-cell in a the 2-cell containing `dh`, the 1-cell being attached only by one of its extremity to the 0-cell containing `dh`. Returns a handle on the dart belonging to the new 1-cell and to the new 0-cell.
|
||||
Inserts a 1-cell in a the 2-cell containing `dh`, the 1-cell being attached only by one of its extremity to the 0-cell containing `dh`. Returns \f$ \alpha_0(\alpha_1\f$(`dh1`)), a handle on one dart belonging to the new 1-cell and to the new 0-cell.
|
||||
\pre \ref GeneralizedMap::dimension "dimension"\f$ \geq\f$ 2 and `*dh`\f$ \in\f$\ref GeneralizedMap::darts "darts()".
|
||||
|
||||
See example in \cgalFigureRef{fig_gmap_insert_edge}.
|
||||
|
|
@ -853,7 +853,7 @@ Dart_handle insert_dangling_cell_1_in_cell_2(Dart_handle dh);
|
|||
/*!
|
||||
Returns true iff it is possible to insert a 1-cell in the generalized map between `dh1` and `dh2`.
|
||||
|
||||
This is possible if `dh1`\f$ \neq\f$`dh2` and `dh1`\f$ \in\f$\f$ \langle{}\f$\f$ \beta_1\f$\f$ \rangle{}\f$(`dh2`).
|
||||
This is possible if `dh1`\f$ \neq\f$`dh2` and `dh1`\f$ \in\f$\f$ \langle{}\f$\f$ \alpha_0 \circ \alpha_1\f$\f$ \rangle{}\f$(`dh2`).
|
||||
\pre \ref GeneralizedMap::dimension "dimension"\f$ \geq\f$ 2, `*dh1`\f$ \in\f$\ref GeneralizedMap::darts "darts()", and `*dh2`\f$ \in\f$\ref GeneralizedMap::darts "darts()".
|
||||
|
||||
\sa `insert_cell_1_in_cell_2`
|
||||
|
|
|
|||
|
|
@ -368,13 +368,12 @@ The inverse operation of the removal is the insertion operation. Several version
|
|||
Example of `insert_cell_0_in_cell_2` operation.
|
||||
\cgalFigureEnd
|
||||
|
||||
`gm.insert_cell_1_in_cell_2(dh1,dh2)` adds a 1-cell in the 2-cell containing darts `d1` and `d2`, between the two 0-cells containing darts `d1` and `d2`. The 2-cell is split in two. This operation is possible if <I>d1</I>\f$ \in\f$\f$ \langle{}\f$\f$ \alpha_1\f$\f$ \rangle{}\f$(<I>d2</I>) which can be tested thanks to `gm.is_insertable_cell_1_in_cell_2(dh1,dh2)`. In the example on \cgalFigureRef{fig_gmap_insert_edge}, it is possible to insert an edge between darts <I>d2</I> and <I>d3</I>, but it is not possible to insert an edge between <I>d1</I> and <I>d3</I>.
|
||||
`gm.insert_cell_1_in_cell_2(dh1,dh2)` adds a 1-cell in the 2-cell containing darts `d1` and `d2`, between the two 0-cells containing darts `d1` and `d2`. The 2-cell is split in two. This operation is possible \tred{if <I>d1</I>\f$ \in\f$\f$ \langle{}\f$\f$ \alpha_0, \alpha_1\f$\f$ \rangle{}\f$(<I>d2</I>)} which can be tested thanks to `gm.is_insertable_cell_1_in_cell_2(dh1,dh2)`. In the example on \cgalFigureRef{fig_gmap_insert_edge}, it is possible to insert an edge between darts <I>d2</I> and <I>d3</I>, but it is not possible to insert an edge between <I>d1</I> and <I>d3</I>.
|
||||
|
||||
\cgalFigureBegin{fig_gmap_insert_edge,gmap_insert_edge.svg}
|
||||
Example of `insert_cell_1_in_cell_2` and `remove_cell<1>` operations. Left: Initial generalized map. Right: After the insertion of two 1-cells: a first one between the two 0-cells containing darts `d2` and `d3`, and a second one incident to the 0-cell containing dart `d1`. Now if we remove the two 1-cells containing darts `d4` and `d5`, we obtain the initial generalized map.
|
||||
\cgalFigureEnd
|
||||
|
||||
|
||||
`gm.insert_dangling_cell_1_in_cell_2(dh0)` adds a 1-cell in the 2-cell containing dart `d0`, the 1-cell being attached by only one of its vertex to the 0-cell containing dart `d0`. This operation is possible if `d0`\f$ \in\f$\ref GeneralizedMap::darts "gm.darts()".
|
||||
|
||||
`gm.insert_cell_2_in_cell_3(itbegin,itend)` adds a 2-cell in the 3-cell containing all the darts between `itbegin` and `itend`, along the path of 1-cells containing darts in [`itbegin`,`itend`). The 3-cell is split in two. This operation is possible if all the darts in [`itbegin`,`itend`) form a closed path inside a same 3-cell which can be tested thanks to `gm.is_insertable_cell_2_in_cell_3(itbegin,itend)` (see example on \cgalFigureRef{fig_gmap_insert_facet}).
|
||||
|
|
|
|||
Loading…
Reference in New Issue