The helper is implemented in term of a set. Once inserted in a set an element must not have is sorting key changed. But \hyperlink{classKatabatic_1_1GCell}{G\-Cell} density may change due to \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} modifications during the lifetime of the set. To circumvent this problem, the \hyperlink{classKatabatic_1_1GCell}{G\-Cell} provide a key attribute to be used specifically with \hyperlink{classKatabatic_1_1GCellDensitySet}{G\-Cell\-Density\-Set}. This key act as a cached copy of the \hyperlink{classKatabatic_1_1GCell}{G\-Cell} density which is updated {\itshape only} by a call to \hyperlink{classKatabatic_1_1GCell_a11beff0f0bec06d0f3e080969516dfc3}{G\-Cell\-::update\-Key()} (and {\itshape not}\hyperlink{classKatabatic_1_1GCell_a9b3455dce10eb98d0496175dd586528c}{G\-Cell\-::update\-Density()}). \hyperlink{classKatabatic_1_1GCell}{G\-Cell} which density have changed and key has to be updated must be signaled to set with the G\-Cell\-Density\-Queue\-::unqueue() method. When we want to update the sorting of the set on the new densities, we call \hyperlink{classKatabatic_1_1GCellDensitySet_ac84efe46d8a3c409e85bc3420240c3c2}{G\-Cell\-Density\-Set\-::requeue()} which, for each invalidated \hyperlink{classKatabatic_1_1GCell}{G\-Cell} do\-:
Create a new empty \hyperlink{classKatabatic_1_1GCellDensitySet}{G\-Cell\-Density\-Set}, sorting on density of layer {\ttfamily depth}. \hypertarget{classKatabatic_1_1GCellDensitySet_ada8d6c973310b9c4f66ec3c5b611bdf9}{\index{Katabatic\-::\-G\-Cell\-Density\-Set@{Katabatic\-::\-G\-Cell\-Density\-Set}!G\-Cell\-Density\-Set@{G\-Cell\-Density\-Set}}
Create a new empty \hyperlink{classKatabatic_1_1GCellDensitySet}{G\-Cell\-Density\-Set}, sorting on density of layer {\ttfamily depth}. Load the queue with the G\-Cells supplied in the {\ttfamily gcells} vector.
{\bfseries Returns\-:}{\bfseries true} if the queue is empty. \hypertarget{classKatabatic_1_1GCellDensitySet_aac782da1f912bceb5d8ad00c8dc892ac}{\index{Katabatic\-::\-G\-Cell\-Density\-Set@{Katabatic\-::\-G\-Cell\-Density\-Set}!size@{size}}
{\bfseries Returns\-:} the numbers of elements in the queue. \hypertarget{classKatabatic_1_1GCellDensitySet_a4ee769ef70539275bf4b500461250af0}{\index{Katabatic\-::\-G\-Cell\-Density\-Set@{Katabatic\-::\-G\-Cell\-Density\-Set}!get\-G\-Cells@{get\-G\-Cells}}
{\bfseries Returns\-:} the list of G\-Cells currently in the queue. \hypertarget{classKatabatic_1_1GCellDensitySet_a6b97afb6d814ba80a24a49b3ad8e540b}{\index{Katabatic\-::\-G\-Cell\-Density\-Set@{Katabatic\-::\-G\-Cell\-Density\-Set}!insert@{insert}}
Insert {\ttfamily gcell} into the set. \hypertarget{classKatabatic_1_1GCellDensitySet_a743f7f98fe31b8a1c134aff01ba03acb}{\index{Katabatic\-::\-G\-Cell\-Density\-Set@{Katabatic\-::\-G\-Cell\-Density\-Set}!erase@{erase}}
Remove {\ttfamily gcell} from the set. \hypertarget{classKatabatic_1_1GCellDensitySet_a89099ec88eadcadb942b7d64a6ffd7ee}{\index{Katabatic\-::\-G\-Cell\-Density\-Set@{Katabatic\-::\-G\-Cell\-Density\-Set}!unqueue@{unqueue}}
Invalidate {\ttfamily gcell}. The density of {\ttfamily gcell} may have changed and needs to be reinserted into the queue. It is temporarily set asides until the next call to \hyperlink{classKatabatic_1_1GCellDensitySet_ac84efe46d8a3c409e85bc3420240c3c2}{G\-Cell\-Density\-Set\-::requeue()}. \hypertarget{classKatabatic_1_1GCellDensitySet_ac84efe46d8a3c409e85bc3420240c3c2}{\index{Katabatic\-::\-G\-Cell\-Density\-Set@{Katabatic\-::\-G\-Cell\-Density\-Set}!requeue@{requeue}}
Reinsert in the queue all the G\-Cells that have been previously invalidated by a call to \hyperlink{classKatabatic_1_1GCellDensitySet_a89099ec88eadcadb942b7d64a6ffd7ee}{G\-Cell\-Density\-Set\-::unqueue()}. This function calls \hyperlink{classKatabatic_1_1GCell_a11beff0f0bec06d0f3e080969516dfc3}{G\-Cell\-::update\-Key()} before reinserting the \hyperlink{classKatabatic_1_1GCell}{G\-Cell}.
Referenced by G\-Cell\-Density\-Set\-::\-G\-Cell\-Density\-Set().
The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}