mirror of https://github.com/CGAL/cgal
Update operations to use are_attributes_automatically_managed
This commit is contained in:
parent
0860cf5012
commit
bdc0dee6ce
|
|
@ -10,9 +10,15 @@ Returns a handle on one dart belonging to the new 0-cell.
|
|||
|
||||
See example in \cgalFigureRef{figinsertvertex}.
|
||||
|
||||
If 1-attributes are non `void`,
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
if 1-attributes are non `void`,
|
||||
\ref CellAttribute::On_split "Attribute_type<1>::type::On_split"(<I>a</I>,<I>a'</I>) is called, with <I>a</I> the original 1-attribute associated with <I>dh</I> and <I>a'</I> the new 1-attribute created during the operation. If set, the dynamic onsplit function of 1-attributes is also called on <I>a</I> and <I>a'</I>.
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
\sa `CGAL::insert_cell_0_in_cell_2<CMap>`
|
||||
\sa `CGAL::insert_cell_1_in_cell_2<CMap>`
|
||||
\sa `CGAL::insert_dangling_cell_1_in_cell_2<CMap>`
|
||||
|
|
@ -39,9 +45,14 @@ Returns a handle on one dart belonging to the new 0-cell.
|
|||
|
||||
See example in \cgalFigureRef{figtriangulate}.
|
||||
|
||||
If 2-attributes are non `void`,
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
if 2-attributes are non `void`,
|
||||
\ref CellAttribute::On_split "Attribute_type<2>::type::On_split"(<I>a</I>,<I>a'</I>) is called, with <I>a</I> the original 2-attribute associated with `dh` and <I>a'</I> each new 2-attribute created during the operation. If set, the dynamic onsplit function of 2-attributes is also called on <I>a</I> and <I>a'</I>.
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
\sa `CGAL::insert_cell_0_in_cell_2<CMap>`
|
||||
\sa `CGAL::insert_cell_1_in_cell_2<CMap>`
|
||||
|
|
@ -68,8 +79,13 @@ Returns \f$ \beta_0\f$(`dh1`), a handle on one dart belonging to the new 1-cell.
|
|||
|
||||
See example in \cgalFigureRef{figinsertedge}.
|
||||
|
||||
If 2-attributes are non `void`, \ref CellAttribute::On_split "Attribute_type<2>::type::On_split"(<I>a</I>,<I>a'</I>) is called, with <I>a</I> the original 2-attribute associated with `dh` and <I>a'</I> the new 2-attribute created during the operation. If set, the dynamic onsplit function of 2-attributes is also called on <I>a</I> and <I>a'</I>.
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
if 2-attributes are non `void`, \ref CellAttribute::On_split "Attribute_type<2>::type::On_split"(<I>a</I>,<I>a'</I>) is called, with <I>a</I> the original 2-attribute associated with `dh` and <I>a'</I> the new 2-attribute created during the operation. If set, the dynamic onsplit function of 2-attributes is also called on <I>a</I> and <I>a'</I>.
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
\sa `CGAL::is_insertable_cell_1_in_cell_2<CMap>`
|
||||
\sa `CGAL::insert_cell_0_in_cell_1<CMap>`
|
||||
|
|
@ -98,8 +114,13 @@ Returns a handle on one dart belonging to the new 2-cell.
|
|||
|
||||
See example in \cgalFigureRef{figinsertface}.
|
||||
|
||||
If 3-attributes are non `void`, \ref CellAttribute::On_split "Attribute_type<3>::type::On_split"(<I>a</I>,<I>a'</I>) is called, with <I>a</I> the original 3-attribute associated with `dh` and <I>a'</I> the new 3-attribute created during the operation. If set, the dynamic onsplit function of 3-attributes is also called on <I>a</I> and <I>a'</I>.
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
if 3-attributes are non `void`, \ref CellAttribute::On_split "Attribute_type<3>::type::On_split"(<I>a</I>,<I>a'</I>) is called, with <I>a</I> the original 3-attribute associated with `dh` and <I>a'</I> the new 3-attribute created during the operation. If set, the dynamic onsplit function of 3-attributes is also called on <I>a</I> and <I>a'</I>.
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
\sa `CGAL::is_insertable_cell_2_in_cell_3<CMap,InputIterator>`
|
||||
\sa `CGAL::insert_cell_0_in_cell_1<CMap>`
|
||||
|
|
@ -129,6 +150,10 @@ Returns a handle on the dart belonging to the new 1-cell and to the new 0-cell.
|
|||
|
||||
See example in \cgalFigureRef{figinsertedge}.
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
\sa `CGAL::insert_cell_0_in_cell_1<CMap>`
|
||||
\sa `CGAL::insert_cell_0_in_cell_2<CMap>`
|
||||
|
|
@ -136,7 +161,6 @@ See example in \cgalFigureRef{figinsertedge}.
|
|||
\sa `CGAL::insert_cell_2_in_cell_3<CMap,InputIterator>`
|
||||
\sa `CGAL::remove_cell<CMap,i>`
|
||||
|
||||
|
||||
*/
|
||||
template < class CMap >
|
||||
typename CMap::Dart_handle insert_dangling_cell_1_in_cell_2(CMap& cm,
|
||||
|
|
@ -157,11 +181,9 @@ This is possible if `dh1`\f$ \neq\f$`dh2` and `dh1`\f$ \in\f$\f$ \langle{}\f$\f$
|
|||
`*dh1`\f$ \in\f$\ref CombinatorialMap::darts "cm.darts()", and
|
||||
`*dh2`\f$ \in\f$\ref CombinatorialMap::darts "cm.darts()".
|
||||
|
||||
|
||||
\sa `CGAL::insert_cell_1_in_cell_2<CMap>`
|
||||
\sa `CGAL::is_insertable_cell_2_in_cell_3<CMap,InputIterator>`
|
||||
|
||||
|
||||
*/
|
||||
template < class CMap >
|
||||
bool is_insertable_cell_1_in_cell_2(const CMap & cm,
|
||||
|
|
@ -181,11 +203,9 @@ iff each couple of consecutive darts of the path <I>a1</I> and <I>a2</I> belong
|
|||
same vertex and the same volume, and if the path is closed.
|
||||
\pre \ref CombinatorialMap::dimension "CMap::dimension"\f$ \geq\f$ 3.
|
||||
|
||||
|
||||
\sa `CGAL::insert_cell_2_in_cell_3<CMap,InputIterator>`
|
||||
\sa `CGAL::is_insertable_cell_1_in_cell_2<CMap>`
|
||||
|
||||
|
||||
*/
|
||||
template <class CMap, class InputIterator>
|
||||
bool is_insertable_cell_2_in_cell_3(const CMap & cm,
|
||||
|
|
@ -226,9 +246,16 @@ Returns the number of darts removed from `cm`.
|
|||
|
||||
See examples in \cgalFigureRef{figinsertvertex}, \cgalFigureRef{figinsertedge} and \cgalFigureRef{figinsertface}.
|
||||
|
||||
If `i`\f$ <\f$\ref CombinatorialMap::dimension "CMap::dimension", and <I>i+1</I>-attributes are non `void`, and if there are two distinct (<I>i+1</I>)-cells around dart `dh`, \ref CellAttribute::On_merge "Attribute_type<i+1>::type::On_merge"(<I>a1</I>,<I>a2</I>) is called, with <I>a1</I> the (<I>i+1</I>)-attribute associated to `dh`, and <I>a2</I> the (<I>i+1</I>)-attribute associated to \f$ \beta_{i+1}\f$(<I>dh</I>). If set, the dynamic onmerge function of <I>i+1</I>-attributes is also called on <I>a1</I> and <I>a2</I>.
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
if `i`\f$ <\f$\ref CombinatorialMap::dimension "CMap::dimension", and <I>i+1</I>-attributes are non `void`, and if there are two distinct (<I>i+1</I>)-cells around dart `dh`, \ref CellAttribute::On_merge "Attribute_type<i+1>::type::On_merge"(<I>a1</I>,<I>a2</I>) is called, with <I>a1</I> the (<I>i+1</I>)-attribute associated to `dh`, and <I>a2</I> the (<I>i+1</I>)-attribute associated to \f$ \beta_{i+1}\f$(<I>dh</I>). If set, the dynamic onmerge function of <I>i+1</I>-attributes is also called on <I>a1</I> and <I>a2</I>.
|
||||
|
||||
If a <I>j</I>-cell is disconnected in two <I>j</I>-cells during the operation, and if <I>j</I>-attributes are non void, \ref CellAttribute::On_split "Attribute_type<j>::type::On_split"(<I>a</I>,<I>a'</I>) is called with <I>a</I> the original <I>j</I>-attribute and <I>a'</I> the new <I>j</I>-attribute created due to the disconnection. If set, the dynamic onsplit function of <i>j</i>-attributes is also called on <I>a</I> and <I>a'</I>.
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
if a <I>j</I>-cell is disconnected in two <I>j</I>-cells during the operation, and if <I>j</I>-attributes are non void, \ref CellAttribute::On_split "Attribute_type<j>::type::On_split"(<I>a</I>,<I>a'</I>) is called with <I>a</I> the original <I>j</I>-attribute and <I>a'</I> the new <I>j</I>-attribute created due to the disconnection. If set, the dynamic onsplit function of <i>j</i>-attributes is also called on <I>a</I> and <I>a'</I>.
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
\sa `CGAL::is_removable<CMap,i>`
|
||||
\sa `CGAL::insert_cell_0_in_cell_1<CMap>`
|
||||
|
|
|
|||
|
|
@ -1103,12 +1103,12 @@ operation has duplicated the
|
|||
\cgalAdvancedBegin
|
||||
If one wants to modify a combinatorial map <I>manually</I>,
|
||||
it is possible to switch off the updating between darts and
|
||||
attributes by passing `false` as last argument of
|
||||
\ref CombinatorialMap::sew "sew<i>(dh1,dh2,update_attributes=true)" and
|
||||
\ref CombinatorialMap::unsew "unsew<i>(dh0,update_attributes=true)". In these cases, the
|
||||
attributes by calling \link CombinatorialMap::set_automatic_attributes_management `set_automatic_attributes_management(false)`\endlink before to call
|
||||
\ref CombinatorialMap::sew "sew<i>(dh1,dh2)" and
|
||||
\ref CombinatorialMap::unsew "unsew<i>(dh0)". In these cases, the
|
||||
combinatorial map obtained may be no longer valid due to incorrect
|
||||
associations between darts and attributes. In
|
||||
\cgalFigureRef{figexemplesew} (Left), if we call \ref CombinatorialMap::sew "sew<3>(1,5,false)", the resulting
|
||||
\cgalFigureRef{figexemplesew} (Left), if we call \ref CombinatorialMap::sew "sew<3>(1,5)", the resulting
|
||||
combinatorial map is similar to the combinatorial map of
|
||||
\cgalFigureRef{figexemplesew} (Right) (we have linked by \f$ \beta_3\f$ the pairs of
|
||||
darts (1,5), (2,8), (3,7) and (4,6)), but associations between darts
|
||||
|
|
@ -1116,12 +1116,12 @@ and attributes are not valid. Indeed, we have kept the four initial
|
|||
attributes and all the associations between darts and attributes, thus
|
||||
two darts belonging to the same 2-cell (for example darts 1 and 5) are
|
||||
associated with two different attributes. We can also use the
|
||||
\ref CombinatorialMap::link_beta "link_beta<i>(dh1,dh2,update_attributes=true)" which links `d1` and
|
||||
\ref CombinatorialMap::link_beta "link_beta<i>(dh1,dh2)" which links `d1` and
|
||||
`d2` by \f$ \beta_i\f$ without modifying the other links. Association
|
||||
between darts and attributes are only modified for darts `d1` and
|
||||
`d2`, and similarly as for \ref CombinatorialMap::sew "sew<i>", this updating can be avoided by
|
||||
passing `false` as last argument of
|
||||
\ref CombinatorialMap::link_beta "link_beta<i>(dh1,dh2,update_attributes)". Lastly, we can use
|
||||
calling \link CombinatorialMap::set_automatic_attributes_management `set_automatic_attributes_management(false)`\endlink before to call
|
||||
\ref CombinatorialMap::link_beta "link_beta<i>(dh1,dh2)". Lastly, we can use
|
||||
\ref CombinatorialMap::unlink_beta "unlink_beta<i>(dh0)" to unlink `d0` for \f$ \beta_i\f$. In this last
|
||||
case, there is no modification of association between darts and
|
||||
attributes. In \cgalFigureRef{figexemplesew} (Left), if we call
|
||||
|
|
|
|||
|
|
@ -750,7 +750,8 @@ satisfying: <I>f</I>(<I>*dh1</I>)=<I>*dh2</I>, and for all <I>e</I>\f$ \in\f$<I>
|
|||
<I>j</I>\f$ \in\f${1,\f$ \ldots\f$,<I>i</I>-2,<I>i</I>+2,\f$ \ldots\f$,<I>d</I>},
|
||||
<I>f</I>(\f$ \beta_j\f$(<I>e</I>))=\f$ \beta_j^{-1}\f$(<I>f</I>(<I>e</I>)).
|
||||
|
||||
If `update_attributes` is `true`, when necessary, non void
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
when necessary, non void
|
||||
attributes are updated to ensure the validity of the combinatorial map: for each
|
||||
<I>j</I>-cells <I>c1</I> and <I>c2</I> which are merged into one <I>j</I>-cell during
|
||||
the sew, the two associated attributes <I>attr1</I> and <I>attr2</I> are
|
||||
|
|
@ -765,20 +766,20 @@ the two attributes <I>attr1</I> and <I>attr2</I>. If set, the dynamic onmerge fu
|
|||
\pre \ref CombinatorialMap::is_sewable "is_sewable<i>(dh1,dh2)".
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If `update_attributes` is `false`, non void attributes are
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
*/
|
||||
template <unsigned int i> void sew(Dart_handle dh1,
|
||||
Dart_handle dh2, bool update_attributes=true);
|
||||
template <unsigned int i> void sew(Dart_handle dh1,Dart_handle dh2);
|
||||
|
||||
/*!
|
||||
<I>i</I>-unsew darts `*dh` and \f$ \beta_i\f$`(*dh)`, by keeping the combinatorial map valid.
|
||||
Unlinks by \f$ \beta_i\f$ all the darts in the
|
||||
orbit
|
||||
\f$ \langle{}\f$\f$ \beta_1\f$,\f$ \ldots\f$,\f$ \beta_{i-2}\f$,\f$ \beta_{i+2}\f$,\f$ \ldots\f$,\f$ \beta_d\f$\f$ \rangle{}\f$(`*dh`). If
|
||||
`update_attributes` is `true`, when necessary, non void
|
||||
\link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
when necessary, non void
|
||||
attributes are updated to ensure the validity of the combinatorial map: for each
|
||||
<I>j</I>-cell <I>c</I> split in two <I>j</I>-cells <I>c1</I> and <I>c2</I> by the
|
||||
operation, if <I>c</I> is associated to a <I>j</I>-attribute <I>attr1</I>, then
|
||||
|
|
@ -791,17 +792,17 @@ two attributes <I>attr1</I> and <I>attr2</I>. If set, the dynamic onsplit functi
|
|||
`*dh`\f$ \in\f$`darts()` and `*dh` is not <I>i</I>-free.
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If `update_attributes` is `false`, non void attributes are
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
*/
|
||||
template <unsigned int i> void unsew(Dart_handle dh, bool
|
||||
update_attributes=true);
|
||||
template <unsigned int i> void unsew(Dart_handle dh);
|
||||
|
||||
/*!
|
||||
Links `*dh1` and `*dh2` by \f$ \beta_i\f$.
|
||||
The combinatorial map can be no more valid after this operation. If
|
||||
`update_attributes` is true, non void attributes of `*dh1` and
|
||||
\link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
non void attributes of `*dh1` and
|
||||
`*dh2` are updated: if one dart has an attribute and the second
|
||||
dart not, the non null attribute is associated to the dart having a null attribute.
|
||||
If both darts have an attribute,
|
||||
|
|
@ -809,7 +810,7 @@ the attribute of `*dh1` is associated to `*dh2`.
|
|||
\pre 0\f$ \leq\f$<I>i</I>\f$ \leq\f$\ref CombinatorialMap::dimension "dimension",
|
||||
`*dh1`\f$ \in\f$`darts()`, `*dh2`\f$ \in\f$`darts()` and (<I>i</I>\f$ <\f$ 2 or `dh1`\f$ \neq\f$`dh2`).
|
||||
*/
|
||||
template <unsigned int i> void link_beta(Dart_handle dh1, Dart_handle dh2, bool update_attributes=true);
|
||||
template <unsigned int i> void link_beta(Dart_handle dh1, Dart_handle dh2);
|
||||
|
||||
/*!
|
||||
Unlinks `*dh` and \f$ \beta_i\f$(`*dh`) by \f$ \beta_i\f$.
|
||||
|
|
|
|||
|
|
@ -268,11 +268,7 @@ void set_vertex_attribute(Dart_handle dh, Vertex_attribute_handle vh);
|
|||
Correct the invalid attributes of the linear cell complex.
|
||||
We can have invalid attribute either if we have called \link CombinatorialMap::set_automatic_attributes_management `set_automatic_attributes_management(false)`\endlink before to use some modification operations.
|
||||
|
||||
\f$ \forall i \f$, 0 \f$ \leq \f$ i \f$ \leq \f$ \ref CombinatorialMap::dimension "dimension" such that the i-attributes are non void, \f$ \forall \f$ d \f$ \in\f$`darts()`:
|
||||
- if there exists a dart `d2` in the same i-cell than `d` with a different i-attribute, then the i-attribute of `d2` is set to the i-attribute of `d`;
|
||||
- if there exists a dart `d2` in a different i-cell than `d` with the same i-attribute, then the i-attribute of all the darts in i-cell(`d`) is set to a new i-attribute (copy of the original attribute);
|
||||
- ensure that \link CombinatorialMap::dart_of_attribute `dart_of_attribute(d)`\endlink \f$ \in \f$ i-cell(`d`);
|
||||
- if \link Linear_cell_complex::vertex_attribute `vertex_attribute(d)`\endlink`==NULL`, then the vertex attribute of all the darts in 0-cell(`d`) is set to a new \link Linear_cell_complex::Vertex_attribute `Vertex_attribute`\endlink.
|
||||
The validation process of a linear cell complex validates its combinatorial map (cf. \link CombinatorialMap::correct_invalid_attributes `correct_invalid_attributes()`\endlink), and for each dart `d` having no vertex attribute, a new vertex attribute is created, with its Point initialized to `CGAL::Origin`, and all the darts of the 0-cell containing `d` are linked with the new attribute.
|
||||
*/
|
||||
void correct_invalid_attributes();
|
||||
|
||||
|
|
@ -293,11 +289,17 @@ Inserts a point, copy of `p`, in the <I>i</I>-cell containing `dh`.
|
|||
Returns a handle on one dart of this cell.
|
||||
\pre <I>i</I>\f$ \leq\f$\ref CombinatorialMap::dimension "dimension"\f$ \leq\f$2 and `*dh`\f$ \in\f$\ref CombinatorialMap::darts "darts()".
|
||||
|
||||
If <I>i</I>-attributes are non void,
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
if <I>i</I>-attributes are non void,
|
||||
\ref CellAttribute::On_split "Attribute_type<i>::type::On_split"(<I>a</I>,<I>a'</I>) is called,
|
||||
with <I>a</I> the original <I>i</I>-attribute associated
|
||||
with <I>dh</I> and <I>a'</I> each new <I>i</I>-attribute created during the operation.
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
*/
|
||||
template <unsigned int i> Dart_handle insert_point_in_cell(Dart_handle dh, Point p);
|
||||
|
||||
|
|
@ -306,11 +308,17 @@ Inserts a point in the barycenter of the <I>i</I>-cell containing `dh`.
|
|||
Returns a handle on one dart of this cell.
|
||||
\pre <I>i</I>\f$ \leq\f$\ref CombinatorialMap::dimension "dimension"\f$ \leq\f$2 and `*dh`\f$ \in\f$\ref CombinatorialMap::darts "darts()".
|
||||
|
||||
If <I>i</I>-attributes are non void,
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`,
|
||||
if <I>i</I>-attributes are non void,
|
||||
\ref CellAttribute::On_split "Attribute_type<i>::type::On_split"(<I>a</I>,<I>a'</I>) is called,
|
||||
with <I>a</I> the original <I>i</I>-attribute associated
|
||||
with <I>dh</I> and <I>a'</I> each new <I>i</I>-attribute created during the operation.
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
*/
|
||||
template <unsigned int i> Dart_handle insert_barycenter_in_cell(Dart_handle dh);
|
||||
|
||||
|
|
@ -321,6 +329,11 @@ The second vertex is associated with a new 0-attribute containing a copy of
|
|||
`p` as point. Returns a handle on one dart belonging to the new 0-cell.
|
||||
\pre 2\f$ \leq\f$\ref CombinatorialMap::dimension "dimension" and `*dh`\f$ \in\f$\ref CombinatorialMap::darts "darts()".
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link CombinatorialMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are
|
||||
not updated; thus the combinatorial map can be no more valid after this operation.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
*/
|
||||
Dart_handle insert_dangling_cell_1_in_cell_2(Dart_handle dh, Point p);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue