2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoContactHTee} { \section { Auto\- Contact\- H\- Tee Class Reference}
\label { classKatabatic_ 1_ 1AutoContactHTee} \index { Auto\- Contact\- H\- Tee@{ Auto\- Contact\- H\- Tee} }
}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} H-\/ \- Tee (two H, one V)
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Inheritance diagram for Auto\- Contact\- H\- Tee\- :\nopagebreak
2018-06-06 11:42:26 -05:00
\begin { figure} [H]
\begin { center}
\leavevmode
\includegraphics [width=174pt] { classKatabatic_ 1_ 1AutoContactHTee_ _ inherit_ _ graph}
\end { center}
\end { figure}
\subsection * { Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-08-19 06:27:09 -05:00
virtual \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoContactHTee_ aaf175a76573a5e3505b24fb2a8b0414f} { get\- Opposite} (const \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ ) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoContactHTee_ a68e80545d3d25400be8f08d059ba21f5} { get\- Perpandicular} (const \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ ) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoContactHTee_ a2f7d64767002f3bf2bbdf2f8f0e80105} { get\- Segment} (unsigned int) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoContactHTee_ a3e218f6934c51380fb15d0e2bd380071} { update\- Geometry} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoContactHTee_ af5bf1f5e71204ef84346e4e036175431} { update\- Topology} ()
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Static Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-08-19 06:27:09 -05:00
static \hyperlink { classKatabatic_ 1_ 1AutoContactHTee} { Auto\- Contact\- H\- Tee} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoContactHTee_ a9b42579ac2487765c83e31f7ca3ee562} { create} (\hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} $ \ast $ , { \bf Net} $ \ast $ , const { \bf Layer} $ \ast $ )
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
\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} H-\/ \- Tee (two H, one V)
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} to build an horizontal tee (two H, one V).
2018-06-06 11:42:26 -05:00
\subsection { Member Function Documentation}
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoContactHTee_ a9b42579ac2487765c83e31f7ca3ee562} { \index { Katabatic\- ::\- Auto\- Contact\- H\- Tee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} !create@{ create} }
\index { create@{ create} !Katabatic::AutoContactHTee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} }
\subsubsection [{create}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Contact\- H\- Tee} $ \ast $ create (
\begin { DoxyParamCaption}
\item [{{\bf G\-Cell} $\ast$}] { gcell, }
\item [{{\bf Net} $\ast$}] { net, }
\item [{const {\bf Layer} $\ast$}] { layer}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [static]} } } \label { classKatabatic_ 1_ 1AutoContactHTee_ a9b42579ac2487765c83e31f7ca3ee562}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-08-19 06:27:09 -05:00
{ \em gcell} & The \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} into which create the \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} . \\
2018-06-06 11:42:26 -05:00
\hline
2018-08-19 06:27:09 -05:00
{ \em net} & The Net to which this \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} belongs. \\
2018-06-06 11:42:26 -05:00
\hline
2018-08-19 06:27:09 -05:00
{ \em layer} & The Layer of the \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} . \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
The created \hyperlink { classKatabatic_ 1_ 1AutoContactHTee} { Auto\- Contact\- H\- Tee} .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Create a new \hyperlink { classKatabatic_ 1_ 1AutoContactHTee} { Auto\- Contact\- H\- Tee} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Cnt\- In\- Creation\- Stage, and Contact\- ::create().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by G\- Cell\- Topology\- ::\- \_ \- do\- \_ \- x\- G(), G\- Cell\- Topology\- ::\- \_ \- do\- \_ \- x\- G\- \_ \- 1\- M1\- \_ \- 1\- M2(), and G\- Cell\- Topology\- ::\- \_ \- do\- \_ \- x\- G\- \_ \- x\- M1\- \_ \- x\- M3().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoContactHTee_ aaf175a76573a5e3505b24fb2a8b0414f} { \index { Katabatic\- ::\- Auto\- Contact\- H\- Tee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} !get\- Opposite@{ get\- Opposite} }
\index { get\- Opposite@{ get\- Opposite} !Katabatic::AutoContactHTee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} }
\subsubsection [{get\-Opposite}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ get\- Opposite (
\begin { DoxyParamCaption}
\item [{const {\bf Auto\-Segment} $\ast$}] { reference}
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoContactHTee_ aaf175a76573a5e3505b24fb2a8b0414f}
{ \bfseries Returns\- :} The other \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} the { \itshape same} direction as { \ttfamily reference} , this is only meaningful on \hyperlink { classKatabatic_ 1_ 1AutoContactHTee} { Auto\- Contact\- H\- Tee} or \hyperlink { classKatabatic_ 1_ 1AutoContactVTee} { Auto\- Contact\- V\- Tee} . If there is no opposite, { \ttfamily N\- U\- L\- L} is returned.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoContact_ a48ab1d3bdf85712e4784ef83ef136939} { Auto\- Contact} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoContactHTee_ a68e80545d3d25400be8f08d059ba21f5} { \index { Katabatic\- ::\- Auto\- Contact\- H\- Tee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} !get\- Perpandicular@{ get\- Perpandicular} }
\index { get\- Perpandicular@{ get\- Perpandicular} !Katabatic::AutoContactHTee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} }
\subsubsection [{get\-Perpandicular}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ get\- Perpandicular (
\begin { DoxyParamCaption}
\item [{const {\bf Auto\-Segment} $\ast$}] { reference}
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoContactHTee_ a68e80545d3d25400be8f08d059ba21f5}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} in the { \itshape perpandicular} direction to { \ttfamily reference} , this is only meaningful on Auto\- Contac\- Turn. It there is no unique perpandicular, { \ttfamily N\- U\- L\- L} is returned.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoContact_ a994371005874f946cc0ac78005d38423} { Auto\- Contact} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoContactHTee_ a2f7d64767002f3bf2bbdf2f8f0e80105} { \index { Katabatic\- ::\- Auto\- Contact\- H\- Tee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} !get\- Segment@{ get\- Segment} }
\index { get\- Segment@{ get\- Segment} !Katabatic::AutoContactHTee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} }
\subsubsection [{get\-Segment}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ get\- Segment (
\begin { DoxyParamCaption}
\item [{unsigned int}] { index}
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoContactHTee_ a2f7d64767002f3bf2bbdf2f8f0e80105}
{ \bfseries Returns\- :} The nth anchored \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} . The index is significant\- :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -05:00
\item { \bfseries 0} \- : first horizontal ({ \bfseries h1} ).
\item { \bfseries 1} \- : second horizontal ({ \bfseries h2} ).
\item { \bfseries 2} \- : first vertical ({ \bfseries b1} ).
\item { \bfseries 3} \- : second vertical ({ \bfseries b2} ).
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-08-19 06:27:09 -05:00
Not all the indexes are filled for every \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} . For example { \ttfamily Turn} have { \bfseries h1} and { \bfseries b1} , and { \ttfamily H\- Tee} have { \bfseries h1} , { \bfseries h2} and { \bfseries v1} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoContact_ a50531ded68cc5206fe104b8d8bf3bd87} { Auto\- Contact} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoContactHTee_ a3e218f6934c51380fb15d0e2bd380071} { \index { Katabatic\- ::\- Auto\- Contact\- H\- Tee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} !update\- Geometry@{ update\- Geometry} }
\index { update\- Geometry@{ update\- Geometry} !Katabatic::AutoContactHTee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} }
\subsubsection [{update\-Geometry}] { \setlength { \rightskip } { 0pt plus 5cm} void update\- Geometry (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoContactHTee_ a3e218f6934c51380fb15d0e2bd380071}
Compute the new position of the \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} based on the \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} positions. The \hyperlink { classKatabatic_ 1_ 1Session} { Session} mechanism ensure that all \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} are set into their final positions before calling this updator.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoContact_ af6a2454547eeb7f5a519970dcb467e90} { Auto\- Contact} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Contact\- ::base(), Debug\- Session\- ::close(), Katabatic\- ::\- Cnt\- Invalidated, Auto\- Contact\- ::get\- Net(), Auto\- Contact\- ::get\- X(), Auto\- Contact\- ::get\- Y(), Auto\- Contact\- ::has\- Bad\- Topology(), Go\- ::invalidate(), Auto\- Contact\- ::is\- Invalidated\- Cache(), Debug\- Session\- ::open(), Auto\- Contact\- ::set\- X(), and Auto\- Contact\- ::set\- Y().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoContactHTee_ af5bf1f5e71204ef84346e4e036175431} { \index { Katabatic\- ::\- Auto\- Contact\- H\- Tee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} !update\- Topology@{ update\- Topology} }
\index { update\- Topology@{ update\- Topology} !Katabatic::AutoContactHTee@{ Katabatic\- ::\- Auto\- Contact\- H\- Tee} }
\subsubsection [{update\-Topology}] { \setlength { \rightskip } { 0pt plus 5cm} void update\- Topology (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoContactHTee_ af5bf1f5e71204ef84346e4e036175431}
Restore the topology (i.\- e. connexity) of the contact after any number of connected segments has changed layer (at least one, up to three).
2018-06-06 11:42:26 -05:00
For any configuration, the connexity can be restored by making only one dogleg.
2018-08-19 06:27:09 -05:00
We distinguish two kind of layer changes\- :
2018-06-06 11:42:26 -05:00
\begin { DoxyEnumerate}
\item The two horizontals ({ \ttfamily h1} and { \ttfamily h2} ) are still on the same layer (either they both moved or the vertical only has moved, see figures 2 \& 4). In that case, the dogleg is made on the vertical.
\item The two horizontals no longer are on the same layer (figures 1 \& 3). In that case, the dogleg is made on the horizontal which is at the greater distance (in a layer sense) from the vertical.
\end { DoxyEnumerate}
2018-08-19 06:27:09 -05:00
Implements \hyperlink { classKatabatic_ 1_ 1AutoContact_ a690764ddc997fe9766a79c4b8e0c3e2f} { Auto\- Contact} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Debug\- Session\- ::close(), Katabatic\- ::\- Cnt\- Bad\- Topology, Routing\- Gauge\- ::get\- Contact\- Layer(), Auto\- Contact\- ::get\- Layer(), Routing\- Gauge\- ::get\- Layer\- Depth(), Auto\- Contact\- ::get\- Net(), Session\- ::get\- Routing\- Gauge(), Routing\- Gauge\- ::get\- Routing\- Layer(), Auto\- Contact\- ::has\- Bad\- Topology(), Auto\- Contact\- ::is\- Invalidated\- Cache(), Debug\- Session\- ::open(), Auto\- Contact\- ::set\- Layer(), and Auto\- Contact\- ::show\- Topology\- Error().
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\- Contact\- H\- Tee.\- h\item
Auto\- Contact\- H\- Tee.\- cpp\item
Auto\- Contact\- H\- Tee.\- dox\end { DoxyCompactItemize}