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