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

1130 lines
82 KiB
TeX
Raw Normal View History

\hypertarget{classKatabatic_1_1AutoContact}{}\section{Auto\+Contact Class Reference}
\label{classKatabatic_1_1AutoContact}\index{Auto\+Contact@{Auto\+Contact}}
Abstract base class for \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}.
Inheritance diagram for Auto\+Contact\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classKatabatic_1_1AutoContact__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\textbf{ Hook} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_a4092778435abf3fb25a986a802bdb6c6}{get\+Body\+Hook} ()
\item
\textbf{ Hook} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_ad4a1ca46647528c32c5fbd4c45ac866c}{get\+Anchor\+Hook} ()
\item
\textbf{ Component} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_a142af2208e8c058c672bbad3640a6c46}{get\+Anchor} () const
\item
\textbf{ Net} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_a692492374623a5c6096b2c4a51190359}{get\+Net} () const
\item
const \textbf{ Layer} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_ab045567c4f529dca7790d66c17c3084f}{get\+Layer} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_a00b8f54c8171f6699e57de1b8c18eeb1}{getX} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_a4580de6b074712e400d5d238ce3af054}{getY} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_ad1ef5843ef3eabe27e548f24ca222876}{get\+Dx} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_ae4046e6ed80cbba54a48953ef4d2ca6d}{get\+Dy} () const
\item
\textbf{ Point} \hyperlink{classKatabatic_1_1AutoContact_ac2ba7fbe2fad7d4910aa71ee034078e7}{get\+Center} () const
\item
\textbf{ Point} \hyperlink{classKatabatic_1_1AutoContact_a4fa9bb12d79f6645884d567986c9b0a5}{get\+Position} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_a9c63fe7288748eaf5332ca796a36d872}{get\+Width} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_a5a345a7129c2a07f10f9f10c959616b9}{get\+Half\+Width} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_a3ade412549810d29d5ce3c860fc965b9}{get\+Height} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_a3ab7b800879862100636b003a5d168f3}{get\+Half\+Height} () const
\item
\textbf{ Components} \hyperlink{classKatabatic_1_1AutoContact_ad59f45aaefd5acc8fb9795d4c0e49a7f}{get\+Slave\+Components} () const
\item
void \hyperlink{classKatabatic_1_1AutoContact_aad4271c35e0162c8a4d034dca07f5a4b}{set\+Layer} (const \textbf{ Layer} $\ast$)
\item
void \hyperlink{classKatabatic_1_1AutoContact_a9a0ec0a0ac85f23cfad6c069ea8dade7}{set\+Width} (\textbf{ Db\+U\+::\+Unit})
\item
void \hyperlink{classKatabatic_1_1AutoContact_a106f372cee0916ebb6544627e47bb58d}{set\+Height} (\textbf{ Db\+U\+::\+Unit})
\item
void \hyperlink{classKatabatic_1_1AutoContact_a0284fcec9bd41b26648e7bef3d4f1952}{set\+Sizes} (\textbf{ Db\+U\+::\+Unit} width, \textbf{ Db\+U\+::\+Unit} height)
\item
void \hyperlink{classKatabatic_1_1AutoContact_a154f993d0262c92bfc0dc95154faf794}{setX} (\textbf{ Db\+U\+::\+Unit})
\item
void \hyperlink{classKatabatic_1_1AutoContact_ac862ce450a533f0544d2168b132ba165}{setY} (\textbf{ Db\+U\+::\+Unit})
\item
void \hyperlink{classKatabatic_1_1AutoContact_a12d3bfdce07580db21b17cf87f912cc3}{set\+Position} (\textbf{ Db\+U\+::\+Unit} width, \textbf{ Db\+U\+::\+Unit} height)
\item
void \hyperlink{classKatabatic_1_1AutoContact_a52707afec84391e898e01c75b2713d32}{set\+Position} (const \textbf{ Point} \&)
\item
void \hyperlink{classKatabatic_1_1AutoContact_a2c83ac6a03bbac090a8ab120d62c6e44}{set\+Dx} (\textbf{ Db\+U\+::\+Unit})
\item
void \hyperlink{classKatabatic_1_1AutoContact_a123478e15e2544598851d0e907212841}{set\+Dy} (\textbf{ Db\+U\+::\+Unit})
\item
void \hyperlink{classKatabatic_1_1AutoContact_a9881d5e969669b641c5de4f4d94e5d15}{set\+Offset} (\textbf{ Db\+U\+::\+Unit} dx, \textbf{ Db\+U\+::\+Unit} dy)
\item
virtual void \hyperlink{classKatabatic_1_1AutoContact_a9161f1e2832e5e141a13863223322aa5}{translate} (const \textbf{ Db\+U\+::\+Unit} \&tx, const \textbf{ Db\+U\+::\+Unit} \&ty)
\item
bool \hyperlink{classKatabatic_1_1AutoContact_a77e5036ce0c3628f5bf65e729ba875ba}{is\+In\+Creation\+Stage} () const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_ac540608485240ff88970131ebc02c1ab}{is\+Invalidated} () const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_a6d1120fc8800af5d269e72ce5c3ba629}{is\+Invalidated\+Cache} () const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_a249530ac086dbf92f981887cc633facf}{is\+Turn} () const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_ae4ba7bc2888f990818cbdb808260c47e}{is\+Tee} (unsigned int direction) const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_aeb66931d535cbd3d0f9bc525968e15f5}{is\+H\+Tee} () const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_ae38846b6213cccbc6f008b175b4604b0}{is\+V\+Tee} () const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_afd7362b850709bed8b61c1aa22399f97}{is\+Fixed} () const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_acc77b6de9050a86dc41e25888c8f81f6}{has\+Bad\+Topology} () const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_af783b79a1398450e28e2ea55c3eb8476}{can\+Destroy} (unsigned int flags=0) const
\item
bool \hyperlink{classKatabatic_1_1AutoContact_a69d29e4d230a0111ca18e6e661a48f8b}{can\+Move\+Up} (const \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$moved) const
\item
\textbf{ Contact} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_ab422116c7edfacedd31711c96e3ec95b}{base} () const
\item
virtual const \textbf{ Name} \& \hyperlink{classKatabatic_1_1AutoContact_a9e76ae5cee9320b65251387419c9432b}{get\+Name} () const
\item
size\+\_\+t \hyperlink{classKatabatic_1_1AutoContact_a1e57c42301b9e58648863e7d5dc055e7}{get\+Id} () const
\item
virtual \textbf{ Box} \hyperlink{classKatabatic_1_1AutoContact_ab5d8bf98ab5af6fcfebea1b9f446d5d7}{get\+Bounding\+Box} () const
\item
\hyperlink{classKatabatic_1_1GCell}{G\+Cell} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_a819cf639562a031a1e2e061fe1293d66}{get\+G\+Cell} () const
\item
virtual \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_a48ab1d3bdf85712e4784ef83ef136939}{get\+Opposite} (const \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$) const =0
\item
virtual \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_a994371005874f946cc0ac78005d38423}{get\+Perpandicular} (const \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$) const =0
\item
virtual \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ \hyperlink{classKatabatic_1_1AutoContact_a50531ded68cc5206fe104b8d8bf3bd87}{get\+Segment} (unsigned int) const =0
\item
unsigned int \hyperlink{classKatabatic_1_1AutoContact_ada381cbb88211a7f63d30691b669b5e1}{get\+Min\+Depth} () const
\item
unsigned int \hyperlink{classKatabatic_1_1AutoContact_ac350bb9d2d038287530fcf474987ba55}{get\+Max\+Depth} () const
\item
void \hyperlink{classKatabatic_1_1AutoContact_ac607a624c0698056c5bccf405cf05ea7}{get\+Lengths} (\textbf{ Db\+U\+::\+Unit} $\ast$lengths, Auto\+Segment\+::\+Depth\+Length\+Set \&)
\item
virtual \textbf{ Box} \hyperlink{classKatabatic_1_1AutoContact_a00ed934305dd186a284b7a13b5798cb6}{get\+Native\+Constraint\+Box} () const
\item
\textbf{ Interval} \hyperlink{classKatabatic_1_1AutoContact_ab1fd3fec6dd56d40217b8a5ecacb1719}{get\+U\+Constraints} (unsigned int direction) const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_a347244bd3f3a59881a2dee9801c74618}{get\+C\+B\+X\+Min} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_a798750f964050c53c269a2e56d44b690}{get\+C\+B\+X\+Max} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_ad7ee1befb03ee85f237a36e2f5ab8e45}{get\+C\+B\+Y\+Min} () const
\item
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1AutoContact_a4e4061a17285b0c08c31cfee65947cb6}{get\+C\+B\+Y\+Max} () const
\item
\textbf{ Box} \hyperlink{classKatabatic_1_1AutoContact_ae9d087a6cd3d459d7f4bea6bc8b08b49}{get\+Constraint\+Box} () const
\item
\textbf{ Box} \& \hyperlink{classKatabatic_1_1AutoContact_ac2fe070a286356a24baa466b4fe5b74d}{intersect\+Constraint\+Box} (\textbf{ Box} \&box) const
\item
void \hyperlink{classKatabatic_1_1AutoContact_aabac50fd9b8e1bba7289573973658d18}{invalidate} (unsigned int flags=0)
\item
virtual void \hyperlink{classKatabatic_1_1AutoContact_af6a2454547eeb7f5a519970dcb467e90}{update\+Geometry} ()=0
\item
virtual void \hyperlink{classKatabatic_1_1AutoContact_a690764ddc997fe9766a79c4b8e0c3e2f}{update\+Topology} ()=0
\item
void \hyperlink{classKatabatic_1_1AutoContact_a66f92d8233776fb858075f78af451997}{show\+Topology\+Error} (const std\+::string \&, unsigned int flags=0)
\item
virtual void \hyperlink{classKatabatic_1_1AutoContact_ac371cd5b837a8965c11297c197e70a45}{check\+Topology} ()
\item
void \hyperlink{classKatabatic_1_1AutoContact_aa1a02e206437f1371a74cafc724b00d7}{set\+G\+Cell} (\hyperlink{classKatabatic_1_1GCell}{G\+Cell} $\ast$)
\item
void \hyperlink{classKatabatic_1_1AutoContact_a9fcb986110e79bc0044f7bfe503acc0c}{set\+C\+B\+X\+Min} (\textbf{ Db\+U\+::\+Unit} x\+Min)
\item
void \hyperlink{classKatabatic_1_1AutoContact_aaa7652f5db46cab9edb066d06ea979f9}{set\+C\+B\+X\+Max} (\textbf{ Db\+U\+::\+Unit} x\+Max)
\item
void \hyperlink{classKatabatic_1_1AutoContact_a5b598929b39ad3ec202405b31ac02b1d}{set\+C\+B\+Y\+Min} (\textbf{ Db\+U\+::\+Unit} y\+Min)
\item
void \hyperlink{classKatabatic_1_1AutoContact_a1fdb3737d910a966e150a86d885f3c05}{set\+C\+B\+Y\+Max} (\textbf{ Db\+U\+::\+Unit} y\+Max)
\item
void \hyperlink{classKatabatic_1_1AutoContact_a5e5f791613d0ef8f4cf9e7d8f35dc4c5}{set\+Constraint\+Box} (const \textbf{ Box} \&box)
\item
bool \hyperlink{classKatabatic_1_1AutoContact_ac893802d1c5518cab86f8341af817abe}{restrict\+Constraint\+Box} (\textbf{ Db\+U\+::\+Unit} constraint\+Min, \textbf{ Db\+U\+::\+Unit} constraint\+Max, unsigned int flags=\hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217aa5153b2cc25ebccca8616ce20ecd727a}{Kb\+Warn\+On\+Error})
\item
void \hyperlink{classKatabatic_1_1AutoContact_a7fc4029992d75a62ce718e5e622f8ce9}{migrate\+Constraint\+Box} (\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} $\ast$other)
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item
static size\+\_\+t \hyperlink{classKatabatic_1_1AutoContact_a91c8bc1a6bdb1b15c3c084ebfd38af47}{get\+Allocateds} ()
\item
static const \textbf{ Name} \& \hyperlink{classKatabatic_1_1AutoContact_a00e56270cfb31f56e52e31afbc33ba71}{get\+Static\+Name} ()
\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item
static void \hyperlink{classKatabatic_1_1AutoContact_a2294ddd6bd4bda59c3453cc4dbd4f4fa}{\+\_\+get\+Topology} (\textbf{ Contact} $\ast$, \textbf{ Component} $\ast$\&anchor, \textbf{ Horizontal} $\ast$$\ast$\&, \textbf{ Vertical} $\ast$$\ast$\&, size\+\_\+t)
\end{DoxyCompactItemize}
\subsection{Detailed Description}
Abstract base class for \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}.
\hypertarget{classKatabatic_1_1AutoContact_secACCache}{}\subsection{Caching Mechanism}\label{classKatabatic_1_1AutoContact_secACCache}
To bypass the Ring/\+Hook mechanism {\itshape and} the subsequent Session\+::\+Lookup() call, the Auto\+Segments anchored on an \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} are cached in the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} itself. They can be accessed through {\ttfamily get\+Horizontal\+N()} and get\+Vertical\+N() accessors {\ttfamily N} depending on the subtype of \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}.
Cached Auto\+Segments are updated in the \hyperlink{classKatabatic_1_1AutoContact_a690764ddc997fe9766a79c4b8e0c3e2f}{Auto\+Contact\+::update\+Topology()} function only.\hypertarget{classKatabatic_1_1AutoContact_secACInvalidate}{}\subsection{Invalidate on Auto\+Contacts}\label{classKatabatic_1_1AutoContact_secACInvalidate}
The invalidation of an \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} invalidate all the segments that are anchored on it.
{\bfseries Special Case of H\+Tee \& V\+Tee}
When invalidating an H\+Tee or V\+Tee, two out of the three anchored segments are parallels. The {\itshape aligned} constraint is passed on those two. By default, when we invalidate an \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}, the invalidation is applied to the whole aligned set through the \hyperlink{classKatabatic_1_1AutoSegment_aaca749f49cd03ca06449d5ea2104033a}{Auto\+Segment\+::get\+Aligneds()} collection. So if one of the parallel is invalidated and the other not, it should only be because we are already in {\ttfamily get\+Aligneds()}, then we do not want to invalidate again the whole aligned set. In that case, we perform an atomic only invalidation (reset \hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d}{Katabatic\+::\+Kb\+Propagate}).
For the complete invalidation/revalidation mechanism see \hyperlink{classKatabatic_1_1Session_secSessionAlgo}{Session Algorithm}.\hypertarget{classKatabatic_1_1AutoContact_secDiffFromKatabatic2}{}\subsection{Notes -\/ Differences from Katabatic 2}\label{classKatabatic_1_1AutoContact_secDiffFromKatabatic2}
From the previous version of \hyperlink{namespaceKatabatic}{Katabatic}, \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} have been greatly stripped down (again). They are now always punctual objetcs with stricly fixed topologies\+:
\begin{DoxyItemize}
\item \hyperlink{classKatabatic_1_1AutoContactTerminal}{Auto\+Contact\+Terminal} to connect to a terminal (one segment).
\item \hyperlink{classKatabatic_1_1AutoContactTurn}{Auto\+Contact\+Turn} to make a turn\+: two perpandiculars segments.
\item \hyperlink{classKatabatic_1_1AutoContactHTee}{Auto\+Contact\+H\+Tee} an horizontal tee\+: two {\itshape aligned} horizonals and one vertical.
\item \hyperlink{classKatabatic_1_1AutoContactVTee}{Auto\+Contact\+V\+Tee} an horizontal tee\+: two {\itshape aligned} verticals and one horizontal.
\end{DoxyItemize}
\subsection{Member Function Documentation}
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a4092778435abf3fb25a986a802bdb6c6}\label{classKatabatic_1_1AutoContact_a4092778435abf3fb25a986a802bdb6c6}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Body\+Hook@{get\+Body\+Hook}}
\index{get\+Body\+Hook@{get\+Body\+Hook}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Body\+Hook()}{getBodyHook()}}
{\footnotesize\ttfamily \textbf{ Hook} $\ast$ get\+Body\+Hook (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Component\+::get\+Body\+Hook().
Referenced by G\+Cell\+Topology\+::\+\_\+do\+\_\+x\+G\+\_\+1\+Pad(), and Auto\+Segment\+::create().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ad4a1ca46647528c32c5fbd4c45ac866c}\label{classKatabatic_1_1AutoContact_ad4a1ca46647528c32c5fbd4c45ac866c}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Anchor\+Hook@{get\+Anchor\+Hook}}
\index{get\+Anchor\+Hook@{get\+Anchor\+Hook}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Anchor\+Hook()}{getAnchorHook()}}
{\footnotesize\ttfamily \textbf{ Hook} $\ast$ get\+Anchor\+Hook (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::get\+Anchor\+Hook().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a142af2208e8c058c672bbad3640a6c46}\label{classKatabatic_1_1AutoContact_a142af2208e8c058c672bbad3640a6c46}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Anchor@{get\+Anchor}}
\index{get\+Anchor@{get\+Anchor}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Anchor()}{getAnchor()}}
{\footnotesize\ttfamily \textbf{ Component} $\ast$ get\+Anchor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::get\+Anchor().
Referenced by Auto\+Horizontal\+::\+\_\+can\+Slacken(), Auto\+Segment\+::create(), Auto\+Contact\+Terminal\+::get\+Native\+Constraint\+Box(), and Auto\+Contact\+Terminal\+::update\+Topology().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a692492374623a5c6096b2c4a51190359}\label{classKatabatic_1_1AutoContact_a692492374623a5c6096b2c4a51190359}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Net@{get\+Net}}
\index{get\+Net@{get\+Net}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Net()}{getNet()}}
{\footnotesize\ttfamily \textbf{ Net} $\ast$ get\+Net (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Component\+::get\+Net().
Referenced by Auto\+Contact\+Terminal\+::get\+Native\+Constraint\+Box(), Auto\+Contact\+V\+Tee\+::get\+Segment(), Auto\+Contact\+Turn\+::get\+Segment(), Auto\+Contact\+H\+Tee\+::get\+Segment(), Auto\+Contact\+V\+Tee\+::update\+Geometry(), Auto\+Contact\+Turn\+::update\+Geometry(), Auto\+Contact\+H\+Tee\+::update\+Geometry(), Auto\+Contact\+Terminal\+::update\+Geometry(), Auto\+Contact\+V\+Tee\+::update\+Topology(), Auto\+Contact\+Turn\+::update\+Topology(), Auto\+Contact\+H\+Tee\+::update\+Topology(), and Auto\+Contact\+Terminal\+::update\+Topology().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ab045567c4f529dca7790d66c17c3084f}\label{classKatabatic_1_1AutoContact_ab045567c4f529dca7790d66c17c3084f}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Layer@{get\+Layer}}
\index{get\+Layer@{get\+Layer}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Layer()}{getLayer()}}
{\footnotesize\ttfamily const \textbf{ Layer} $\ast$ get\+Layer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Component\+::get\+Layer().
Referenced by Auto\+Horizontal\+::\+\_\+can\+Slacken(), Auto\+Segment\+::get\+Perpandiculars(), Auto\+Segment\+::make\+Dogleg(), Auto\+Segment\+::revalidate(), Auto\+Contact\+V\+Tee\+::update\+Topology(), Auto\+Contact\+Turn\+::update\+Topology(), Auto\+Contact\+H\+Tee\+::update\+Topology(), and Auto\+Contact\+Terminal\+::update\+Topology().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a00b8f54c8171f6699e57de1b8c18eeb1}\label{classKatabatic_1_1AutoContact_a00b8f54c8171f6699e57de1b8c18eeb1}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!getX@{getX}}
\index{getX@{getX}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+X()}{getX()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} getX (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Component\+::get\+X().
Referenced by Auto\+Segment\+::create(), G\+Cell\+Topology\+::do\+Rp\+\_\+\+Stair\+Case\+V(), Auto\+Segment\+::make\+Dogleg(), Auto\+Contact\+V\+Tee\+::update\+Geometry(), Auto\+Contact\+Turn\+::update\+Geometry(), and Auto\+Contact\+H\+Tee\+::update\+Geometry().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a4580de6b074712e400d5d238ce3af054}\label{classKatabatic_1_1AutoContact_a4580de6b074712e400d5d238ce3af054}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!getY@{getY}}
\index{getY@{getY}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Y()}{getY()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} getY (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Component\+::get\+Y().
Referenced by Auto\+Segment\+::create(), G\+Cell\+Topology\+::do\+Rp\+\_\+\+Stair\+Case\+H(), Auto\+Segment\+::make\+Dogleg(), Auto\+Contact\+V\+Tee\+::update\+Geometry(), Auto\+Contact\+Turn\+::update\+Geometry(), and Auto\+Contact\+H\+Tee\+::update\+Geometry().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ad1ef5843ef3eabe27e548f24ca222876}\label{classKatabatic_1_1AutoContact_ad1ef5843ef3eabe27e548f24ca222876}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Dx@{get\+Dx}}
\index{get\+Dx@{get\+Dx}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Dx()}{getDx()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Dx (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::get\+Dx().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ae4046e6ed80cbba54a48953ef4d2ca6d}\label{classKatabatic_1_1AutoContact_ae4046e6ed80cbba54a48953ef4d2ca6d}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Dy@{get\+Dy}}
\index{get\+Dy@{get\+Dy}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Dy()}{getDy()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Dy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::get\+Dy().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ac2ba7fbe2fad7d4910aa71ee034078e7}\label{classKatabatic_1_1AutoContact_ac2ba7fbe2fad7d4910aa71ee034078e7}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Center@{get\+Center}}
\index{get\+Center@{get\+Center}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Center()}{getCenter()}}
{\footnotesize\ttfamily \textbf{ Point} get\+Center (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.} \mbox{\Hypertarget{classKatabatic_1_1AutoContact_a4fa9bb12d79f6645884d567986c9b0a5}\label{classKatabatic_1_1AutoContact_a4fa9bb12d79f6645884d567986c9b0a5}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Position@{get\+Position}}
\index{get\+Position@{get\+Position}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Position()}{getPosition()}}
{\footnotesize\ttfamily \textbf{ Point} get\+Position (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Component\+::get\+Position().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a9c63fe7288748eaf5332ca796a36d872}\label{classKatabatic_1_1AutoContact_a9c63fe7288748eaf5332ca796a36d872}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Width@{get\+Width}}
\index{get\+Width@{get\+Width}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Width()}{getWidth()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Width (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::get\+Width().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a5a345a7129c2a07f10f9f10c959616b9}\label{classKatabatic_1_1AutoContact_a5a345a7129c2a07f10f9f10c959616b9}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Half\+Width@{get\+Half\+Width}}
\index{get\+Half\+Width@{get\+Half\+Width}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Half\+Width()}{getHalfWidth()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Half\+Width (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::get\+Half\+Width().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a3ade412549810d29d5ce3c860fc965b9}\label{classKatabatic_1_1AutoContact_a3ade412549810d29d5ce3c860fc965b9}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Height@{get\+Height}}
\index{get\+Height@{get\+Height}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Height()}{getHeight()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Height (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::get\+Height().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a3ab7b800879862100636b003a5d168f3}\label{classKatabatic_1_1AutoContact_a3ab7b800879862100636b003a5d168f3}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Half\+Height@{get\+Half\+Height}}
\index{get\+Half\+Height@{get\+Half\+Height}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Half\+Height()}{getHalfHeight()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Half\+Height (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::get\+Half\+Height().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ad59f45aaefd5acc8fb9795d4c0e49a7f}\label{classKatabatic_1_1AutoContact_ad59f45aaefd5acc8fb9795d4c0e49a7f}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Slave\+Components@{get\+Slave\+Components}}
\index{get\+Slave\+Components@{get\+Slave\+Components}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Slave\+Components()}{getSlaveComponents()}}
{\footnotesize\ttfamily \textbf{ Components} get\+Slave\+Components (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Component\+::get\+Slave\+Components().
Referenced by Auto\+Segment\+::create().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_aad4271c35e0162c8a4d034dca07f5a4b}\label{classKatabatic_1_1AutoContact_aad4271c35e0162c8a4d034dca07f5a4b}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Layer@{set\+Layer}}
\index{set\+Layer@{set\+Layer}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Layer()}{setLayer()}}
{\footnotesize\ttfamily void set\+Layer (\begin{DoxyParamCaption}\item[{const \textbf{ Layer} $\ast$}]{layer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Layer().
Referenced by Auto\+Segment\+::reduce\+Dogleg\+Layer(), Auto\+Contact\+V\+Tee\+::update\+Topology(), Auto\+Contact\+Turn\+::update\+Topology(), Auto\+Contact\+H\+Tee\+::update\+Topology(), and Auto\+Contact\+Terminal\+::update\+Topology().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a9a0ec0a0ac85f23cfad6c069ea8dade7}\label{classKatabatic_1_1AutoContact_a9a0ec0a0ac85f23cfad6c069ea8dade7}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Width@{set\+Width}}
\index{set\+Width@{set\+Width}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Width()}{setWidth()}}
{\footnotesize\ttfamily void set\+Width (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{w }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Width().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a106f372cee0916ebb6544627e47bb58d}\label{classKatabatic_1_1AutoContact_a106f372cee0916ebb6544627e47bb58d}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Height@{set\+Height}}
\index{set\+Height@{set\+Height}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Height()}{setHeight()}}
{\footnotesize\ttfamily void set\+Height (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{h }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Height().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a0284fcec9bd41b26648e7bef3d4f1952}\label{classKatabatic_1_1AutoContact_a0284fcec9bd41b26648e7bef3d4f1952}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Sizes@{set\+Sizes}}
\index{set\+Sizes@{set\+Sizes}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Sizes()}{setSizes()}}
{\footnotesize\ttfamily void set\+Sizes (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{w, }\item[{\textbf{ Db\+U\+::\+Unit}}]{h }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Sizes().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a154f993d0262c92bfc0dc95154faf794}\label{classKatabatic_1_1AutoContact_a154f993d0262c92bfc0dc95154faf794}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!setX@{setX}}
\index{setX@{setX}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+X()}{setX()}}
{\footnotesize\ttfamily void setX (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+X().
Referenced by Auto\+Vertical\+::\+\_\+can\+Slacken(), Auto\+Vertical\+::\+\_\+post\+Create(), Auto\+Contact\+V\+Tee\+::update\+Geometry(), Auto\+Contact\+Turn\+::update\+Geometry(), Auto\+Contact\+H\+Tee\+::update\+Geometry(), and Auto\+Contact\+Terminal\+::update\+Geometry().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ac862ce450a533f0544d2168b132ba165}\label{classKatabatic_1_1AutoContact_ac862ce450a533f0544d2168b132ba165}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!setY@{setY}}
\index{setY@{setY}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Y()}{setY()}}
{\footnotesize\ttfamily void setY (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{y }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Y().
Referenced by Auto\+Horizontal\+::\+\_\+can\+Slacken(), Auto\+Horizontal\+::\+\_\+post\+Create(), Auto\+Contact\+V\+Tee\+::update\+Geometry(), Auto\+Contact\+Turn\+::update\+Geometry(), Auto\+Contact\+H\+Tee\+::update\+Geometry(), and Auto\+Contact\+Terminal\+::update\+Geometry().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a12d3bfdce07580db21b17cf87f912cc3}\label{classKatabatic_1_1AutoContact_a12d3bfdce07580db21b17cf87f912cc3}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Position@{set\+Position}}
\index{set\+Position@{set\+Position}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Position()}{setPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void set\+Position (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{w, }\item[{\textbf{ Db\+U\+::\+Unit}}]{h }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Position().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a52707afec84391e898e01c75b2713d32}\label{classKatabatic_1_1AutoContact_a52707afec84391e898e01c75b2713d32}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Position@{set\+Position}}
\index{set\+Position@{set\+Position}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Position()}{setPosition()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void set\+Position (\begin{DoxyParamCaption}\item[{const \textbf{ Point} \&}]{p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Position().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a2c83ac6a03bbac090a8ab120d62c6e44}\label{classKatabatic_1_1AutoContact_a2c83ac6a03bbac090a8ab120d62c6e44}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Dx@{set\+Dx}}
\index{set\+Dx@{set\+Dx}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Dx()}{setDx()}}
{\footnotesize\ttfamily void set\+Dx (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{dx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Dx().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a123478e15e2544598851d0e907212841}\label{classKatabatic_1_1AutoContact_a123478e15e2544598851d0e907212841}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Dy@{set\+Dy}}
\index{set\+Dy@{set\+Dy}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Dy()}{setDy()}}
{\footnotesize\ttfamily void set\+Dy (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{dy }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Dy().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a9881d5e969669b641c5de4f4d94e5d15}\label{classKatabatic_1_1AutoContact_a9881d5e969669b641c5de4f4d94e5d15}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Offset@{set\+Offset}}
\index{set\+Offset@{set\+Offset}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Offset()}{setOffset()}}
{\footnotesize\ttfamily void set\+Offset (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{w, }\item[{\textbf{ Db\+U\+::\+Unit}}]{h }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
{\itshape Base class method proxy.}
References Contact\+::set\+Offset().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a9161f1e2832e5e141a13863223322aa5}\label{classKatabatic_1_1AutoContact_a9161f1e2832e5e141a13863223322aa5}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!translate@{translate}}
\index{translate@{translate}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{translate()}{translate()}}
{\footnotesize\ttfamily void translate (\begin{DoxyParamCaption}\item[{const \textbf{ Db\+U\+::\+Unit} \&}]{dx, }\item[{const \textbf{ Db\+U\+::\+Unit} \&}]{dy }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
{\itshape Base class method proxy.}
References Katabatic\+::\+Cnt\+In\+Creation\+Stage, Grid$<$ G\+Cell\+T $>$\+::get\+G\+Cell(), and G\+Cell\+::get\+G\+Cell\+Grid().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a77e5036ce0c3628f5bf65e729ba875ba}\label{classKatabatic_1_1AutoContact_a77e5036ce0c3628f5bf65e729ba875ba}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!is\+In\+Creation\+Stage@{is\+In\+Creation\+Stage}}
\index{is\+In\+Creation\+Stage@{is\+In\+Creation\+Stage}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{is\+In\+Creation\+Stage()}{isInCreationStage()}}
{\footnotesize\ttfamily bool is\+In\+Creation\+Stage (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} {\bfseries true} if the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} is still in it\textquotesingle{}s initial creation stage.
References Katabatic\+::\+Cnt\+In\+Creation\+Stage.
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ac540608485240ff88970131ebc02c1ab}\label{classKatabatic_1_1AutoContact_ac540608485240ff88970131ebc02c1ab}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!is\+Invalidated@{is\+Invalidated}}
\index{is\+Invalidated@{is\+Invalidated}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{is\+Invalidated()}{isInvalidated()}}
{\footnotesize\ttfamily bool is\+Invalidated (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} {\bfseries true} if the some \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} has changed and the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} needs to be repositionned (through a call to \hyperlink{classKatabatic_1_1AutoContact_af6a2454547eeb7f5a519970dcb467e90}{Auto\+Contact\+::update\+Geometry()}).
References Katabatic\+::\+Cnt\+Invalidated.
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a6d1120fc8800af5d269e72ce5c3ba629}\label{classKatabatic_1_1AutoContact_a6d1120fc8800af5d269e72ce5c3ba629}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!is\+Invalidated\+Cache@{is\+Invalidated\+Cache}}
\index{is\+Invalidated\+Cache@{is\+Invalidated\+Cache}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{is\+Invalidated\+Cache()}{isInvalidatedCache()}}
{\footnotesize\ttfamily bool is\+Invalidated\+Cache (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} {\bfseries true} if the some \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} has changed and the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} topology needs to be restored, as a gap may have appeared (through a call to Auto\+Segment\+::update\+Topology()).
References Katabatic\+::\+Cnt\+Invalidated\+Cache.
Referenced by Katabatic\+Engine\+::finalize\+Layout(), Auto\+Contact\+V\+Tee\+::update\+Geometry(), Auto\+Contact\+Turn\+::update\+Geometry(), Auto\+Contact\+H\+Tee\+::update\+Geometry(), Auto\+Contact\+Terminal\+::update\+Geometry(), Auto\+Contact\+V\+Tee\+::update\+Topology(), Auto\+Contact\+Turn\+::update\+Topology(), Auto\+Contact\+H\+Tee\+::update\+Topology(), and Auto\+Contact\+Terminal\+::update\+Topology().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a249530ac086dbf92f981887cc633facf}\label{classKatabatic_1_1AutoContact_a249530ac086dbf92f981887cc633facf}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!is\+Turn@{is\+Turn}}
\index{is\+Turn@{is\+Turn}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{is\+Turn()}{isTurn()}}
{\footnotesize\ttfamily bool is\+Turn (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} {\bfseries true} if the dynamic type of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} is of type Turn.
References Katabatic\+::\+Cnt\+Turn.
Referenced by Auto\+Segment\+::can\+Reduce(), Auto\+Segment\+::get\+Perpandiculars(), Auto\+Segment\+::get\+Perpandiculars\+Bound(), and Auto\+Segment\+::revalidate().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ae4ba7bc2888f990818cbdb808260c47e}\label{classKatabatic_1_1AutoContact_ae4ba7bc2888f990818cbdb808260c47e}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!is\+Tee@{is\+Tee}}
\index{is\+Tee@{is\+Tee}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{is\+Tee()}{isTee()}}
{\footnotesize\ttfamily bool is\+Tee (\begin{DoxyParamCaption}\item[{unsigned int}]{direction }\end{DoxyParamCaption}) const}
{\bfseries Returns\+:} {\bfseries true} if the dynamic type of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} is either of type \hyperlink{classKatabatic_1_1AutoContactHTee}{Auto\+Contact\+H\+Tee} or \hyperlink{classKatabatic_1_1AutoContactVTee}{Auto\+Contact\+V\+Tee}, according to {\ttfamily direction}.
References Katabatic\+::\+Kb\+Horizontal, and Katabatic\+::\+Kb\+Vertical.
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_aeb66931d535cbd3d0f9bc525968e15f5}\label{classKatabatic_1_1AutoContact_aeb66931d535cbd3d0f9bc525968e15f5}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!is\+H\+Tee@{is\+H\+Tee}}
\index{is\+H\+Tee@{is\+H\+Tee}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{is\+H\+Tee()}{isHTee()}}
{\footnotesize\ttfamily bool is\+H\+Tee (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} {\bfseries true} if the dynamic type of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} is of type \hyperlink{classKatabatic_1_1AutoContactHTee}{Auto\+Contact\+H\+Tee}.
References Katabatic\+::\+Cnt\+H\+Tee.
Referenced by Auto\+Segment\+::create().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ae38846b6213cccbc6f008b175b4604b0}\label{classKatabatic_1_1AutoContact_ae38846b6213cccbc6f008b175b4604b0}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!is\+V\+Tee@{is\+V\+Tee}}
\index{is\+V\+Tee@{is\+V\+Tee}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{is\+V\+Tee()}{isVTee()}}
{\footnotesize\ttfamily bool is\+V\+Tee (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} {\bfseries true} if the dynamic type of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} is of type \hyperlink{classKatabatic_1_1AutoContactHTee}{Auto\+Contact\+H\+Tee}.
References Katabatic\+::\+Cnt\+V\+Tee.
Referenced by Auto\+Segment\+::create().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_afd7362b850709bed8b61c1aa22399f97}\label{classKatabatic_1_1AutoContact_afd7362b850709bed8b61c1aa22399f97}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!is\+Fixed@{is\+Fixed}}
\index{is\+Fixed@{is\+Fixed}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{is\+Fixed()}{isFixed()}}
{\footnotesize\ttfamily bool is\+Fixed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} {\bfseries true} if the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} cannot be moved.
References Katabatic\+::\+Cnt\+Fixed, and Katabatic\+::\+Cnt\+Terminal.
Referenced by Auto\+Segment\+::create(), Auto\+Contact\+::get\+C\+B\+X\+Max(), Auto\+Contact\+::get\+C\+B\+X\+Min(), Auto\+Contact\+::get\+C\+B\+Y\+Max(), and Auto\+Contact\+::get\+C\+B\+Y\+Min().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_acc77b6de9050a86dc41e25888c8f81f6}\label{classKatabatic_1_1AutoContact_acc77b6de9050a86dc41e25888c8f81f6}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!has\+Bad\+Topology@{has\+Bad\+Topology}}
\index{has\+Bad\+Topology@{has\+Bad\+Topology}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{has\+Bad\+Topology()}{hasBadTopology()}}
{\footnotesize\ttfamily bool has\+Bad\+Topology (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} {\bfseries true} if the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} topology has been broken and a gap has appeared. (sould not happen...)
References Katabatic\+::\+Cnt\+Bad\+Topology.
Referenced by Auto\+Contact\+V\+Tee\+::update\+Geometry(), Auto\+Contact\+Turn\+::update\+Geometry(), Auto\+Contact\+H\+Tee\+::update\+Geometry(), Auto\+Contact\+Terminal\+::update\+Geometry(), Auto\+Contact\+V\+Tee\+::update\+Topology(), Auto\+Contact\+Turn\+::update\+Topology(), and Auto\+Contact\+H\+Tee\+::update\+Topology().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_af783b79a1398450e28e2ea55c3eb8476}\label{classKatabatic_1_1AutoContact_af783b79a1398450e28e2ea55c3eb8476}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!can\+Destroy@{can\+Destroy}}
\index{can\+Destroy@{can\+Destroy}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{can\+Destroy()}{canDestroy()}}
{\footnotesize\ttfamily bool can\+Destroy (\begin{DoxyParamCaption}\item[{unsigned int}]{flags = {\ttfamily 0} }\end{DoxyParamCaption}) const}
{\bfseries Returns\+:} {\bfseries true} if the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} could be destroyed, that is, no segments remains anchored on it. If {\ttfamily flags} contains \hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217aa5153b2cc25ebccca8616ce20ecd727a}{Katabatic\+::\+Kb\+Warn\+On\+Error}, issue an error message.
References Katabatic\+::\+Kb\+Warn\+On\+Error.
Referenced by Session\+::get().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a69d29e4d230a0111ca18e6e661a48f8b}\label{classKatabatic_1_1AutoContact_a69d29e4d230a0111ca18e6e661a48f8b}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!can\+Move\+Up@{can\+Move\+Up}}
\index{can\+Move\+Up@{can\+Move\+Up}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{can\+Move\+Up()}{canMoveUp()}}
{\footnotesize\ttfamily bool can\+Move\+Up (\begin{DoxyParamCaption}\item[{const \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$}]{moved }\end{DoxyParamCaption}) const}
{\bfseries Returns\+:} {\bfseries true} if {\ttfamily segment} can be moved up without triggering a topological modification. It meaans that\+:
\begin{DoxyItemize}
\item Without {\ttfamily moved}, the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} needs only one layer.
\item {\ttfamily moved} go from {\itshape below} the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} to {\itshape above}.
\end{DoxyItemize}
References Component\+::get\+Layer(), Auto\+Segment\+::get\+Layer(), and Routing\+Gauge\+::get\+Layer\+Depth().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ab422116c7edfacedd31711c96e3ec95b}\label{classKatabatic_1_1AutoContact_ab422116c7edfacedd31711c96e3ec95b}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!base@{base}}
\index{base@{base}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{base()}{base()}}
{\footnotesize\ttfamily \textbf{ Contact} $\ast$ base (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} The \textbf{ Hurricane\+::\+Contact} which is decorated.
Referenced by Auto\+Vertical\+::\+\_\+make\+Dogleg(), Katabatic\+Engine\+::create(), Auto\+Segment\+::create(), Auto\+Contact\+Terminal\+::get\+Native\+Constraint\+Box(), Auto\+Segment\+::get\+Opposite\+Anchor(), Auto\+Segment\+::get\+Perpandiculars(), Auto\+Contact\+V\+Tee\+::get\+Segment(), Auto\+Contact\+Turn\+::get\+Segment(), Auto\+Contact\+H\+Tee\+::get\+Segment(), G\+Cell\+::remove\+Contact(), Auto\+Contact\+V\+Tee\+::update\+Geometry(), Auto\+Contact\+Turn\+::update\+Geometry(), Auto\+Contact\+H\+Tee\+::update\+Geometry(), and Auto\+Contact\+Terminal\+::update\+Geometry().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a91c8bc1a6bdb1b15c3c084ebfd38af47}\label{classKatabatic_1_1AutoContact_a91c8bc1a6bdb1b15c3c084ebfd38af47}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Allocateds@{get\+Allocateds}}
\index{get\+Allocateds@{get\+Allocateds}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Allocateds()}{getAllocateds()}}
{\footnotesize\ttfamily size\+\_\+t get\+Allocateds (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
{\bfseries Returns\+:} The total number of \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} currently allocateds. \mbox{\Hypertarget{classKatabatic_1_1AutoContact_a00e56270cfb31f56e52e31afbc33ba71}\label{classKatabatic_1_1AutoContact_a00e56270cfb31f56e52e31afbc33ba71}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Static\+Name@{get\+Static\+Name}}
\index{get\+Static\+Name@{get\+Static\+Name}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Static\+Name()}{getStaticName()}}
{\footnotesize\ttfamily const \textbf{ Name} \& get\+Static\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
{\bfseries Returns\+:} The name of the Hurricane\+::\+Extension\+Go slice. \mbox{\Hypertarget{classKatabatic_1_1AutoContact_a9e76ae5cee9320b65251387419c9432b}\label{classKatabatic_1_1AutoContact_a9e76ae5cee9320b65251387419c9432b}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Name@{get\+Name}}
\index{get\+Name@{get\+Name}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Name()}{getName()}}
{\footnotesize\ttfamily const \textbf{ Name} \& get\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
{\bfseries Returns\+:} The name of the Hurricane\+::\+Extension\+Go slice. \mbox{\Hypertarget{classKatabatic_1_1AutoContact_a1e57c42301b9e58648863e7d5dc055e7}\label{classKatabatic_1_1AutoContact_a1e57c42301b9e58648863e7d5dc055e7}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Id@{get\+Id}}
\index{get\+Id@{get\+Id}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Id()}{getId()}}
{\footnotesize\ttfamily const \textbf{ Name} \& get\+Id (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} The unique {\ttfamily identifer} of the \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}. \mbox{\Hypertarget{classKatabatic_1_1AutoContact_ab5d8bf98ab5af6fcfebea1b9f446d5d7}\label{classKatabatic_1_1AutoContact_ab5d8bf98ab5af6fcfebea1b9f446d5d7}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Bounding\+Box@{get\+Bounding\+Box}}
\index{get\+Bounding\+Box@{get\+Bounding\+Box}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Bounding\+Box()}{getBoundingBox()}}
{\footnotesize\ttfamily \textbf{ Box} get\+Bounding\+Box (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
\begin{DoxySeeAlso}{See also}
\textbf{ Contact\+::get\+Bounding\+Box()}.
\end{DoxySeeAlso}
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a819cf639562a031a1e2e061fe1293d66}\label{classKatabatic_1_1AutoContact_a819cf639562a031a1e2e061fe1293d66}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+G\+Cell@{get\+G\+Cell}}
\index{get\+G\+Cell@{get\+G\+Cell}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+G\+Cell()}{getGCell()}}
{\footnotesize\ttfamily \hyperlink{classKatabatic_1_1GCell}{G\+Cell} $\ast$ get\+G\+Cell (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} The \hyperlink{classKatabatic_1_1GCell}{G\+Cell} into which the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} is located.
Referenced by Auto\+Horizontal\+::\+\_\+can\+Slacken(), Auto\+Vertical\+::\+\_\+can\+Slacken(), Auto\+Horizontal\+::\+\_\+make\+Dogleg(), Auto\+Vertical\+::\+\_\+make\+Dogleg(), Auto\+Horizontal\+::\+\_\+post\+Create(), Auto\+Vertical\+::\+\_\+post\+Create(), Auto\+Horizontal\+::\+\_\+pre\+Destroy(), Auto\+Vertical\+::\+\_\+pre\+Destroy(), Auto\+Segment\+::\+Auto\+Segment(), Auto\+Horizontal\+::can\+Move\+U\+Left(), Auto\+Vertical\+::can\+Move\+U\+Left(), Auto\+Horizontal\+::can\+Move\+U\+Right(), Auto\+Vertical\+::can\+Move\+U\+Right(), Auto\+Horizontal\+::get\+G\+Cells(), Auto\+Vertical\+::get\+G\+Cells(), Auto\+Segment\+::make\+Dogleg(), Auto\+Horizontal\+::move\+U\+Left(), Auto\+Vertical\+::move\+U\+Left(), Auto\+Horizontal\+::move\+U\+Right(), Auto\+Vertical\+::move\+U\+Right(), and Auto\+Segment\+::to\+Constraint\+Axis().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a48ab1d3bdf85712e4784ef83ef136939}\label{classKatabatic_1_1AutoContact_a48ab1d3bdf85712e4784ef83ef136939}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Opposite@{get\+Opposite}}
\index{get\+Opposite@{get\+Opposite}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Opposite()}{getOpposite()}}
{\footnotesize\ttfamily \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ get\+Opposite (\begin{DoxyParamCaption}\item[{const \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$}]{reference }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}
{\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\+LL} is returned.
Implemented in \hyperlink{classKatabatic_1_1AutoContactTerminal_ac9c9b04e245a1109e297510a3968b7ac}{Auto\+Contact\+Terminal}, \hyperlink{classKatabatic_1_1AutoContactHTee_ac9c9b04e245a1109e297510a3968b7ac}{Auto\+Contact\+H\+Tee}, \hyperlink{classKatabatic_1_1AutoContactTurn_ac9c9b04e245a1109e297510a3968b7ac}{Auto\+Contact\+Turn}, and \hyperlink{classKatabatic_1_1AutoContactVTee_ac9c9b04e245a1109e297510a3968b7ac}{Auto\+Contact\+V\+Tee}.
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a994371005874f946cc0ac78005d38423}\label{classKatabatic_1_1AutoContact_a994371005874f946cc0ac78005d38423}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Perpandicular@{get\+Perpandicular}}
\index{get\+Perpandicular@{get\+Perpandicular}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Perpandicular()}{getPerpandicular()}}
{\footnotesize\ttfamily \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ get\+Perpandicular (\begin{DoxyParamCaption}\item[{const \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$}]{reference }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}
{\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\+LL} is returned.
Implemented in \hyperlink{classKatabatic_1_1AutoContactTerminal_ad99dd549214e43b6509fd8e3aefae919}{Auto\+Contact\+Terminal}, \hyperlink{classKatabatic_1_1AutoContactHTee_ad99dd549214e43b6509fd8e3aefae919}{Auto\+Contact\+H\+Tee}, \hyperlink{classKatabatic_1_1AutoContactTurn_ad99dd549214e43b6509fd8e3aefae919}{Auto\+Contact\+Turn}, and \hyperlink{classKatabatic_1_1AutoContactVTee_ad99dd549214e43b6509fd8e3aefae919}{Auto\+Contact\+V\+Tee}.
Referenced by Auto\+Segment\+::get\+Perpandiculars(), Auto\+Segment\+::get\+Perpandiculars\+Bound(), Auto\+Segment\+::raise(), Auto\+Segment\+::reduce(), and Auto\+Segment\+::revalidate().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a50531ded68cc5206fe104b8d8bf3bd87}\label{classKatabatic_1_1AutoContact_a50531ded68cc5206fe104b8d8bf3bd87}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Segment@{get\+Segment}}
\index{get\+Segment@{get\+Segment}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Segment()}{getSegment()}}
{\footnotesize\ttfamily \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$ get\+Segment (\begin{DoxyParamCaption}\item[{unsigned int}]{index }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}
{\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}.
Implemented in \hyperlink{classKatabatic_1_1AutoContactTerminal_a99fa8a78e97a29f2fb5730eaaa59acfc}{Auto\+Contact\+Terminal}, \hyperlink{classKatabatic_1_1AutoContactHTee_a99fa8a78e97a29f2fb5730eaaa59acfc}{Auto\+Contact\+H\+Tee}, \hyperlink{classKatabatic_1_1AutoContactTurn_a99fa8a78e97a29f2fb5730eaaa59acfc}{Auto\+Contact\+Turn}, and \hyperlink{classKatabatic_1_1AutoContactVTee_a99fa8a78e97a29f2fb5730eaaa59acfc}{Auto\+Contact\+V\+Tee}.
Referenced by Auto\+Horizontal\+::can\+Move\+U\+Left(), Auto\+Vertical\+::can\+Move\+U\+Left(), Auto\+Horizontal\+::can\+Move\+U\+Right(), Auto\+Vertical\+::can\+Move\+U\+Right(), Locator\+Helper\+::get\+Segment(), Locator\+Helper\+::\+Locator\+Helper(), Auto\+Horizontal\+::move\+U\+Left(), Auto\+Vertical\+::move\+U\+Left(), Auto\+Horizontal\+::move\+U\+Right(), Auto\+Vertical\+::move\+U\+Right(), and Locator\+Helper\+::progress().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ada381cbb88211a7f63d30691b669b5e1}\label{classKatabatic_1_1AutoContact_ada381cbb88211a7f63d30691b669b5e1}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Min\+Depth@{get\+Min\+Depth}}
\index{get\+Min\+Depth@{get\+Min\+Depth}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Min\+Depth()}{getMinDepth()}}
{\footnotesize\ttfamily unsigned int get\+Min\+Depth (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
{\bfseries Returns\+:} The layer depth of the bottom layer of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}.
References Component\+::get\+Layer().
Referenced by Auto\+Segment\+::can\+Pivot\+Up().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ac350bb9d2d038287530fcf474987ba55}\label{classKatabatic_1_1AutoContact_ac350bb9d2d038287530fcf474987ba55}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Max\+Depth@{get\+Max\+Depth}}
\index{get\+Max\+Depth@{get\+Max\+Depth}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Max\+Depth()}{getMaxDepth()}}
{\footnotesize\ttfamily unsigned int get\+Max\+Depth (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
{\bfseries Returns\+:} The layer depth of the top layer of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}.
References Component\+::get\+Layer().
Referenced by Auto\+Segment\+::can\+Pivot\+Down().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ac607a624c0698056c5bccf405cf05ea7}\label{classKatabatic_1_1AutoContact_ac607a624c0698056c5bccf405cf05ea7}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Lengths@{get\+Lengths}}
\index{get\+Lengths@{get\+Lengths}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Lengths()}{getLengths()}}
{\footnotesize\ttfamily void get\+Lengths (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit} $\ast$}]{lengths, }\item[{Auto\+Segment\+::\+Depth\+Length\+Set \&}]{processeds }\end{DoxyParamCaption})}
\begin{DoxyParams}{Parameters}
{\em lengths} & A table of \textbf{ Db\+U\+::\+Unit}, the size of all routing layers used. \\
\hline
{\em processeds} & An \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} sorted set holding all the already processeds Auto\+Segments.\\
\hline
\end{DoxyParams}
Compute the lengths over the owning \hyperlink{classKatabatic_1_1GCell}{G\+Cell} of all the Auto\+Segments anchored on this \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}. The lengths are added to the total length table {\ttfamily lengths}. To avoid double accounting of the local Auto\+Segments that have both source \& target in the same \hyperlink{classKatabatic_1_1GCell}{G\+Cell}, we keep a set of already processeds Auto\+Segments in {\ttfamily processeds}.
References Katabatic\+::\+Kb\+Horizontal, Katabatic\+::\+Kb\+Vertical, and to\+Lambda().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a00ed934305dd186a284b7a13b5798cb6}\label{classKatabatic_1_1AutoContact_a00ed934305dd186a284b7a13b5798cb6}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Native\+Constraint\+Box@{get\+Native\+Constraint\+Box}}
\index{get\+Native\+Constraint\+Box@{get\+Native\+Constraint\+Box}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\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]}}
{\bfseries Returns\+:} The native constraint box (that is, whithout any user constraints applied). For \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 \hyperlink{classKatabatic_1_1GCell}{G\+Cell}.
Reimplemented in \hyperlink{classKatabatic_1_1AutoContactTerminal_a00ed934305dd186a284b7a13b5798cb6}{Auto\+Contact\+Terminal}.
References Box\+::get\+X\+Max(), Box\+::get\+X\+Min(), Box\+::get\+Y\+Max(), Box\+::get\+Y\+Min(), Interval\+::inflate(), and Katabatic\+::\+Kb\+Horizontal.
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ab1fd3fec6dd56d40217b8a5ecacb1719}\label{classKatabatic_1_1AutoContact_ab1fd3fec6dd56d40217b8a5ecacb1719}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+U\+Constraints@{get\+U\+Constraints}}
\index{get\+U\+Constraints@{get\+U\+Constraints}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+U\+Constraints()}{getUConstraints()}}
{\footnotesize\ttfamily \textbf{ Interval} get\+U\+Constraints (\begin{DoxyParamCaption}\item[{unsigned int}]{direction }\end{DoxyParamCaption}) const}
{\bfseries Returns\+:} The constraint interval in {\ttfamily direction} (that is, the relevant side of the constraint box).
References Interval\+::inflate(), and Katabatic\+::\+Kb\+Horizontal.
Referenced by Auto\+Horizontal\+::\+\_\+can\+Slacken(), Auto\+Vertical\+::\+\_\+can\+Slacken(), and Auto\+Contact\+Terminal\+::update\+Geometry().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a347244bd3f3a59881a2dee9801c74618}\label{classKatabatic_1_1AutoContact_a347244bd3f3a59881a2dee9801c74618}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+C\+B\+X\+Min@{get\+C\+B\+X\+Min}}
\index{get\+C\+B\+X\+Min@{get\+C\+B\+X\+Min}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+C\+B\+X\+Min()}{getCBXMin()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+C\+B\+X\+Min (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} The X coordinate of the bottom left corner of the constraint box.
References Db\+U\+::from\+Lambda(), Component\+::get\+X(), G\+Cell\+::get\+X(), and Auto\+Contact\+::is\+Fixed().
Referenced by Auto\+Segment\+::create(), Auto\+Contact\+::get\+Constraint\+Box(), and Auto\+Vertical\+::get\+Constraints().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a798750f964050c53c269a2e56d44b690}\label{classKatabatic_1_1AutoContact_a798750f964050c53c269a2e56d44b690}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+C\+B\+X\+Max@{get\+C\+B\+X\+Max}}
\index{get\+C\+B\+X\+Max@{get\+C\+B\+X\+Max}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+C\+B\+X\+Max()}{getCBXMax()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+C\+B\+X\+Max (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} The X coordinate of the top right corner of the constraint box.
References Db\+U\+::from\+Lambda(), Component\+::get\+X(), G\+Cell\+::get\+X(), and Auto\+Contact\+::is\+Fixed().
Referenced by Auto\+Segment\+::create(), Auto\+Contact\+::get\+Constraint\+Box(), and Auto\+Vertical\+::get\+Constraints().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ad7ee1befb03ee85f237a36e2f5ab8e45}\label{classKatabatic_1_1AutoContact_ad7ee1befb03ee85f237a36e2f5ab8e45}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+C\+B\+Y\+Min@{get\+C\+B\+Y\+Min}}
\index{get\+C\+B\+Y\+Min@{get\+C\+B\+Y\+Min}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+C\+B\+Y\+Min()}{getCBYMin()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+C\+B\+Y\+Min (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} The Y coordinate of the bottom left corner of the constraint box.
References Db\+U\+::from\+Lambda(), Component\+::get\+Y(), G\+Cell\+::get\+Y(), and Auto\+Contact\+::is\+Fixed().
Referenced by Auto\+Segment\+::create(), Auto\+Contact\+::get\+Constraint\+Box(), and Auto\+Horizontal\+::get\+Constraints().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a4e4061a17285b0c08c31cfee65947cb6}\label{classKatabatic_1_1AutoContact_a4e4061a17285b0c08c31cfee65947cb6}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+C\+B\+Y\+Max@{get\+C\+B\+Y\+Max}}
\index{get\+C\+B\+Y\+Max@{get\+C\+B\+Y\+Max}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+C\+B\+Y\+Max()}{getCBYMax()}}
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+C\+B\+Y\+Max (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} The Y coordinate of the top right corner of the constraint box.
References Db\+U\+::from\+Lambda(), Component\+::get\+Y(), G\+Cell\+::get\+Y(), and Auto\+Contact\+::is\+Fixed().
Referenced by Auto\+Segment\+::create(), Auto\+Contact\+::get\+Constraint\+Box(), and Auto\+Horizontal\+::get\+Constraints().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ae9d087a6cd3d459d7f4bea6bc8b08b49}\label{classKatabatic_1_1AutoContact_ae9d087a6cd3d459d7f4bea6bc8b08b49}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!get\+Constraint\+Box@{get\+Constraint\+Box}}
\index{get\+Constraint\+Box@{get\+Constraint\+Box}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{get\+Constraint\+Box()}{getConstraintBox()}}
{\footnotesize\ttfamily \textbf{ Box} get\+Constraint\+Box (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
{\bfseries Returns\+:} The current constraint box\+: the native constraint box with all the user\textquotesingle{}s contraints applieds.
References Auto\+Contact\+::get\+C\+B\+X\+Max(), Auto\+Contact\+::get\+C\+B\+X\+Min(), Auto\+Contact\+::get\+C\+B\+Y\+Max(), and Auto\+Contact\+::get\+C\+B\+Y\+Min().
Referenced by Auto\+Horizontal\+::\+\_\+can\+Slacken(), Auto\+Segment\+::compute\+Optimal(), and Auto\+Contact\+::migrate\+Constraint\+Box().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ac2fe070a286356a24baa466b4fe5b74d}\label{classKatabatic_1_1AutoContact_ac2fe070a286356a24baa466b4fe5b74d}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!intersect\+Constraint\+Box@{intersect\+Constraint\+Box}}
\index{intersect\+Constraint\+Box@{intersect\+Constraint\+Box}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{intersect\+Constraint\+Box()}{intersectConstraintBox()}}
{\footnotesize\ttfamily \textbf{ Box} \& intersect\+Constraint\+Box (\begin{DoxyParamCaption}\item[{\textbf{ Box} \&}]{box }\end{DoxyParamCaption}) const}
{\bfseries Returns\+:} The intersection between {\ttfamily box} and the constraint box. The result is stored into {\ttfamily box} and a reference to it is returned.
References Box\+::get\+Intersection().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_aabac50fd9b8e1bba7289573973658d18}\label{classKatabatic_1_1AutoContact_aabac50fd9b8e1bba7289573973658d18}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!invalidate@{invalidate}}
\index{invalidate@{invalidate}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{invalidate()}{invalidate()}}
{\footnotesize\ttfamily void invalidate (\begin{DoxyParamCaption}\item[{unsigned int}]{flags = {\ttfamily 0} }\end{DoxyParamCaption})}
Invalidate the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}, schedule it for revalidation in the \hyperlink{classKatabatic_1_1Session}{Session}. If flag containt Katabatic\+::\+Cnt\+Invalid\+Topology, the topology of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} will also be checked and possible gap closeds.
The revalidations methods associated are\+:
\begin{DoxyItemize}
\item Auto\+Segment\+::update\+Geometry(), recompute the punctual contact position.
\item Auto\+Segment\+::update\+Topology(), restore the connexity.
\end{DoxyItemize}
References Katabatic\+::\+Cnt\+Invalidated, and Katabatic\+::\+Cnt\+Invalidated\+Cache.
Referenced by Auto\+Horizontal\+::\+\_\+can\+Slacken(), Auto\+Vertical\+::\+\_\+can\+Slacken(), Auto\+Horizontal\+::\+\_\+make\+Dogleg(), Auto\+Vertical\+::\+\_\+make\+Dogleg(), Auto\+Segment\+::\+Auto\+Segment(), and Auto\+Segment\+::raise().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_af6a2454547eeb7f5a519970dcb467e90}\label{classKatabatic_1_1AutoContact_af6a2454547eeb7f5a519970dcb467e90}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!update\+Geometry@{update\+Geometry}}
\index{update\+Geometry@{update\+Geometry}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{update\+Geometry()}{updateGeometry()}}
{\footnotesize\ttfamily void update\+Geometry (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
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.
Implemented in \hyperlink{classKatabatic_1_1AutoContactTerminal_a3e218f6934c51380fb15d0e2bd380071}{Auto\+Contact\+Terminal}, \hyperlink{classKatabatic_1_1AutoContactHTee_a3e218f6934c51380fb15d0e2bd380071}{Auto\+Contact\+H\+Tee}, \hyperlink{classKatabatic_1_1AutoContactTurn_a3e218f6934c51380fb15d0e2bd380071}{Auto\+Contact\+Turn}, and \hyperlink{classKatabatic_1_1AutoContactVTee_a3e218f6934c51380fb15d0e2bd380071}{Auto\+Contact\+V\+Tee}.
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a690764ddc997fe9766a79c4b8e0c3e2f}\label{classKatabatic_1_1AutoContact_a690764ddc997fe9766a79c4b8e0c3e2f}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!update\+Topology@{update\+Topology}}
\index{update\+Topology@{update\+Topology}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{update\+Topology()}{updateTopology()}}
{\footnotesize\ttfamily void update\+Topology (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
Modificate the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} topology to close any gap. This could be by changing layer or creating a new dogleg on an incident \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}.
Implemented in \hyperlink{classKatabatic_1_1AutoContactTerminal_af5bf1f5e71204ef84346e4e036175431}{Auto\+Contact\+Terminal}, \hyperlink{classKatabatic_1_1AutoContactHTee_af5bf1f5e71204ef84346e4e036175431}{Auto\+Contact\+H\+Tee}, \hyperlink{classKatabatic_1_1AutoContactTurn_af5bf1f5e71204ef84346e4e036175431}{Auto\+Contact\+Turn}, and \hyperlink{classKatabatic_1_1AutoContactVTee_af5bf1f5e71204ef84346e4e036175431}{Auto\+Contact\+V\+Tee}.
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a66f92d8233776fb858075f78af451997}\label{classKatabatic_1_1AutoContact_a66f92d8233776fb858075f78af451997}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!show\+Topology\+Error@{show\+Topology\+Error}}
\index{show\+Topology\+Error@{show\+Topology\+Error}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{show\+Topology\+Error()}{showTopologyError()}}
{\footnotesize\ttfamily void show\+Topology\+Error (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{message, }\item[{unsigned int}]{flags = {\ttfamily 0} }\end{DoxyParamCaption})}
Comprensive display of the topology of the \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} to ease the debug work. Prepend with the error message {\ttfamily message}. Do no throw an error.
References Auto\+Segment\+::is\+Global().
Referenced by Auto\+Contact\+Terminal\+::get\+Native\+Constraint\+Box(), Auto\+Contact\+V\+Tee\+::get\+Segment(), Auto\+Contact\+Turn\+::get\+Segment(), Auto\+Contact\+H\+Tee\+::get\+Segment(), Auto\+Contact\+Terminal\+::update\+Geometry(), Auto\+Contact\+V\+Tee\+::update\+Topology(), Auto\+Contact\+Turn\+::update\+Topology(), Auto\+Contact\+H\+Tee\+::update\+Topology(), and Auto\+Contact\+Terminal\+::update\+Topology().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ac371cd5b837a8965c11297c197e70a45}\label{classKatabatic_1_1AutoContact_ac371cd5b837a8965c11297c197e70a45}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!check\+Topology@{check\+Topology}}
\index{check\+Topology@{check\+Topology}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{check\+Topology()}{checkTopology()}}
{\footnotesize\ttfamily void check\+Topology (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
Check for topology correctness (no gaps), display an error message if needed.
Referenced by Katabatic\+Engine\+::finalize\+Layout().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_aa1a02e206437f1371a74cafc724b00d7}\label{classKatabatic_1_1AutoContact_aa1a02e206437f1371a74cafc724b00d7}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+G\+Cell@{set\+G\+Cell}}
\index{set\+G\+Cell@{set\+G\+Cell}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+G\+Cell()}{setGCell()}}
{\footnotesize\ttfamily void set\+G\+Cell (\begin{DoxyParamCaption}\item[{\hyperlink{classKatabatic_1_1GCell}{G\+Cell} $\ast$}]{gcell }\end{DoxyParamCaption})}
Set the owning \hyperlink{classKatabatic_1_1GCell}{G\+Cell}.
References G\+Cell\+::add\+Contact(), and to\+Lambda().
Referenced by Auto\+Horizontal\+::move\+U\+Left(), Auto\+Vertical\+::move\+U\+Left(), Auto\+Horizontal\+::move\+U\+Right(), and Auto\+Vertical\+::move\+U\+Right().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a9fcb986110e79bc0044f7bfe503acc0c}\label{classKatabatic_1_1AutoContact_a9fcb986110e79bc0044f7bfe503acc0c}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+C\+B\+X\+Min@{set\+C\+B\+X\+Min}}
\index{set\+C\+B\+X\+Min@{set\+C\+B\+X\+Min}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+C\+B\+X\+Min()}{setCBXMin()}}
{\footnotesize\ttfamily void set\+C\+B\+X\+Min (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{x\+Min }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Set the lower left X coordinate of the constraint box.
\begin{DoxyParagraph}{Remark\+:}
It cannot go outside the \hyperlink{classKatabatic_1_1GCell}{G\+Cell} bounding box.
\end{DoxyParagraph}
References G\+Cell\+::get\+X().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_aaa7652f5db46cab9edb066d06ea979f9}\label{classKatabatic_1_1AutoContact_aaa7652f5db46cab9edb066d06ea979f9}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+C\+B\+X\+Max@{set\+C\+B\+X\+Max}}
\index{set\+C\+B\+X\+Max@{set\+C\+B\+X\+Max}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+C\+B\+X\+Max()}{setCBXMax()}}
{\footnotesize\ttfamily void set\+C\+B\+X\+Max (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{x\+Max }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Set the upper right X coordinate of the constraint box.
\begin{DoxyParagraph}{Remark\+:}
It cannot go outside the \hyperlink{classKatabatic_1_1GCell}{G\+Cell} bounding box.
\end{DoxyParagraph}
References G\+Cell\+::get\+X(), and G\+Cell\+::get\+X\+Max().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a5b598929b39ad3ec202405b31ac02b1d}\label{classKatabatic_1_1AutoContact_a5b598929b39ad3ec202405b31ac02b1d}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+C\+B\+Y\+Min@{set\+C\+B\+Y\+Min}}
\index{set\+C\+B\+Y\+Min@{set\+C\+B\+Y\+Min}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+C\+B\+Y\+Min()}{setCBYMin()}}
{\footnotesize\ttfamily void set\+C\+B\+Y\+Min (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{y\+Min }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Set the lower left Y coordinate of the constraint box.
\begin{DoxyParagraph}{Remark\+:}
It cannot go outside the \hyperlink{classKatabatic_1_1GCell}{G\+Cell} bounding box.
\end{DoxyParagraph}
References G\+Cell\+::get\+Y().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a1fdb3737d910a966e150a86d885f3c05}\label{classKatabatic_1_1AutoContact_a1fdb3737d910a966e150a86d885f3c05}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+C\+B\+Y\+Max@{set\+C\+B\+Y\+Max}}
\index{set\+C\+B\+Y\+Max@{set\+C\+B\+Y\+Max}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+C\+B\+Y\+Max()}{setCBYMax()}}
{\footnotesize\ttfamily void set\+C\+B\+Y\+Max (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{y\+Max }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Set the upper right Y coordinate of the constraint box.
\begin{DoxyParagraph}{Remark\+:}
It cannot go outside the \hyperlink{classKatabatic_1_1GCell}{G\+Cell} bounding box.
\end{DoxyParagraph}
References G\+Cell\+::get\+Y(), G\+Cell\+::get\+Y\+Max(), and Db\+U\+::to\+Lambda().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a5e5f791613d0ef8f4cf9e7d8f35dc4c5}\label{classKatabatic_1_1AutoContact_a5e5f791613d0ef8f4cf9e7d8f35dc4c5}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!set\+Constraint\+Box@{set\+Constraint\+Box}}
\index{set\+Constraint\+Box@{set\+Constraint\+Box}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{set\+Constraint\+Box()}{setConstraintBox()}}
{\footnotesize\ttfamily void set\+Constraint\+Box (\begin{DoxyParamCaption}\item[{const \textbf{ Box} \&}]{box }\end{DoxyParamCaption})}
Set the constraint box.
\begin{DoxyParagraph}{Remark\+:}
It cannot go outside the \hyperlink{classKatabatic_1_1GCell}{G\+Cell} bounding box.
\end{DoxyParagraph}
References Box\+::get\+X\+Max(), Box\+::get\+X\+Min(), Box\+::get\+Y\+Max(), and Box\+::get\+Y\+Min().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_ac893802d1c5518cab86f8341af817abe}\label{classKatabatic_1_1AutoContact_ac893802d1c5518cab86f8341af817abe}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!restrict\+Constraint\+Box@{restrict\+Constraint\+Box}}
\index{restrict\+Constraint\+Box@{restrict\+Constraint\+Box}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{restrict\+Constraint\+Box()}{restrictConstraintBox()}}
{\footnotesize\ttfamily bool restrict\+Constraint\+Box (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{min, }\item[{\textbf{ Db\+U\+::\+Unit}}]{max, }\item[{unsigned int}]{flags = {\ttfamily \hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217aa5153b2cc25ebccca8616ce20ecd727a}{Kb\+Warn\+On\+Error}} }\end{DoxyParamCaption})}
\begin{DoxyParams}{Parameters}
{\em min} & The minimum of the restriction interval. \\
\hline
{\em max} & The maximum of the restriction interval. \\
\hline
{\em flags} & Gives the direction of the restriction. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\bfseries true} if the restriction was actually applied.
\end{DoxyReturn}
Restrict the current constraint box but check if the restriction will not lead to an empty interval, in that case, do nothing and return {\bfseries false}.
References Katabatic\+::\+Kb\+Horizontal, Katabatic\+::\+Kb\+Vertical, Katabatic\+::\+Kb\+Warn\+On\+Error, and to\+Lambda().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a7fc4029992d75a62ce718e5e622f8ce9}\label{classKatabatic_1_1AutoContact_a7fc4029992d75a62ce718e5e622f8ce9}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!migrate\+Constraint\+Box@{migrate\+Constraint\+Box}}
\index{migrate\+Constraint\+Box@{migrate\+Constraint\+Box}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{migrate\+Constraint\+Box()}{migrateConstraintBox()}}
{\footnotesize\ttfamily void migrate\+Constraint\+Box (\begin{DoxyParamCaption}\item[{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} $\ast$}]{other }\end{DoxyParamCaption})}
Transfer the user constraint box from {\ttfamily other} to the current object {\ttfamily this}. The constraints of {\ttfamily other} are restored to their native values. The two contacts must belong to the same \hyperlink{classKatabatic_1_1GCell}{G\+Cell} for this method to take effect.
References Auto\+Contact\+::get\+Constraint\+Box().
Referenced by Auto\+Horizontal\+::\+\_\+make\+Dogleg(), and Auto\+Vertical\+::\+\_\+make\+Dogleg().
\mbox{\Hypertarget{classKatabatic_1_1AutoContact_a2294ddd6bd4bda59c3453cc4dbd4f4fa}\label{classKatabatic_1_1AutoContact_a2294ddd6bd4bda59c3453cc4dbd4f4fa}}
\index{Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}!\+\_\+get\+Topology@{\+\_\+get\+Topology}}
\index{\+\_\+get\+Topology@{\+\_\+get\+Topology}!Katabatic\+::\+Auto\+Contact@{Katabatic\+::\+Auto\+Contact}}
\subsubsection{\texorpdfstring{\+\_\+get\+Topology()}{\_getTopology()}}
{\footnotesize\ttfamily void \+\_\+get\+Topology (\begin{DoxyParamCaption}\item[{\textbf{ Contact} $\ast$}]{support, }\item[{\textbf{ Component} $\ast$\&}]{anchor, }\item[{\textbf{ Horizontal} $\ast$$\ast$\&}]{horizontals, }\item[{\textbf{ Vertical} $\ast$$\ast$\&}]{verticals, }\item[{size\+\_\+t}]{size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [protected]}}
\begin{DoxyParams}{Parameters}
{\em anchor} & The anchor, if any. \\
\hline
{\em hs} & The \textbf{ Hurricane\+::\+Horizontal} anchored. \\
\hline
{\em vs} & The \textbf{ Hurricane\+::\+Vertical} anchored. \\
\hline
{\em sz} & The size of boths {\ttfamily hs} \& {\ttfamily vs} table passed as arguments.\\
\hline
\end{DoxyParams}
Fill {\ttfamily anchor} , {\ttfamily hs} and {\ttfamily vs} with the components anchored on this \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}.
References Contact\+::get\+Anchor(), and Component\+::get\+Slave\+Components().
Referenced by Auto\+Contact\+Terminal\+::get\+Native\+Constraint\+Box(), Auto\+Contact\+V\+Tee\+::get\+Segment(), Auto\+Contact\+Turn\+::get\+Segment(), and Auto\+Contact\+H\+Tee\+::get\+Segment().
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
Auto\+Contact.\+h\item
Auto\+Contact.\+cpp\item
Auto\+Contact.\+dox\end{DoxyCompactItemize}