A small container helper to manage a set of \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} sorted by density on a specific layer {\ttfamily depth}.
The helper is implemented in term of a set. Once inserted in a set an element must not have is sorting key changed. But \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} density may change due to \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} modifications during the lifetime of the set. To circumvent this problem, the \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} provide a key attribute to be used specifically with \mbox{\hyperlink{classKatabatic_1_1GCellDensitySet}{G\+Cell\+Density\+Set}}. This key act as a cached copy of the \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} density which is updated {\itshape only} by a call to \mbox{\hyperlink{classKatabatic_1_1GCell_a11beff0f0bec06d0f3e080969516dfc3}{G\+Cell\+::update\+Key()}} (and {\itshape not}\mbox{\hyperlink{classKatabatic_1_1GCell_a9b3455dce10eb98d0496175dd586528c}{G\+Cell\+::update\+Density()}}). \mbox{\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 \mbox{\hyperlink{classKatabatic_1_1GCellDensitySet_ac84efe46d8a3c409e85bc3420240c3c2}{G\+Cell\+Density\+Set\+::requeue()}} which, for each invalidated \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} do\+:
Create a new empty \mbox{\hyperlink{classKatabatic_1_1GCellDensitySet}{G\+Cell\+Density\+Set}}, sorting on density of layer {\ttfamily depth}. \mbox{\Hypertarget{classKatabatic_1_1GCellDensitySet_a5d97169315528fca978d5e65a3cc8130}\label{classKatabatic_1_1GCellDensitySet_a5d97169315528fca978d5e65a3cc8130}}
Create a new empty \mbox{\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. \mbox{\Hypertarget{classKatabatic_1_1GCellDensitySet_a259cb5a711406a8c3e5d937eb9350cca}\label{classKatabatic_1_1GCellDensitySet_a259cb5a711406a8c3e5d937eb9350cca}}
{\bfseries Returns\+:} the numbers of elements in the queue. \mbox{\Hypertarget{classKatabatic_1_1GCellDensitySet_a8bac89a45c1449ebdb28a778993cb8e5}\label{classKatabatic_1_1GCellDensitySet_a8bac89a45c1449ebdb28a778993cb8e5}}
{\bfseries Returns\+:} the list of G\+Cells currently in the queue. \mbox{\Hypertarget{classKatabatic_1_1GCellDensitySet_a6b97afb6d814ba80a24a49b3ad8e540b}\label{classKatabatic_1_1GCellDensitySet_a6b97afb6d814ba80a24a49b3ad8e540b}}
Insert {\ttfamily gcell} into the set. \mbox{\Hypertarget{classKatabatic_1_1GCellDensitySet_a743f7f98fe31b8a1c134aff01ba03acb}\label{classKatabatic_1_1GCellDensitySet_a743f7f98fe31b8a1c134aff01ba03acb}}
Remove {\ttfamily gcell} from the set. \mbox{\Hypertarget{classKatabatic_1_1GCellDensitySet_a89099ec88eadcadb942b7d64a6ffd7ee}\label{classKatabatic_1_1GCellDensitySet_a89099ec88eadcadb942b7d64a6ffd7ee}}
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 \mbox{\hyperlink{classKatabatic_1_1GCellDensitySet_ac84efe46d8a3c409e85bc3420240c3c2}{G\+Cell\+Density\+Set\+::requeue()}}. \mbox{\Hypertarget{classKatabatic_1_1GCellDensitySet_ac84efe46d8a3c409e85bc3420240c3c2}\label{classKatabatic_1_1GCellDensitySet_ac84efe46d8a3c409e85bc3420240c3c2}}
Reinsert in the queue all the G\+Cells that have been previously invalidated by a call to \mbox{\hyperlink{classKatabatic_1_1GCellDensitySet_a89099ec88eadcadb942b7d64a6ffd7ee}{G\+Cell\+Density\+Set\+::unqueue()}}. This function calls \mbox{\hyperlink{classKatabatic_1_1GCell_a11beff0f0bec06d0f3e080969516dfc3}{G\+Cell\+::update\+Key()}} before reinserting the \mbox{\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}