coriolis/katabatic/doc/latex/classKatabatic_1_1AutoVerti...

558 lines
38 KiB
TeX
Raw Normal View History

\hypertarget{classKatabatic_1_1AutoVertical}{\section{Auto\-Vertical Class Reference}
\label{classKatabatic_1_1AutoVertical}\index{Auto\-Vertical@{Auto\-Vertical}}
}
Concrete Vertical \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 \hyperlink{classKatabatic_1_1AutoVertical_ab0c6fe24404afe19268a7b796fa74bec}{\-\_\-can\-Slacken} () const
\item
virtual bool \hyperlink{classKatabatic_1_1AutoVertical_aa9e85f38a842d1966eb72afccb446676}{can\-Move\-U\-Left} (float reserve=0.\-0) const
\item
virtual bool \hyperlink{classKatabatic_1_1AutoVertical_a7559a856712400a9325665842e0bcd64}{can\-Move\-U\-Right} (float reserve=0.\-0) const
\item
virtual {\bf Segment} $\ast$ \hyperlink{classKatabatic_1_1AutoVertical_a9e651c17b47f82166a02865c9296a2df}{base} ()
\item
virtual {\bf Segment} $\ast$ \hyperlink{classKatabatic_1_1AutoVertical_adcd751c3ec393fabdef5ede0ffff6f2d}{base} () const
\item
virtual {\bf Vertical} $\ast$ \hyperlink{classKatabatic_1_1AutoVertical_ab6a809b6f3ef3cf5385fa35580e31e7a}{get\-Vertical} ()
\item
virtual {\bf Db\-U\-::\-Unit} \hyperlink{classKatabatic_1_1AutoVertical_a3932d5ce9094ead510e4e33bd4e78e1a}{get\-Source\-U} () const
\item
virtual {\bf Db\-U\-::\-Unit} \hyperlink{classKatabatic_1_1AutoVertical_a8e5f2a51f56c6bdb74024ac77c08a22a}{get\-Target\-U} () const
\item
virtual {\bf Db\-U\-::\-Unit} \hyperlink{classKatabatic_1_1AutoVertical_a44998a5f0d71597006fe4f3ffed8e3d1}{get\-Du\-Source} () const
\item
virtual {\bf Db\-U\-::\-Unit} \hyperlink{classKatabatic_1_1AutoVertical_a4f505a59109fc6087696f483ccc7f9dc}{get\-Du\-Target} () const
\item
virtual {\bf Interval} \hyperlink{classKatabatic_1_1AutoVertical_a9409a4b64c21fa8b1517149728f0a4c1}{get\-Span\-U} () const
\item
virtual bool \hyperlink{classKatabatic_1_1AutoVertical_aff207f4cc3c3682ed57369fdfe157d2d}{get\-Constraints} ({\bf Db\-U\-::\-Unit} \&min, {\bf Db\-U\-::\-Unit} \&max) const
\item
virtual {\bf Interval} \hyperlink{classKatabatic_1_1AutoVertical_a3c24695921b612a57c5ac60ff0aa3878}{get\-Source\-Constraints} (unsigned int flags=0) const
\item
virtual {\bf Interval} \hyperlink{classKatabatic_1_1AutoVertical_aaa70ba865e312fb30f81fa7f973a0376}{get\-Target\-Constraints} (unsigned int flags=0) const
\item
virtual unsigned int \hyperlink{classKatabatic_1_1AutoVertical_a09d03fbca9ab891c2f25bdae7f89a899}{get\-Direction} () const
\item
virtual size\-\_\-t \hyperlink{classKatabatic_1_1AutoVertical_ab681dca7dc930e06cacc2de85bf99166}{get\-G\-Cells} (vector$<$ \hyperlink{classKatabatic_1_1GCell}{G\-Cell} $\ast$ $>$ \&) const
\item
virtual void \hyperlink{classKatabatic_1_1AutoVertical_a756616a1967c5ad8efd08be96d18f25d}{set\-Du\-Source} ({\bf Db\-U\-::\-Unit})
\item
virtual void \hyperlink{classKatabatic_1_1AutoVertical_a9df2ef68c1fbf4159cc837be5c699b53}{set\-Du\-Target} ({\bf Db\-U\-::\-Unit})
\item
virtual void \hyperlink{classKatabatic_1_1AutoVertical_a59058f4593049c583c5b3698ff81b299}{update\-Orient} ()
\item
virtual void \hyperlink{classKatabatic_1_1AutoVertical_a9662a77c2ed8553d6a0312c5292060ad}{update\-Positions} ()
\item
virtual bool \hyperlink{classKatabatic_1_1AutoVertical_acfbdc94b1e84bd192087df53ead1f06f}{check\-Positions} () const
\item
virtual bool \hyperlink{classKatabatic_1_1AutoVertical_a46576c7c5c5146f8fa53a821b0766994}{check\-Constraints} () const
\item
virtual unsigned int \hyperlink{classKatabatic_1_1AutoVertical_a36c0eecad40d3559b5378caefec6a7e0}{\-\_\-make\-Dogleg} (\hyperlink{classKatabatic_1_1GCell}{G\-Cell} $\ast$, unsigned int flags)
\item
virtual bool \hyperlink{classKatabatic_1_1AutoVertical_a1fa2421b74bf0eb934b7002fd3da2321}{move\-U\-Left} ()
\item
virtual bool \hyperlink{classKatabatic_1_1AutoVertical_aa469e37853e31f8b1bc817518c896d62}{move\-U\-Right} ()
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item
virtual void \hyperlink{classKatabatic_1_1AutoVertical_a3715b38135ca24745f610bebd3407c10}{\-\_\-post\-Create} ()
\item
virtual void \hyperlink{classKatabatic_1_1AutoVertical_a7c13d9795eafd477994961f8a0d962d0}{\-\_\-pre\-Destroy} ()
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}
\subsection{Detailed Description}
Concrete Vertical \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment}.
\subsection{Member Function Documentation}
\hypertarget{classKatabatic_1_1AutoVertical_ab0c6fe24404afe19268a7b796fa74bec}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!\-\_\-can\-Slacken@{\-\_\-can\-Slacken}}
\index{\-\_\-can\-Slacken@{\-\_\-can\-Slacken}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{\-\_\-can\-Slacken}]{\setlength{\rightskip}{0pt plus 5cm}bool \-\_\-can\-Slacken (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_ab0c6fe24404afe19268a7b796fa74bec}
{\bfseries Returns\-:} {\bfseries true} if the segment can be slackened. That is, source or target constraints are less than three pitches.
Implements \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.
\hypertarget{classKatabatic_1_1AutoVertical_aa9e85f38a842d1966eb72afccb446676}{\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::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{can\-Move\-U\-Left}]{\setlength{\rightskip}{0pt plus 5cm}bool can\-Move\-U\-Left (
\begin{DoxyParamCaption}
\item[{float}]{reserve = {\ttfamily 0.0}}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_aa9e85f38a842d1966eb72afccb446676}
\begin{DoxyReturn}{Returns}
{\bfseries true} if the {\itshape global} segment can be moved on the left \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't be on the leftmost \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's a global which extends toward left.
\item The \hyperlink{classKatabatic_1_1GCell}{G\-Cell} of maximum density on the left must remains below the current \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 \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().
\hypertarget{classKatabatic_1_1AutoVertical_a7559a856712400a9325665842e0bcd64}{\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::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{can\-Move\-U\-Right}]{\setlength{\rightskip}{0pt plus 5cm}bool can\-Move\-U\-Right (
\begin{DoxyParamCaption}
\item[{float}]{reserve = {\ttfamily 0.0}}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a7559a856712400a9325665842e0bcd64}
\begin{DoxyReturn}{Returns}
{\bfseries true} if the {\itshape global} segment can be moved on the right \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't be on the leftmost \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's a global which extends toward right.
\item The \hyperlink{classKatabatic_1_1GCell}{G\-Cell} of maximum density on the left must remains below the current \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 \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().
\hypertarget{classKatabatic_1_1AutoVertical_a9e651c17b47f82166a02865c9296a2df}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!base@{base}}
\index{base@{base}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{base}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Segment} $\ast$ base (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a9e651c17b47f82166a02865c9296a2df}
{\bfseries Returns\-:} the decorated {\bf Hurricane\-::\-Segment}.
Implements \hyperlink{classKatabatic_1_1AutoSegment_ade416d0483aefe986988fa89a7cf6fcf}{Auto\-Segment}.
\hypertarget{classKatabatic_1_1AutoVertical_adcd751c3ec393fabdef5ede0ffff6f2d}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!base@{base}}
\index{base@{base}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{base}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Segment} $\ast$ base (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_adcd751c3ec393fabdef5ede0ffff6f2d}
{\bfseries Returns\-:} the decorated {\bf Hurricane\-::\-Segment} (const flavor).
Implements \hyperlink{classKatabatic_1_1AutoSegment_a53877ff5ef48eb0030c2581a6eeb3c09}{Auto\-Segment}.
\hypertarget{classKatabatic_1_1AutoVertical_ab6a809b6f3ef3cf5385fa35580e31e7a}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Vertical@{get\-Vertical}}
\index{get\-Vertical@{get\-Vertical}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Vertical}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vertical} $\ast$ get\-Vertical (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_ab6a809b6f3ef3cf5385fa35580e31e7a}
{\bfseries Returns\-:} If the decorated segment is a {\bf Hurricane\-::\-Vertical}, return it. {\ttfamily N\-U\-L\-L} otherwise.
Reimplemented from \hyperlink{classKatabatic_1_1AutoSegment_ab6a809b6f3ef3cf5385fa35580e31e7a}{Auto\-Segment}.
\hypertarget{classKatabatic_1_1AutoVertical_a3932d5ce9094ead510e4e33bd4e78e1a}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Source\-U@{get\-Source\-U}}
\index{get\-Source\-U@{get\-Source\-U}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Source\-U}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Source\-U (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a3932d5ce9094ead510e4e33bd4e78e1a}
{\bfseries Returns\-:} The \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} {\itshape uniform} source position. (X for an horizontal and Y for a Vertical).
Implements \hyperlink{classKatabatic_1_1AutoSegment_aeaa1543880686755e389c4807128428f}{Auto\-Segment}.
References Segment\-::get\-Source\-Y().
\hypertarget{classKatabatic_1_1AutoVertical_a8e5f2a51f56c6bdb74024ac77c08a22a}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Target\-U@{get\-Target\-U}}
\index{get\-Target\-U@{get\-Target\-U}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Target\-U}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Target\-U (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a8e5f2a51f56c6bdb74024ac77c08a22a}
{\bfseries Returns\-:} The \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} {\itshape uniform} target position. (X for an horizontal and Y for a Vertical).
Implements \hyperlink{classKatabatic_1_1AutoSegment_a828fef2716cc9c370d6d170bb96556ec}{Auto\-Segment}.
References Segment\-::get\-Target\-Y().
\hypertarget{classKatabatic_1_1AutoVertical_a44998a5f0d71597006fe4f3ffed8e3d1}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Du\-Source@{get\-Du\-Source}}
\index{get\-Du\-Source@{get\-Du\-Source}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Du\-Source}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Du\-Source (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a44998a5f0d71597006fe4f3ffed8e3d1}
{\bfseries Returns\-:} The \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} {\itshape uniform} delta from source. (d\-X for an horizontal and d\-Y for a Vertical).
Implements \hyperlink{classKatabatic_1_1AutoSegment_ab4881df67bd8f036d0199ed6540fe774}{Auto\-Segment}.
References Vertical\-::get\-Dy\-Source().
\hypertarget{classKatabatic_1_1AutoVertical_a4f505a59109fc6087696f483ccc7f9dc}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Du\-Target@{get\-Du\-Target}}
\index{get\-Du\-Target@{get\-Du\-Target}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Du\-Target}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Du\-Target (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a4f505a59109fc6087696f483ccc7f9dc}
{\bfseries Returns\-:} The \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} {\itshape uniform} delta from source. (d\-X for an horizontal and d\-Y for a Vertical).
Implements \hyperlink{classKatabatic_1_1AutoSegment_a0644d656eedc71dba2fb3c6c0d83ed3f}{Auto\-Segment}.
References Vertical\-::get\-Dy\-Target().
\hypertarget{classKatabatic_1_1AutoVertical_a9409a4b64c21fa8b1517149728f0a4c1}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Span\-U@{get\-Span\-U}}
\index{get\-Span\-U@{get\-Span\-U}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Span\-U}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Interval} get\-Span\-U (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a9409a4b64c21fa8b1517149728f0a4c1}
{\bfseries Returns\-:} The \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} {\itshape uniform} occupying interval (on X for horizontal and on Y for vertical).
Implements \hyperlink{classKatabatic_1_1AutoSegment_a248eb2fbb06e3286650b28567d495f0b}{Auto\-Segment}.
References Segment\-::get\-Source\-Y(), and Segment\-::get\-Target\-Y().
\hypertarget{classKatabatic_1_1AutoVertical_aff207f4cc3c3682ed57369fdfe157d2d}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Constraints@{get\-Constraints}}
\index{get\-Constraints@{get\-Constraints}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Constraints}]{\setlength{\rightskip}{0pt plus 5cm}bool get\-Constraints (
\begin{DoxyParamCaption}
\item[{{\bf Db\-U\-::\-Unit} \&}]{min, }
\item[{{\bf Db\-U\-::\-Unit} \&}]{max}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_aff207f4cc3c3682ed57369fdfe157d2d}
{\bfseries Returns\-:} in {\ttfamily min} \& {\ttfamily max} the allowed range for the segment axis.
Implements \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().
\hypertarget{classKatabatic_1_1AutoVertical_a3c24695921b612a57c5ac60ff0aa3878}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Source\-Constraints@{get\-Source\-Constraints}}
\index{get\-Source\-Constraints@{get\-Source\-Constraints}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Source\-Constraints}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Interval} get\-Source\-Constraints (
\begin{DoxyParamCaption}
\item[{unsigned int}]{flags = {\ttfamily 0}}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a3c24695921b612a57c5ac60ff0aa3878}
\begin{DoxyReturn}{Returns}
The Interval into witch the source \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 \hyperlink{classKatabatic_1_1GCell}{G\-Cell}.
\end{DoxyReturn}
Implements \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.
\hypertarget{classKatabatic_1_1AutoVertical_aaa70ba865e312fb30f81fa7f973a0376}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Target\-Constraints@{get\-Target\-Constraints}}
\index{get\-Target\-Constraints@{get\-Target\-Constraints}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Target\-Constraints}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Interval} get\-Target\-Constraints (
\begin{DoxyParamCaption}
\item[{unsigned int}]{flags = {\ttfamily 0}}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_aaa70ba865e312fb30f81fa7f973a0376}
\begin{DoxyReturn}{Returns}
The Interval into witch the target \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 \hyperlink{classKatabatic_1_1GCell}{G\-Cell}.
\end{DoxyReturn}
Implements \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.
\hypertarget{classKatabatic_1_1AutoVertical_a09d03fbca9ab891c2f25bdae7f89a899}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-Direction@{get\-Direction}}
\index{get\-Direction@{get\-Direction}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-Direction}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int get\-Direction (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a09d03fbca9ab891c2f25bdae7f89a899}
{\bfseries Returns\-:} \hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217a1a9045673c5d3c30b067100f1440ae1b}{Katabatic\-::\-Kb\-Horizontal} or \hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217a284cad95203a27172838b09e396e3590}{Katabatic\-::\-Kb\-Vertical} according to the decorated segment.
Implements \hyperlink{classKatabatic_1_1AutoSegment_ae35b78590ed6aa546b626ef95f28c533}{Auto\-Segment}.
References Katabatic\-::\-Kb\-Vertical.
\hypertarget{classKatabatic_1_1AutoVertical_ab681dca7dc930e06cacc2de85bf99166}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!get\-G\-Cells@{get\-G\-Cells}}
\index{get\-G\-Cells@{get\-G\-Cells}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{get\-G\-Cells}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t get\-G\-Cells (
\begin{DoxyParamCaption}
\item[{vector$<$ {\bf G\-Cell} $\ast$ $>$ \&}]{gcells}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_ab681dca7dc930e06cacc2de85bf99166}
\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's size.
\end{DoxyReturn}
Implements \hyperlink{classKatabatic_1_1AutoSegment_ad9d24f97e55e2f538ed1c907bee99e81}{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().
\hypertarget{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::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{set\-Du\-Source}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Du\-Source (
\begin{DoxyParamCaption}
\item[{{\bf Db\-U\-::\-Unit}}]{du}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a756616a1967c5ad8efd08be96d18f25d}
Set the {\itshape uniform} {\ttfamily d\-U} from source anchor (d\-X for Horizontal, d\-Y for Vertical).
Implements \hyperlink{classKatabatic_1_1AutoSegment_aaf60d18ab6d951a34a3d06959ce2e76f}{Auto\-Segment}.
\hypertarget{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::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{set\-Du\-Target}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Du\-Target (
\begin{DoxyParamCaption}
\item[{{\bf Db\-U\-::\-Unit}}]{du}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a9df2ef68c1fbf4159cc837be5c699b53}
Set the {\itshape uniform} {\ttfamily d\-U} from target anchor (d\-X for Horizontal, d\-Y for Vertical).
Implements \hyperlink{classKatabatic_1_1AutoSegment_a246756d4c8b3e094a0a9d6de3c2109ff}{Auto\-Segment}.
\hypertarget{classKatabatic_1_1AutoVertical_a59058f4593049c583c5b3698ff81b299}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!update\-Orient@{update\-Orient}}
\index{update\-Orient@{update\-Orient}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{update\-Orient}]{\setlength{\rightskip}{0pt plus 5cm}void update\-Orient (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a59058f4593049c583c5b3698ff81b299}
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 \hyperlink{classKatabatic_1_1GCell}{G\-Cell}, which are already ordered.
Implements \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().
\hypertarget{classKatabatic_1_1AutoVertical_a9662a77c2ed8553d6a0312c5292060ad}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!update\-Positions@{update\-Positions}}
\index{update\-Positions@{update\-Positions}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{update\-Positions}]{\setlength{\rightskip}{0pt plus 5cm}void update\-Positions (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a9662a77c2ed8553d6a0312c5292060ad}
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's long axis.
Implements \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().
\hypertarget{classKatabatic_1_1AutoVertical_acfbdc94b1e84bd192087df53ead1f06f}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!check\-Positions@{check\-Positions}}
\index{check\-Positions@{check\-Positions}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{check\-Positions}]{\setlength{\rightskip}{0pt plus 5cm}bool check\-Positions (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_acfbdc94b1e84bd192087df53ead1f06f}
{\bfseries Returns\-:} {\bfseries true} if the relative positions of source \& target are coherent. (source $<$= target).
Implements \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().
\hypertarget{classKatabatic_1_1AutoVertical_a46576c7c5c5146f8fa53a821b0766994}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!check\-Constraints@{check\-Constraints}}
\index{check\-Constraints@{check\-Constraints}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{check\-Constraints}]{\setlength{\rightskip}{0pt plus 5cm}bool check\-Constraints (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a46576c7c5c5146f8fa53a821b0766994}
{\bfseries Returns\-:} {\bfseries true} if the constraint intervel is coherent (non-\/empty or punctual in the worst case).
Implements \hyperlink{classKatabatic_1_1AutoSegment_a3d5732fd10b4a05076981066a4674487}{Auto\-Segment}.
References Auto\-Segment\-::get\-Auto\-Source(), Auto\-Segment\-::get\-Auto\-Target(), and Interval\-::intersect().
\hypertarget{classKatabatic_1_1AutoVertical_a36c0eecad40d3559b5378caefec6a7e0}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!\-\_\-make\-Dogleg@{\-\_\-make\-Dogleg}}
\index{\-\_\-make\-Dogleg@{\-\_\-make\-Dogleg}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{\-\_\-make\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int \-\_\-make\-Dogleg (
\begin{DoxyParamCaption}
\item[{{\bf G\-Cell} $\ast$}]{dogleg\-G\-Cell, }
\item[{unsigned int}]{flags}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a36c0eecad40d3559b5378caefec6a7e0}
{\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\-:} \hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217af756099f1bbe259dd1bf22067dc40eac}{Katabatic\-::\-Kb\-Use\-Above\-Layer} if the dogleg is using the {\itshape above} layer (\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 \hyperlink{classKatabatic_1_1GCell}{G\-Cell}, it'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 \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 \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 \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().
\hypertarget{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::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{move\-U\-Left}]{\setlength{\rightskip}{0pt plus 5cm}bool move\-U\-Left (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a1fa2421b74bf0eb934b7002fd3da2321}
{\bfseries This function do not manage an aligned set. It applies on {\ttfamily this} segment only.}
Displace an Horizontal or Vertical segment to the \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 \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 \hyperlink{classKatabatic_1_1AutoContact}{Auto\-Contact} (source \& target) are changed of \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 \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().
\hypertarget{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::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{move\-U\-Right}]{\setlength{\rightskip}{0pt plus 5cm}bool move\-U\-Right (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_aa469e37853e31f8b1bc817518c896d62}
{\bfseries This function do not manage an aligned set. It applies on {\ttfamily this} segment only.}
Displace an Horizontal or Vertical segment to the \hyperlink{classKatabatic_1_1GCell}{G\-Cell} above (a.\-k.\-a. upper or superior). Rules for displacement\-:
\begin{DoxySeeAlso}{See Also}
\hyperlink{classKatabatic_1_1AutoSegment_af8ca7b17e952f4b599aeeb2f4e5be395}{Auto\-Segment\-::move\-U\-Left()} for a complete description.
\end{DoxySeeAlso}
Implements \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().
\hypertarget{classKatabatic_1_1AutoVertical_a3715b38135ca24745f610bebd3407c10}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!\-\_\-post\-Create@{\-\_\-post\-Create}}
\index{\-\_\-post\-Create@{\-\_\-post\-Create}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{\-\_\-post\-Create}]{\setlength{\rightskip}{0pt plus 5cm}void \-\_\-post\-Create (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a3715b38135ca24745f610bebd3407c10}
In addition to \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's connected.
Reimplemented from \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().
\hypertarget{classKatabatic_1_1AutoVertical_a7c13d9795eafd477994961f8a0d962d0}{\index{Katabatic\-::\-Auto\-Vertical@{Katabatic\-::\-Auto\-Vertical}!\-\_\-pre\-Destroy@{\-\_\-pre\-Destroy}}
\index{\-\_\-pre\-Destroy@{\-\_\-pre\-Destroy}!Katabatic::AutoVertical@{Katabatic\-::\-Auto\-Vertical}}
\subsubsection[{\-\_\-pre\-Destroy}]{\setlength{\rightskip}{0pt plus 5cm}void \-\_\-pre\-Destroy (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}}\label{classKatabatic_1_1AutoVertical_a7c13d9795eafd477994961f8a0d962d0}
Perform operations that must be done before the actual destructor is called. Merely whidrawn the \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} from the lookup/\-Session mechanism.
Reimplemented from \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}