\hypertarget{classKatabatic_1_1AutoVertical}{}\section{Auto\+Vertical Class Reference} \label{classKatabatic_1_1AutoVertical}\index{Auto\+Vertical@{Auto\+Vertical}} Concrete Vertical \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}}. Inheritance diagram for Auto\+Vertical\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=156pt]{classKatabatic_1_1AutoVertical__inherit__graph} \end{center} \end{figure} \subsection*{Public Member Functions} \begin{DoxyCompactItemize} \item virtual bool \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a2ced98fb06f208aa88c0962a706e64db}{\+\_\+can\+Slacken}} () const \item virtual bool \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a9b0c21eeb26c256876592ba63438da74}{can\+Move\+U\+Left}} (float reserve=0.\+0) const \item virtual bool \mbox{\hyperlink{classKatabatic_1_1AutoVertical_ad0c972e34d6bac47bd9276a7d6e053d8}{can\+Move\+U\+Right}} (float reserve=0.\+0) const \item virtual \textbf{ Segment} $\ast$ \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a9e651c17b47f82166a02865c9296a2df}{base}} () \item virtual \textbf{ Segment} $\ast$ \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a6f14a3faa93f2c610ea0d2cc7d903706}{base}} () const \item virtual \textbf{ Vertical} $\ast$ \mbox{\hyperlink{classKatabatic_1_1AutoVertical_ab6a809b6f3ef3cf5385fa35580e31e7a}{get\+Vertical}} () \item virtual \textbf{ Db\+U\+::\+Unit} \mbox{\hyperlink{classKatabatic_1_1AutoVertical_ad521ffba761b0e81b7b81b99d62f76f9}{get\+SourceU}} () const \item virtual \textbf{ Db\+U\+::\+Unit} \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a4d52a506cd19dfa8e22e1dc0695bd960}{get\+TargetU}} () const \item virtual \textbf{ Db\+U\+::\+Unit} \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a760500b1fd027c71f5362dd8c0b01ea7}{get\+Du\+Source}} () const \item virtual \textbf{ Db\+U\+::\+Unit} \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a76e349c14c904b3300a15caa1ee8b680}{get\+Du\+Target}} () const \item virtual \textbf{ Interval} \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a0b5ac47ab175815e1a9bc07f2517614a}{get\+SpanU}} () const \item virtual bool \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a16737e7f2b77f8595fd2b607fac0f2f5}{get\+Constraints}} (\textbf{ Db\+U\+::\+Unit} \&min, \textbf{ Db\+U\+::\+Unit} \&max) const \item virtual \textbf{ Interval} \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a3239751f475bc65adb9d56f6c771ebb0}{get\+Source\+Constraints}} (unsigned int flags=0) const \item virtual \textbf{ Interval} \mbox{\hyperlink{classKatabatic_1_1AutoVertical_ad2b5aeb2604548378c8d78c60862091f}{get\+Target\+Constraints}} (unsigned int flags=0) const \item virtual unsigned int \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a0dd7cf705ace42c662c289955313b2e9}{get\+Direction}} () const \item virtual size\+\_\+t \mbox{\hyperlink{classKatabatic_1_1AutoVertical_accdaef4410043f64da247a94a309733e}{get\+G\+Cells}} (vector$<$ \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} $\ast$$>$ \&) const \item virtual void \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a756616a1967c5ad8efd08be96d18f25d}{set\+Du\+Source}} (\textbf{ Db\+U\+::\+Unit}) \item virtual void \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a9df2ef68c1fbf4159cc837be5c699b53}{set\+Du\+Target}} (\textbf{ Db\+U\+::\+Unit}) \item virtual void \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a59058f4593049c583c5b3698ff81b299}{update\+Orient}} () \item virtual void \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a9662a77c2ed8553d6a0312c5292060ad}{update\+Positions}} () \item virtual bool \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a6575c17bfa589c087215c87678e5719c}{check\+Positions}} () const \item virtual bool \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a8aef8f4bbafe3426840f9ebf31bb3b81}{check\+Constraints}} () const \item virtual unsigned int \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a36c0eecad40d3559b5378caefec6a7e0}{\+\_\+make\+Dogleg}} (\mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} $\ast$, unsigned int flags) \item virtual bool \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a1fa2421b74bf0eb934b7002fd3da2321}{move\+U\+Left}} () \item virtual bool \mbox{\hyperlink{classKatabatic_1_1AutoVertical_aa469e37853e31f8b1bc817518c896d62}{move\+U\+Right}} () \end{DoxyCompactItemize} \subsection*{Protected Member Functions} \begin{DoxyCompactItemize} \item virtual void \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a3715b38135ca24745f610bebd3407c10}{\+\_\+post\+Create}} () \item virtual void \mbox{\hyperlink{classKatabatic_1_1AutoVertical_a7c13d9795eafd477994961f8a0d962d0}{\+\_\+pre\+Destroy}} () \end{DoxyCompactItemize} \subsection*{Additional Inherited Members} \subsection{Detailed Description} Concrete Vertical \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}}. \subsection{Member Function Documentation} \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a2ced98fb06f208aa88c0962a706e64db}\label{classKatabatic_1_1AutoVertical_a2ced98fb06f208aa88c0962a706e64db}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!\+\_\+can\+Slacken@{\+\_\+can\+Slacken}} \index{\+\_\+can\+Slacken@{\+\_\+can\+Slacken}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{\+\_\+can\+Slacken()}{\_canSlacken()}} {\footnotesize\ttfamily bool \+\_\+can\+Slacken (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} {\bfseries true} if the segment can be slackened. That is, source or target constraints are less than three pitches. Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a676fcb7ece71d129b7a4d87a3f2e07aa}{Auto\+Segment}}. References Interval\+::contains(), Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Auto\+Contact\+::get\+G\+Cell(), G\+Cell\+::get\+Side(), Interval\+::inflate(), and Katabatic\+::\+Kb\+Horizontal. \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a9b0c21eeb26c256876592ba63438da74}\label{classKatabatic_1_1AutoVertical_a9b0c21eeb26c256876592ba63438da74}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!can\+Move\+U\+Left@{can\+Move\+U\+Left}} \index{can\+Move\+U\+Left@{can\+Move\+U\+Left}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{can\+Move\+U\+Left()}{canMoveULeft()}} {\footnotesize\ttfamily bool can\+Move\+U\+Left (\begin{DoxyParamCaption}\item[{float}]{reserve = {\ttfamily 0.0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} \begin{DoxyReturn}{Returns} {\bfseries true} if the {\itshape global} segment can be moved on the left \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} (for a vertical) or down (for an horizontal). The move is accepted only if it do not change the amount of global wiring. Thus the following conditions\+: \begin{DoxyItemize} \item The segment mustn\textquotesingle{}t be on the leftmost \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} (obvious...). \item The segment must be global. \item The source and target contacts must be Auto\+Contact\+Turn(s). \item At least one of the perpandicular must be global {\bfseries and} connected through the {\itshape target}. That is, it\textquotesingle{}s a global which extends toward left. \item The \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} of maximum density on the left must remains below the current \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} of maximum density, with a margin of {\ttfamily reserve} (expressed in total saturation percentage). \end{DoxyItemize} \end{DoxyReturn} Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_aad55626c9d793a0b08bcff5be2a5ad0c}{Auto\+Segment}}. References Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Auto\+Contact\+::get\+G\+Cell(), Auto\+Segment\+::get\+G\+Cell(), Auto\+Segment\+::get\+Layer(), Routing\+Gauge\+::get\+Layer\+Depth(), G\+Cell\+::get\+Left(), Session\+::get\+Routing\+Gauge(), Auto\+Contact\+::get\+Segment(), G\+Cell\+::get\+Up(), G\+Cell\+::get\+W\+Density(), and Auto\+Segment\+::is\+Global(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_ad0c972e34d6bac47bd9276a7d6e053d8}\label{classKatabatic_1_1AutoVertical_ad0c972e34d6bac47bd9276a7d6e053d8}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!can\+Move\+U\+Right@{can\+Move\+U\+Right}} \index{can\+Move\+U\+Right@{can\+Move\+U\+Right}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{can\+Move\+U\+Right()}{canMoveURight()}} {\footnotesize\ttfamily bool can\+Move\+U\+Right (\begin{DoxyParamCaption}\item[{float}]{reserve = {\ttfamily 0.0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} \begin{DoxyReturn}{Returns} {\bfseries true} if the {\itshape global} segment can be moved on the right \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} (for a vertical) or up (for an horizontal). The move is accepted only if it do not change the amount of global wiring. Thus the following conditions\+: \begin{DoxyItemize} \item The segment mustn\textquotesingle{}t be on the leftmost \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} (obvious...). \item The segment must be global. \item The source and target contacts must be Auto\+Contact\+Turn(s). \item At least one of the perpandicular must be global {\bfseries and} connected through the {\itshape source}. That is, it\textquotesingle{}s a global which extends toward right. \item The \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} of maximum density on the left must remains below the current \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} of maximum density, with a margin of {\ttfamily reserve} (expressed in total saturation percentage). \end{DoxyItemize} \end{DoxyReturn} Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a096deb8a143f098eac2bff9ab9c52243}{Auto\+Segment}}. References Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Auto\+Contact\+::get\+G\+Cell(), Auto\+Segment\+::get\+G\+Cell(), Auto\+Segment\+::get\+Layer(), Routing\+Gauge\+::get\+Layer\+Depth(), G\+Cell\+::get\+Right(), Session\+::get\+Routing\+Gauge(), Auto\+Contact\+::get\+Segment(), G\+Cell\+::get\+Up(), G\+Cell\+::get\+W\+Density(), and Auto\+Segment\+::is\+Global(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a9e651c17b47f82166a02865c9296a2df}\label{classKatabatic_1_1AutoVertical_a9e651c17b47f82166a02865c9296a2df}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!base@{base}} \index{base@{base}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{base()}{base()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily \textbf{ Segment} $\ast$ base (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} the decorated \textbf{ Hurricane\+::\+Segment}. Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_ade416d0483aefe986988fa89a7cf6fcf}{Auto\+Segment}}. \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a6f14a3faa93f2c610ea0d2cc7d903706}\label{classKatabatic_1_1AutoVertical_a6f14a3faa93f2c610ea0d2cc7d903706}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!base@{base}} \index{base@{base}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{base()}{base()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily \textbf{ Segment} $\ast$ base (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} the decorated \textbf{ Hurricane\+::\+Segment} (const flavor). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a53877ff5ef48eb0030c2581a6eeb3c09}{Auto\+Segment}}. \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_ab6a809b6f3ef3cf5385fa35580e31e7a}\label{classKatabatic_1_1AutoVertical_ab6a809b6f3ef3cf5385fa35580e31e7a}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+Vertical@{get\+Vertical}} \index{get\+Vertical@{get\+Vertical}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Vertical()}{getVertical()}} {\footnotesize\ttfamily \textbf{ Vertical} $\ast$ get\+Vertical (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} If the decorated segment is a \textbf{ Hurricane\+::\+Vertical}, return it. {\ttfamily N\+U\+LL} otherwise. Reimplemented from \mbox{\hyperlink{classKatabatic_1_1AutoSegment_ab6a809b6f3ef3cf5385fa35580e31e7a}{Auto\+Segment}}. \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_ad521ffba761b0e81b7b81b99d62f76f9}\label{classKatabatic_1_1AutoVertical_ad521ffba761b0e81b7b81b99d62f76f9}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+SourceU@{get\+SourceU}} \index{get\+SourceU@{get\+SourceU}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Source\+U()}{getSourceU()}} {\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+SourceU (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} The \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} {\itshape uniform} source position. (X for an horizontal and Y for a Vertical). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_aeaa1543880686755e389c4807128428f}{Auto\+Segment}}. References Segment\+::get\+Source\+Y(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a4d52a506cd19dfa8e22e1dc0695bd960}\label{classKatabatic_1_1AutoVertical_a4d52a506cd19dfa8e22e1dc0695bd960}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+TargetU@{get\+TargetU}} \index{get\+TargetU@{get\+TargetU}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Target\+U()}{getTargetU()}} {\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+TargetU (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} The \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} {\itshape uniform} target position. (X for an horizontal and Y for a Vertical). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a828fef2716cc9c370d6d170bb96556ec}{Auto\+Segment}}. References Segment\+::get\+Target\+Y(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a760500b1fd027c71f5362dd8c0b01ea7}\label{classKatabatic_1_1AutoVertical_a760500b1fd027c71f5362dd8c0b01ea7}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+Du\+Source@{get\+Du\+Source}} \index{get\+Du\+Source@{get\+Du\+Source}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Du\+Source()}{getDuSource()}} {\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Du\+Source (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} The \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} {\itshape uniform} delta from source. (dX for an horizontal and dY for a Vertical). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_ab4881df67bd8f036d0199ed6540fe774}{Auto\+Segment}}. References Vertical\+::get\+Dy\+Source(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a76e349c14c904b3300a15caa1ee8b680}\label{classKatabatic_1_1AutoVertical_a76e349c14c904b3300a15caa1ee8b680}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+Du\+Target@{get\+Du\+Target}} \index{get\+Du\+Target@{get\+Du\+Target}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Du\+Target()}{getDuTarget()}} {\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Du\+Target (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} The \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} {\itshape uniform} delta from source. (dX for an horizontal and dY for a Vertical). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a0644d656eedc71dba2fb3c6c0d83ed3f}{Auto\+Segment}}. References Vertical\+::get\+Dy\+Target(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a0b5ac47ab175815e1a9bc07f2517614a}\label{classKatabatic_1_1AutoVertical_a0b5ac47ab175815e1a9bc07f2517614a}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+SpanU@{get\+SpanU}} \index{get\+SpanU@{get\+SpanU}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Span\+U()}{getSpanU()}} {\footnotesize\ttfamily \textbf{ Interval} get\+SpanU (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} The \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} {\itshape uniform} occupying interval (on X for horizontal and on Y for vertical). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a248eb2fbb06e3286650b28567d495f0b}{Auto\+Segment}}. References Segment\+::get\+Source\+Y(), and Segment\+::get\+Target\+Y(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a16737e7f2b77f8595fd2b607fac0f2f5}\label{classKatabatic_1_1AutoVertical_a16737e7f2b77f8595fd2b607fac0f2f5}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+Constraints@{get\+Constraints}} \index{get\+Constraints@{get\+Constraints}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Constraints()}{getConstraints()}} {\footnotesize\ttfamily bool get\+Constraints (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit} \&}]{min, }\item[{\textbf{ Db\+U\+::\+Unit} \&}]{max }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} in {\ttfamily min} \& {\ttfamily max} the allowed range for the segment axis. Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a7c2fed22b081f8d3b7a69abb457153ea}{Auto\+Segment}}. References Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Auto\+Contact\+::get\+C\+B\+X\+Max(), Auto\+Contact\+::get\+C\+B\+X\+Min(), Auto\+Segment\+::get\+User\+Constraints(), and Db\+U\+::get\+Value\+String(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a3239751f475bc65adb9d56f6c771ebb0}\label{classKatabatic_1_1AutoVertical_a3239751f475bc65adb9d56f6c771ebb0}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+Source\+Constraints@{get\+Source\+Constraints}} \index{get\+Source\+Constraints@{get\+Source\+Constraints}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Source\+Constraints()}{getSourceConstraints()}} {\footnotesize\ttfamily \textbf{ Interval} get\+Source\+Constraints (\begin{DoxyParamCaption}\item[{unsigned int}]{flags = {\ttfamily 0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} \begin{DoxyReturn}{Returns} The Interval into witch the source \mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} can vary. By default all deduced constraints and user constraints are took into account. If {\ttfamily flags} contains {\ttfamily Kb\+Native\+Constraints} the constraint returned is only the enclosing \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}}. \end{DoxyReturn} Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_ab7685e309e1d910db3e8237f8a898c35}{Auto\+Segment}}. References Auto\+Segment\+::get\+Auto\+Source(), Box\+::get\+X\+Max(), Box\+::get\+X\+Min(), and Katabatic\+::\+Kb\+Native\+Constraints. \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_ad2b5aeb2604548378c8d78c60862091f}\label{classKatabatic_1_1AutoVertical_ad2b5aeb2604548378c8d78c60862091f}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+Target\+Constraints@{get\+Target\+Constraints}} \index{get\+Target\+Constraints@{get\+Target\+Constraints}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Target\+Constraints()}{getTargetConstraints()}} {\footnotesize\ttfamily \textbf{ Interval} get\+Target\+Constraints (\begin{DoxyParamCaption}\item[{unsigned int}]{flags = {\ttfamily 0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} \begin{DoxyReturn}{Returns} The Interval into witch the target \mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} can vary. By default all deduced constraints and user constraints are took into account. If {\ttfamily flags} contains {\ttfamily Kb\+Native\+Constraints} the constraint returned is only the enclosing \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}}. \end{DoxyReturn} Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a9c1b8b3cd57fb7b0bf60c7a6148237c2}{Auto\+Segment}}. References Auto\+Segment\+::get\+Auto\+Target(), Box\+::get\+X\+Max(), Box\+::get\+X\+Min(), and Katabatic\+::\+Kb\+Native\+Constraints. \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a0dd7cf705ace42c662c289955313b2e9}\label{classKatabatic_1_1AutoVertical_a0dd7cf705ace42c662c289955313b2e9}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+Direction@{get\+Direction}} \index{get\+Direction@{get\+Direction}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+Direction()}{getDirection()}} {\footnotesize\ttfamily unsigned int get\+Direction (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} \mbox{\hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217a1a9045673c5d3c30b067100f1440ae1b}{Katabatic\+::\+Kb\+Horizontal}} or \mbox{\hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217a284cad95203a27172838b09e396e3590}{Katabatic\+::\+Kb\+Vertical}} according to the decorated segment. Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_ae35b78590ed6aa546b626ef95f28c533}{Auto\+Segment}}. References Katabatic\+::\+Kb\+Vertical. \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_accdaef4410043f64da247a94a309733e}\label{classKatabatic_1_1AutoVertical_accdaef4410043f64da247a94a309733e}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!get\+G\+Cells@{get\+G\+Cells}} \index{get\+G\+Cells@{get\+G\+Cells}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{get\+G\+Cells()}{getGCells()}} {\footnotesize\ttfamily size\+\_\+t get\+G\+Cells (\begin{DoxyParamCaption}\item[{vector$<$ \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} $\ast$$>$ \&}]{gcells }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} \begin{DoxyParams}{Parameters} {\em gcells} & A vector that will be filled by all the G\+Cells that the segment overlap. In increasing order, from source to target. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The vector\textquotesingle{}s size. \end{DoxyReturn} Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a8ca0022e253d355817d46a057ae01625}{Auto\+Segment}}. References Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Auto\+Contact\+::get\+G\+Cell(), Auto\+Segment\+::get\+G\+Cell(), and G\+Cell\+::get\+Up(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a756616a1967c5ad8efd08be96d18f25d}\label{classKatabatic_1_1AutoVertical_a756616a1967c5ad8efd08be96d18f25d}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!set\+Du\+Source@{set\+Du\+Source}} \index{set\+Du\+Source@{set\+Du\+Source}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{set\+Du\+Source()}{setDuSource()}} {\footnotesize\ttfamily void set\+Du\+Source (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{du }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} Set the {\itshape uniform} {\ttfamily dU} from source anchor (dX for Horizontal, dY for Vertical). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_aaf60d18ab6d951a34a3d06959ce2e76f}{Auto\+Segment}}. \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a9df2ef68c1fbf4159cc837be5c699b53}\label{classKatabatic_1_1AutoVertical_a9df2ef68c1fbf4159cc837be5c699b53}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!set\+Du\+Target@{set\+Du\+Target}} \index{set\+Du\+Target@{set\+Du\+Target}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{set\+Du\+Target()}{setDuTarget()}} {\footnotesize\ttfamily void set\+Du\+Target (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{du }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} Set the {\itshape uniform} {\ttfamily dU} from target anchor (dX for Horizontal, dY for Vertical). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a246756d4c8b3e094a0a9d6de3c2109ff}{Auto\+Segment}}. \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a59058f4593049c583c5b3698ff81b299}\label{classKatabatic_1_1AutoVertical_a59058f4593049c583c5b3698ff81b299}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!update\+Orient@{update\+Orient}} \index{update\+Orient@{update\+Orient}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{update\+Orient()}{updateOrient()}} {\footnotesize\ttfamily void update\+Orient (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} Ensure that source is lower than target. Swap them if needed. Swap never occurs on global segment because their source and target anchors are from different \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}}, which are already ordered. Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a102e0f4bbb0386e41be214d15a9e4549}{Auto\+Segment}}. References Segment\+::get\+Source\+Y(), Segment\+::get\+Target\+Y(), Segment\+::invert(), Katabatic\+::\+Seg\+Source\+Bottom, Katabatic\+::\+Seg\+Source\+Top, Katabatic\+::\+Seg\+Target\+Bottom, Katabatic\+::\+Seg\+Target\+Top, Auto\+Segment\+::set\+Flags(), and Auto\+Segment\+::unset\+Flags(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a9662a77c2ed8553d6a0312c5292060ad}\label{classKatabatic_1_1AutoVertical_a9662a77c2ed8553d6a0312c5292060ad}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!update\+Positions@{update\+Positions}} \index{update\+Positions@{update\+Positions}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{update\+Positions()}{updatePositions()}} {\footnotesize\ttfamily void update\+Positions (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} Update the segment begenning and ending positions. The positions takes into account the extension caps and reflect the real space used by the segment under it\textquotesingle{}s long axis. Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a6d95f4de39c13611786c95ddc7b8942e}{Auto\+Segment}}. References Session\+::get\+Extension\+Cap(), Auto\+Segment\+::get\+Layer(), Segment\+::get\+Source\+Y(), and Segment\+::get\+Target\+Y(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a6575c17bfa589c087215c87678e5719c}\label{classKatabatic_1_1AutoVertical_a6575c17bfa589c087215c87678e5719c}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!check\+Positions@{check\+Positions}} \index{check\+Positions@{check\+Positions}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{check\+Positions()}{checkPositions()}} {\footnotesize\ttfamily bool check\+Positions (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} {\bfseries true} if the relative positions of source \& target are coherent. (source $<$= target). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_af026a81002bd907f1ccd4a4784aaa1db}{Auto\+Segment}}. References Session\+::get\+Extension\+Cap(), Auto\+Segment\+::get\+Layer(), Segment\+::get\+Source\+Y(), Segment\+::get\+Target\+Y(), and Db\+U\+::get\+Value\+String(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a8aef8f4bbafe3426840f9ebf31bb3b81}\label{classKatabatic_1_1AutoVertical_a8aef8f4bbafe3426840f9ebf31bb3b81}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!check\+Constraints@{check\+Constraints}} \index{check\+Constraints@{check\+Constraints}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{check\+Constraints()}{checkConstraints()}} {\footnotesize\ttfamily bool check\+Constraints (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries Returns\+:} {\bfseries true} if the constraint intervel is coherent (non-\/empty or punctual in the worst case). Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a3d5732fd10b4a05076981066a4674487}{Auto\+Segment}}. References Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), and Interval\+::intersect(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a36c0eecad40d3559b5378caefec6a7e0}\label{classKatabatic_1_1AutoVertical_a36c0eecad40d3559b5378caefec6a7e0}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!\+\_\+make\+Dogleg@{\+\_\+make\+Dogleg}} \index{\+\_\+make\+Dogleg@{\+\_\+make\+Dogleg}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{\+\_\+make\+Dogleg()}{\_makeDogleg()}} {\footnotesize\ttfamily unsigned int \+\_\+make\+Dogleg (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} $\ast$}]{dogleg\+G\+Cell, }\item[{unsigned int}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries This method is the workhorse for the various dogleg and topology restauration methods.} It is the atomic method that actually make the dogleg on {\bfseries this} segment. {\bfseries Returns\+:} \mbox{\hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217af756099f1bbe259dd1bf22067dc40eac}{Katabatic\+::\+Kb\+Use\+Above\+Layer}} if the dogleg is using the {\itshape above} layer (\mbox{\hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217a41cbd981337678e042354f340bfae25d}{Katabatic\+::\+Kb\+Use\+Below\+Layer}} for the below layer). Break the current segment in two (a.\+k.\+a. making a dogleg). \begin{DoxyItemize} \item The segment is broken inside {\ttfamily dogleg\+G\+Cell}. \item Two new segments are createds, one perpandicular and one parallel. \item The original segment is always kept attached to the {\itshape source}. (the new parallel fragment is attached to the {\itshape target}). \item The perpandicular segment is in the layer {\itshape above} by default. If we are already on the topmost routing layer, the {\itshape below} layer is used. \item If the segment pass through the breaking \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}}, it\textquotesingle{}s axis is set into the center. If the segment is local, the axis is the middle of the segment. \item The Local/\+Global kind of the original segment is updated. The local/global status is computed by the constructor of the \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} for the perpandicular and the new parallel. \item The terminal state is updated. If the segment is a strong terminal the part that is no longer directly connected to the terminal is demoted to \mbox{\hyperlink{namespaceKatabatic_a94585537ee1724ea9315578ec54380f4a7b3e09b8ab4cf676fd308535d7fba892}{Katabatic\+::\+Seg\+Weak\+Terminal1}}. \item The perpandicular is obviously a canonical. If the broken segment is canonical, the original {\bfseries is} left canonical and only the new parallel is re-\/canonized. Otherwise, we re-\/canonise both sets of aligned segments (the one on the source and the one on the target). \item The three segments are added to the session dogleg stack. \end{DoxyItemize} After this method call the net topology is guarantee to be valid. Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a37a14b40295ccb50cd5001891385807b}{Auto\+Segment}}. References Auto\+Contact\+::base(), Auto\+Segment\+::canonize(), Auto\+Contact\+Turn\+::create(), Auto\+Segment\+::create(), Session\+::dogleg(), Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Session\+::get\+Configuration(), Routing\+Gauge\+::get\+Contact\+Layer(), Auto\+Contact\+::get\+G\+Cell(), Component\+::get\+Layer(), Auto\+Segment\+::get\+Layer(), Routing\+Gauge\+::get\+Layer\+Depth(), Component\+::get\+Net(), Session\+::get\+Routing\+Gauge(), Routing\+Gauge\+::get\+Routing\+Layer(), Auto\+Segment\+::get\+Source\+Y(), Auto\+Segment\+::get\+Target\+Y(), G\+Cell\+::get\+Up(), Auto\+Segment\+::get\+X(), G\+Cell\+::get\+Y(), G\+Cell\+::get\+Y\+Max(), Auto\+Contact\+::invalidate(), Auto\+Segment\+::invalidate(), Auto\+Segment\+::is\+Canonical(), Auto\+Segment\+::is\+Local(), Auto\+Segment\+::is\+Slackened(), Auto\+Segment\+::is\+Weak\+Terminal(), Katabatic\+::\+Kb\+Horizontal, Katabatic\+::\+Kb\+Use\+Above\+Layer, Katabatic\+::\+Kb\+Use\+Below\+Layer, Katabatic\+::\+Kb\+Vertical, Auto\+Contact\+::migrate\+Constraint\+Box(), G\+Cell\+::remove\+V\+Segment(), Katabatic\+::\+Seg\+Canonical, Katabatic\+::\+Seg\+Dogleg, Katabatic\+::\+Seg\+Global, Katabatic\+::\+Seg\+Not\+Aligned, Katabatic\+::\+Seg\+Slackened, Katabatic\+::\+Seg\+Weak\+Terminal1, Auto\+Segment\+::set\+Flags(), Auto\+Segment\+::set\+Layer(), and Auto\+Segment\+::unset\+Flags(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a1fa2421b74bf0eb934b7002fd3da2321}\label{classKatabatic_1_1AutoVertical_a1fa2421b74bf0eb934b7002fd3da2321}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!move\+U\+Left@{move\+U\+Left}} \index{move\+U\+Left@{move\+U\+Left}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{move\+U\+Left()}{moveULeft()}} {\footnotesize\ttfamily bool move\+U\+Left (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries This function do not manage an aligned set. It applies on {\ttfamily this} segment only.} Displace an Horizontal or Vertical segment to the \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} below (a.\+k.\+a. lower or inferior). Rules for displacement\+: \begin{DoxyItemize} \item The segment must be connected at both end to a turn contact (we do not want to manage more complex cases for the time beeing). \item And, of course, the segment must not already by on the bottomost \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}}... \end{DoxyItemize} The displacement take care of\+: \begin{DoxyItemize} \item Managing the status of the various perpandiculars. The stretched one are made global if needed. The shrinked one made local, if needed. \item The supporting \mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} (source \& target) are changed of \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}}. \item If the segment is global, the go-\/through G\+Cells are updateds. \end{DoxyItemize} {\bfseries Returns\+:} {\bfseries true} if the move has succeeded. Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_af8ca7b17e952f4b599aeeb2f4e5be395}{Auto\+Segment}}. References G\+Cell\+::add\+H\+Segment(), Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Auto\+Contact\+::get\+G\+Cell(), Auto\+Segment\+::get\+G\+Cell(), G\+Cell\+::get\+Left(), Auto\+Contact\+::get\+Segment(), G\+Cell\+::get\+Side(), G\+Cell\+::get\+Up(), Interval\+::get\+V\+Max(), Auto\+Segment\+::is\+Local(), Katabatic\+::\+Kb\+Horizontal, G\+Cell\+::remove\+H\+Segment(), Katabatic\+::\+Seg\+Global, Auto\+Segment\+::set\+Axis(), Auto\+Segment\+::set\+Flags(), Auto\+Contact\+::set\+G\+Cell(), and Auto\+Segment\+::unset\+Flags(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_aa469e37853e31f8b1bc817518c896d62}\label{classKatabatic_1_1AutoVertical_aa469e37853e31f8b1bc817518c896d62}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!move\+U\+Right@{move\+U\+Right}} \index{move\+U\+Right@{move\+U\+Right}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{move\+U\+Right()}{moveURight()}} {\footnotesize\ttfamily bool move\+U\+Right (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} {\bfseries This function do not manage an aligned set. It applies on {\ttfamily this} segment only.} Displace an Horizontal or Vertical segment to the \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} above (a.\+k.\+a. upper or superior). Rules for displacement\+: \begin{DoxySeeAlso}{See also} \mbox{\hyperlink{classKatabatic_1_1AutoSegment_af8ca7b17e952f4b599aeeb2f4e5be395}{Auto\+Segment\+::move\+U\+Left()}} for a complete description. \end{DoxySeeAlso} Implements \mbox{\hyperlink{classKatabatic_1_1AutoSegment_ad7fd54ca229fcf5ccd99f87b019b9cbc}{Auto\+Segment}}. References G\+Cell\+::add\+H\+Segment(), Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Auto\+Contact\+::get\+G\+Cell(), Auto\+Segment\+::get\+G\+Cell(), G\+Cell\+::get\+Right(), Auto\+Contact\+::get\+Segment(), G\+Cell\+::get\+Side(), G\+Cell\+::get\+Up(), Db\+U\+::get\+Value\+String(), Interval\+::get\+V\+Min(), Auto\+Segment\+::is\+Local(), Katabatic\+::\+Kb\+Horizontal, G\+Cell\+::remove\+H\+Segment(), Katabatic\+::\+Seg\+Global, Auto\+Segment\+::set\+Axis(), Auto\+Segment\+::set\+Flags(), Auto\+Contact\+::set\+G\+Cell(), and Auto\+Segment\+::unset\+Flags(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a3715b38135ca24745f610bebd3407c10}\label{classKatabatic_1_1AutoVertical_a3715b38135ca24745f610bebd3407c10}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!\+\_\+post\+Create@{\+\_\+post\+Create}} \index{\+\_\+post\+Create@{\+\_\+post\+Create}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{\+\_\+post\+Create()}{\_postCreate()}} {\footnotesize\ttfamily void \+\_\+post\+Create (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} In addition to \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a3715b38135ca24745f610bebd3407c10}{Auto\+Segment\+::\+\_\+post\+Create()}}, detect whether the segment is global or local and register it in the relevant G\+Cells (if needed). If the segment is anchored directly on a terminal, adjust the axis so it\textquotesingle{}s connected. Reimplemented from \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a3715b38135ca24745f610bebd3407c10}{Auto\+Segment}}. References Auto\+Segment\+::\+\_\+post\+Create(), G\+Cell\+::add\+V\+Segment(), Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Auto\+Contact\+::get\+G\+Cell(), G\+Cell\+::get\+Up(), Component\+::get\+X(), G\+Cell\+::get\+Y(), Katabatic\+::\+Seg\+Global, Auto\+Segment\+::set\+Flags(), and Auto\+Contact\+::set\+X(). \mbox{\Hypertarget{classKatabatic_1_1AutoVertical_a7c13d9795eafd477994961f8a0d962d0}\label{classKatabatic_1_1AutoVertical_a7c13d9795eafd477994961f8a0d962d0}} \index{Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}!\+\_\+pre\+Destroy@{\+\_\+pre\+Destroy}} \index{\+\_\+pre\+Destroy@{\+\_\+pre\+Destroy}!Katabatic\+::\+Auto\+Vertical@{Katabatic\+::\+Auto\+Vertical}} \subsubsection{\texorpdfstring{\+\_\+pre\+Destroy()}{\_preDestroy()}} {\footnotesize\ttfamily void \+\_\+pre\+Destroy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} Perform operations that must be done before the actual destructor is called. Merely whidrawn the \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} from the lookup/\+Session mechanism. Reimplemented from \mbox{\hyperlink{classKatabatic_1_1AutoSegment_a7c13d9795eafd477994961f8a0d962d0}{Auto\+Segment}}. References Auto\+Segment\+::\+\_\+pre\+Destroy(), Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Auto\+Contact\+::get\+G\+Cell(), Auto\+Segment\+::get\+Id(), G\+Cell\+::get\+Up(), G\+Cell\+::get\+Y(), and G\+Cell\+::remove\+V\+Segment(). The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} \item Auto\+Vertical.\+h\item Auto\+Vertical.\+cpp\item Auto\+Vertical.\+dox\end{DoxyCompactItemize}