coriolis/katabatic/doc/latex/classKatabatic_1_1AutoConta...

162 lines
10 KiB
TeX
Raw Normal View History

\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}