2018-10-18 11:10:01 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoContactTerminal} { } \section { Auto\+ Contact\+ Terminal Class Reference}
\label { classKatabatic_ 1_ 1AutoContactTerminal} \index { Auto\+ Contact\+ Terminal@{ Auto\+ Contact\+ Terminal} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } Terminal (S/T is a Terminal)
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Inheritance diagram for Auto\+ Contact\+ Terminal\+ :\nopagebreak
2018-06-06 11:42:26 -05:00
\begin { figure} [H]
\begin { center}
\leavevmode
\includegraphics [width=188pt] { classKatabatic_ 1_ 1AutoContactTerminal_ _ inherit_ _ graph}
\end { center}
\end { figure}
\subsection * { Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Box} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal_ a00ed934305dd186a284b7a13b5798cb6} { get\+ Native\+ Constraint\+ Box} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal_ a99fa8a78e97a29f2fb5730eaaa59acfc} { get\+ Segment} } (unsigned int) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal_ ac9c9b04e245a1109e297510a3968b7ac} { get\+ Opposite} } (const \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ ) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal_ ad99dd549214e43b6509fd8e3aefae919} { get\+ Perpandicular} } (const \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ ) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal_ a3e218f6934c51380fb15d0e2bd380071} { update\+ Geometry} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal_ af5bf1f5e71204ef84346e4e036175431} { update\+ Topology} } ()
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Static Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
static \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal} { Auto\+ Contact\+ Terminal} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal_ a0d440e51525b09acc843f1d345850487} { create} } (\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ gcell, \textbf { Component} $ \ast $ anchor, const \textbf { Layer} $ \ast $ layer, \textbf { Point} point, \textbf { Db\+ U\+ ::\+ Unit} width, \textbf { Db\+ U\+ ::\+ Unit} height)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal} { Auto\+ Contact\+ Terminal} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal_ a60a625bca2cdfebcdcc7826ab781d1bb} { create} } (\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ gcell, \textbf { Component} $ \ast $ anchor, const \textbf { Layer} $ \ast $ layer, const \textbf { Db\+ U\+ ::\+ Unit} dx, const \textbf { Db\+ U\+ ::\+ Unit} dy, const \textbf { Db\+ U\+ ::\+ Unit} width, const \textbf { Db\+ U\+ ::\+ Unit} height)
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Additional Inherited Members}
\subsection { Detailed Description}
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } Terminal (S/T is a Terminal)
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } that are directly attached by either source or target or both to a terminal.
2018-06-06 11:42:26 -05:00
\subsection { Member Function Documentation}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoContactTerminal_ a0d440e51525b09acc843f1d345850487} \label { classKatabatic_ 1_ 1AutoContactTerminal_ a0d440e51525b09acc843f1d345850487} }
\index { Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} !create@{ create} }
\index { create@{ create} !Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} }
\subsubsection { \texorpdfstring { create()} { create()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal} { Auto\+ Contact\+ Terminal} } $ \ast $ create (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} $\ast$}] { gcell, } \item [{\textbf{ Component} $\ast$}] { rp, } \item [{const \textbf{ Layer} $\ast$}] { layer, } \item [{\textbf{ Point}}] { point, } \item [{\textbf{ Db\+U\+::\+Unit}}] { width, } \item [{\textbf{ Db\+U\+::\+Unit}}] { height } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-10-18 11:10:01 -05:00
{ \em gcell} & The \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } into which create the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em rp} & The Routing\+ Pad on which to anchor the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em layer} & The Layer of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
{ \em point} & The absolute position. \\
\hline
2018-10-18 11:10:01 -05:00
{ \em width} & The width of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em height} & The height of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The created \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Create a new \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal} { Auto\+ Contact\+ Terminal} } anchored on { \ttfamily rp} . { \ttfamily point} gives the { \itshape absolute} position.
References Hook\+ ::detach(), and Component\+ ::get\+ Body\+ Hook().
2018-08-19 06:27:09 -05:00
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Access\+ Pad(), and G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Auto\+ Contacts().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoContactTerminal_ a60a625bca2cdfebcdcc7826ab781d1bb} \label { classKatabatic_ 1_ 1AutoContactTerminal_ a60a625bca2cdfebcdcc7826ab781d1bb} }
\index { Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} !create@{ create} }
\index { create@{ create} !Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} }
\subsubsection { \texorpdfstring { create()} { create()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal} { Auto\+ Contact\+ Terminal} } $ \ast $ create (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} $\ast$}] { gcell, } \item [{\textbf{ Component} $\ast$}] { rp, } \item [{const \textbf{ Layer} $\ast$}] { layer, } \item [{const \textbf{ Db\+U\+::\+Unit}}] { x, } \item [{const \textbf{ Db\+U\+::\+Unit}}] { y, } \item [{const \textbf{ Db\+U\+::\+Unit}}] { width, } \item [{const \textbf{ Db\+U\+::\+Unit}}] { height } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-10-18 11:10:01 -05:00
{ \em gcell} & The \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } into which create the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em rp} & The Component on which to anchor the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em layer} & The Layer of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
{ \em x} & The absolute X position. \\
\hline
{ \em y} & The absolute Y position. \\
\hline
2018-10-18 11:10:01 -05:00
{ \em width} & The width of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em height} & The height of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The created \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Create a new \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal} { Auto\+ Contact\+ Terminal} } anchored on { \ttfamily rp} . { \ttfamily (x,y)} gives the { \itshape absolute} position.
The anchor component { \ttfamily rp} is most often a \textbf { Hurricane\+ ::\+ Routing\+ Pad} (occurrencing a \textbf { Hurricane\+ ::\+ Segment} ) or directly a \textbf { Hurricane\+ ::\+ Segment} , in case of Routing\+ Pad layer promotion.
References Katabatic\+ ::\+ Cnt\+ In\+ Creation\+ Stage, Contact\+ ::create(), Component\+ ::get\+ Position(), and Db\+ U\+ ::get\+ Value\+ String().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoContactTerminal_ a00ed934305dd186a284b7a13b5798cb6} \label { classKatabatic_ 1_ 1AutoContactTerminal_ a00ed934305dd186a284b7a13b5798cb6} }
\index { Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} !get\+ Native\+ Constraint\+ Box@{ get\+ Native\+ Constraint\+ Box} }
\index { get\+ Native\+ Constraint\+ Box@{ get\+ Native\+ Constraint\+ Box} !Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} }
\subsubsection { \texorpdfstring { get\+ Native\+ Constraint\+ Box()} { getNativeConstraintBox()} }
{ \footnotesize \ttfamily \textbf { Box} get\+ Native\+ Constraint\+ Box (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The native constraint box (that is, whithout any user constraints applied). For \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTerminal} { Auto\+ Contact\+ Terminal} } , this is the Box of the supporting external component, and for all others the bounding box of the owning \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Reimplemented from \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact_ a00ed934305dd186a284b7a13b5798cb6} { Auto\+ Contact} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Contact\+ ::get\+ Anchor(), G\+ Cell\+ ::get\+ Bounding\+ Box(), Occurrence\+ ::get\+ Entity(), Routing\+ Pad\+ ::get\+ Occurrence(), Transformation\+ ::get\+ Orientation(), Occurrence\+ ::get\+ Path(), Component\+ ::get\+ Position(), Routing\+ Pad\+ ::get\+ Source\+ Position(), Segment\+ ::get\+ Source\+ Position(), Routing\+ Pad\+ ::get\+ Target\+ Position(), Segment\+ ::get\+ Target\+ Position(), Path\+ ::get\+ Transformation(), and Db\+ U\+ ::get\+ Value\+ String().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoContactTerminal_ a99fa8a78e97a29f2fb5730eaaa59acfc} \label { classKatabatic_ 1_ 1AutoContactTerminal_ a99fa8a78e97a29f2fb5730eaaa59acfc} }
\index { Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} !get\+ Segment@{ get\+ Segment} }
\index { get\+ Segment@{ get\+ Segment} !Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} }
\subsubsection { \texorpdfstring { get\+ Segment()} { getSegment()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ get\+ Segment (\begin { DoxyParamCaption} \item [{unsigned int}] { index } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The nth anchored \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } . The index is significant\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -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-10-18 11:10:01 -05:00
Not all the indexes are filled for every \mbox { \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 \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact_ a50531ded68cc5206fe104b8d8bf3bd87} { Auto\+ Contact} } .
References Auto\+ Segment\+ ::is\+ Horizontal(), and Auto\+ Segment\+ ::is\+ Vertical().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoContactTerminal_ ac9c9b04e245a1109e297510a3968b7ac} \label { classKatabatic_ 1_ 1AutoContactTerminal_ ac9c9b04e245a1109e297510a3968b7ac} }
\index { Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} !get\+ Opposite@{ get\+ Opposite} }
\index { get\+ Opposite@{ get\+ Opposite} !Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} }
\subsubsection { \texorpdfstring { get\+ Opposite()} { getOpposite()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ get\+ Opposite (\begin { DoxyParamCaption} \item [{const \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { reference } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The other \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } the { \itshape same} direction as { \ttfamily reference} , this is only meaningful on \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactHTee} { Auto\+ Contact\+ H\+ Tee} } or \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactVTee} { Auto\+ Contact\+ V\+ Tee} } . If there is no opposite, { \ttfamily N\+ U\+ LL} is returned.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implements \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact_ a48ab1d3bdf85712e4784ef83ef136939} { Auto\+ Contact} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoContactTerminal_ ad99dd549214e43b6509fd8e3aefae919} \label { classKatabatic_ 1_ 1AutoContactTerminal_ ad99dd549214e43b6509fd8e3aefae919} }
\index { Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} !get\+ Perpandicular@{ get\+ Perpandicular} }
\index { get\+ Perpandicular@{ get\+ Perpandicular} !Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} }
\subsubsection { \texorpdfstring { get\+ Perpandicular()} { getPerpandicular()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ get\+ Perpandicular (\begin { DoxyParamCaption} \item [{const \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$}] { reference } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The \mbox { \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\+ LL} is returned.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implements \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact_ a994371005874f946cc0ac78005d38423} { Auto\+ Contact} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoContactTerminal_ a3e218f6934c51380fb15d0e2bd380071} \label { classKatabatic_ 1_ 1AutoContactTerminal_ a3e218f6934c51380fb15d0e2bd380071} }
\index { Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} !update\+ Geometry@{ update\+ Geometry} }
\index { update\+ Geometry@{ update\+ Geometry} !Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} }
\subsubsection { \texorpdfstring { update\+ Geometry()} { updateGeometry()} }
{ \footnotesize \ttfamily void update\+ Geometry (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Compute the new position of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } based on the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } positions. The \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } mechanism ensure that all \mbox { \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-10-18 11:10:01 -05:00
Implements \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact_ af6a2454547eeb7f5a519970dcb467e90} { Auto\+ Contact} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Contact\+ ::base(), Debug\+ Session\+ ::close(), Katabatic\+ ::\+ Cnt\+ Invalidated, Interval\+ ::contains(), Auto\+ Contact\+ ::get\+ Net(), Auto\+ Contact\+ ::get\+ U\+ Constraints(), Db\+ U\+ ::get\+ Value\+ String(), Auto\+ Segment\+ ::get\+ X(), Auto\+ Segment\+ ::get\+ Y(), Auto\+ Contact\+ ::has\+ Bad\+ Topology(), Go\+ ::invalidate(), Auto\+ Segment\+ ::is\+ Created(), Auto\+ Segment\+ ::is\+ Horizontal(), Auto\+ Contact\+ ::is\+ Invalidated\+ Cache(), Katabatic\+ ::\+ Kb\+ Horizontal, Katabatic\+ ::\+ Kb\+ Vertical, Debug\+ Session\+ ::open(), Auto\+ Contact\+ ::set\+ X(), Auto\+ Contact\+ ::set\+ Y(), and Auto\+ Contact\+ ::show\+ Topology\+ Error().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoContactTerminal_ af5bf1f5e71204ef84346e4e036175431} \label { classKatabatic_ 1_ 1AutoContactTerminal_ af5bf1f5e71204ef84346e4e036175431} }
\index { Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} !update\+ Topology@{ update\+ Topology} }
\index { update\+ Topology@{ update\+ Topology} !Katabatic\+ ::\+ Auto\+ Contact\+ Terminal@{ Katabatic\+ ::\+ Auto\+ Contact\+ Terminal} }
\subsubsection { \texorpdfstring { update\+ Topology()} { updateTopology()} }
{ \footnotesize \ttfamily void update\+ Topology (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Restore the topology (i.\+ e. connexity) of the contact after the incident segment has changed layer.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Based on the layer depth delta between the terminal and the segment three case can occurs\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item The delta is { \bfseries zero} , then just sets the layer of the contact to the common metal layer.
2018-10-18 11:10:01 -05:00
\item The delta is { \bfseries one} , then sets the contact layer to V\+ IA connecting the two layers.
2018-06-06 11:42:26 -05:00
\item The delta is { \bfseries two} , then create a dogleg to restore the connexity. Depending on whether the terminal was attached to the source or target, sets the layer of the segments.
\item A delta of more than { \bfseries two} is an error, and must never occurs.
\end { DoxyItemize}
As, by default, the perpandicular is set in the layer above the parallel, it may be necessary to adjust his layer as well (to the one below).
2018-10-18 11:10:01 -05:00
Implements \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact_ a690764ddc997fe9766a79c4b8e0c3e2f} { Auto\+ Contact} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Debug\+ Session\+ ::close(), Katabatic\+ ::\+ Cnt\+ Bad\+ Topology, Auto\+ Contact\+ ::get\+ Anchor(), Routing\+ Gauge\+ ::get\+ Contact\+ Layer(), Auto\+ Contact\+ ::get\+ Layer(), Auto\+ Segment\+ ::get\+ Layer(), Routing\+ Gauge\+ ::get\+ Layer\+ Depth(), Auto\+ Contact\+ ::get\+ Net(), Session\+ ::get\+ Routing\+ Gauge(), Routing\+ Gauge\+ ::get\+ Routing\+ Layer(), Auto\+ Segment\+ ::invalidate(), Auto\+ Contact\+ ::is\+ Invalidated\+ Cache(), Auto\+ Segment\+ ::make\+ Dogleg(), Debug\+ Session\+ ::open(), Auto\+ Contact\+ ::set\+ Layer(), and Auto\+ Contact\+ ::show\+ Topology\+ Error().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -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-10-18 11:10:01 -05:00
Auto\+ Contact\+ Terminal.\+ h\item
Auto\+ Contact\+ Terminal.\+ cpp\item
Auto\+ Contact\+ Terminal.\+ dox\end { DoxyCompactItemize}