diff --git a/Combinatorial_map/doc_tex/Combinatorial_map_ref/CombinatorialMap.tex b/Combinatorial_map/doc_tex/Combinatorial_map_ref/CombinatorialMap.tex index 63b26a0766f..2ca7a2b4201 100644 --- a/Combinatorial_map/doc_tex/Combinatorial_map_ref/CombinatorialMap.tex +++ b/Combinatorial_map/doc_tex/Combinatorial_map_ref/CombinatorialMap.tex @@ -176,7 +176,7 @@ if for all dart handle \emph{dh} such that \ccMethod{bool is_without_boundary(unsigned int i) const;} {Returns true iff \ccc{cm} is wihout \emph{i}-boundary (i.e. there is no \ccc{i}-free dart). - \ccPrecond{0\myleq{}\emph{i}\myleq{}\emph{dimension}.}} + \ccPrecond{1\myleq{}\emph{i}\myleq{}\emph{dimension}.}} \ccMethod{bool is_without_boundary() const;} {Returns true iff \ccc{cm} is without boundary in all dimensions.} @@ -200,9 +200,8 @@ if for all dart handle \emph{dh} such that a bijection \emph{f} between all the darts of the orbit \emph{D1}=\orbit{\betaun{},\myldots{},\betaimdeux{},\betaipdeux{},\myldots{},\betad{}}(\emph{dh1}) and \emph{D2}=\orbit{\betaun{},\myldots{},\betaimdeux{},\betaipdeux{},\myldots{},\betad{}}(\emph{dh2}) - satisfying: \emph{f}(\emph{dh1})=\emph{dh2}, and for all \emph{d'1}\myin{}\emph{D1}, for all \emph{j}\myin{} - \{1,\myldots{},\emph{i}-2,\emph{i}+2,\myldots{},\emph{d}\}, - \emph{f}(\betaj{}(\emph{d'1}))=\betajinv{}(\emph{f}(\emph{d'1})). + satisfying: \emph{f}(\emph{dh1})=\emph{dh2}, and for all \emph{e}\myin{}\emph{D1}, for all \emph{j}\myin{}\{1,\myldots{},\emph{i}-2,\emph{i}+2,\myldots{},\emph{d}\}, + \emph{f}(\betaj{}(\emph{e}))=\betajinv{}(\emph{f}(\emph{e})). \ccPrecond{0\myleq{}\emph{i}\myleq{}\emph{dimension}, \ccc{*dh1}\myin{}\ccc{cm.darts()}, and \ccc{*dh2}\myin{}\ccc{cm.darts()}.}} @@ -242,7 +241,8 @@ combinatorial tetrahedra:\\ \ccMethod{template Dart_of_orbit_range darts_of_orbit(Dart_handle dh);} {Returns a range of all the darts of the orbit \ccc{(dh)}. \ccPrecond{\ccc{*dh}\myin{}\ccc{cm.darts()} and \ccc{Beta...} is a - sequence of integers \ccTexHtml{$i_1$}{i1},\myldots{},\ccTexHtml{$i_k$}{ik}, such that each \ccTexHtml{$i_j$}{ij}\myin{}\{0,\myldots{},\emph{dimension}\}, with \ccTexHtml{$i_1$}{i1}\mylt{}\ccTexHtml{$i_2$}{i2}\mylt{}\myldots{}\mylt{}\ccTexHtml{$i_k$}{ik}, and (\ccTexHtml{$i_1$}{i1}\myneq{}0 or \ccTexHtml{$i_2$}{i2}\myneq{}1).}} + sequence of integers \ccTexHtml{$i_1$}{i1},\myldots{},\ccTexHtml{$i_k$}{ik}, such that + 0\myleq{}\ccTexHtml{$i_1$}{i1}\mylt{}\ccTexHtml{$i_2$}{i2}\mylt{}\myldots{}\mylt{}\ccTexHtml{$i_k$}{ik}\myleq{}\emph{dimension}, and (\ccTexHtml{$i_1$}{i1}\myneq{}0 or \ccTexHtml{$i_2$}{i2}\myneq{}1).}} \ccGlue \ccMethod{template Dart_of_orbit_const_range darts_of_orbit(Dart_const_handle dh) const;} {Returns a const range of all the darts of the orbit \ccc{(dh)}. @@ -292,12 +292,12 @@ combinatorial tetrahedra:\\ \ccHeading{Modifiers} \ccMethod{Dart_handle create_dart();} {Creates a new dart in \ccc{cm}, and returns the corresponding handle. - A new dart is initialized to be emph{i}-free, + A new dart is initialized to be \emph{i}-free, \myforall{}\emph{i}: 0\myleq{}\emph{i}\myleq{}\emph{dimension}, and to have no associated attribute for each non void attribute. } \ccMethod{void erase_dart(Dart_handle dh);} - {Removes \ccc{dh} from \ccc{cm}.} + {Removes \ccc{*dh} from \ccc{cm}.} \ccMethod{template Attribute_handle::type create_attribute();} {Creates a new \emph{i}-attribute in \ccc{cm}, and returns the corresponding handle. @@ -313,7 +313,7 @@ combinatorial tetrahedra:\\ \ccPrecond{0\myleq{}\emph{i}\myleq{}\emph{dimension}, and \emph{i}-attributes are non void.}} \ccMethod{template void erase_attribute(Attribute_handle::type ah);} -{Removes the \emph{i}-attribute \ccc{ah} from \ccc{cm}. +{Removes the \emph{i}-attribute \ccc{*ah} from \ccc{cm}. \ccPrecond{0\myleq{}\emph{i}\myleq{}\emph{dimension}, \emph{i}-attributes are non void, and \ccc{*ah}\myin{}\ccc{cm.attributes()}.}} @@ -334,9 +334,9 @@ combinatorial tetrahedra:\\ \emph{D1}=\orbit{\betaun{},\myldots{},\betaimdeux{},\betaipdeux{},\myldots{},\betad{}}(\ccc{dh1}) and \emph{D2}=\orbit{\betazero{},\betadeux{},\myldots{},\betaimdeux{},\betaipdeux{},\myldots{},\betad{}} (\ccc{dh2}) such that \emph{d2}=\emph{f}(\emph{d1}), \emph{f} being the bijection between \emph{D1} and \emph{D2} - satisfying: \emph{f}(\emph{dh1})=\emph{dh2}, and for all \emph{d'1}\myin{}\emph{D1}, for all + satisfying: \emph{f}(\emph{dh1})=\emph{dh2}, and for all \emph{e}\myin{}\emph{D1}, for all \emph{j}\myin{}\{1,\myldots{},\emph{i}-2,\emph{i}+2,\myldots{},\emph{d}\}, - \emph{f}(\betaj{}(\emph{d'1}))=\betajinv{}(\emph{f}(\emph{d'1})). + \emph{f}(\betaj{}(\emph{e}))=\betajinv{}(\emph{f}(\emph{e})). If \ccc{update_attributes} is \ccc{true}, when necessary, non void attributes are updated to ensure the validity of \ccc{cm}: for each @@ -392,7 +392,7 @@ combinatorial tetrahedra:\\ \ccMethod{template void unlink_beta(Dart_handle dh);} - {Unlinks \ccc{dh} and \betai{}(\ccc{dh}) by \betai{} . + {Unlinks \ccc{dh} and \betai{}(\ccc{dh}) by \betai{}. \ccc{cm} can be no more valid after this modification. Attributes of \ccc{dh} and \betai{}(\ccc{dh}) are not modified. diff --git a/Combinatorial_map/doc_tex/Combinatorial_map_ref/Combinatorial_map.tex b/Combinatorial_map/doc_tex/Combinatorial_map_ref/Combinatorial_map.tex index 2e9794bbbb1..6799f5313c7 100644 --- a/Combinatorial_map/doc_tex/Combinatorial_map_ref/Combinatorial_map.tex +++ b/Combinatorial_map/doc_tex/Combinatorial_map_ref/Combinatorial_map.tex @@ -45,7 +45,8 @@ The complexity of \ccc{sew} and \ccc{unsew} is in \emph{O}($|$\emph{S}$|$\mytime being the set of darts of the orbit \orbit{\betaun{},\myldots{},\betaimdeux{},\betaipdeux{},\myldots{},\betad{}} for the considered dart, and \emph{c} the biggest \emph{j}-cell merged or -split during the sew such that \emph{j}-attributes are non void. +split during the sew such that \emph{j}-attributes are non void. +The complexity of \ccc{is_sewable} is in \emph{O}($|$\emph{S}$|$). % The complexity of \ccc{topo_sew}, and \ccc{topo_unsew} are in % $O(|S|\times c)$, $S$ being the set of darts of the orbit @@ -55,10 +56,18 @@ split during the sew such that \emph{j}-attributes are non void. The complexity of \ccc{set_attribute} is in \emph{O}($|$\emph{c}$|$), \emph{c} being the \emph{i}-cell containing the considered dart. +The complexity of \ccc{is_without_boundary(unsigned int i)} is in \emph{O}($|$\emph{D}$|$), +\emph{D} being the set of darts of the combinatorial map, and the complexity of +\ccc{is_without_boundary()} is in \emph{O}($|$\emph{D}$|$\mytimes{}\emph{d}). + The complexity of \ccc{unmark_all} and \ccc{free_mark} is in \emph{O}(1) if all the darts of the combinatorial map have the same mark, and in -\emph{O}($|$\emph{D}$|$) otherwise, \emph{D} being the set of darts of the combinatorial -map. +\emph{O}($|$\emph{D}$|$) otherwise. + +The complexity of \ccc{is_valid} is in +\emph{O}($|$\emph{D}$|$\mytimes{}\emph{d}\ccTexHtml{$^2$}{2}). + +The complexity of \ccc{clear} is in \emph{O}($|$\emph{D}$|$\mytimes{}\emph{d}). Other methods have all a constant time complexity. diff --git a/Combinatorial_map/doc_tex/Combinatorial_map_ref/Combinatorial_map_operations.tex b/Combinatorial_map/doc_tex/Combinatorial_map_ref/Combinatorial_map_operations.tex index c2d9c3b2749..0a11a1b2053 100644 --- a/Combinatorial_map/doc_tex/Combinatorial_map_ref/Combinatorial_map_operations.tex +++ b/Combinatorial_map/doc_tex/Combinatorial_map_ref/Combinatorial_map_operations.tex @@ -189,7 +189,7 @@ typename CMap::Dart_handle insert_cell_0_in_cell_1(CMap& cm, typename CMap::Dart_handle dh);} {Inserts a 0-cell in the 1-cell containing \ccc{dh}. - Returns a handle on one dart of this cell. + Returns a handle on one dart belonging to the new 0-cell. \ccPrecond{\ccc{CMap::dimension}\mygeq{}1 and \ccc{*dh}\myin{}\ccc{cm.darts()}.}\\ See example in Figure~\ref{fig-insert-vertex}.\\ % \begin{ccAdvanced} @@ -257,7 +257,7 @@ typename CMap::Dart_handle insert_cell_1_in_cell_2(CMap& cm, typename CMap::Dart_handle dh1,typename CMap::Dart_handle dh2);} {Inserts a 1-cell in the 2-cell containing \ccc{dh1} and \ccc{dh2}. - Returns a handle on one dart of this cell. + Returns a handle on one dart belonging to the new 1-cell. \ccPrecond{\ccc{is_insertable_cell_1_in_cell_2(cm,dh1,dh2)}.}\\ See example in Figure~\ref{fig-insert-edge}.\\ % \begin{ccAdvanced} @@ -293,7 +293,7 @@ typename CMap::Dart_handle dh);} {Inserts a 1-cell in a the 2-cell containing \ccc{dh}, the 1-cell being attached only by one of its extremity to the 0-cell containing \ccc{dh}. - Returns a handle on one dart belonging to the new 0-cell. + Returns a handle on one dart belonging to the new 1-cell. \ccPrecond{\ccc{CMap::dimension}\mygeq{}2 and \ccc{*dh}\myin{}\ccc{cm.darts()}.}\\ See example in Figure~\ref{fig-insert-edge}. } @@ -319,9 +319,9 @@ being attached only by one of its extremity to the 0-cell containing \ccc{dh}. \ccFunction{template typename CMap::Dart_handle insert_cell_2_in_cell_3(CMap & cm, InputIterator afirst, InputIterator alast);} -{Inserts a 2-cell along the path of 1-cell incident to darts given - by the range \ccc{[afirst,alast)} - Returns a handle on one dart of this cell. +{Inserts a 2-cell along the path of 1-cells containing darts given + by the range \ccc{[afirst,alast)}. + Returns a handle on one dart belonging to the new 2-cell. \ccPrecond{\ccc{is_insertable_cell_2_in_cell_3(cm,afirst,alast)}.}\\ See example in Figure~\ref{fig-insert-face}.\\ % \begin{ccAdvanced}