162 lines
10 KiB
TeX
162 lines
10 KiB
TeX
\hypertarget{classKatabatic_1_1AutoContactHTee}{\section{Auto\-Contact\-H\-Tee Class Reference}
|
|
\label{classKatabatic_1_1AutoContactHTee}\index{Auto\-Contact\-H\-Tee@{Auto\-Contact\-H\-Tee}}
|
|
}
|
|
|
|
|
|
\hyperlink{classKatabatic_1_1AutoContact}{Auto\-Contact} H-\/\-Tee (two H, one V)
|
|
|
|
|
|
|
|
|
|
Inheritance diagram for Auto\-Contact\-H\-Tee\-:\nopagebreak
|
|
\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
|
|
virtual \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} $\ast$ \hyperlink{classKatabatic_1_1AutoContactHTee_aaf175a76573a5e3505b24fb2a8b0414f}{get\-Opposite} (const \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} $\ast$) const
|
|
\item
|
|
virtual \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} $\ast$ \hyperlink{classKatabatic_1_1AutoContactHTee_a68e80545d3d25400be8f08d059ba21f5}{get\-Perpandicular} (const \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} $\ast$) const
|
|
\item
|
|
virtual \hyperlink{classKatabatic_1_1AutoSegment}{Auto\-Segment} $\ast$ \hyperlink{classKatabatic_1_1AutoContactHTee_a2f7d64767002f3bf2bbdf2f8f0e80105}{get\-Segment} (unsigned int) const
|
|
\item
|
|
virtual void \hyperlink{classKatabatic_1_1AutoContactHTee_a3e218f6934c51380fb15d0e2bd380071}{update\-Geometry} ()
|
|
\item
|
|
virtual void \hyperlink{classKatabatic_1_1AutoContactHTee_af5bf1f5e71204ef84346e4e036175431}{update\-Topology} ()
|
|
\end{DoxyCompactItemize}
|
|
\subsection*{Static Public Member Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
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$)
|
|
\end{DoxyCompactItemize}
|
|
\subsection*{Additional Inherited Members}
|
|
|
|
|
|
\subsection{Detailed Description}
|
|
\hyperlink{classKatabatic_1_1AutoContact}{Auto\-Contact} H-\/\-Tee (two H, one V)
|
|
|
|
\hyperlink{classKatabatic_1_1AutoContact}{Auto\-Contact} to build an horizontal tee (two H, one V).
|
|
|
|
\subsection{Member Function Documentation}
|
|
\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}
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em gcell} & The \hyperlink{classKatabatic_1_1GCell}{G\-Cell} into which create the \hyperlink{classKatabatic_1_1AutoContact}{Auto\-Contact}. \\
|
|
\hline
|
|
{\em net} & The Net to which this \hyperlink{classKatabatic_1_1AutoContact}{Auto\-Contact} belongs. \\
|
|
\hline
|
|
{\em layer} & The Layer of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\-Contact}. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
\begin{DoxyReturn}{Returns}
|
|
The created \hyperlink{classKatabatic_1_1AutoContactHTee}{Auto\-Contact\-H\-Tee}.
|
|
\end{DoxyReturn}
|
|
Create a new \hyperlink{classKatabatic_1_1AutoContactHTee}{Auto\-Contact\-H\-Tee}.
|
|
|
|
References Katabatic\-::\-Cnt\-In\-Creation\-Stage, and Contact\-::create().
|
|
|
|
|
|
|
|
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().
|
|
|
|
\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.
|
|
|
|
Implements \hyperlink{classKatabatic_1_1AutoContact_a48ab1d3bdf85712e4784ef83ef136939}{Auto\-Contact}.
|
|
|
|
\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.
|
|
|
|
Implements \hyperlink{classKatabatic_1_1AutoContact_a994371005874f946cc0ac78005d38423}{Auto\-Contact}.
|
|
|
|
\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\-:
|
|
\begin{DoxyItemize}
|
|
\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}).
|
|
\end{DoxyItemize}
|
|
|
|
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}.
|
|
|
|
Implements \hyperlink{classKatabatic_1_1AutoContact_a50531ded68cc5206fe104b8d8bf3bd87}{Auto\-Contact}.
|
|
|
|
\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.
|
|
|
|
Implements \hyperlink{classKatabatic_1_1AutoContact_af6a2454547eeb7f5a519970dcb467e90}{Auto\-Contact}.
|
|
|
|
|
|
|
|
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().
|
|
|
|
\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).
|
|
|
|
For any configuration, the connexity can be restored by making only one dogleg.
|
|
|
|
We distinguish two kind of layer changes\-:
|
|
\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}
|
|
|
|
|
|
|
|
Implements \hyperlink{classKatabatic_1_1AutoContact_a690764ddc997fe9766a79c4b8e0c3e2f}{Auto\-Contact}.
|
|
|
|
|
|
|
|
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().
|
|
|
|
|
|
|
|
The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
|
|
\item
|
|
Auto\-Contact\-H\-Tee.\-h\item
|
|
Auto\-Contact\-H\-Tee.\-cpp\item
|
|
Auto\-Contact\-H\-Tee.\-dox\end{DoxyCompactItemize}
|