2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoVertical} { \section { Auto\- Vertical Class Reference}
\label { classKatabatic_ 1_ 1AutoVertical} \index { Auto\- Vertical@{ Auto\- Vertical} }
}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Concrete Vertical \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Inheritance diagram for Auto\- Vertical\- :\nopagebreak
2018-06-06 11:42:26 -05:00
\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
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ab0c6fe24404afe19268a7b796fa74bec} { \- \_ \- can\- Slacken} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoVertical_ aa9e85f38a842d1966eb72afccb446676} { can\- Move\- U\- Left} (float reserve=0.\- 0) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a7559a856712400a9325665842e0bcd64} { can\- Move\- U\- Right} (float reserve=0.\- 0) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9e651c17b47f82166a02865c9296a2df} { base} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoVertical_ adcd751c3ec393fabdef5ede0ffff6f2d} { base} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Vertical} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ab6a809b6f3ef3cf5385fa35580e31e7a} { get\- Vertical} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a3932d5ce9094ead510e4e33bd4e78e1a} { get\- Source\- U} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a8e5f2a51f56c6bdb74024ac77c08a22a} { get\- Target\- U} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a44998a5f0d71597006fe4f3ffed8e3d1} { get\- Du\- Source} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a4f505a59109fc6087696f483ccc7f9dc} { get\- Du\- Target} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Interval} \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9409a4b64c21fa8b1517149728f0a4c1} { get\- Span\- U} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoVertical_ aff207f4cc3c3682ed57369fdfe157d2d} { get\- Constraints} ({ \bf Db\- U\- ::\- Unit} \& min, { \bf Db\- U\- ::\- Unit} \& max) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Interval} \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a3c24695921b612a57c5ac60ff0aa3878} { get\- Source\- Constraints} (unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Interval} \hyperlink { classKatabatic_ 1_ 1AutoVertical_ aaa70ba865e312fb30f81fa7f973a0376} { get\- Target\- Constraints} (unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual unsigned int \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a09d03fbca9ab891c2f25bdae7f89a899} { get\- Direction} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual size\- \_ \- t \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ab681dca7dc930e06cacc2de85bf99166} { get\- G\- Cells} (vector$ < $ \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} $ \ast $ $ > $ \& ) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a756616a1967c5ad8efd08be96d18f25d} { set\- Du\- Source} ({ \bf Db\- U\- ::\- Unit} )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9df2ef68c1fbf4159cc837be5c699b53} { set\- Du\- Target} ({ \bf Db\- U\- ::\- Unit} )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a59058f4593049c583c5b3698ff81b299} { update\- Orient} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9662a77c2ed8553d6a0312c5292060ad} { update\- Positions} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoVertical_ acfbdc94b1e84bd192087df53ead1f06f} { check\- Positions} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a46576c7c5c5146f8fa53a821b0766994} { check\- Constraints} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual unsigned int \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a36c0eecad40d3559b5378caefec6a7e0} { \- \_ \- make\- Dogleg} (\hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} $ \ast $ , unsigned int flags)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a1fa2421b74bf0eb934b7002fd3da2321} { move\- U\- Left} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoVertical_ aa469e37853e31f8b1bc817518c896d62} { move\- U\- Right} ()
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Protected Member Functions}
\begin { DoxyCompactItemize}
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a3715b38135ca24745f610bebd3407c10} { \- \_ \- post\- Create} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a7c13d9795eafd477994961f8a0d962d0} { \- \_ \- pre\- Destroy} ()
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Additional Inherited Members}
\subsection { Detailed Description}
2018-08-19 06:27:09 -05:00
Concrete Vertical \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
\subsection { Member Function Documentation}
2018-08-19 06:27:09 -05:00
\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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a676fcb7ece71d129b7a4d87a3f2e07aa} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
{ \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\- :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -05:00
\item The segment mustn't be on the leftmost \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} (obvious...).
2018-06-06 11:42:26 -05:00
\item The segment must be global.
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aad55626c9d793a0b08bcff5be2a5ad0c} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
{ \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\- :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -05:00
\item The segment mustn't be on the leftmost \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} (obvious...).
2018-06-06 11:42:26 -05:00
\item The segment must be global.
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a096deb8a143f098eac2bff9ab9c52243} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ade416d0483aefe986988fa89a7cf6fcf} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a53877ff5ef48eb0030c2581a6eeb3c09} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Reimplemented from \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab6a809b6f3ef3cf5385fa35580e31e7a} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Segment\- ::get\- Source\- Y().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a828fef2716cc9c370d6d170bb96556ec} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Segment\- ::get\- Target\- Y().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab4881df67bd8f036d0199ed6540fe774} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Vertical\- ::get\- Dy\- Source().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0644d656eedc71dba2fb3c6c0d83ed3f} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Vertical\- ::get\- Dy\- Target().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a248eb2fbb06e3286650b28567d495f0b} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Segment\- ::get\- Source\- Y(), and Segment\- ::get\- Target\- Y().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7c2fed22b081f8d3b7a69abb457153ea} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
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} .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab7685e309e1d910db3e8237f8a898c35} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Auto\- Source(), Box\- ::get\- X\- Max(), Box\- ::get\- X\- Min(), and Katabatic\- ::\- Kb\- Native\- Constraints.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
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} .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a9c1b8b3cd57fb7b0bf60c7a6148237c2} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Auto\- Target(), Box\- ::get\- X\- Max(), Box\- ::get\- X\- Min(), and Katabatic\- ::\- Kb\- Native\- Constraints.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae35b78590ed6aa546b626ef95f28c533} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Kb\- Vertical.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-08-19 06:27:09 -05:00
{ \em gcells} & A vector that will be filled by all the G\- Cells that the segment overlap. In increasing order, from source to target. \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
The vector's size.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ad9d24f97e55e2f538ed1c907bee99e81} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aaf60d18ab6d951a34a3d06959ce2e76f} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a246756d4c8b3e094a0a9d6de3c2109ff} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a102e0f4bbb0386e41be214d15a9e4549} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6d95f4de39c13611786c95ddc7b8942e} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Session\- ::get\- Extension\- Cap(), Auto\- Segment\- ::get\- Layer(), Segment\- ::get\- Source\- Y(), and Segment\- ::get\- Target\- Y().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af026a81002bd907f1ccd4a4784aaa1db} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Session\- ::get\- Extension\- Cap(), Auto\- Segment\- ::get\- Layer(), Segment\- ::get\- Source\- Y(), Segment\- ::get\- Target\- Y(), and Db\- U\- ::get\- Value\- String().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3d5732fd10b4a05076981066a4674487} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Auto\- Source(), Auto\- Segment\- ::get\- Auto\- Target(), and Interval\- ::intersect().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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}
2018-06-06 11:42:26 -05:00
{ \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.
2018-08-19 06:27:09 -05:00
{ \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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Break the current segment in two (a.\- k.\- a. making a dogleg).
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -05:00
\item The segment is broken inside { \ttfamily dogleg\- G\- Cell} .
2018-06-06 11:42:26 -05:00
\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.
2018-08-19 06:27:09 -05:00
\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} .
2018-06-06 11:42:26 -05:00
\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.
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a37a14b40295ccb50cd5001891385807b} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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}
2018-06-06 11:42:26 -05:00
{ \bfseries This function do not manage an aligned set. It applies on { \ttfamily this} segment only.}
2018-08-19 06:27:09 -05:00
Displace an Horizontal or Vertical segment to the \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} below (a.\- k.\- a. lower or inferior). Rules for displacement\- :
2018-06-06 11:42:26 -05:00
\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).
2018-08-19 06:27:09 -05:00
\item And, of course, the segment must not already by on the bottomost \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} ...
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-08-19 06:27:09 -05:00
The displacement take care of\- :
2018-06-06 11:42:26 -05:00
\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.
2018-08-19 06:27:09 -05:00
\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.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-08-19 06:27:09 -05:00
{ \bfseries Returns\- :} { \bfseries true} if the move has succeeded.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af8ca7b17e952f4b599aeeb2f4e5be395} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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}
2018-06-06 11:42:26 -05:00
{ \bfseries This function do not manage an aligned set. It applies on { \ttfamily this} segment only.}
2018-08-19 06:27:09 -05:00
Displace an Horizontal or Vertical segment to the \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} above (a.\- k.\- a. upper or superior). Rules for displacement\- :
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\begin { DoxySeeAlso} { See Also}
\hyperlink { classKatabatic_ 1_ 1AutoSegment_ af8ca7b17e952f4b599aeeb2f4e5be395} { Auto\- Segment\- ::move\- U\- Left()} for a complete description.
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ad7fd54ca229fcf5ccd99f87b019b9cbc} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
If the segment is anchored directly on a terminal, adjust the axis so it's connected.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Reimplemented from \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3715b38135ca24745f610bebd3407c10} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Reimplemented from \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7c13d9795eafd477994961f8a0d962d0} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
The documentation for this class was generated from the following files\- :\begin { DoxyCompactItemize}
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
Auto\- Vertical.\- h\item
Auto\- Vertical.\- cpp\item
Auto\- Vertical.\- dox\end { DoxyCompactItemize}