2018-10-18 11:10:01 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment} { } \section { Auto\+ Segment Class Reference}
\label { classKatabatic_ 1_ 1AutoSegment} \index { Auto\+ Segment@{ Auto\+ Segment} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Abstract base class for \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Inheritance diagram for Auto\+ Segment\+ :\nopagebreak
2018-06-06 11:42:26 -05:00
\begin { figure} [H]
\begin { center}
\leavevmode
2020-04-27 07:14:03 -05:00
\includegraphics [width=263pt] { classKatabatic_ 1_ 1AutoSegment_ _ inherit_ _ graph}
2018-06-06 11:42:26 -05:00
\end { center}
\end { figure}
\subsection * { Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Segment} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a53877ff5ef48eb0030c2581a6eeb3c09} { base} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Segment} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ade416d0483aefe986988fa89a7cf6fcf} { base} } ()=0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Horizontal} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a659b8ed90de679564924afe07af478de} { get\+ Horizontal} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Vertical} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab6a809b6f3ef3cf5385fa35580e31e7a} { get\+ Vertical} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Cell} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a55a3a88610ef1af9931e634f77f2403b} { get\+ Cell} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Net} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a692492374623a5c6096b2c4a51190359} { get\+ Net} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \textbf { Layer} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab045567c4f529dca7790d66c17c3084f} { get\+ Layer} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Box} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a63a3ab1e6501bbad68b9efd4998e48c0} { get\+ Bounding\+ Box} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Hook} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1defbbaef0a1975993e157a8d5f68ded} { get\+ Source\+ Hook} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Hook} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ad62048f68151e5db987b5a7c79cce4ed} { get\+ Target\+ Hook} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Contact} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a497ea2ceeddb939dbc84eae0e7862335} { get\+ Source} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Contact} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0862c201bd7d8e5427e44ca2427c2fe6} { get\+ Target} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Component} $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a9216d4467c2d4e0c7b9d9a8b8e798bee} { get\+ Opposite\+ Anchor} } (\textbf { Component} $ \ast $ ) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Components} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7339a1ebc7d46384bc4e1317af84bea1} { get\+ Anchors} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a00b8f54c8171f6699e57de1b8c18eeb1} { getX} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a4580de6b074712e400d5d238ce3af054} { getY} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a9c63fe7288748eaf5332ca796a36d872} { get\+ Width} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab1ca7adfc68761c749a16f65c9aa4088} { get\+ Length} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8a88dc051a8d324aff8763609957dcaa} { get\+ Source\+ Position} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a65dea76b4efad9d3caa78be44e96c94c} { get\+ Target\+ Position} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8a8e127557d70de70f9efb488be30d1a} { get\+ SourceX} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae913463a76d08b079611a993cebea1a9} { get\+ SourceY} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8e6462b43ca9eaeea1e08866cec59a8c} { get\+ TargetX} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a003e545e792e8bf22d264bcb3bc90547} { get\+ TargetY} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ acbac6289ab14574da20f26c933e2e741} { invert} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aad4271c35e0162c8a4d034dca07f5a4b} { set\+ Layer} } (const \textbf { Layer} $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a21b9cefd33ae22e4c2070ad441bdd30b} { is\+ Horizontal} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ abd54544ef1710ee4b67cfb021d73446c} { is\+ Vertical} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a19ba379112d6b29faa45c5eefbf38500} { is\+ Global} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ add556a145a89fdbcea82346abfb873dc} { is\+ Local} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ afd7362b850709bed8b61c1aa22399f97} { is\+ Fixed} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a72741158d19af38e84c5e9c08f91270f} { is\+ Bipoint} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aef3a61d223be84ac336c4f7bc64884ba} { is\+ Weak\+ Terminal} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a4605c9284168f0a62fa48aa2d3ae5ee9} { is\+ Strong\+ Terminal} } (unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a772596f5d5fa897822dbd0da37024735} { is\+ Layer\+ Change} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3776b8258ab6544c9551d0714fcc75d2} { is\+ Spin\+ Top} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab786dbdb67ea727369b1a988497c01d1} { is\+ Spin\+ Bottom} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a90d934f7275aed35f4ecb157c6950d6f} { is\+ Spin\+ Top\+ Or\+ Bottom} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a461c31a8d12458939b78ccecb3b8c299} { is\+ Reduced} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a62d61c231cf404a814ae37665fa8164f} { is\+ Strap} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a75d91371e5281dd21f60ff39ae70a3e5} { is\+ Dogleg} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ac540608485240ff88970131ebc02c1ab} { is\+ Invalidated} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a77b075644356f016105b3050b031a2ec} { is\+ Invalidated\+ Layer} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af7d9cf1d7581b1cab04cf38c64f0f72a} { is\+ Created} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af6d3008d345195a99e0341f0379c33b7} { is\+ Canonical} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a2bd22f431b7cf3695babab78fc3b4c9e} { is\+ Unset\+ Axis} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a782cff57d3fe10e758d19ee65a06643d} { is\+ Slackened} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a676fcb7ece71d129b7a4d87a3f2e07aa} { \+ \_ \+ can\+ Slacken} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af1a231b2324a486d4ef61b247886cdeb} { can\+ Reduce} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a449ebb156fd51b04bbc029a657b4cded} { must\+ Raise} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a43c865bcfcfd6132352a9ac8a84c25cd} { can\+ Dogleg} } (\textbf { Interval} )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aad55626c9d793a0b08bcff5be2a5ad0c} { can\+ Move\+ U\+ Left} } (float reserve=0.\+ 0) const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a096deb8a143f098eac2bff9ab9c52243} { can\+ Move\+ U\+ Right} } (float reserve=0.\+ 0) const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6482341a342eb6e6b3b43f13fd4436f6} { can\+ Move\+ Up} } (float reserve=0.\+ 0, unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6cca3afced729492cae6649a92dc7e88} { can\+ Pivot\+ Up} } (float reserve=0.\+ 0, unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a24de580d1a371b8d27640cbc3431990b} { can\+ Pivot\+ Down} } (float reserve=0.\+ 0, unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ adec088de3c4c47a28ee9d58eb6d9cf85} { can\+ Slacken} } (unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af026a81002bd907f1ccd4a4784aaa1db} { check\+ Positions} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3d5732fd10b4a05076981066a4674487} { check\+ Constraints} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned long \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ afdedcef127ad2a3677a5b48d7d3453f3} { get\+ Id} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae35b78590ed6aa546b626ef95f28c533} { get\+ Direction} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a819cf639562a031a1e2e061fe1293d66} { get\+ G\+ Cell} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8ca0022e253d355817d46a057ae01625} { get\+ G\+ Cells} } (vector$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ $ > $ \& ) const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a2ca3fac97e325ec8a55d3e03a2ce11a6} { get\+ Auto\+ Source} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ afa494ddc031f4dd1c24999ff83fb878c} { get\+ Auto\+ Target} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a2c5b0faacc768bf61e17eb72a4ccc248} { get\+ Opposite\+ Anchor} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ ) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
size\+ \_ \+ t \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a206b53c34f57945b6c7bdb711101e38f} { get\+ Perpandiculars\+ Bound} } (set$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a58c1170381b915930188608dab311442} { get\+ Parent} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab5b5aaa5b318369feee6003dbad039c2} { get\+ Axis} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f} { get\+ SourceU} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a828fef2716cc9c370d6d170bb96556ec} { get\+ TargetU} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab4881df67bd8f036d0199ed6540fe774} { get\+ Du\+ Source} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0644d656eedc71dba2fb3c6c0d83ed3f} { get\+ Du\+ Target} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab5fb22520af4b94f2ae984304fa64c26} { get\+ Origin} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a5b81aad92361558c3b9e60fd501b89ba} { get\+ Extremity} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Interval} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a248eb2fbb06e3286650b28567d495f0b} { get\+ SpanU} } () const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Interval} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ acc329583aa1546ed5a01e0628f3ca6ad} { get\+ Min\+ SpanU} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Interval} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab7685e309e1d910db3e8237f8a898c35} { get\+ Source\+ Constraints} } (unsigned int flags=0) const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Interval} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a9c1b8b3cd57fb7b0bf60c7a6148237c2} { get\+ Target\+ Constraints} } (unsigned int flags=0) const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7c2fed22b081f8d3b7a69abb457153ea} { get\+ Constraints} } (\textbf { Db\+ U\+ ::\+ Unit} \& min, \textbf { Db\+ U\+ ::\+ Unit} \& max) const =0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a29c3a56daaf4c78aa3ae6edbde37dd42} { get\+ Constraints} } (\textbf { Interval} \& i) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
const \textbf { Interval} \& \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aa7cf8d4df6a5d945dd180d45e8bbcedf} { get\+ User\+ Constraints} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8789ebe71b2ff3d0265f5319a3be5afb} { get\+ Slack} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a9405b4f5345d116f71c40ba2c16097d0} { get\+ Optimal\+ Min} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1bada13dd4460386d4bed22c1a4b3921} { get\+ Optimal\+ Max} } () const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\textbf { Interval} \& \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a110201bd7c64ed78522cfb3f7b142431} { get\+ Optimal} } (\textbf { Interval} \& i) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \textbf { Db\+ U\+ ::\+ Unit} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0e3a02c7a9c1bd559fda628d596b00cd} { get\+ Cost} } (\textbf { Db\+ U\+ ::\+ Unit} axis) const
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8acbe1037827da2c2fef71a18c5886c7} { get\+ Canonical} } (\textbf { Db\+ U\+ ::\+ Unit} \& min, \textbf { Db\+ U\+ ::\+ Unit} \& max)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a988beca5780421c168a2475a5298009a} { get\+ Canonical} } (\textbf { Interval} \& i)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1a6fac115cb81db48e3ac9ffa0721bb5} { unset\+ Flags} } (unsigned int)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aeb14f94914af58657a0dc2f50ec98df5} { set\+ Flags} } (unsigned int)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aaf60d18ab6d951a34a3d06959ce2e76f} { set\+ Du\+ Source} } (\textbf { Db\+ U\+ ::\+ Unit} du)=0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a246756d4c8b3e094a0a9d6de3c2109ff} { set\+ Du\+ Target} } (\textbf { Db\+ U\+ ::\+ Unit} du)=0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ abc72aaeefa7450eaf67aee3212ec974d} { compute\+ Terminal} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a102e0f4bbb0386e41be214d15a9e4549} { update\+ Orient} } ()=0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6d95f4de39c13611786c95ddc7b8942e} { update\+ Positions} } ()=0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae82ffef92ad9ffdc5da5e0c1830d9537} { merge\+ User\+ Constraints} } (const \textbf { Interval} \& )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ac8768352909d37ebad1c06c9cf4ef8bb} { reset\+ User\+ Constraints} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af92b3d000552b630695879dd5d4736a1} { set\+ Optimal\+ Min} } (\textbf { Db\+ U\+ ::\+ Unit} min)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a90173ab4f35b98c6544f9482ccd93b5e} { set\+ Optimal\+ Max} } (\textbf { Db\+ U\+ ::\+ Unit} max)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a88ac40c065bce0ff97792d18b41b6a67} { revalidate} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a39c927c04b5016770692b9b8448c2f04} { make\+ Dogleg} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a5ca22c853ee33a2b26367eaf29457766} { make\+ Dogleg} } (\textbf { Interval} , unsigned int flags=Kb\+ No\+ Flags)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aa21b16647c1750ba8b3eb9d99b12f073} { make\+ Dogleg} } (\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ , unsigned int flags=Kb\+ No\+ Flags)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a37a14b40295ccb50cd5001891385807b} { \+ \_ \+ make\+ Dogleg} } (\mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ , unsigned int flags)=0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af8ca7b17e952f4b599aeeb2f4e5be395} { move\+ U\+ Left} } ()=0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ad7fd54ca229fcf5ccd99f87b019b9cbc} { move\+ U\+ Right} } ()=0
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1fbc0adb4c0b14632edc7c55f028cd4b} { slacken} } (unsigned int flags)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ acecc9a1d55a271a4b1587d7872cfe133} { reduce\+ Dogleg\+ Layer} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a27a6a2c747ff93d209878a32d97e9157} { reduce} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ace393c3c082a5e62a348168354660e39} { raise} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8b0d5044dce091d06b633848a6f8a66d} { canonize} } (unsigned int flags=Kb\+ No\+ Flags)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} { invalidate} } (unsigned int flags=\mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d} { Kb\+ Propagate} } )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aa902247a1e967e52cc3ab087cd52b366} { compute\+ Optimal} } (set$ < $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ $ > $ \& processeds)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3881efebb7510d9b22e5f89bcd418954} { set\+ Axis} } (\textbf { Db\+ U\+ ::\+ Unit} , unsigned int flags=Kb\+ No\+ Flags)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8ab41a962e18810808f4f065863b5a73} { to\+ Constraint\+ Axis} } (unsigned int flags=\mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a} { Kb\+ Realignate} } )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
bool \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a750983d7154c94b54537127a3a18e14b} { to\+ Optimal\+ Axis} } (unsigned int flags=\mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a} { Kb\+ Realignate} } )
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a4430f9704a59e1d4f7c37d7166649510} { get\+ On\+ Source\+ Contact} } (unsigned int direction)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aadbb84c0f1383f6a2addc2661e388583} { get\+ On\+ Target\+ Contact} } (unsigned int direction)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aaca749f49cd03ca06449d5ea2104033a} { get\+ Aligneds} } (unsigned int flags=Kb\+ No\+ Flags)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aadc6427db83ebdb690e74980d9c8d7d8} { get\+ Perpandiculars} } ()
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Static Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
static \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} { create} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ source, \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ target, \textbf { Segment} $ \ast $ hurricane\+ Segment)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
static \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ afa7ce652576b17985859fd6c29d21489} { create} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ source, \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ target, unsigned int dir, size\+ \_ \+ t depth=Routing\+ Gauge\+ ::nlayerdepth)
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Protected Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae64a61508d148cb4a0ee9b5ffb177659} { Auto\+ Segment} } (\textbf { Segment} $ \ast $ segment)
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a5d135025de0c1725d6252099c2e70e2b} { $ \sim $ \+ Auto\+ Segment} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3715b38135ca24745f610bebd3407c10} { \+ \_ \+ post\+ Create} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
virtual void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7c13d9795eafd477994961f8a0d962d0} { \+ \_ \+ pre\+ Destroy} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6a98d2e5839b880893703ad45db4e4c4} { \+ \_ \+ invalidate} } ()
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
unsigned int \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae5b4a4f67d480cd5c9ce104e73e73da9} { \+ \_ \+ get\+ Flags} } () const
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Static Protected Member Functions}
\begin { DoxyCompactItemize}
\item
2018-10-18 11:10:01 -05:00
static void \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8348937b1db79480305b178482d3ed61} { \+ \_ \+ pre\+ Create} } (\mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ source, \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ target)
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection { Detailed Description}
2018-10-18 11:10:01 -05:00
Abstract base class for \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ secASCreation} { } \subsection { Creating Auto\+ Horizontal \& Auto\+ Vertical} \label { classKatabatic_ 1_ 1AutoSegment_ secASCreation}
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } is the abstract base class for \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\+ Horizontal} } and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\+ Vertical} } . They are must be created only through the factory method\+ : \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} { Auto\+ Segment\+ ::create()} } .\hypertarget { classKatabatic_ 1_ 1AutoSegment_ secASCharacteristics} { } \subsection { Characteristics of Auto\+ Segments} \label { classKatabatic_ 1_ 1AutoSegment_ secASCharacteristics}
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item Unique ID\+ : to ease the enforcing of a deterministic behavior and to gain some independance from the pointers, each \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } is associated with an unique identifier. { \bfseries I\+ Ds} are now directly taken from the \textbf { Hurricane\+ ::\+ Segment} .
2018-06-06 11:42:26 -05:00
\item Source contact is always lesser than Target contact { \ttfamily (Xs,Ys) $ < $ (Xt,Yt)} .
2018-10-18 11:10:01 -05:00
\item When assembled through \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactVTee} { Auto\+ Contact\+ V\+ Tee} } or \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactHTee} { Auto\+ Contact\+ H\+ Tee} } , Auto\+ Segments became (i.\+ e. must be kept) aligneds. Among a set of aligned Auto\+ Segments, we distinguish a representative trough which we can manipulate the whole set. This representative is called the { \itshape canonical} \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } and is the one with the lowest { \ttfamily id} ).
\item When an aligned set contains at least one global, all the segments of the set are tagged \mbox { \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4a16ef6f2b6b9e44559e41f04c652919ad} { Katabatic\+ ::\+ Seg\+ Weak\+ Global} } . This is especially useful on local ones to know if they are part of a much longer wire.
2018-06-06 11:42:26 -05:00
Conversely, a set of aligned may contains only local segments and thus will not have the flag set.
2018-10-18 11:10:01 -05:00
\item To allow some optimization, the \mbox { \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4a637e0426170a532feac45548e009325d} { Katabatic\+ ::\+ Seg\+ Not\+ Aligned} } tells if a segment is part of an aligned set. It is deduced from the type of both source and target contact\+ : not on the parallel branch of a tee.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
{ \bfseries The Ever Fragmenting Data Structure}
2018-10-18 11:10:01 -05:00
All the transformations applied to the database, after it\textquotesingle { } s initial building, can be reduced to making new doglegs (and layer changes). Another way to put it, is that no Tee is ever created after the initial stage. The consequence is that the segments are only fragmenting more and more (up to a certain limit). The aligneds sets are progessively broken apart as needed, and until there remains only one tee per set (the two segments on the aligned branch).\hypertarget { classKatabatic_ 1_ 1AutoSegment_ secASOperations} { } \subsection { Operations on Auto\+ Segments} \label { classKatabatic_ 1_ 1AutoSegment_ secASOperations}
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \bfseries Slackening.} Constraints transmited through either source or target \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } are too tight (tighter than the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ), by adding straps in the perpandicular direction, the full slack of the segment is restored.
2018-06-06 11:42:26 -05:00
\item { \bfseries Layer Change.} One or two layers above or below the current layer. One up/down may means into the perpandicular routing direction.
\item { \bfseries Dogleg Creation.} Mean breaking the segment in two. This operation is used to slacken the constraints on a segment or restore connexity on source/target contact after a layer change. The new segment is always created on the source.
2018-10-18 11:10:01 -05:00
\item { \bfseries Reduction/\+ Raising.} When a segment is a short dogleg, no greater than one picth, it can use the layer of the perpandiculars.
\end { DoxyItemize} \hypertarget { classKatabatic_ 1_ 1AutoSegment_ secASInvalidate} { } \subsection { Invalidate on Auto\+ Segments} \label { classKatabatic_ 1_ 1AutoSegment_ secASInvalidate}
The simple invalidation of an \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \bfseries do not} invalidate it\textquotesingle { } s source \& target contact.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
An axis position change or a layer change both invalidate the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \bfseries and} it\textquotesingle { } s source \& target contacts.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
For the complete invalidation/revalidation mechanism see \mbox { \hyperlink { classKatabatic_ 1_ 1Session_ secSessionAlgo} { Session Algorithm} } .\hypertarget { classKatabatic_ 1_ 1AutoSegment_ secASAttributes} { } \subsection { Main Attributes of Auto\+ Segments} \label { classKatabatic_ 1_ 1AutoSegment_ secASAttributes}
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } retains all attributes from Segment. The Segment itself beeing accessible through the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ade416d0483aefe986988fa89a7cf6fcf} { base()} } methods.
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item An unique { \ttfamily Id} (for determinism).
2018-10-18 11:10:01 -05:00
\item The \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } from wich it starts from. It is the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } of the source \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } .
\item A state, combination of flags from \mbox { \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4} { Katabatic\+ ::\+ Auto\+ Segment\+ Flag} } .
\item An interval for the optimal range of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } axis.
\item An interval for user\textquotesingle { } s defined constraint on the axis.
\item The interval giving the complete length of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } , that is, with all extentions cap taken into account. This interval is refered as the { \itshape span} .
2018-06-06 11:42:26 -05:00
\item A small counter, of the number of reduced neighbors (never exceed two).
\end { DoxyItemize} \hypertarget { classKatabatic_ 1_ 1AutoSegment_ secASImplementation} { } \subsection { Implementation Details} \label { classKatabatic_ 1_ 1AutoSegment_ secASImplementation}
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } / \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\+ Horizontal} } \& \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\+ Vertical} } are kind of decorators of \textbf { Hurricane\+ ::\+ Segment} (they do not scrictly respect the pattern).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Canonical \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } can should be considered as a kind of Composite.
2018-06-06 11:42:26 -05:00
Thoses objects are created using a Factory method.\hypertarget { classKatabatic_ 1_ 1AutoSegment_ secASMethodsClassif} { } \subsection { Methods Classification} \label { classKatabatic_ 1_ 1AutoSegment_ secASMethodsClassif}
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \itshape Wrapper methods} on the underlying \textbf { Hurricane\+ ::\+ Segment} .
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \itshape Atomic methods} on \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } , that is, which applies exactly on the current \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } .
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \itshape Canonical methods} that applies on the set of aligned Auto\+ Segments. There are two kind of those, the methods part of the A\+ PI, and the ones that make the link with the atomic methods. Those intermediate methods hide some cumbersome \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } list parameters.
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} { Auto\+ Segment\+ ::invalidate()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aa902247a1e967e52cc3ab087cd52b366} { Auto\+ Segment\+ ::compute\+ Optimal()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3881efebb7510d9b22e5f89bcd418954} { Auto\+ Segment\+ ::set\+ Axis()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8ab41a962e18810808f4f065863b5a73} { Auto\+ Segment\+ ::to\+ Constraint\+ Axis()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a750983d7154c94b54537127a3a18e14b} { Auto\+ Segment\+ ::to\+ Optimal\+ Axis()} }
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\end { DoxyItemize}
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \itshape Uniform access} , to simplify the managment of \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\+ Horizontal} } and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\+ Vertical} } through \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } , a set of uniformized methods is introduced. For instance, to avoid to check the dynamic type to choose to call \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8a8e127557d70de70f9efb488be30d1a} { get\+ Source\+ X()} } or \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae913463a76d08b079611a993cebea1a9} { get\+ Source\+ Y()} } , we may call \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f} { get\+ Source\+ U()} } . Uniform methods are named by replacing { \ttfamily X/Y} with { \ttfamily U} .
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f} { Auto\+ Segment\+ ::get\+ Source\+ U()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a828fef2716cc9c370d6d170bb96556ec} { Auto\+ Segment\+ ::get\+ Target\+ U()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab4881df67bd8f036d0199ed6540fe774} { Auto\+ Segment\+ ::get\+ Du\+ Source()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0644d656eedc71dba2fb3c6c0d83ed3f} { Auto\+ Segment\+ ::get\+ Du\+ Target()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a248eb2fbb06e3286650b28567d495f0b} { Auto\+ Segment\+ ::get\+ Span\+ U()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aaf60d18ab6d951a34a3d06959ce2e76f} { Auto\+ Segment\+ ::set\+ Du\+ Source()} }
\item \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a246756d4c8b3e094a0a9d6de3c2109ff} { Auto\+ Segment\+ ::set\+ Du\+ Target()} }
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\end { DoxyItemize}
\subsection { Constructor \& Destructor Documentation}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae64a61508d148cb4a0ee9b5ffb177659} \label { classKatabatic_ 1_ 1AutoSegment_ ae64a61508d148cb4a0ee9b5ffb177659} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !Auto\+ Segment@{ Auto\+ Segment} }
\index { Auto\+ Segment@{ Auto\+ Segment} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { Auto\+ Segment()} { AutoSegment()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } (\begin { DoxyParamCaption} \item [{\textbf{ Segment} $\ast$}] { segment } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [protected]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } constructor. It is not directly accessible, instead use one flavor of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} { Auto\+ Segment\+ ::create()} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ Bounding\+ Box(), Auto\+ Contact\+ ::get\+ G\+ Cell(), Segment\+ ::get\+ Source(), Segment\+ ::get\+ Target(), Box\+ ::get\+ X\+ Max(), Box\+ ::get\+ Y\+ Max(), Auto\+ Contact\+ ::invalidate(), Auto\+ Segment\+ ::is\+ Global(), Auto\+ Segment\+ ::is\+ Horizontal(), Session\+ ::lookup(), Katabatic\+ ::\+ Seg\+ Created, Katabatic\+ ::\+ Seg\+ Horizontal, Auto\+ Segment\+ ::set\+ Flags(), and Auto\+ Segment\+ ::set\+ Optimal\+ Max().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a5d135025de0c1725d6252099c2e70e2b} \label { classKatabatic_ 1_ 1AutoSegment_ a5d135025de0c1725d6252099c2e70e2b} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !````~Auto\+ Segment@{ $ \sim $ \+ Auto\+ Segment} }
\index { ````~Auto\+ Segment@{ $ \sim $ \+ Auto\+ Segment} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { $ \sim $ \+ Auto\+ Segment()} { ~AutoSegment()} }
{ \footnotesize \ttfamily $ \sim $ \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [protected]} , { \ttfamily [virtual]} }
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } destructor. It is not directly accessible, instead use one flavor of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} { Auto\+ Segment\+ ::create()} } .
References Auto\+ Segment\+ ::is\+ Global().
2018-06-06 11:42:26 -05:00
\subsection { Member Function Documentation}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} \label { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !create@{ create} }
\index { create@{ create} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { create()} { create()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ create (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { source, } \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { target, } \item [{\textbf{ Segment} $\ast$}] { hurricane\+ Segment } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-10-18 11:10:01 -05:00
{ \em source} & The source \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em target} & The target \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em hurricane\+ Segment} & The \textbf { Hurricane\+ ::\+ Segment} to decorate. \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The Auto\+ Horizontal/\+ Auto\+ Vertical decorator segment.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Factory method to create \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\+ Horizontal} } or \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\+ Vertical} } . It is important to note that this function may modify the underlying \textbf { Hurricane\+ ::\+ Segment} .
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item Layer is set to the default (bottom) routing Layers.
2018-10-18 11:10:01 -05:00
\item Source \& target anchor of { \ttfamily hurricane\+ Segment} are set on { \ttfamily source} and { \ttfamily target} . If the { \ttfamily hurricane\+ Segment} is already anchored and { \ttfamily source} or { \ttfamily target} are not the one decorating the anchors, an exception is thrown.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::\+ \_ \+ post\+ Create(), Hook\+ ::attach(), Hook\+ ::detach(), Auto\+ Contact\+ ::get\+ Body\+ Hook(), Session\+ ::get\+ Katabatic(), Component\+ ::get\+ Layer(), Session\+ ::get\+ Routing\+ Layer(), Segment\+ ::get\+ Source(), Segment\+ ::get\+ Source\+ Hook(), Segment\+ ::get\+ Target(), Segment\+ ::get\+ Target\+ Hook(), Db\+ U\+ ::get\+ Value\+ String(), Segment\+ ::get\+ Width(), Auto\+ Contact\+ ::get\+ X(), Auto\+ Contact\+ ::get\+ Y(), Auto\+ Contact\+ ::is\+ Fixed(), Katabatic\+ Engine\+ ::is\+ G\+ Metal(), Session\+ ::lookup(), Segment\+ ::set\+ Layer(), Segment\+ ::set\+ Width(), Vertical\+ ::set\+ X(), and Horizontal\+ ::set\+ Y().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ 1\+ G\+ \_ \+ 1\+ M3(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ 1\+ G\+ \_ \+ x\+ M1(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ 1\+ M1\+ \_ \+ 1\+ M2(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ 1\+ Pad(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ x\+ M1\+ \_ \+ x\+ M3(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ x\+ M2(), G\+ Cell\+ Topology\+ ::\+ \_ \+ do\+ \_ \+ x\+ G\+ \_ \+ x\+ M3(), Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Segment\+ ::create(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Access(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Auto\+ Contacts(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Stair\+ Case\+ H(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Stair\+ Case\+ V(), and anonymous\+ \_ \+ namespace\{ \+ Load\+ Gr\+ By\+ Net.\+ cpp\} \+ ::single\+ G\+ Cell().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ afa7ce652576b17985859fd6c29d21489} \label { classKatabatic_ 1_ 1AutoSegment_ afa7ce652576b17985859fd6c29d21489} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !create@{ create} }
\index { create@{ create} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { create()} { create()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ create (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { source, } \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { target, } \item [{unsigned int}] { dir, } \item [{size\+\_\+t}] { depth = { \ttfamily RoutingGauge\+ :\+ :nlayerdepth} } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-10-18 11:10:01 -05:00
{ \em source} & The source \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
2018-10-18 11:10:01 -05:00
{ \em target} & The target \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } . \\
2018-06-06 11:42:26 -05:00
\hline
{ \em dir} & Specify the segment direction. \\
\hline
2018-10-18 11:10:01 -05:00
{ \em depth} & The layer, given by it\textquotesingle { } s depth in the Routing\+ Gauge. \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The Auto\+ Horizontal/\+ Auto\+ Vertical.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Factory method to create \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\+ Horizontal} } or \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\+ Vertical} } . { \ttfamily flags} indicate the direction (Kb\+ Horizontal or Kb\+ Vertical). The underlying Hurricane segment is also created.
References Auto\+ Contact\+ ::base(), Horizontal\+ ::create(), Vertical\+ ::create(), Auto\+ Segment\+ ::create(), Session\+ ::get\+ Routing\+ Layer(), Auto\+ Contact\+ ::get\+ X(), Auto\+ Contact\+ ::get\+ Y(), Auto\+ Contact\+ ::is\+ Fixed(), Katabatic\+ ::\+ Kb\+ Horizontal, and Katabatic\+ ::\+ Kb\+ Vertical.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a53877ff5ef48eb0030c2581a6eeb3c09} \label { classKatabatic_ 1_ 1AutoSegment_ a53877ff5ef48eb0030c2581a6eeb3c09} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !base@{ base} }
\index { base@{ base} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { base()} { base()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily \textbf { Segment} $ \ast $ base (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
{ \bfseries Returns\+ :} the decorated \textbf { Hurricane\+ ::\+ Segment} (const flavor).
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a6f14a3faa93f2c610ea0d2cc7d903706} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a6f14a3faa93f2c610ea0d2cc7d903706} { Auto\+ Horizontal} } .
Referenced by Auto\+ Segment\+ ::get\+ Axis(), Auto\+ Segment\+ ::get\+ Bounding\+ Box(), Auto\+ Segment\+ ::get\+ Canonical(), Auto\+ Segment\+ ::get\+ Cell(), Auto\+ Segment\+ ::get\+ Layer(), Auto\+ Segment\+ ::get\+ Length(), Auto\+ Segment\+ ::get\+ Net(), Auto\+ Segment\+ ::get\+ Opposite\+ Anchor(), Auto\+ Segment\+ ::get\+ Source(), Auto\+ Segment\+ ::get\+ Source\+ Hook(), Auto\+ Segment\+ ::get\+ Source\+ X(), Auto\+ Segment\+ ::get\+ Source\+ Y(), Auto\+ Segment\+ ::get\+ Target(), Auto\+ Segment\+ ::get\+ Target\+ Hook(), Auto\+ Segment\+ ::get\+ Target\+ X(), Auto\+ Segment\+ ::get\+ Target\+ Y(), Auto\+ Segment\+ ::get\+ Width(), Auto\+ Segment\+ ::get\+ X(), Auto\+ Segment\+ ::get\+ Y(), Auto\+ Segment\+ ::invert(), and Auto\+ Segment\+ ::set\+ Layer().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ade416d0483aefe986988fa89a7cf6fcf} \label { classKatabatic_ 1_ 1AutoSegment_ ade416d0483aefe986988fa89a7cf6fcf} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !base@{ base} }
\index { base@{ base} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { base()} { base()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily \textbf { Segment} $ \ast $ base (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [pure virtual]} }
{ \bfseries Returns\+ :} the decorated \textbf { Hurricane\+ ::\+ Segment} .
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9e651c17b47f82166a02865c9296a2df} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a9e651c17b47f82166a02865c9296a2df} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a659b8ed90de679564924afe07af478de} \label { classKatabatic_ 1_ 1AutoSegment_ a659b8ed90de679564924afe07af478de} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Horizontal@{ get\+ Horizontal} }
\index { get\+ Horizontal@{ get\+ Horizontal} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Horizontal()} { getHorizontal()} }
{ \footnotesize \ttfamily \textbf { Horizontal} $ \ast $ get\+ Horizontal (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [virtual]} }
{ \bfseries Returns\+ :} If the decorated segment is a \textbf { Hurricane\+ ::\+ Horizontal} , return it. { \ttfamily N\+ U\+ LL} otherwise.
Reimplemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a659b8ed90de679564924afe07af478de} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab6a809b6f3ef3cf5385fa35580e31e7a} \label { classKatabatic_ 1_ 1AutoSegment_ ab6a809b6f3ef3cf5385fa35580e31e7a} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Vertical@{ get\+ Vertical} }
\index { get\+ Vertical@{ get\+ Vertical} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Vertical()} { getVertical()} }
{ \footnotesize \ttfamily \textbf { Vertical} $ \ast $ get\+ Vertical (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [virtual]} }
{ \bfseries Returns\+ :} If the decorated segment is a \textbf { Hurricane\+ ::\+ Vertical} , return it. { \ttfamily N\+ U\+ LL} otherwise.
Reimplemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ab6a809b6f3ef3cf5385fa35580e31e7a} { Auto\+ Vertical} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a55a3a88610ef1af9931e634f77f2403b} \label { classKatabatic_ 1_ 1AutoSegment_ a55a3a88610ef1af9931e634f77f2403b} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Cell@{ get\+ Cell} }
\index { get\+ Cell@{ get\+ Cell} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Cell()} { getCell()} }
{ \footnotesize \ttfamily \textbf { Cell} $ \ast $ get\+ Cell (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Cell()} .
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Entity\+ ::get\+ Cell().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a692492374623a5c6096b2c4a51190359} \label { classKatabatic_ 1_ 1AutoSegment_ a692492374623a5c6096b2c4a51190359} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Net@{ get\+ Net} }
\index { get\+ Net@{ get\+ Net} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Net()} { getNet()} }
{ \footnotesize \ttfamily \textbf { Net} $ \ast $ get\+ Net (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Net()} .
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Component\+ ::get\+ Net().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), and Auto\+ Segment\+ ::\+ \_ \+ post\+ Create().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab045567c4f529dca7790d66c17c3084f} \label { classKatabatic_ 1_ 1AutoSegment_ ab045567c4f529dca7790d66c17c3084f} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Layer@{ get\+ Layer} }
\index { get\+ Layer@{ get\+ Layer} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Layer()} { getLayer()} }
{ \footnotesize \ttfamily const \textbf { Layer} $ \ast $ get\+ Layer (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Layer()} .
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Component\+ ::get\+ Layer().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Left(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Left(), Auto\+ Contact\+ ::can\+ Move\+ Up(), Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Right(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Right(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), Auto\+ Segment\+ ::can\+ Pivot\+ Up(), Auto\+ Horizontal\+ ::check\+ Positions(), Auto\+ Vertical\+ ::check\+ Positions(), Auto\+ Segment\+ ::make\+ Dogleg(), Auto\+ Segment\+ ::revalidate(), Auto\+ Horizontal\+ ::update\+ Positions(), Auto\+ Vertical\+ ::update\+ Positions(), Auto\+ Contact\+ Turn\+ ::update\+ Topology(), and Auto\+ Contact\+ Terminal\+ ::update\+ Topology().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a63a3ab1e6501bbad68b9efd4998e48c0} \label { classKatabatic_ 1_ 1AutoSegment_ a63a3ab1e6501bbad68b9efd4998e48c0} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Bounding\+ Box@{ get\+ Bounding\+ Box} }
\index { get\+ Bounding\+ Box@{ get\+ Bounding\+ Box} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Bounding\+ Box()} { getBoundingBox()} }
{ \footnotesize \ttfamily Bounding\+ Box $ \ast $ get\+ Bounding\+ Box (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Bounding\+ Box()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Component\+ ::get\+ Bounding\+ Box().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a1defbbaef0a1975993e157a8d5f68ded} \label { classKatabatic_ 1_ 1AutoSegment_ a1defbbaef0a1975993e157a8d5f68ded} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Source\+ Hook@{ get\+ Source\+ Hook} }
\index { get\+ Source\+ Hook@{ get\+ Source\+ Hook} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Source\+ Hook()} { getSourceHook()} }
{ \footnotesize \ttfamily \textbf { Hook} $ \ast $ get\+ Source\+ Hook (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Source\+ Hook()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Source\+ Hook().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ad62048f68151e5db987b5a7c79cce4ed} \label { classKatabatic_ 1_ 1AutoSegment_ ad62048f68151e5db987b5a7c79cce4ed} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Target\+ Hook@{ get\+ Target\+ Hook} }
\index { get\+ Target\+ Hook@{ get\+ Target\+ Hook} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Target\+ Hook()} { getTargetHook()} }
{ \footnotesize \ttfamily \textbf { Hook} $ \ast $ get\+ Target\+ Hook (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Target\+ Hook()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Target\+ Hook().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a497ea2ceeddb939dbc84eae0e7862335} \label { classKatabatic_ 1_ 1AutoSegment_ a497ea2ceeddb939dbc84eae0e7862335} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Source@{ get\+ Source} }
\index { get\+ Source@{ get\+ Source} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Source()} { getSource()} }
{ \footnotesize \ttfamily \textbf { Contact} $ \ast $ get\+ Source (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Source()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Source().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::get\+ Auto\+ Source(), and Auto\+ Segment\+ ::get\+ On\+ Source\+ Contact().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a0862c201bd7d8e5427e44ca2427c2fe6} \label { classKatabatic_ 1_ 1AutoSegment_ a0862c201bd7d8e5427e44ca2427c2fe6} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Target@{ get\+ Target} }
\index { get\+ Target@{ get\+ Target} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Target()} { getTarget()} }
{ \footnotesize \ttfamily \textbf { Contact} $ \ast $ get\+ Target (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Target()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Target().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::get\+ Auto\+ Target(), and Auto\+ Segment\+ ::get\+ On\+ Target\+ Contact().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a9216d4467c2d4e0c7b9d9a8b8e798bee} \label { classKatabatic_ 1_ 1AutoSegment_ a9216d4467c2d4e0c7b9d9a8b8e798bee} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Opposite\+ Anchor@{ get\+ Opposite\+ Anchor} }
\index { get\+ Opposite\+ Anchor@{ get\+ Opposite\+ Anchor} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Opposite\+ Anchor()} { getOppositeAnchor()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily \textbf { Component} $ \ast $ get\+ Opposite\+ Anchor (\begin { DoxyParamCaption} \item [{\textbf{ Component} $\ast$}] { anchor } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Net()} .
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Opposite\+ Anchor().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::get\+ Opposite\+ Anchor().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a7339a1ebc7d46384bc4e1317af84bea1} \label { classKatabatic_ 1_ 1AutoSegment_ a7339a1ebc7d46384bc4e1317af84bea1} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Anchors@{ get\+ Anchors} }
\index { get\+ Anchors@{ get\+ Anchors} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Anchors()} { getAnchors()} }
{ \footnotesize \ttfamily \textbf { Components} get\+ Anchors (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Anchors()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a00b8f54c8171f6699e57de1b8c18eeb1} \label { classKatabatic_ 1_ 1AutoSegment_ a00b8f54c8171f6699e57de1b8c18eeb1} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !getX@{ getX} }
\index { getX@{ getX} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ X()} { getX()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} getX (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ X()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Component\+ ::get\+ X().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), and Auto\+ Contact\+ Terminal\+ ::update\+ Geometry().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a4580de6b074712e400d5d238ce3af054} \label { classKatabatic_ 1_ 1AutoSegment_ a4580de6b074712e400d5d238ce3af054} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !getY@{ getY} }
\index { getY@{ getY} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Y()} { getY()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} getY (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Y()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Component\+ ::get\+ Y().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), and Auto\+ Contact\+ Terminal\+ ::update\+ Geometry().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a9c63fe7288748eaf5332ca796a36d872} \label { classKatabatic_ 1_ 1AutoSegment_ a9c63fe7288748eaf5332ca796a36d872} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Width@{ get\+ Width} }
\index { get\+ Width@{ get\+ Width} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Width()} { getWidth()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Width (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Width()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Width().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab1ca7adfc68761c749a16f65c9aa4088} \label { classKatabatic_ 1_ 1AutoSegment_ ab1ca7adfc68761c749a16f65c9aa4088} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Length@{ get\+ Length} }
\index { get\+ Length@{ get\+ Length} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Length()} { getLength()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Length (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Length()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Length().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Reduce(), and Auto\+ Segment\+ ::must\+ Raise().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8a88dc051a8d324aff8763609957dcaa} \label { classKatabatic_ 1_ 1AutoSegment_ a8a88dc051a8d324aff8763609957dcaa} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Source\+ Position@{ get\+ Source\+ Position} }
\index { get\+ Source\+ Position@{ get\+ Source\+ Position} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Source\+ Position()} { getSourcePosition()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Source\+ Position (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Source\+ Position()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::get\+ Canonical().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a65dea76b4efad9d3caa78be44e96c94c} \label { classKatabatic_ 1_ 1AutoSegment_ a65dea76b4efad9d3caa78be44e96c94c} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Target\+ Position@{ get\+ Target\+ Position} }
\index { get\+ Target\+ Position@{ get\+ Target\+ Position} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Target\+ Position()} { getTargetPosition()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Target\+ Position (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Target\+ Position()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::get\+ Canonical().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8a8e127557d70de70f9efb488be30d1a} \label { classKatabatic_ 1_ 1AutoSegment_ a8a8e127557d70de70f9efb488be30d1a} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ SourceX@{ get\+ SourceX} }
\index { get\+ SourceX@{ get\+ SourceX} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Source\+ X()} { getSourceX()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ SourceX (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Source\+ X()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Source\+ X().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae913463a76d08b079611a993cebea1a9} \label { classKatabatic_ 1_ 1AutoSegment_ ae913463a76d08b079611a993cebea1a9} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ SourceY@{ get\+ SourceY} }
\index { get\+ SourceY@{ get\+ SourceY} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Source\+ Y()} { getSourceY()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ SourceY (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Source\+ Y()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Source\+ Y().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8e6462b43ca9eaeea1e08866cec59a8c} \label { classKatabatic_ 1_ 1AutoSegment_ a8e6462b43ca9eaeea1e08866cec59a8c} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ TargetX@{ get\+ TargetX} }
\index { get\+ TargetX@{ get\+ TargetX} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Target\+ X()} { getTargetX()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ TargetX (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Target\+ X()} .
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Target\+ X().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a003e545e792e8bf22d264bcb3bc90547} \label { classKatabatic_ 1_ 1AutoSegment_ a003e545e792e8bf22d264bcb3bc90547} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ TargetY@{ get\+ TargetY} }
\index { get\+ TargetY@{ get\+ TargetY} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Target\+ Y()} { getTargetY()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ TargetY (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::get\+ Target\+ Y()} .
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::get\+ Target\+ Y().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ acbac6289ab14574da20f26c933e2e741} \label { classKatabatic_ 1_ 1AutoSegment_ acbac6289ab14574da20f26c933e2e741} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !invert@{ invert} }
\index { invert@{ invert} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { invert()} { invert()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} invert (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::invert()} .
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::invert().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aad4271c35e0162c8a4d034dca07f5a4b} \label { classKatabatic_ 1_ 1AutoSegment_ aad4271c35e0162c8a4d034dca07f5a4b} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !set\+ Layer@{ set\+ Layer} }
\index { set\+ Layer@{ set\+ Layer} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\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]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\textbf { Segment\+ ::set\+ Layer()} .
2018-08-19 06:27:09 -05:00
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), and Segment\+ ::set\+ Layer().
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), and Auto\+ Segment\+ ::reduce\+ Dogleg\+ Layer().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a21b9cefd33ae22e4c2070ad441bdd30b} \label { classKatabatic_ 1_ 1AutoSegment_ a21b9cefd33ae22e4c2070ad441bdd30b} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Horizontal@{ is\+ Horizontal} }
\index { is\+ Horizontal@{ is\+ Horizontal} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Horizontal()} { isHorizontal()} }
{ \footnotesize \ttfamily bool is\+ Horizontal (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} { \bfseries true} if the \textbf { Hurricane\+ ::\+ Segment} is Horizontal.
References Katabatic\+ ::\+ Seg\+ Horizontal.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::\+ Auto\+ Segment(), Auto\+ Segment\+ ::compute\+ Optimal(), Auto\+ Segment\+ ::get\+ Axis(), Auto\+ Segment\+ ::get\+ Extremity(), Auto\+ Segment\+ ::get\+ Origin(), Auto\+ Contact\+ Terminal\+ ::get\+ Segment(), Auto\+ Segment\+ ::make\+ Dogleg(), Auto\+ Segment\+ ::set\+ Axis(), Auto\+ Segment\+ ::to\+ Constraint\+ Axis(), and Auto\+ Contact\+ Terminal\+ ::update\+ Geometry().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ abd54544ef1710ee4b67cfb021d73446c} \label { classKatabatic_ 1_ 1AutoSegment_ abd54544ef1710ee4b67cfb021d73446c} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Vertical@{ is\+ Vertical} }
\index { is\+ Vertical@{ is\+ Vertical} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Vertical()} { isVertical()} }
{ \footnotesize \ttfamily bool is\+ Vertical (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if the \textbf { Hurricane\+ ::\+ Segment} is Vertical.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Horizontal.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::compute\+ Optimal(), and Auto\+ Contact\+ Terminal\+ ::get\+ Segment().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a19ba379112d6b29faa45c5eefbf38500} \label { classKatabatic_ 1_ 1AutoSegment_ a19ba379112d6b29faa45c5eefbf38500} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Global@{ is\+ Global} }
\index { is\+ Global@{ is\+ Global} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Global()} { isGlobal()} }
{ \footnotesize \ttfamily bool is\+ Global (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if the segment is global (span over more than one \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Global.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by 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\+ Segment\+ ::canonize(), Auto\+ Segment\+ ::can\+ Reduce(), Auto\+ Segment\+ ::can\+ Slacken(), Auto\+ Contact\+ ::show\+ Topology\+ Error(), and Auto\+ Segment\+ ::$ \sim $ \+ Auto\+ Segment().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ add556a145a89fdbcea82346abfb873dc} \label { classKatabatic_ 1_ 1AutoSegment_ add556a145a89fdbcea82346abfb873dc} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Local@{ is\+ Local} }
\index { is\+ Local@{ is\+ Local} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Local()} { isLocal()} }
{ \footnotesize \ttfamily bool is\+ Local (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if the segment is local (fully enclosed in one \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Global.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), Auto\+ Segment\+ ::can\+ Pivot\+ Up(), G\+ Cell\+ ::check\+ Edge\+ Saturation(), Auto\+ Horizontal\+ ::move\+ U\+ Left(), Auto\+ Vertical\+ ::move\+ U\+ Left(), Auto\+ Horizontal\+ ::move\+ U\+ Right(), and Auto\+ Vertical\+ ::move\+ U\+ Right().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ afd7362b850709bed8b61c1aa22399f97} \label { classKatabatic_ 1_ 1AutoSegment_ afd7362b850709bed8b61c1aa22399f97} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Fixed@{ is\+ Fixed} }
\index { is\+ Fixed@{ is\+ Fixed} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Fixed()} { isFixed()} }
{ \footnotesize \ttfamily bool is\+ Fixed (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment must not be moved by the router.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Fixed.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), Auto\+ Segment\+ ::can\+ Pivot\+ Up(), and Auto\+ Segment\+ ::make\+ Dogleg().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a72741158d19af38e84c5e9c08f91270f} \label { classKatabatic_ 1_ 1AutoSegment_ a72741158d19af38e84c5e9c08f91270f} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Bipoint@{ is\+ Bipoint} }
\index { is\+ Bipoint@{ is\+ Bipoint} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Bipoint()} { isBipoint()} }
{ \footnotesize \ttfamily bool is\+ Bipoint (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if the segment straigh join two terminals.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Bipoint.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aef3a61d223be84ac336c4f7bc64884ba} \label { classKatabatic_ 1_ 1AutoSegment_ aef3a61d223be84ac336c4f7bc64884ba} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Weak\+ Terminal@{ is\+ Weak\+ Terminal} }
\index { is\+ Weak\+ Terminal@{ is\+ Weak\+ Terminal} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Weak\+ Terminal()} { isWeakTerminal()} }
{ \footnotesize \ttfamily bool is\+ Weak\+ Terminal (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment is indirectly connected to a terminal.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Weak\+ Terminal.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), and Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a4605c9284168f0a62fa48aa2d3ae5ee9} \label { classKatabatic_ 1_ 1AutoSegment_ a4605c9284168f0a62fa48aa2d3ae5ee9} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Strong\+ Terminal@{ is\+ Strong\+ Terminal} }
\index { is\+ Strong\+ Terminal@{ is\+ Strong\+ Terminal} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Strong\+ Terminal()} { isStrongTerminal()} }
{ \footnotesize \ttfamily bool is\+ Strong\+ Terminal (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment is directly connected to a terminal.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Aligneds(), Katabatic\+ ::\+ Kb\+ Propagate, and Katabatic\+ ::\+ Seg\+ Strong\+ Terminal.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), and Auto\+ Segment\+ ::can\+ Pivot\+ Up().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a772596f5d5fa897822dbd0da37024735} \label { classKatabatic_ 1_ 1AutoSegment_ a772596f5d5fa897822dbd0da37024735} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Layer\+ Change@{ is\+ Layer\+ Change} }
\index { is\+ Layer\+ Change@{ is\+ Layer\+ Change} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Layer\+ Change()} { isLayerChange()} }
{ \footnotesize \ttfamily bool is\+ Layer\+ Change (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment is a strap used only to connect between two different metal layers on the way up or down.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Layer\+ Change.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), and Auto\+ Segment\+ ::can\+ Pivot\+ Up().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a3776b8258ab6544c9551d0714fcc75d2} \label { classKatabatic_ 1_ 1AutoSegment_ a3776b8258ab6544c9551d0714fcc75d2} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Spin\+ Top@{ is\+ Spin\+ Top} }
\index { is\+ Spin\+ Top@{ is\+ Spin\+ Top} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Spin\+ Top()} { isSpinTop()} }
{ \footnotesize \ttfamily bool is\+ Spin\+ Top (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment is connected to turns and both perpandiculars segments are in the { \itshape top} layer (candidate for reduction).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Reduce(), Auto\+ Segment\+ ::is\+ Spin\+ Top\+ Or\+ Bottom(), Auto\+ Segment\+ ::must\+ Raise(), and Auto\+ Segment\+ ::reduce\+ Dogleg\+ Layer().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab786dbdb67ea727369b1a988497c01d1} \label { classKatabatic_ 1_ 1AutoSegment_ ab786dbdb67ea727369b1a988497c01d1} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Spin\+ Bottom@{ is\+ Spin\+ Bottom} }
\index { is\+ Spin\+ Bottom@{ is\+ Spin\+ Bottom} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Spin\+ Bottom()} { isSpinBottom()} }
{ \footnotesize \ttfamily bool is\+ Spin\+ Bottom (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment is connected to turns and both perpandiculars segments are in the { \itshape bottom} layer (candidate for reduction).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Reduce(), Auto\+ Segment\+ ::is\+ Spin\+ Top\+ Or\+ Bottom(), Auto\+ Segment\+ ::must\+ Raise(), and Auto\+ Segment\+ ::reduce\+ Dogleg\+ Layer().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a90d934f7275aed35f4ecb157c6950d6f} \label { classKatabatic_ 1_ 1AutoSegment_ a90d934f7275aed35f4ecb157c6950d6f} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Spin\+ Top\+ Or\+ Bottom@{ is\+ Spin\+ Top\+ Or\+ Bottom} }
\index { is\+ Spin\+ Top\+ Or\+ Bottom@{ is\+ Spin\+ Top\+ Or\+ Bottom} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Spin\+ Top\+ Or\+ Bottom()} { isSpinTopOrBottom()} }
{ \footnotesize \ttfamily bool is\+ Spin\+ Top\+ Or\+ Bottom (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment is either { \itshape spin top} or { \itshape spin bottom} (candidate for reduction).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::is\+ Spin\+ Bottom(), and Auto\+ Segment\+ ::is\+ Spin\+ Top().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Reduce().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a461c31a8d12458939b78ccecb3b8c299} \label { classKatabatic_ 1_ 1AutoSegment_ a461c31a8d12458939b78ccecb3b8c299} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Reduced@{ is\+ Reduced} }
\index { is\+ Reduced@{ is\+ Reduced} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Reduced()} { isReduced()} }
{ \footnotesize \ttfamily bool is\+ Reduced (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment is actually in a reduced state\+ : it\textquotesingle { } s effective layer will be the one of it\textquotesingle { } s perpandiculars.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Is\+ Reduced.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::reduce\+ Dogleg\+ Layer(), and Auto\+ Segment\+ ::revalidate().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a62d61c231cf404a814ae37665fa8164f} \label { classKatabatic_ 1_ 1AutoSegment_ a62d61c231cf404a814ae37665fa8164f} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Strap@{ is\+ Strap} }
\index { is\+ Strap@{ is\+ Strap} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Strap()} { isStrap()} }
{ \footnotesize \ttfamily bool is\+ Strap (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment has been created from a slackening operation to restore the slack of another segment.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Strap.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a75d91371e5281dd21f60ff39ae70a3e5} \label { classKatabatic_ 1_ 1AutoSegment_ a75d91371e5281dd21f60ff39ae70a3e5} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Dogleg@{ is\+ Dogleg} }
\index { is\+ Dogleg@{ is\+ Dogleg} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Dogleg()} { isDogleg()} }
{ \footnotesize \ttfamily bool is\+ Dogleg (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment has been created as the perpandicular part of a dogleg.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Dogleg.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::to\+ Constraint\+ Axis().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ac540608485240ff88970131ebc02c1ab} \label { classKatabatic_ 1_ 1AutoSegment_ ac540608485240ff88970131ebc02c1ab} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Invalidated@{ is\+ Invalidated} }
\index { is\+ Invalidated@{ is\+ Invalidated} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Invalidated()} { isInvalidated()} }
{ \footnotesize \ttfamily bool is\+ Invalidated (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment has been moved or topologicaly altered.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Invalidated.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::\+ \_ \+ invalidate(), Auto\+ Segment\+ ::invalidate(), and Auto\+ Segment\+ ::revalidate().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a77b075644356f016105b3050b031a2ec} \label { classKatabatic_ 1_ 1AutoSegment_ a77b075644356f016105b3050b031a2ec} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Invalidated\+ Layer@{ is\+ Invalidated\+ Layer} }
\index { is\+ Invalidated\+ Layer@{ is\+ Invalidated\+ Layer} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Invalidated\+ Layer()} { isInvalidatedLayer()} }
{ \footnotesize \ttfamily bool is\+ Invalidated\+ Layer (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment has been changed of layer. Source and Target \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } may need to be altered.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Invalidated\+ Layer.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Contact\+ Turn\+ ::update\+ Topology().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ af7d9cf1d7581b1cab04cf38c64f0f72a} \label { classKatabatic_ 1_ 1AutoSegment_ af7d9cf1d7581b1cab04cf38c64f0f72a} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Created@{ is\+ Created} }
\index { is\+ Created@{ is\+ Created} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Created()} { isCreated()} }
{ \footnotesize \ttfamily bool is\+ Created (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment has just been created and is not revalidated for the first time
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Created.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Contact\+ Terminal\+ ::update\+ Geometry().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ af6d3008d345195a99e0341f0379c33b7} \label { classKatabatic_ 1_ 1AutoSegment_ af6d3008d345195a99e0341f0379c33b7} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Canonical@{ is\+ Canonical} }
\index { is\+ Canonical@{ is\+ Canonical} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Canonical()} { isCanonical()} }
{ \footnotesize \ttfamily bool is\+ Canonical (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if segment is the representant of an aligned set.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Katabatic\+ ::\+ Seg\+ Canonical.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Segment\+ ::canonize(), Auto\+ Segment\+ ::get\+ Canonical(), Auto\+ Segment\+ ::set\+ Axis(), Auto\+ Segment\+ ::to\+ Constraint\+ Axis(), and Auto\+ Segment\+ ::to\+ Optimal\+ Axis().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a2bd22f431b7cf3695babab78fc3b4c9e} \label { classKatabatic_ 1_ 1AutoSegment_ a2bd22f431b7cf3695babab78fc3b4c9e} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Unset\+ Axis@{ is\+ Unset\+ Axis} }
\index { is\+ Unset\+ Axis@{ is\+ Unset\+ Axis} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Unset\+ Axis()} { isUnsetAxis()} }
{ \footnotesize \ttfamily bool is\+ Unset\+ Axis (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} { \bfseries true} if the segment axis has never been set.
References Katabatic\+ ::\+ Seg\+ Axis\+ Set.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a782cff57d3fe10e758d19ee65a06643d} \label { classKatabatic_ 1_ 1AutoSegment_ a782cff57d3fe10e758d19ee65a06643d} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !is\+ Slackened@{ is\+ Slackened} }
\index { is\+ Slackened@{ is\+ Slackened} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { is\+ Slackened()} { isSlackened()} }
{ \footnotesize \ttfamily bool is\+ Slackened (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} { \bfseries true} if the segment has already been slackened.
References Katabatic\+ ::\+ Seg\+ Slackened.
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), and Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a676fcb7ece71d129b7a4d87a3f2e07aa} \label { classKatabatic_ 1_ 1AutoSegment_ a676fcb7ece71d129b7a4d87a3f2e07aa} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !\+ \_ \+ can\+ Slacken@{ \+ \_ \+ can\+ Slacken} }
\index { \+ \_ \+ can\+ Slacken@{ \+ \_ \+ can\+ Slacken} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { \+ \_ \+ can\+ Slacken()} { \_ canSlacken()} }
{ \footnotesize \ttfamily bool \+ \_ \+ can\+ Slacken (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
{ \bfseries Returns\+ :} { \bfseries true} if the segment can be slackened. That is, source or target constraints are less than three pitches.
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a2ced98fb06f208aa88c0962a706e64db} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a2ced98fb06f208aa88c0962a706e64db} { Auto\+ Horizontal} } .
Referenced by Auto\+ Segment\+ ::can\+ Slacken().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ af1a231b2324a486d4ef61b247886cdeb} \label { classKatabatic_ 1_ 1AutoSegment_ af1a231b2324a486d4ef61b247886cdeb} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !can\+ Reduce@{ can\+ Reduce} }
\index { can\+ Reduce@{ can\+ Reduce} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { can\+ Reduce()} { canReduce()} }
{ \footnotesize \ttfamily bool can\+ Reduce (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
{ \bfseries Returns\+ :} { \bfseries true} if the segment can be reduced. That is\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item Source \& target are \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTurn} { Auto\+ Contact\+ Turn} } .
2018-06-06 11:42:26 -05:00
\item It is either { \itshape spin top} or { \itshape spin bottom} , that is connecting perpandiculars both in the same layer.
\item Has a length less or equal one pitch in the perpandicular direction.
\item Neither of the perpandicular are also reduceds.
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Auto\+ Segment\+ ::get\+ Length(), Auto\+ Segment\+ ::is\+ Global(), Auto\+ Segment\+ ::is\+ Spin\+ Bottom(), Auto\+ Segment\+ ::is\+ Spin\+ Top(), Auto\+ Segment\+ ::is\+ Spin\+ Top\+ Or\+ Bottom(), and Auto\+ Contact\+ ::is\+ Turn().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::reduce().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a449ebb156fd51b04bbc029a657b4cded} \label { classKatabatic_ 1_ 1AutoSegment_ a449ebb156fd51b04bbc029a657b4cded} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !must\+ Raise@{ must\+ Raise} }
\index { must\+ Raise@{ must\+ Raise} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { must\+ Raise()} { mustRaise()} }
{ \footnotesize \ttfamily bool must\+ Raise (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if the segment must { \itshape be} reduced. That is\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item It is in reduced state...
\item It is no longer { \itshape spin top} or { \itshape spin bottom} .
2018-10-18 11:10:01 -05:00
\item It\textquotesingle { } s length exceed one pitch in the perpandicular direction.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Length(), Auto\+ Segment\+ ::is\+ Spin\+ Bottom(), Auto\+ Segment\+ ::is\+ Spin\+ Top(), and Katabatic\+ ::\+ Seg\+ Is\+ Reduced.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a43c865bcfcfd6132352a9ac8a84c25cd} \label { classKatabatic_ 1_ 1AutoSegment_ a43c865bcfcfd6132352a9ac8a84c25cd} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !can\+ Dogleg@{ can\+ Dogleg} }
\index { can\+ Dogleg@{ can\+ Dogleg} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { can\+ Dogleg()} { canDogleg()} }
{ \footnotesize \ttfamily unsigned int can\+ Dogleg (\begin { DoxyParamCaption} \item [{\textbf{ Interval}}] { interval } \end { DoxyParamCaption} )}
{ \bfseries Returns\+ :} non-\/ zero if the aligned set of segment can be broken { \itshape outside} { \ttfamily interval} . The returned value could be zero (failure) or \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679} { Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Left} } or \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217afe7fcb4c332f36e477433169b3d3f515} { Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Right} } menaing that the aligned set could be broken on the left of the { \ttfamily interval} (resp. right of it).
References Interval\+ ::contains(), Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::get\+ Span\+ U(), Interval\+ ::get\+ V\+ Max(), Interval\+ ::get\+ V\+ Min(), Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Left, and Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Right.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aad55626c9d793a0b08bcff5be2a5ad0c} \label { classKatabatic_ 1_ 1AutoSegment_ aad55626c9d793a0b08bcff5be2a5ad0c} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !can\+ Move\+ U\+ Left@{ can\+ Move\+ U\+ Left} }
\index { can\+ Move\+ U\+ Left@{ can\+ Move\+ U\+ Left} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { can\+ Move\+ U\+ Left()} { canMoveULeft()} }
{ \footnotesize \ttfamily bool can\+ Move\+ U\+ Left (\begin { DoxyParamCaption} \item [{float}] { reserve = { \ttfamily 0.0} } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
{ \bfseries true} if the { \itshape global} segment can be moved on the left \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } (for a vertical) or down (for an horizontal). The move is accepted only if it do not change the amount of global wiring. Thus the following conditions\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item The segment mustn\textquotesingle { } t be on the leftmost \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } (obvious...).
2018-06-06 11:42:26 -05:00
\item The segment must be global.
2018-10-18 11:10:01 -05:00
\item The source and target contacts must be Auto\+ Contact\+ Turn(s).
\item At least one of the perpandicular must be global { \bfseries and} connected through the { \itshape target} . That is, it\textquotesingle { } s a global which extends toward left.
\item The \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } of maximum density on the left must remains below the current \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } of maximum density, with a margin of { \ttfamily reserve} (expressed in total saturation percentage).
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9b0c21eeb26c256876592ba63438da74} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a9b0c21eeb26c256876592ba63438da74} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a096deb8a143f098eac2bff9ab9c52243} \label { classKatabatic_ 1_ 1AutoSegment_ a096deb8a143f098eac2bff9ab9c52243} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !can\+ Move\+ U\+ Right@{ can\+ Move\+ U\+ Right} }
\index { can\+ Move\+ U\+ Right@{ can\+ Move\+ U\+ Right} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { can\+ Move\+ U\+ Right()} { canMoveURight()} }
{ \footnotesize \ttfamily bool can\+ Move\+ U\+ Right (\begin { DoxyParamCaption} \item [{float}] { reserve = { \ttfamily 0.0} } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
{ \bfseries true} if the { \itshape global} segment can be moved on the right \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } (for a vertical) or up (for an horizontal). The move is accepted only if it do not change the amount of global wiring. Thus the following conditions\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item The segment mustn\textquotesingle { } t be on the leftmost \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } (obvious...).
2018-06-06 11:42:26 -05:00
\item The segment must be global.
2018-10-18 11:10:01 -05:00
\item The source and target contacts must be Auto\+ Contact\+ Turn(s).
\item At least one of the perpandicular must be global { \bfseries and} connected through the { \itshape source} . That is, it\textquotesingle { } s a global which extends toward right.
\item The \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } of maximum density on the left must remains below the current \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } of maximum density, with a margin of { \ttfamily reserve} (expressed in total saturation percentage).
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ad0c972e34d6bac47bd9276a7d6e053d8} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ ad0c972e34d6bac47bd9276a7d6e053d8} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6482341a342eb6e6b3b43f13fd4436f6} \label { classKatabatic_ 1_ 1AutoSegment_ a6482341a342eb6e6b3b43f13fd4436f6} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !can\+ Move\+ Up@{ can\+ Move\+ Up} }
\index { can\+ Move\+ Up@{ can\+ Move\+ Up} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { can\+ Move\+ Up()} { canMoveUp()} }
{ \footnotesize \ttfamily bool can\+ Move\+ Up (\begin { DoxyParamCaption} \item [{float}] { reserve = { \ttfamily 0.0} , } \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
{ \em reserve} & Number of track that must remains free { \itshape after} the move. \\
\hline
{ \em flags} & Modificate the method behavior, see below. \\
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
{ \bfseries true} if the segment can be moved up, that is to the next layer above in the same preferred routing direction. This method will check that in every \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } of the segment, at least { \ttfamily reserve} tracks are still avalaible { \itshape after} the segment has been moved up ({ \ttfamily reserve} can be less than { \ttfamily 1.\+ 0} ).
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Possible (bitwise) value for { \ttfamily flags} \+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \ttfamily Kb\+ Allow\+ Terminal} \+ : allow strong terminal to be moved up.
\item { \ttfamily Kb\+ Allow\+ Local} \+ : allow local segments to be moved up.
\item { \ttfamily Kb\+ Propagate} \+ : perform the check on the whole aligned set.
\item { \ttfamily Kb\+ With\+ Perpands} \+ : also check the density on the perpandiculars begin \& end \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } , there must be at least a { \ttfamily 0.\+ 5} density reserve on them.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Session\+ ::get\+ Configuration(), G\+ Cell\+ ::get\+ Fragmentation(), Auto\+ Segment\+ ::get\+ G\+ Cells(), G\+ Cell\+ ::get\+ Index(), Auto\+ Segment\+ ::get\+ Layer(), Routing\+ Gauge\+ ::get\+ Layer\+ Depth(), Session\+ ::get\+ Routing\+ Gauge(), Auto\+ Segment\+ ::is\+ Fixed(), Auto\+ Segment\+ ::is\+ Layer\+ Change(), Auto\+ Segment\+ ::is\+ Local(), Auto\+ Segment\+ ::is\+ Strong\+ Terminal(), Katabatic\+ ::\+ Kb\+ Propagate, and Katabatic\+ ::\+ Kb\+ With\+ Perpands.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6cca3afced729492cae6649a92dc7e88} \label { classKatabatic_ 1_ 1AutoSegment_ a6cca3afced729492cae6649a92dc7e88} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !can\+ Pivot\+ Up@{ can\+ Pivot\+ Up} }
\index { can\+ Pivot\+ Up@{ can\+ Pivot\+ Up} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { can\+ Pivot\+ Up()} { canPivotUp()} }
{ \footnotesize \ttfamily bool can\+ Pivot\+ Up (\begin { DoxyParamCaption} \item [{float}] { reserve = { \ttfamily 0.0} , } \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
{ \em reserve} & Number of track that must remains free { \itshape after} the move. \\
\hline
{ \em flags} & Modificate the method behavior, see below.\\
\hline
\end { DoxyParams}
2018-10-18 11:10:01 -05:00
Checks of the segment can be { \itshape pivoted} up. The difference between { \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6482341a342eb6e6b3b43f13fd4436f6} { can\+ Move\+ Up()} } } and { \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6cca3afced729492cae6649a92dc7e88} { can\+ Pivot\+ Up()} } } lies in the fact that no perpandicular segment needs to be altered if the current segment is moved up. For example an { \bfseries M3} segment connected to only { \bfseries M4} can be pivoted up (in { \bfseries M5} ), but if connected to { \bfseries M2} , it cannot.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Possible (bitwise) value for { \ttfamily flags} \+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \ttfamily Kb\+ Propagate} \+ : perform the check on the whole aligned set.
\item { \ttfamily Kb\+ Ignore\+ Contacts} \+ : do not check the source \& target layers to know if the segment can be pivoted up.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Auto\+ Segment\+ ::get\+ G\+ Cells(), Auto\+ Segment\+ ::get\+ Layer(), Routing\+ Gauge\+ ::get\+ Layer\+ Depth(), Auto\+ Contact\+ ::get\+ Min\+ Depth(), Session\+ ::get\+ Routing\+ Gauge(), Auto\+ Segment\+ ::is\+ Fixed(), Auto\+ Segment\+ ::is\+ Layer\+ Change(), Auto\+ Segment\+ ::is\+ Local(), Auto\+ Segment\+ ::is\+ Strong\+ Terminal(), and Katabatic\+ ::\+ Kb\+ Propagate.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a24de580d1a371b8d27640cbc3431990b} \label { classKatabatic_ 1_ 1AutoSegment_ a24de580d1a371b8d27640cbc3431990b} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !can\+ Pivot\+ Down@{ can\+ Pivot\+ Down} }
\index { can\+ Pivot\+ Down@{ can\+ Pivot\+ Down} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { can\+ Pivot\+ Down()} { canPivotDown()} }
{ \footnotesize \ttfamily bool can\+ Pivot\+ Down (\begin { DoxyParamCaption} \item [{float}] { reserve = { \ttfamily 0.0} , } \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
{ \em reserve} & Number of track that must remains free { \itshape after} the move. \\
\hline
{ \em flags} & Modificate the method behavior, see below.\\
\hline
\end { DoxyParams}
2018-10-18 11:10:01 -05:00
Checks of the segment can be { \itshape pivoted} down. The difference between { \ttfamily can\+ Move\+ Down()} and { \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a24de580d1a371b8d27640cbc3431990b} { can\+ Pivot\+ Down()} } } lies in the fact that no perpandicular segment needs to be altered if the current segment is moved down.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Possible (bitwise) value for { \ttfamily flags} \+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \ttfamily Kb\+ Propagate} \+ : perform the check on the whole aligned set.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Auto\+ Segment\+ ::get\+ G\+ Cells(), Auto\+ Segment\+ ::get\+ Layer(), Routing\+ Gauge\+ ::get\+ Layer\+ Depth(), Auto\+ Contact\+ ::get\+ Max\+ Depth(), Session\+ ::get\+ Routing\+ Gauge(), Auto\+ Segment\+ ::is\+ Fixed(), Auto\+ Segment\+ ::is\+ Layer\+ Change(), Auto\+ Segment\+ ::is\+ Local(), Auto\+ Segment\+ ::is\+ Strong\+ Terminal(), and Katabatic\+ ::\+ Kb\+ Propagate.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ adec088de3c4c47a28ee9d58eb6d9cf85} \label { classKatabatic_ 1_ 1AutoSegment_ adec088de3c4c47a28ee9d58eb6d9cf85} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !can\+ Slacken@{ can\+ Slacken} }
\index { can\+ Slacken@{ can\+ Slacken} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { can\+ Slacken()} { canSlacken()} }
{ \footnotesize \ttfamily bool can\+ Slacken (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const}
{ \bfseries Returns\+ :} { \bfseries true} if the segment can be slackened. That is, source or target constraints are less than three pitches.
If { \ttfamily flags} contains Kb\+ Propagate, look on the whole aligned set.
References Auto\+ Segment\+ ::\+ \_ \+ can\+ Slacken(), Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::is\+ Global(), and Katabatic\+ ::\+ Kb\+ Propagate.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ af026a81002bd907f1ccd4a4784aaa1db} \label { classKatabatic_ 1_ 1AutoSegment_ af026a81002bd907f1ccd4a4784aaa1db} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !check\+ Positions@{ check\+ Positions} }
\index { check\+ Positions@{ check\+ Positions} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { check\+ Positions()} { checkPositions()} }
{ \footnotesize \ttfamily bool check\+ Positions (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
{ \bfseries Returns\+ :} { \bfseries true} if the relative positions of source \& target are coherent. (source $ < $ = target).
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a6575c17bfa589c087215c87678e5719c} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a6575c17bfa589c087215c87678e5719c} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a3d5732fd10b4a05076981066a4674487} \label { classKatabatic_ 1_ 1AutoSegment_ a3d5732fd10b4a05076981066a4674487} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !check\+ Constraints@{ check\+ Constraints} }
\index { check\+ Constraints@{ check\+ Constraints} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { check\+ Constraints()} { checkConstraints()} }
{ \footnotesize \ttfamily bool check\+ Constraints (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
{ \bfseries Returns\+ :} { \bfseries true} if the constraint intervel is coherent (non-\/ empty or punctual in the worst case).
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a8aef8f4bbafe3426840f9ebf31bb3b81} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a8aef8f4bbafe3426840f9ebf31bb3b81} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ afdedcef127ad2a3677a5b48d7d3453f3} \label { classKatabatic_ 1_ 1AutoSegment_ afdedcef127ad2a3677a5b48d7d3453f3} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Id@{ get\+ Id} }
\index { get\+ Id@{ get\+ Id} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Id()} { getId()} }
{ \footnotesize \ttfamily unsigned long get\+ Id (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } unique identifier.
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ pre\+ Destroy(), and Auto\+ Vertical\+ ::\+ \_ \+ pre\+ Destroy().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae35b78590ed6aa546b626ef95f28c533} \label { classKatabatic_ 1_ 1AutoSegment_ ae35b78590ed6aa546b626ef95f28c533} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Direction@{ get\+ Direction} }
\index { get\+ Direction@{ get\+ Direction} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Direction()} { getDirection()} }
{ \footnotesize \ttfamily unsigned int get\+ Direction (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
{ \bfseries Returns\+ :} \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a1a9045673c5d3c30b067100f1440ae1b} { Katabatic\+ ::\+ Kb\+ Horizontal} } or \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a284cad95203a27172838b09e396e3590} { Katabatic\+ ::\+ Kb\+ Vertical} } according to the decorated segment.
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a0dd7cf705ace42c662c289955313b2e9} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a0dd7cf705ace42c662c289955313b2e9} { Auto\+ Horizontal} } .
Referenced by Auto\+ Segment\+ ::get\+ Min\+ Span\+ U(), Auto\+ Segment\+ ::get\+ Perpandiculars\+ Bound(), and Auto\+ Segment\+ ::make\+ Dogleg().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a819cf639562a031a1e2e061fe1293d66} \label { classKatabatic_ 1_ 1AutoSegment_ a819cf639562a031a1e2e061fe1293d66} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ G\+ Cell@{ get\+ G\+ Cell} }
\index { get\+ G\+ Cell@{ get\+ G\+ Cell} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ G\+ Cell()} { getGCell()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } $ \ast $ get\+ G\+ Cell (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } into which the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } starts (the one of the source).
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(), Auto\+ Horizontal\+ ::get\+ G\+ Cells(), Auto\+ Vertical\+ ::get\+ G\+ Cells(), 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_ 1AutoSegment_ a8ca0022e253d355817d46a057ae01625} \label { classKatabatic_ 1_ 1AutoSegment_ a8ca0022e253d355817d46a057ae01625} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ G\+ Cells@{ get\+ G\+ Cells} }
\index { get\+ G\+ Cells@{ get\+ G\+ Cells} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ G\+ Cells()} { getGCells()} }
{ \footnotesize \ttfamily size\+ \_ \+ t get\+ G\+ Cells (\begin { DoxyParamCaption} \item [{vector$<$ \mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} $\ast$$>$ \&}] { gcells } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-10-18 11:10:01 -05:00
{ \em gcells} & A vector that will be filled by all the G\+ Cells that the segment overlap. In increasing order, from source to target. \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The vector\textquotesingle { } s size.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ accdaef4410043f64da247a94a309733e} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ accdaef4410043f64da247a94a309733e} { Auto\+ Horizontal} } .
2018-08-19 06:27:09 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), and Auto\+ Segment\+ ::can\+ Pivot\+ Up().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a2ca3fac97e325ec8a55d3e03a2ce11a6} \label { classKatabatic_ 1_ 1AutoSegment_ a2ca3fac97e325ec8a55d3e03a2ce11a6} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Auto\+ Source@{ get\+ Auto\+ Source} }
\index { get\+ Auto\+ Source@{ get\+ Auto\+ Source} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Auto\+ Source()} { getAutoSource()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ get\+ Auto\+ Source (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The source \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Source(), and Session\+ ::lookup().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
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\+ Horizontal\+ ::can\+ Move\+ U\+ Left(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Left(), Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Right(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Right(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), Auto\+ Segment\+ ::can\+ Pivot\+ Up(), Auto\+ Segment\+ ::can\+ Reduce(), Auto\+ Horizontal\+ ::check\+ Constraints(), Auto\+ Vertical\+ ::check\+ Constraints(), Auto\+ Segment\+ ::compute\+ Optimal(), Auto\+ Segment\+ ::compute\+ Terminal(), Auto\+ Horizontal\+ ::get\+ Constraints(), Auto\+ Vertical\+ ::get\+ Constraints(), Auto\+ Horizontal\+ ::get\+ G\+ Cells(), Auto\+ Vertical\+ ::get\+ G\+ Cells(), Auto\+ Horizontal\+ ::get\+ Source\+ Constraints(), Auto\+ Vertical\+ ::get\+ Source\+ Constraints(), Auto\+ Segment\+ ::make\+ Dogleg(), Auto\+ Horizontal\+ ::move\+ U\+ Left(), Auto\+ Vertical\+ ::move\+ U\+ Left(), Auto\+ Horizontal\+ ::move\+ U\+ Right(), Auto\+ Vertical\+ ::move\+ U\+ Right(), Auto\+ Segment\+ ::raise(), Auto\+ Segment\+ ::reduce(), Auto\+ Segment\+ ::reduce\+ Dogleg\+ Layer(), Auto\+ Segment\+ ::revalidate(), and Auto\+ Segment\+ ::to\+ Constraint\+ Axis().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ afa494ddc031f4dd1c24999ff83fb878c} \label { classKatabatic_ 1_ 1AutoSegment_ afa494ddc031f4dd1c24999ff83fb878c} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Auto\+ Target@{ get\+ Auto\+ Target} }
\index { get\+ Auto\+ Target@{ get\+ Auto\+ Target} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Auto\+ Target()} { getAutoTarget()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ get\+ Auto\+ Target (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The target \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Target(), and Session\+ ::lookup().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
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\+ Horizontal\+ ::can\+ Move\+ U\+ Left(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Left(), Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Horizontal\+ ::can\+ Move\+ U\+ Right(), Auto\+ Vertical\+ ::can\+ Move\+ U\+ Right(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), Auto\+ Segment\+ ::can\+ Pivot\+ Up(), Auto\+ Segment\+ ::can\+ Reduce(), Auto\+ Horizontal\+ ::check\+ Constraints(), Auto\+ Vertical\+ ::check\+ Constraints(), Auto\+ Segment\+ ::compute\+ Optimal(), Auto\+ Segment\+ ::compute\+ Terminal(), Auto\+ Horizontal\+ ::get\+ Constraints(), Auto\+ Vertical\+ ::get\+ Constraints(), Auto\+ Horizontal\+ ::get\+ G\+ Cells(), Auto\+ Vertical\+ ::get\+ G\+ Cells(), Auto\+ Horizontal\+ ::get\+ Target\+ Constraints(), Auto\+ Vertical\+ ::get\+ Target\+ Constraints(), Auto\+ Segment\+ ::make\+ Dogleg(), Auto\+ Horizontal\+ ::move\+ U\+ Left(), Auto\+ Vertical\+ ::move\+ U\+ Left(), Auto\+ Horizontal\+ ::move\+ U\+ Right(), Auto\+ Vertical\+ ::move\+ U\+ Right(), Auto\+ Segment\+ ::raise(), Auto\+ Segment\+ ::reduce(), Auto\+ Segment\+ ::reduce\+ Dogleg\+ Layer(), and Auto\+ Segment\+ ::revalidate().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a2c5b0faacc768bf61e17eb72a4ccc248} \label { classKatabatic_ 1_ 1AutoSegment_ a2c5b0faacc768bf61e17eb72a4ccc248} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Opposite\+ Anchor@{ get\+ Opposite\+ Anchor} }
\index { get\+ Opposite\+ Anchor@{ get\+ Opposite\+ Anchor} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Opposite\+ Anchor()} { getOppositeAnchor()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } $ \ast $ get\+ Opposite\+ Anchor (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { contact } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The source or target \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } opposite to { \ttfamily contact} .
References Auto\+ Contact\+ ::base(), Auto\+ Segment\+ ::get\+ Opposite\+ Anchor(), and Session\+ ::lookup().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a206b53c34f57945b6c7bdb711101e38f} \label { classKatabatic_ 1_ 1AutoSegment_ a206b53c34f57945b6c7bdb711101e38f} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Perpandiculars\+ Bound@{ get\+ Perpandiculars\+ Bound} }
\index { get\+ Perpandiculars\+ Bound@{ get\+ Perpandiculars\+ Bound} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Perpandiculars\+ Bound()} { getPerpandicularsBound()} }
{ \footnotesize \ttfamily size\+ \_ \+ t get\+ Perpandiculars\+ Bound (\begin { DoxyParamCaption} \item [{set$<$ \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$$>$ \&}] { bounds } \end { DoxyParamCaption} )}
2018-08-19 06:27:09 -05:00
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-10-18 11:10:01 -05:00
{ \em bounds} & A vector that will be filled by all the Auto\+ Segments perpandicular to this one that induce a constraint. \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The vector\textquotesingle { } s size.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Direction(), Component\+ ::get\+ Slave\+ Components(), Collection$ < $ Type $ > $ \+ ::get\+ Sub\+ Set(), and Session\+ ::lookup().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a58c1170381b915930188608dab311442} \label { classKatabatic_ 1_ 1AutoSegment_ a58c1170381b915930188608dab311442} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Parent@{ get\+ Parent} }
\index { get\+ Parent@{ get\+ Parent} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Parent()} { getParent()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ get\+ Parent (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} If this segment has been created by a dogleg operation, the parent is the one from which we fragmented. \mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab5b5aaa5b318369feee6003dbad039c2} \label { classKatabatic_ 1_ 1AutoSegment_ ab5b5aaa5b318369feee6003dbad039c2} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Axis@{ get\+ Axis} }
\index { get\+ Axis@{ get\+ Axis} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Axis()} { getAxis()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Axis (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } axis position.
References Auto\+ Segment\+ ::base(), Component\+ ::get\+ X(), Component\+ ::get\+ Y(), and Auto\+ Segment\+ ::is\+ Horizontal().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::compute\+ Optimal(), Auto\+ Segment\+ ::set\+ Axis(), Auto\+ Segment\+ ::to\+ Constraint\+ Axis(), and Auto\+ Segment\+ ::to\+ Optimal\+ Axis().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f} \label { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ SourceU@{ get\+ SourceU} }
\index { get\+ SourceU@{ get\+ SourceU} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Source\+ U()} { getSourceU()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ SourceU (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \itshape uniform} source position. (X for an horizontal and Y for a Vertical).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ad521ffba761b0e81b7b81b99d62f76f9} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ ad521ffba761b0e81b7b81b99d62f76f9} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a828fef2716cc9c370d6d170bb96556ec} \label { classKatabatic_ 1_ 1AutoSegment_ a828fef2716cc9c370d6d170bb96556ec} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ TargetU@{ get\+ TargetU} }
\index { get\+ TargetU@{ get\+ TargetU} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Target\+ U()} { getTargetU()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ TargetU (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \itshape uniform} target position. (X for an horizontal and Y for a Vertical).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a4d52a506cd19dfa8e22e1dc0695bd960} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a4d52a506cd19dfa8e22e1dc0695bd960} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab4881df67bd8f036d0199ed6540fe774} \label { classKatabatic_ 1_ 1AutoSegment_ ab4881df67bd8f036d0199ed6540fe774} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Du\+ Source@{ get\+ Du\+ Source} }
\index { get\+ Du\+ Source@{ get\+ Du\+ Source} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Du\+ Source()} { getDuSource()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Du\+ Source (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \itshape uniform} delta from source. (dX for an horizontal and dY for a Vertical).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a760500b1fd027c71f5362dd8c0b01ea7} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a760500b1fd027c71f5362dd8c0b01ea7} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a0644d656eedc71dba2fb3c6c0d83ed3f} \label { classKatabatic_ 1_ 1AutoSegment_ a0644d656eedc71dba2fb3c6c0d83ed3f} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Du\+ Target@{ get\+ Du\+ Target} }
\index { get\+ Du\+ Target@{ get\+ Du\+ Target} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Du\+ Target()} { getDuTarget()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Du\+ Target (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \itshape uniform} delta from source. (dX for an horizontal and dY for a Vertical).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a76e349c14c904b3300a15caa1ee8b680} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a76e349c14c904b3300a15caa1ee8b680} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab5fb22520af4b94f2ae984304fa64c26} \label { classKatabatic_ 1_ 1AutoSegment_ ab5fb22520af4b94f2ae984304fa64c26} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Origin@{ get\+ Origin} }
\index { get\+ Origin@{ get\+ Origin} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Origin()} { getOrigin()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Origin (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \itshape uniform} source (lowest) \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } coordinate. (dX for an horizontal and dY for a Vertical).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ X(), G\+ Cell\+ ::get\+ Y(), and Auto\+ Segment\+ ::is\+ Horizontal().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::compute\+ Optimal(), Auto\+ Segment\+ ::get\+ Optimal\+ Max(), Auto\+ Segment\+ ::get\+ Optimal\+ Min(), Auto\+ Segment\+ ::set\+ Optimal\+ Max(), and Auto\+ Segment\+ ::set\+ Optimal\+ Min().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a5b81aad92361558c3b9e60fd501b89ba} \label { classKatabatic_ 1_ 1AutoSegment_ a5b81aad92361558c3b9e60fd501b89ba} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Extremity@{ get\+ Extremity} }
\index { get\+ Extremity@{ get\+ Extremity} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Extremity()} { getExtremity()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Extremity (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \itshape uniform} target (greatest) \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } coordinate. (dX for an horizontal and dY for a Vertical).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References G\+ Cell\+ ::get\+ X\+ Max(), G\+ Cell\+ ::get\+ Y\+ Max(), and Auto\+ Segment\+ ::is\+ Horizontal().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::compute\+ Optimal().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a248eb2fbb06e3286650b28567d495f0b} \label { classKatabatic_ 1_ 1AutoSegment_ a248eb2fbb06e3286650b28567d495f0b} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ SpanU@{ get\+ SpanU} }
\index { get\+ SpanU@{ get\+ SpanU} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Span\+ U()} { getSpanU()} }
{ \footnotesize \ttfamily \textbf { Interval} get\+ SpanU (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \itshape uniform} occupying interval (on X for horizontal and on Y for vertical).
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a0b5ac47ab175815e1a9bc07f2517614a} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a0b5ac47ab175815e1a9bc07f2517614a} { Auto\+ Horizontal} } .
Referenced by Auto\+ Segment\+ ::can\+ Dogleg(), and Auto\+ Segment\+ ::make\+ Dogleg().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ acc329583aa1546ed5a01e0628f3ca6ad} \label { classKatabatic_ 1_ 1AutoSegment_ acc329583aa1546ed5a01e0628f3ca6ad} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Min\+ SpanU@{ get\+ Min\+ SpanU} }
\index { get\+ Min\+ SpanU@{ get\+ Min\+ SpanU} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Min\+ Span\+ U()} { getMinSpanU()} }
{ \footnotesize \ttfamily \textbf { Interval} get\+ Min\+ SpanU (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } { \itshape uniform} minimum occupying interval, computed from the constraints of all the supporting aligned Auto\+ Contacts. (on X for horizontal and on Y for vertical).
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Direction(), Interval\+ ::get\+ V\+ Max(), and Interval\+ ::get\+ V\+ Min().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab7685e309e1d910db3e8237f8a898c35} \label { classKatabatic_ 1_ 1AutoSegment_ ab7685e309e1d910db3e8237f8a898c35} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Source\+ Constraints@{ get\+ Source\+ Constraints} }
\index { get\+ Source\+ Constraints@{ get\+ Source\+ Constraints} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Source\+ Constraints()} { getSourceConstraints()} }
{ \footnotesize \ttfamily \textbf { Interval} get\+ Source\+ Constraints (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The Interval into witch the source \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } can vary. By default all deduced constraints and user constraints are took into account. If { \ttfamily flags} contains { \ttfamily Kb\+ Native\+ Constraints} the constraint returned is only the enclosing \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a3239751f475bc65adb9d56f6c771ebb0} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a3239751f475bc65adb9d56f6c771ebb0} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::make\+ Dogleg().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a9c1b8b3cd57fb7b0bf60c7a6148237c2} \label { classKatabatic_ 1_ 1AutoSegment_ a9c1b8b3cd57fb7b0bf60c7a6148237c2} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Target\+ Constraints@{ get\+ Target\+ Constraints} }
\index { get\+ Target\+ Constraints@{ get\+ Target\+ Constraints} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Target\+ Constraints()} { getTargetConstraints()} }
{ \footnotesize \ttfamily \textbf { Interval} get\+ Target\+ Constraints (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily 0} } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-10-18 11:10:01 -05:00
The Interval into witch the target \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } can vary. By default all deduced constraints and user constraints are took into account. If { \ttfamily flags} contains { \ttfamily Kb\+ Native\+ Constraints} the constraint returned is only the enclosing \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ad2b5aeb2604548378c8d78c60862091f} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ ad2b5aeb2604548378c8d78c60862091f} { Auto\+ Horizontal} } .
Referenced by Auto\+ Segment\+ ::make\+ Dogleg().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a7c2fed22b081f8d3b7a69abb457153ea} \label { classKatabatic_ 1_ 1AutoSegment_ a7c2fed22b081f8d3b7a69abb457153ea} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Constraints@{ get\+ Constraints} }
\index { get\+ Constraints@{ get\+ Constraints} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Constraints()} { getConstraints()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily bool get\+ Constraints (\begin { DoxyParamCaption} \item [{\textbf{ Db\+U\+::\+Unit} \&}] { min, } \item [{\textbf{ Db\+U\+::\+Unit} \&}] { max } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} in { \ttfamily min} \& { \ttfamily max} the allowed range for the segment axis.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a16737e7f2b77f8595fd2b607fac0f2f5} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a16737e7f2b77f8595fd2b607fac0f2f5} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::compute\+ Optimal(), Auto\+ Segment\+ ::get\+ Constraints(), Auto\+ Segment\+ ::get\+ Slack(), Auto\+ Segment\+ ::to\+ Constraint\+ Axis(), and Auto\+ Segment\+ ::to\+ Optimal\+ Axis().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a29c3a56daaf4c78aa3ae6edbde37dd42} \label { classKatabatic_ 1_ 1AutoSegment_ a29c3a56daaf4c78aa3ae6edbde37dd42} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Constraints@{ get\+ Constraints} }
\index { get\+ Constraints@{ get\+ Constraints} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Constraints()} { getConstraints()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily bool get\+ Constraints (\begin { DoxyParamCaption} \item [{\textbf{ Interval} \&}] { i } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} in { \ttfamily i} the allowed range for the segment axis.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Constraints(), Interval\+ ::get\+ V\+ Max(), and Interval\+ ::get\+ V\+ Min().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aa7cf8d4df6a5d945dd180d45e8bbcedf} \label { classKatabatic_ 1_ 1AutoSegment_ aa7cf8d4df6a5d945dd180d45e8bbcedf} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ User\+ Constraints@{ get\+ User\+ Constraints} }
\index { get\+ User\+ Constraints@{ get\+ User\+ Constraints} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ User\+ Constraints()} { getUserConstraints()} }
{ \footnotesize \ttfamily const \textbf { Interval} \& get\+ User\+ Constraints (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} A reference to the additional constraints added to the axis of the segment.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::get\+ Constraints(), and Auto\+ Vertical\+ ::get\+ Constraints().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8789ebe71b2ff3d0265f5319a3be5afb} \label { classKatabatic_ 1_ 1AutoSegment_ a8789ebe71b2ff3d0265f5319a3be5afb} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Slack@{ get\+ Slack} }
\index { get\+ Slack@{ get\+ Slack} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Slack()} { getSlack()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Slack (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The length of the axis constraint interval.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Constraints().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a9405b4f5345d116f71c40ba2c16097d0} \label { classKatabatic_ 1_ 1AutoSegment_ a9405b4f5345d116f71c40ba2c16097d0} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Optimal\+ Min@{ get\+ Optimal\+ Min} }
\index { get\+ Optimal\+ Min@{ get\+ Optimal\+ Min} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Optimal\+ Min()} { getOptimalMin()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Optimal\+ Min (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } minimum axis optimal range.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Origin(), and Db\+ U\+ ::lambda().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::get\+ Cost(), Auto\+ Segment\+ ::get\+ Optimal(), and Auto\+ Segment\+ ::to\+ Optimal\+ Axis().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a1bada13dd4460386d4bed22c1a4b3921} \label { classKatabatic_ 1_ 1AutoSegment_ a1bada13dd4460386d4bed22c1a4b3921} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Optimal\+ Max@{ get\+ Optimal\+ Max} }
\index { get\+ Optimal\+ Max@{ get\+ Optimal\+ Max} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Optimal\+ Max()} { getOptimalMax()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Optimal\+ Max (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } maximum axis optimal range.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Origin(), and Db\+ U\+ ::lambda().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::get\+ Cost(), Auto\+ Segment\+ ::get\+ Optimal(), and Auto\+ Segment\+ ::to\+ Optimal\+ Axis().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a110201bd7c64ed78522cfb3f7b142431} \label { classKatabatic_ 1_ 1AutoSegment_ a110201bd7c64ed78522cfb3f7b142431} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Optimal@{ get\+ Optimal} }
\index { get\+ Optimal@{ get\+ Optimal} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Optimal()} { getOptimal()} }
{ \footnotesize \ttfamily \textbf { Interval} \& get\+ Optimal (\begin { DoxyParamCaption} \item [{\textbf{ Interval} \&}] { i } \end { DoxyParamCaption} ) const}
Inialize { \ttfamily i} with the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } axis optimal range.
References Auto\+ Segment\+ ::get\+ Optimal\+ Max(), Auto\+ Segment\+ ::get\+ Optimal\+ Min(), Interval\+ ::get\+ V\+ Max(), and Interval\+ ::get\+ V\+ Min().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a0e3a02c7a9c1bd559fda628d596b00cd} \label { classKatabatic_ 1_ 1AutoSegment_ a0e3a02c7a9c1bd559fda628d596b00cd} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Cost@{ get\+ Cost} }
\index { get\+ Cost@{ get\+ Cost} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Cost()} { getCost()} }
{ \footnotesize \ttfamily \textbf { Db\+ U\+ ::\+ Unit} get\+ Cost (\begin { DoxyParamCaption} \item [{\textbf{ Db\+U\+::\+Unit}}] { axis } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
The cost if this segment is placed at { \ttfamily axis} . The cost is null if { \ttfamily axis} is inside the optimal interval and is the distance toward the nearest bound outside.
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Optimal\+ Max(), and Auto\+ Segment\+ ::get\+ Optimal\+ Min().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8acbe1037827da2c2fef71a18c5886c7} \label { classKatabatic_ 1_ 1AutoSegment_ a8acbe1037827da2c2fef71a18c5886c7} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Canonical@{ get\+ Canonical} }
\index { get\+ Canonical@{ get\+ Canonical} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Canonical()} { getCanonical()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/2]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ get\+ Canonical (\begin { DoxyParamCaption} \item [{\textbf{ Db\+U\+::\+Unit} \&}] { min, } \item [{\textbf{ Db\+U\+::\+Unit} \&}] { max } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
The canonical segment associated to this one. Additionnaly compute the source \& target position of the whole set of aligned segments.
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::base(), Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::get\+ Source\+ Position(), Auto\+ Segment\+ ::get\+ Target\+ Position(), and Auto\+ Segment\+ ::is\+ Canonical().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::get\+ Canonical().
2018-08-19 06:27:09 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a988beca5780421c168a2475a5298009a} \label { classKatabatic_ 1_ 1AutoSegment_ a988beca5780421c168a2475a5298009a} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Canonical@{ get\+ Canonical} }
\index { get\+ Canonical@{ get\+ Canonical} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Canonical()} { getCanonical()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ get\+ Canonical (\begin { DoxyParamCaption} \item [{\textbf{ Interval} \&}] { i } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-08-19 06:27:09 -05:00
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
The canonical segment associated to this one. Additionnaly compute the source \& target position of the whole set of aligned segments.
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Canonical(), Interval\+ ::get\+ V\+ Max(), and Interval\+ ::get\+ V\+ Min().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a1a6fac115cb81db48e3ac9ffa0721bb5} \label { classKatabatic_ 1_ 1AutoSegment_ a1a6fac115cb81db48e3ac9ffa0721bb5} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !unset\+ Flags@{ unset\+ Flags} }
\index { unset\+ Flags@{ unset\+ Flags} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { unset\+ Flags()} { unsetFlags()} }
{ \footnotesize \ttfamily void unset\+ Flags (\begin { DoxyParamCaption} \item [{unsigned int}] { flags } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
Unsets { \ttfamily flags} given as arguments.
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Segment\+ ::canonize(), Auto\+ Segment\+ ::compute\+ Terminal(), Auto\+ Horizontal\+ ::move\+ U\+ Left(), Auto\+ Vertical\+ ::move\+ U\+ Left(), Auto\+ Horizontal\+ ::move\+ U\+ Right(), Auto\+ Vertical\+ ::move\+ U\+ Right(), Auto\+ Segment\+ ::revalidate(), Auto\+ Horizontal\+ ::update\+ Orient(), and Auto\+ Vertical\+ ::update\+ Orient().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aeb14f94914af58657a0dc2f50ec98df5} \label { classKatabatic_ 1_ 1AutoSegment_ aeb14f94914af58657a0dc2f50ec98df5} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !set\+ Flags@{ set\+ Flags} }
\index { set\+ Flags@{ set\+ Flags} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { set\+ Flags()} { setFlags()} }
{ \footnotesize \ttfamily void set\+ Flags (\begin { DoxyParamCaption} \item [{unsigned int}] { flags } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
Sets { \ttfamily flags} given as arguments.
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::\+ \_ \+ invalidate(), Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Horizontal\+ ::\+ \_ \+ post\+ Create(), Auto\+ Vertical\+ ::\+ \_ \+ post\+ Create(), Auto\+ Segment\+ ::\+ Auto\+ Segment(), Auto\+ Segment\+ ::canonize(), Auto\+ Segment\+ ::compute\+ Terminal(), G\+ Cell\+ Topology\+ ::do\+ Rp\+ \_ \+ \+ Auto\+ Contacts(), Auto\+ Segment\+ ::invalidate(), Auto\+ Horizontal\+ ::move\+ U\+ Left(), Auto\+ Vertical\+ ::move\+ U\+ Left(), Auto\+ Horizontal\+ ::move\+ U\+ Right(), Auto\+ Vertical\+ ::move\+ U\+ Right(), Auto\+ Segment\+ ::revalidate(), Auto\+ Horizontal\+ ::update\+ Orient(), and Auto\+ Vertical\+ ::update\+ Orient().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aaf60d18ab6d951a34a3d06959ce2e76f} \label { classKatabatic_ 1_ 1AutoSegment_ aaf60d18ab6d951a34a3d06959ce2e76f} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !set\+ Du\+ Source@{ set\+ Du\+ Source} }
\index { set\+ Du\+ Source@{ set\+ Du\+ Source} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { set\+ Du\+ Source()} { setDuSource()} }
{ \footnotesize \ttfamily void set\+ Du\+ Source (\begin { DoxyParamCaption} \item [{\textbf{ Db\+U\+::\+Unit}}] { du } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [pure virtual]} }
Set the { \itshape uniform} { \ttfamily dU} from source anchor (dX for Horizontal, dY for Vertical).
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a756616a1967c5ad8efd08be96d18f25d} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a756616a1967c5ad8efd08be96d18f25d} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a246756d4c8b3e094a0a9d6de3c2109ff} \label { classKatabatic_ 1_ 1AutoSegment_ a246756d4c8b3e094a0a9d6de3c2109ff} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !set\+ Du\+ Target@{ set\+ Du\+ Target} }
\index { set\+ Du\+ Target@{ set\+ Du\+ Target} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { set\+ Du\+ Target()} { setDuTarget()} }
{ \footnotesize \ttfamily void set\+ Du\+ Target (\begin { DoxyParamCaption} \item [{\textbf{ Db\+U\+::\+Unit}}] { du } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [pure virtual]} }
Set the { \itshape uniform} { \ttfamily dU} from target anchor (dX for Horizontal, dY for Vertical).
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9df2ef68c1fbf4159cc837be5c699b53} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a9df2ef68c1fbf4159cc837be5c699b53} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ abc72aaeefa7450eaf67aee3212ec974d} \label { classKatabatic_ 1_ 1AutoSegment_ abc72aaeefa7450eaf67aee3212ec974d} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !compute\+ Terminal@{ compute\+ Terminal} }
\index { compute\+ Terminal@{ compute\+ Terminal} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { compute\+ Terminal()} { computeTerminal()} }
{ \footnotesize \ttfamily void compute\+ Terminal (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
Recompute the terminal status of an \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } . Initially, a segment which source or target is a terminal is flagged as Seg\+ Strong\+ Terminal. After a topological modification, if the segment is no longer directly attached to a terminal, the status is progessively weakened. Once it reaches the weakest level, it stays on it so the algorithm can work out which segments is a start to a path toward a terminal.
Status from stronger to weaker\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item \mbox { \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4a93251a6b8197685e2aaf77a760851557} { Katabatic\+ ::\+ Seg\+ Strong\+ Terminal} } .
\item \mbox { \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4a7b3e09b8ab4cf676fd308535d7fba892} { Katabatic\+ ::\+ Seg\+ Weak\+ Terminal1} }
\item \mbox { \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4a32f77fa2da27348bcfc294a039efd766} { Katabatic\+ ::\+ Seg\+ Weak\+ Terminal2} }
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
\begin { DoxyParagraph} { Remark\+ : The weakening is poorly done. After making a dogleg we do not}
know which of the segment must be weakened if not directly attached on a terminal. We must examinate source \& target.
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::\+ \_ \+ get\+ Flags(), Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Katabatic\+ ::\+ Seg\+ Weak\+ Terminal, Katabatic\+ ::\+ Seg\+ Weak\+ Terminal1, Katabatic\+ ::\+ Seg\+ Weak\+ Terminal2, Auto\+ Segment\+ ::set\+ Flags(), and Auto\+ Segment\+ ::unset\+ Flags().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a102e0f4bbb0386e41be214d15a9e4549} \label { classKatabatic_ 1_ 1AutoSegment_ a102e0f4bbb0386e41be214d15a9e4549} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !update\+ Orient@{ update\+ Orient} }
\index { update\+ Orient@{ update\+ Orient} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { update\+ Orient()} { updateOrient()} }
{ \footnotesize \ttfamily void update\+ Orient (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Ensure that source is lower than target. Swap them if needed. Swap never occurs on global segment because their source and target anchors are from different \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } , which are already ordered.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a59058f4593049c583c5b3698ff81b299} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a59058f4593049c583c5b3698ff81b299} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::\+ \_ \+ post\+ Create(), and Auto\+ Segment\+ ::revalidate().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6d95f4de39c13611786c95ddc7b8942e} \label { classKatabatic_ 1_ 1AutoSegment_ a6d95f4de39c13611786c95ddc7b8942e} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !update\+ Positions@{ update\+ Positions} }
\index { update\+ Positions@{ update\+ Positions} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { update\+ Positions()} { updatePositions()} }
{ \footnotesize \ttfamily void update\+ Positions (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Update the segment begenning and ending positions. The positions takes into account the extension caps and reflect the real space used by the segment under it\textquotesingle { } s long axis.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9662a77c2ed8553d6a0312c5292060ad} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a9662a77c2ed8553d6a0312c5292060ad} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::\+ \_ \+ post\+ Create(), and Auto\+ Segment\+ ::revalidate().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae82ffef92ad9ffdc5da5e0c1830d9537} \label { classKatabatic_ 1_ 1AutoSegment_ ae82ffef92ad9ffdc5da5e0c1830d9537} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !merge\+ User\+ Constraints@{ merge\+ User\+ Constraints} }
\index { merge\+ User\+ Constraints@{ merge\+ User\+ Constraints} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { merge\+ User\+ Constraints()} { mergeUserConstraints()} }
{ \footnotesize \ttfamily void merge\+ User\+ Constraints (\begin { DoxyParamCaption} \item [{const \textbf{ Interval} \&}] { constraints } \end { DoxyParamCaption} )}
Constraints applies on the valid axis interval. Merge in { \ttfamily constraints} with the user\textquotesingle { } s constraints. The resulting constraints is the intersection of the former user\textquotesingle { } s contraints and the one given as argument.
References Interval\+ ::intersection().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ac8768352909d37ebad1c06c9cf4ef8bb} \label { classKatabatic_ 1_ 1AutoSegment_ ac8768352909d37ebad1c06c9cf4ef8bb} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !reset\+ User\+ Constraints@{ reset\+ User\+ Constraints} }
\index { reset\+ User\+ Constraints@{ reset\+ User\+ Constraints} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { reset\+ User\+ Constraints()} { resetUserConstraints()} }
{ \footnotesize \ttfamily void reset\+ User\+ Constraints (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
Constraints applies on the valid axis interval. Suppress all user\textquotesingle { } s constraints. \mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ af92b3d000552b630695879dd5d4736a1} \label { classKatabatic_ 1_ 1AutoSegment_ af92b3d000552b630695879dd5d4736a1} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !set\+ Optimal\+ Min@{ set\+ Optimal\+ Min} }
\index { set\+ Optimal\+ Min@{ set\+ Optimal\+ Min} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { set\+ Optimal\+ Min()} { setOptimalMin()} }
{ \footnotesize \ttfamily void set\+ Optimal\+ Min (\begin { DoxyParamCaption} \item [{\textbf{ Db\+U\+::\+Unit}}] { min } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
Sets the lower bound of the optimal axis interval.
2018-10-18 11:10:01 -05:00
References Db\+ U\+ ::get\+ Lambda(), and Auto\+ Segment\+ ::get\+ Origin().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::compute\+ Optimal().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a90173ab4f35b98c6544f9482ccd93b5e} \label { classKatabatic_ 1_ 1AutoSegment_ a90173ab4f35b98c6544f9482ccd93b5e} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !set\+ Optimal\+ Max@{ set\+ Optimal\+ Max} }
\index { set\+ Optimal\+ Max@{ set\+ Optimal\+ Max} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { set\+ Optimal\+ Max()} { setOptimalMax()} }
{ \footnotesize \ttfamily void set\+ Optimal\+ Max (\begin { DoxyParamCaption} \item [{\textbf{ Db\+U\+::\+Unit}}] { max } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [inline]} }
2018-06-06 11:42:26 -05:00
Sets the lower bound of the optimal axis interval.
2018-10-18 11:10:01 -05:00
References Db\+ U\+ ::get\+ Lambda(), and Auto\+ Segment\+ ::get\+ Origin().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::\+ Auto\+ Segment(), and Auto\+ Segment\+ ::compute\+ Optimal().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a88ac40c065bce0ff97792d18b41b6a67} \label { classKatabatic_ 1_ 1AutoSegment_ a88ac40c065bce0ff97792d18b41b6a67} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !revalidate@{ revalidate} }
\index { revalidate@{ revalidate} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { revalidate()} { revalidate()} }
{ \footnotesize \ttfamily \textbf { Interval} revalidate (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Mark this segment as valid (unset the Invalidated flag) and update positions. Unlike \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} { Auto\+ Segment\+ ::invalidate()} } , it\textquotesingle { } s an atomic method.
References Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Auto\+ Contact\+ ::get\+ Layer(), Auto\+ Segment\+ ::get\+ Layer(), Auto\+ Contact\+ ::get\+ Perpandicular(), Layer\+ ::get\+ Top(), Auto\+ Segment\+ ::is\+ Invalidated(), Auto\+ Segment\+ ::is\+ Reduced(), Auto\+ Contact\+ ::is\+ Turn(), Observable\+ ::notify(), Katabatic\+ ::\+ Seg\+ Created, Katabatic\+ ::\+ Seg\+ Invalidated, Katabatic\+ ::\+ Seg\+ Invalidated\+ Layer, Katabatic\+ ::\+ Seg\+ Source\+ Bottom, Katabatic\+ ::\+ Seg\+ Source\+ Top, Katabatic\+ ::\+ Seg\+ Target\+ Bottom, Katabatic\+ ::\+ Seg\+ Target\+ Top, Auto\+ Segment\+ ::set\+ Flags(), Auto\+ Segment\+ ::unset\+ Flags(), Auto\+ Segment\+ ::update\+ Orient(), and Auto\+ Segment\+ ::update\+ Positions().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a39c927c04b5016770692b9b8448c2f04} \label { classKatabatic_ 1_ 1AutoSegment_ a39c927c04b5016770692b9b8448c2f04} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !make\+ Dogleg@{ make\+ Dogleg} }
\index { make\+ Dogleg@{ make\+ Dogleg} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { make\+ Dogleg()} { makeDogleg()} \hspace { 0.1cm} { \footnotesize \ttfamily [1/3]} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ make\+ Dogleg (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { from } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-10-18 11:10:01 -05:00
{ \em from} & The \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } { \itshape from} which we want to make a dogleg.\\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
2018-10-18 11:10:01 -05:00
This method is dedicated for the restauration of topology connexity on Auto\+ Contcact after a layer change on one of their connected \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
It perform three operations\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyEnumerate}
2018-10-18 11:10:01 -05:00
\item Create a dogleg on the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } (using the normal \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } variant).
\item Adjust the layers of the dogleg according whether we are going { \itshape up} or { \itshape down} from the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } { \ttfamily from} to the segment.
\item Returns the new \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } connected to { \ttfamily from} (it may be the same as before, { \bfseries if} the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } is the source of the segment).
2018-06-06 11:42:26 -05:00
\end { DoxyEnumerate}
2018-10-18 11:10:01 -05:00
References Layer\+ ::contains(), Auto\+ Segment\+ ::get\+ Auto\+ Source(), Routing\+ Gauge\+ ::get\+ Contact\+ Layer(), Session\+ ::get\+ Doglegs(), Auto\+ Contact\+ ::get\+ G\+ Cell(), Auto\+ Contact\+ ::get\+ Layer(), Auto\+ Segment\+ ::get\+ Layer(), Routing\+ Gauge\+ ::get\+ Layer\+ Depth(), Session\+ ::get\+ Routing\+ Gauge(), Routing\+ Gauge\+ ::get\+ Routing\+ Layer(), Auto\+ Contact\+ ::get\+ X(), Auto\+ Contact\+ ::get\+ Y(), and Auto\+ Segment\+ ::is\+ Horizontal().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Contact\+ Turn\+ ::update\+ Topology(), and Auto\+ Contact\+ Terminal\+ ::update\+ Topology().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a5ca22c853ee33a2b26367eaf29457766} \label { classKatabatic_ 1_ 1AutoSegment_ a5ca22c853ee33a2b26367eaf29457766} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !make\+ Dogleg@{ make\+ Dogleg} }
\index { make\+ Dogleg@{ make\+ Dogleg} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { make\+ Dogleg()} { makeDogleg()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/3]} }
{ \footnotesize \ttfamily unsigned int make\+ Dogleg (\begin { DoxyParamCaption} \item [{\textbf{ Interval}}] { interval, } \item [{unsigned int}] { flags = { \ttfamily KbNoFlags} } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
Make a dogleg { \itshape in a set of aligned segments} , thus the dogleg may not be created on { \ttfamily this} segment but in one which span intersect { \ttfamily interval} .
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} A set of flags telling if the break has occured on the left candidate (\mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679} { Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Left} } ) or right (\mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217afe7fcb4c332f36e477433169b3d3f515} { Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Right} } ). it is combined with the flag telling if the above or below layer was used for the dogleg. In case of failure, zero is returned.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Break the set of aligned segments so the break point is { \itshape outside} { \ttfamily interval} . The break point so can occurs on the { \itshape left} of the interval (\mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679} { Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Left} } ) or on the { \itshape right} of the interval (\mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217afe7fcb4c332f36e477433169b3d3f515} { Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Right} } ). When the set of aligned segments fully enclose { \ttfamily interval} , a choice has to be made between the left and right candidate. The rules are as follow\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item A { \itshape left} candidate include the { \itshape min} of the interval into it\textquotesingle { } s span.
\item A { \itshape right} candidate include the { \itshape max} of the interval into it\textquotesingle { } s span.
2018-06-06 11:42:26 -05:00
\item In certain topologies, there can be more than left or right candidates (more than one segment of the set intersect the bounds of the interval). Thoses candidates are ecludeds.
\item If the two candidates are avalaibles, we choose the one with the greated { \itshape native} constraints.
\item In case of strict equality, the left candidate is choosen.
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::\+ \_ \+ make\+ Dogleg(), Interval\+ ::contains(), Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Auto\+ Segment\+ ::get\+ Direction(), Session\+ ::get\+ Doglegs(), Auto\+ Contact\+ ::get\+ G\+ Cell(), G\+ Cell\+ ::get\+ Right(), G\+ Cell\+ ::get\+ Side(), Interval\+ ::get\+ Size(), Auto\+ Segment\+ ::get\+ Source\+ Constraints(), Auto\+ Segment\+ ::get\+ Span\+ U(), Auto\+ Segment\+ ::get\+ Target\+ Constraints(), G\+ Cell\+ ::get\+ Up(), Db\+ U\+ ::get\+ Value\+ String(), Interval\+ ::get\+ V\+ Max(), Interval\+ ::get\+ V\+ Min(), Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Left, Katabatic\+ ::\+ Kb\+ Dogleg\+ On\+ Right, Katabatic\+ ::\+ Kb\+ Horizontal, and Katabatic\+ ::\+ Kb\+ Native\+ Constraints.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aa21b16647c1750ba8b3eb9d99b12f073} \label { classKatabatic_ 1_ 1AutoSegment_ aa21b16647c1750ba8b3eb9d99b12f073} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !make\+ Dogleg@{ make\+ Dogleg} }
\index { make\+ Dogleg@{ make\+ Dogleg} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { make\+ Dogleg()} { makeDogleg()} \hspace { 0.1cm} { \footnotesize \ttfamily [3/3]} }
{ \footnotesize \ttfamily unsigned int make\+ Dogleg (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} $\ast$}] { dogleg\+ G\+ Cell, } \item [{unsigned int}] { flags = { \ttfamily KbNoFlags} } \end { DoxyParamCaption} )}
Make a dogleg { \itshape in a set of aligned segments} , thus the dogleg may not be created on { \ttfamily this} segment but in the one which is under { \ttfamily dogleg\+ G\+ Cell} .
{ \bfseries Returns\+ :} A flag telling if the above or below layer was used for the perpandicular segment (\mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217af756099f1bbe259dd1bf22067dc40eac} { Katabatic\+ ::\+ Kb\+ Use\+ Above\+ Layer} } or \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a41cbd981337678e042354f340bfae25d} { Katabatic\+ ::\+ Kb\+ Use\+ Below\+ Layer} } ).
References Auto\+ Segment\+ ::\+ \_ \+ make\+ Dogleg(), Katabatic\+ ::\+ Engine\+ Global\+ Loaded, Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::get\+ Direction(), Session\+ ::get\+ Katabatic(), G\+ Cell\+ ::get\+ Side(), Auto\+ Segment\+ ::get\+ Span\+ U(), Interval\+ ::intersect(), and Auto\+ Segment\+ ::is\+ Fixed().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a37a14b40295ccb50cd5001891385807b} \label { classKatabatic_ 1_ 1AutoSegment_ a37a14b40295ccb50cd5001891385807b} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !\+ \_ \+ make\+ Dogleg@{ \+ \_ \+ make\+ Dogleg} }
\index { \+ \_ \+ make\+ Dogleg@{ \+ \_ \+ make\+ Dogleg} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { \+ \_ \+ make\+ Dogleg()} { \_ makeDogleg()} }
{ \footnotesize \ttfamily unsigned int \+ \_ \+ make\+ Dogleg (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1GCell}{G\+Cell}} $\ast$}] { dogleg\+ G\+ Cell, } \item [{unsigned int}] { flags } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
{ \bfseries This method is the workhorse for the various dogleg and topology restauration methods.} It is the atomic method that actually make the dogleg on { \bfseries this} segment.
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217af756099f1bbe259dd1bf22067dc40eac} { Katabatic\+ ::\+ Kb\+ Use\+ Above\+ Layer} } if the dogleg is using the { \itshape above} layer (\mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a41cbd981337678e042354f340bfae25d} { Katabatic\+ ::\+ Kb\+ Use\+ Below\+ Layer} } for the below layer).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Break the current segment in two (a.\+ k.\+ a. making a dogleg).
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item The segment is broken inside { \ttfamily dogleg\+ G\+ Cell} .
2018-06-06 11:42:26 -05:00
\item Two new segments are createds, one perpandicular and one parallel.
\item The original segment is always kept attached to the { \itshape source} . (the new parallel fragment is attached to the { \itshape target} ).
\item The perpandicular segment is in the layer { \itshape above} by default. If we are already on the topmost routing layer, the { \itshape below} layer is used.
2018-10-18 11:10:01 -05:00
\item If the segment pass through the breaking \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } , it\textquotesingle { } s axis is set into the center. If the segment is local, the axis is the middle of the segment.
\item The Local/\+ Global kind of the original segment is updated. The local/global status is computed by the constructor of the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } for the perpandicular and the new parallel.
\item The terminal state is updated. If the segment is a strong terminal the part that is no longer directly connected to the terminal is demoted to \mbox { \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4a7b3e09b8ab4cf676fd308535d7fba892} { Katabatic\+ ::\+ Seg\+ Weak\+ Terminal1} } .
2018-06-06 11:42:26 -05:00
\item The perpandicular is obviously a canonical. If the broken segment is canonical, the original { \bfseries is} left canonical and only the new parallel is re-\/ canonized. Otherwise, we re-\/ canonise both sets of aligned segments (the one on the source and the one on the target).
\item The three segments are added to the session dogleg stack.
\end { DoxyItemize}
After this method call the net topology is guarantee to be valid.
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a36c0eecad40d3559b5378caefec6a7e0} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a36c0eecad40d3559b5378caefec6a7e0} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::make\+ Dogleg().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ af8ca7b17e952f4b599aeeb2f4e5be395} \label { classKatabatic_ 1_ 1AutoSegment_ af8ca7b17e952f4b599aeeb2f4e5be395} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !move\+ U\+ Left@{ move\+ U\+ Left} }
\index { move\+ U\+ Left@{ move\+ U\+ Left} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { move\+ U\+ Left()} { moveULeft()} }
{ \footnotesize \ttfamily bool move\+ U\+ Left (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
{ \bfseries This function do not manage an aligned set. It applies on { \ttfamily this} segment only.}
2018-10-18 11:10:01 -05:00
Displace an Horizontal or Vertical segment to the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } below (a.\+ k.\+ a. lower or inferior). Rules for displacement\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item The segment must be connected at both end to a turn contact (we do not want to manage more complex cases for the time beeing).
2018-10-18 11:10:01 -05:00
\item And, of course, the segment must not already by on the bottomost \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } ...
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
The displacement take care of\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item Managing the status of the various perpandiculars. The stretched one are made global if needed. The shrinked one made local, if needed.
2018-10-18 11:10:01 -05:00
\item The supporting \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\+ Contact} } (source \& target) are changed of \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } .
\item If the segment is global, the go-\/ through G\+ Cells are updateds.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if the move has succeeded.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a1fa2421b74bf0eb934b7002fd3da2321} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a1fa2421b74bf0eb934b7002fd3da2321} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ad7fd54ca229fcf5ccd99f87b019b9cbc} \label { classKatabatic_ 1_ 1AutoSegment_ ad7fd54ca229fcf5ccd99f87b019b9cbc} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !move\+ U\+ Right@{ move\+ U\+ Right} }
\index { move\+ U\+ Right@{ move\+ U\+ Right} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { move\+ U\+ Right()} { moveURight()} }
{ \footnotesize \ttfamily bool move\+ U\+ Right (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [pure virtual]} }
2018-06-06 11:42:26 -05:00
{ \bfseries This function do not manage an aligned set. It applies on { \ttfamily this} segment only.}
2018-10-18 11:10:01 -05:00
Displace an Horizontal or Vertical segment to the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } above (a.\+ k.\+ a. upper or superior). Rules for displacement\+ :
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af8ca7b17e952f4b599aeeb2f4e5be395} { Auto\+ Segment\+ ::move\+ U\+ Left()} } for a complete description.
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
Implemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ aa469e37853e31f8b1bc817518c896d62} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ aa469e37853e31f8b1bc817518c896d62} { Auto\+ Horizontal} } .
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a1fbc0adb4c0b14632edc7c55f028cd4b} \label { classKatabatic_ 1_ 1AutoSegment_ a1fbc0adb4c0b14632edc7c55f028cd4b} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !slacken@{ slacken} }
\index { slacken@{ slacken} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { slacken()} { slacken()} }
{ \footnotesize \ttfamily void slacken (\begin { DoxyParamCaption} \item [{unsigned int}] { flags } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
If the the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } is attached trough source and/or target to a terminal with too tight constraints, create a dogleg on overconstrained extremities.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
If { \ttfamily flags} contains \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d} { Katabatic\+ ::\+ Kb\+ Propagate} } , not only the current segment will be looked up, but the whole aligned set. Note that due to the structure of the database, there can be no more than two terminal connected segments on the whole set (one on each extremity).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
If { \ttfamily flags} contains \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a1d6ccf82d04758a0922270d4f469066a} { Katabatic\+ ::\+ Kb\+ Half\+ Slacken} } , the number of tracks under which the constraints are considered too tight is 3. Otherwise it is 10, that is a whole \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } side span. This flag should be used when a long set of global wire is overconstrained by only one of it\textquotesingle { } s terminal, the other one offering sufficient slack (typically\+ : 8).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
The segment will also be slackened from it\textquotesingle { } s terminal if the difference between the current slack (resulting from all the constraints of the aligned set) and the native slack is less than 3 tracks. This case means that we are already near the native slack and it not sufficent enough a degree of freedom.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
The { \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1fbc0adb4c0b14632edc7c55f028cd4b} { slacken()} } } method reject the slackening of short locals as shown in figure { \bfseries 2.\+ a} . One way or another, we must connect to the terminal through { \bfseries this} short local. If we cannot place it, breaking it in two other short local wouldn\textquotesingle { } t help. In fact, it will only clutter more the \mbox { \hyperlink { classKatabatic_ 1_ 1GCell} { G\+ Cell} } and make subsequent routing more difficult.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
The figures { \bfseries 2.\+ b} and { \bfseries 2.\+ c} shows the special case of slackening an horizontal from an { \itshape horizontal} terminal. In the original configuration, the slack on segment { \ttfamily id\+ :10} is null, it\textquotesingle { } s only choice is to be aligned with the terminal. If a slackening is requested, it generally implies that the horizontal track is blocked, and close to the terminal. Based on thoses hypothesis, when we slacken the segment { \ttfamily id\+ :10} we impose that the { \itshape source} contact is { \bfseries fixed} on the terminal itself. That is, the segment { \ttfamily id\+ :10} will be reduced to a zero-\/ length and we made an immediate turn (see { \bfseries 2.\+ c} ).
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Aligneds(), and Katabatic\+ ::\+ Kb\+ Propagate.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ acecc9a1d55a271a4b1587d7872cfe133} \label { classKatabatic_ 1_ 1AutoSegment_ acecc9a1d55a271a4b1587d7872cfe133} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !reduce\+ Dogleg\+ Layer@{ reduce\+ Dogleg\+ Layer} }
\index { reduce\+ Dogleg\+ Layer@{ reduce\+ Dogleg\+ Layer} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { reduce\+ Dogleg\+ Layer()} { reduceDoglegLayer()} }
{ \footnotesize \ttfamily bool reduce\+ Dogleg\+ Layer (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Perform the actual layer change on a reduced segment. This method is to be called juste before destroying the \mbox { \hyperlink { namespaceKatabatic} { Katabatic} } database.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if a change occurs.
References Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Session\+ ::get\+ Routing\+ Layer(), Auto\+ Segment\+ ::is\+ Reduced(), Auto\+ Segment\+ ::is\+ Spin\+ Bottom(), Auto\+ Segment\+ ::is\+ Spin\+ Top(), Auto\+ Contact\+ ::set\+ Layer(), and Auto\+ Segment\+ ::set\+ Layer().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a27a6a2c747ff93d209878a32d97e9157} \label { classKatabatic_ 1_ 1AutoSegment_ a27a6a2c747ff93d209878a32d97e9157} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !reduce@{ reduce} }
\index { reduce@{ reduce} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { reduce()} { reduce()} }
{ \footnotesize \ttfamily bool reduce (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
Sets the segment into reduced state.
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if the operation did succeed. The layer will not be actually changed until the \mbox { \hyperlink { namespaceKatabatic} { Katabatic} } database is saved/destroyed.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
A segment can be reduced if\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item Source \& target are \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactTurn} { Auto\+ Contact\+ Turn} } .
2018-06-06 11:42:26 -05:00
\item It is either { \itshape spin top} or { \itshape spin bottom} , that is connecting perpandiculars both in the same layer.
\item Has a length less or equal one pitch in the perpandicular direction.
\item Neither of the perpandicular are also reduceds.
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
If segment { \ttfamily id\+ :12} is reduced, it prevents { \ttfamily id\+ :10} \& { \ttfamily id\+ :14} to be also reduced, by increasing the { \ttfamily \+ \_ \+ reduced} counter. In this example { \ttfamily id\+ :14} is { \itshape spin top} and { \ttfamily id\+ :12} is { \itshape spin bottom} .
2018-06-06 11:42:26 -05:00
If we reduce two adjacent segments, one will go up while the other will go down (they will actually exchange their layers), it will thus defeat the purpose of creating a { \itshape same layer} dogleg. Besides, the turn contact between them will be changed into a pure metal one, generating a disconnexion...
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ace393c3c082a5e62a348168354660e39} { Auto\+ Segment\+ ::raise()} }
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::can\+ Reduce(), Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Auto\+ Contact\+ ::get\+ Perpandicular(), and Katabatic\+ ::\+ Seg\+ Is\+ Reduced.
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ace393c3c082a5e62a348168354660e39} \label { classKatabatic_ 1_ 1AutoSegment_ ace393c3c082a5e62a348168354660e39} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !raise@{ raise} }
\index { raise@{ raise} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { raise()} { raise()} }
{ \footnotesize \ttfamily bool raise (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
Get a segment out of { \itshape reduced} state.
2018-10-18 11:10:01 -05:00
{ \bfseries Returns\+ :} { \bfseries true} if a state change did really take place.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\begin { DoxySeeAlso} { See also}
\mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a27a6a2c747ff93d209878a32d97e9157} { Auto\+ Segment\+ ::reduce()} }
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Auto\+ Contact\+ ::get\+ Perpandicular(), and Katabatic\+ ::\+ Seg\+ Is\+ Reduced.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8b0d5044dce091d06b633848a6f8a66d} \label { classKatabatic_ 1_ 1AutoSegment_ a8b0d5044dce091d06b633848a6f8a66d} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !canonize@{ canonize} }
\index { canonize@{ canonize} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { canonize()} { canonize()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } $ \ast $ canonize (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily KbNoFlags} } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Find and set the canonical \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } from a set of aligneds. For the time beeing we assumes that there is no merging process, so the Segments will only gets more and more fragmented. This implies that a segment can become canonical but it will never revert to normal status.
The canonical \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } is the one with the lowest { \ttfamily Id} . This a way of ensuring reproductible results. Note that the canonical one may not be the { \itshape geometrically} lowest one.
\begin { DoxyParagraph} { Remark\+ : Canonical aware method. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::is\+ Canonical(), Auto\+ Segment\+ ::is\+ Global(), Katabatic\+ ::\+ Seg\+ Canonical, Katabatic\+ ::\+ Seg\+ Not\+ Aligned, Katabatic\+ ::\+ Seg\+ Weak\+ Global, Auto\+ Segment\+ ::set\+ Flags(), and Auto\+ Segment\+ ::unset\+ Flags().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), and Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} \label { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !invalidate@{ invalidate} }
\index { invalidate@{ invalidate} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { invalidate()} { invalidate()} }
{ \footnotesize \ttfamily void invalidate (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d} { Kb\+ Propagate} } } } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Invalidate this \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } , or if the \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d} { Katabatic\+ ::\+ Kb\+ Propagate} } flags is set, the whole set of aligned segments.
\begin { DoxyParagraph} { Remark\+ : If Katabatic is in the destruction stage, this function does nothing.}
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
\begin { DoxyParagraph} { Remark\+ : Canonical aware method. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::\+ \_ \+ invalidate(), Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::is\+ Invalidated(), Katabatic\+ ::\+ Kb\+ Propagate, Katabatic\+ ::\+ Kb\+ Source, Katabatic\+ ::\+ Kb\+ Target, and Auto\+ Segment\+ ::set\+ Flags().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Vertical\+ ::\+ \_ \+ make\+ Dogleg(), Auto\+ Segment\+ ::\+ \_ \+ post\+ Create(), Auto\+ Contact\+ V\+ Tee\+ ::update\+ Topology(), Auto\+ Contact\+ Turn\+ ::update\+ Topology(), and Auto\+ Contact\+ Terminal\+ ::update\+ Topology().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aa902247a1e967e52cc3ab087cd52b366} \label { classKatabatic_ 1_ 1AutoSegment_ aa902247a1e967e52cc3ab087cd52b366} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !compute\+ Optimal@{ compute\+ Optimal} }
\index { compute\+ Optimal@{ compute\+ Optimal} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { compute\+ Optimal()} { computeOptimal()} }
{ \footnotesize \ttfamily \textbf { Interval} compute\+ Optimal (\begin { DoxyParamCaption} \item [{set$<$ \mbox{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}} $\ast$$>$ \&}] { processeds } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-10-18 11:10:01 -05:00
{ \em processeds} & A set of already processeds \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } . Used by the caller function to avoid doing again the computation on an \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } from an already proccessed aligned set. Compute the optimal axis interval for the aligned set.\\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
2018-10-18 11:10:01 -05:00
\begin { DoxyParagraph} { Remark\+ : Canonical aware method. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Auto\+ Target(), Auto\+ Segment\+ ::get\+ Axis(), G\+ Cell\+ ::get\+ Bounding\+ Box(), G\+ Cell\+ ::get\+ Column(), Auto\+ Contact\+ ::get\+ Constraint\+ Box(), Auto\+ Segment\+ ::get\+ Constraints(), Auto\+ Segment\+ ::get\+ Extremity(), Auto\+ Segment\+ ::get\+ Origin(), Auto\+ Segment\+ ::get\+ Perpandiculars(), G\+ Cell\+ ::get\+ Row(), Box\+ ::get\+ X\+ Max(), Box\+ ::get\+ X\+ Min(), Box\+ ::get\+ Y\+ Max(), Box\+ ::get\+ Y\+ Min(), Auto\+ Segment\+ ::is\+ Horizontal(), Auto\+ Segment\+ ::is\+ Vertical(), Auto\+ Segment\+ ::set\+ Optimal\+ Max(), Auto\+ Segment\+ ::set\+ Optimal\+ Min(), and Db\+ U\+ ::to\+ Lambda().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a3881efebb7510d9b22e5f89bcd418954} \label { classKatabatic_ 1_ 1AutoSegment_ a3881efebb7510d9b22e5f89bcd418954} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !set\+ Axis@{ set\+ Axis} }
\index { set\+ Axis@{ set\+ Axis} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { set\+ Axis()} { setAxis()} }
{ \footnotesize \ttfamily void set\+ Axis (\begin { DoxyParamCaption} \item [{\textbf{ Db\+U\+::\+Unit}}] { axis, } \item [{unsigned int}] { flags = { \ttfamily KbNoFlags} } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
{ \em axis} & The new position of the axis. \\
\hline
2018-10-18 11:10:01 -05:00
{ \em flags} & See Kb\+ Realignate.\\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
2018-10-18 11:10:01 -05:00
Set the axis of an aligned set. This method does nothing if not called on the canonical \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } of the set. If the new value of the axis is equal to the previous one, nothing is done (non-\/ canonical \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } are not looked after). To force an actual axis set, with invalidation of the whole \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } set, set the Kb\+ Realignate flag.
\begin { DoxyParagraph} { Remark\+ : Canonical aware method. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Aligneds(), Auto\+ Segment\+ ::get\+ Axis(), Auto\+ Segment\+ ::is\+ Canonical(), Auto\+ Segment\+ ::is\+ Horizontal(), Katabatic\+ ::\+ Kb\+ Realignate, and Db\+ U\+ ::to\+ Lambda().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::move\+ U\+ Left(), Auto\+ Vertical\+ ::move\+ U\+ Left(), Auto\+ Horizontal\+ ::move\+ U\+ Right(), Auto\+ Vertical\+ ::move\+ U\+ Right(), Auto\+ Segment\+ ::to\+ Constraint\+ Axis(), and Auto\+ Segment\+ ::to\+ Optimal\+ Axis().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8ab41a962e18810808f4f065863b5a73} \label { classKatabatic_ 1_ 1AutoSegment_ a8ab41a962e18810808f4f065863b5a73} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !to\+ Constraint\+ Axis@{ to\+ Constraint\+ Axis} }
\index { to\+ Constraint\+ Axis@{ to\+ Constraint\+ Axis} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { to\+ Constraint\+ Axis()} { toConstraintAxis()} }
{ \footnotesize \ttfamily bool to\+ Constraint\+ Axis (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a} { Kb\+ Realignate} } } } \end { DoxyParamCaption} )}
If the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } axis is outside the constraint interval, put it on nearest bound. This method is active only on canonical Auto\+ Segments.
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
{ \bfseries true} if an actual axis change is made.
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
\begin { DoxyParagraph} { Remark\+ : Canonical aware method. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Auto\+ Source(), Auto\+ Segment\+ ::get\+ Axis(), Auto\+ Segment\+ ::get\+ Constraints(), Auto\+ Contact\+ ::get\+ G\+ Cell(), Interval\+ ::get\+ Half\+ Size(), G\+ Cell\+ ::get\+ Side(), Auto\+ Segment\+ ::is\+ Canonical(), Auto\+ Segment\+ ::is\+ Dogleg(), Auto\+ Segment\+ ::is\+ Horizontal(), Katabatic\+ ::\+ Kb\+ Horizontal, Katabatic\+ ::\+ Kb\+ Vertical, and Auto\+ Segment\+ ::set\+ Axis().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a750983d7154c94b54537127a3a18e14b} \label { classKatabatic_ 1_ 1AutoSegment_ a750983d7154c94b54537127a3a18e14b} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !to\+ Optimal\+ Axis@{ to\+ Optimal\+ Axis} }
\index { to\+ Optimal\+ Axis@{ to\+ Optimal\+ Axis} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { to\+ Optimal\+ Axis()} { toOptimalAxis()} }
{ \footnotesize \ttfamily bool to\+ Optimal\+ Axis (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a} { Kb\+ Realignate} } } } \end { DoxyParamCaption} )}
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
If the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } axis is outside the optimal interval, put it on nearest bound. This method is active only on canonical Auto\+ Segments.
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
{ \bfseries true} if an actual axis change is made.
\end { DoxyReturn}
2018-10-18 11:10:01 -05:00
\begin { DoxyParagraph} { Remark\+ : Canonical aware method. }
2018-06-06 11:42:26 -05:00
\end { DoxyParagraph}
2018-10-18 11:10:01 -05:00
References Auto\+ Segment\+ ::get\+ Axis(), Auto\+ Segment\+ ::get\+ Constraints(), Auto\+ Segment\+ ::get\+ Optimal\+ Max(), Auto\+ Segment\+ ::get\+ Optimal\+ Min(), Auto\+ Segment\+ ::is\+ Canonical(), Katabatic\+ ::\+ Kb\+ Realignate, and Auto\+ Segment\+ ::set\+ Axis().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a4430f9704a59e1d4f7c37d7166649510} \label { classKatabatic_ 1_ 1AutoSegment_ a4430f9704a59e1d4f7c37d7166649510} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ On\+ Source\+ Contact@{ get\+ On\+ Source\+ Contact} }
\index { get\+ On\+ Source\+ Contact@{ get\+ On\+ Source\+ Contact} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ On\+ Source\+ Contact()} { getOnSourceContact()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ On\+ Source\+ Contact (\begin { DoxyParamCaption} \item [{unsigned int}] { direction } \end { DoxyParamCaption} )}
{ \bfseries Returns\+ :} The Collection of \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } in { \ttfamily direction} that are on this segment source contact.
References Auto\+ Segment\+ ::get\+ Source(), and Collection$ < $ Type $ > $ \+ ::get\+ Sub\+ Set().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aadbb84c0f1383f6a2addc2661e388583} \label { classKatabatic_ 1_ 1AutoSegment_ aadbb84c0f1383f6a2addc2661e388583} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ On\+ Target\+ Contact@{ get\+ On\+ Target\+ Contact} }
\index { get\+ On\+ Target\+ Contact@{ get\+ On\+ Target\+ Contact} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ On\+ Target\+ Contact()} { getOnTargetContact()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ On\+ Target\+ Contact (\begin { DoxyParamCaption} \item [{unsigned int}] { direction } \end { DoxyParamCaption} )}
{ \bfseries Returns\+ :} The Collection of \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } in { \ttfamily direction} that are on this segment target contact.
References Collection$ < $ Type $ > $ \+ ::get\+ Sub\+ Set(), and Auto\+ Segment\+ ::get\+ Target().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aaca749f49cd03ca06449d5ea2104033a} \label { classKatabatic_ 1_ 1AutoSegment_ aaca749f49cd03ca06449d5ea2104033a} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Aligneds@{ get\+ Aligneds} }
\index { get\+ Aligneds@{ get\+ Aligneds} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Aligneds()} { getAligneds()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ Aligneds (\begin { DoxyParamCaption} \item [{unsigned int}] { flags = { \ttfamily KbNoFlags} } \end { DoxyParamCaption} )}
The Collection of Auto\+ Segments that are aligned on this one through \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactHTee} { Auto\+ Contact\+ H\+ Tee} } or \mbox { \hyperlink { classKatabatic_ 1_ 1AutoContactVTee} { Auto\+ Contact\+ V\+ Tee} } . If the { \ttfamily flags} contains \mbox { \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217ae2d033c8f78b61468c827de8db5fe839} { Katabatic\+ ::\+ Kb\+ With\+ Perpands} } , the Collection will also includes the Auto\+ Segments directly perpandiculars to the whole aligned set.
Referenced by Auto\+ Segment\+ ::can\+ Dogleg(), Auto\+ Segment\+ ::can\+ Move\+ Up(), Auto\+ Segment\+ ::canonize(), Auto\+ Segment\+ ::can\+ Pivot\+ Down(), Auto\+ Segment\+ ::can\+ Pivot\+ Up(), Auto\+ Segment\+ ::can\+ Slacken(), Auto\+ Segment\+ ::compute\+ Optimal(), Auto\+ Segment\+ ::get\+ Canonical(), Auto\+ Segment\+ ::invalidate(), Auto\+ Segment\+ ::is\+ Strong\+ Terminal(), Auto\+ Segment\+ ::make\+ Dogleg(), Auto\+ Segment\+ ::set\+ Axis(), and Auto\+ Segment\+ ::slacken().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ aadc6427db83ebdb690e74980d9c8d7d8} \label { classKatabatic_ 1_ 1AutoSegment_ aadc6427db83ebdb690e74980d9c8d7d8} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !get\+ Perpandiculars@{ get\+ Perpandiculars} }
\index { get\+ Perpandiculars@{ get\+ Perpandiculars} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { get\+ Perpandiculars()} { getPerpandiculars()} }
{ \footnotesize \ttfamily \mbox { \hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\+ Segments} } get\+ Perpandiculars (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )}
The Collection of all Auto\+ Segments directly perpandiculars to the whole aligned set.
Referenced by Auto\+ Segment\+ ::compute\+ Optimal().
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8348937b1db79480305b178482d3ed61} \label { classKatabatic_ 1_ 1AutoSegment_ a8348937b1db79480305b178482d3ed61} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !\+ \_ \+ pre\+ Create@{ \+ \_ \+ pre\+ Create} }
\index { \+ \_ \+ pre\+ Create@{ \+ \_ \+ pre\+ Create} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { \+ \_ \+ pre\+ Create()} { \_ preCreate()} }
{ \footnotesize \ttfamily void \+ \_ \+ pre\+ Create (\begin { DoxyParamCaption} \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { source, } \item [{\mbox{\hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact}} $\ast$}] { target } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [static]} , { \ttfamily [protected]} }
Perform sanity checks before allowing the actual creation of an \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } . If an error occurs throw an exception.
Check for\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-10-18 11:10:01 -05:00
\item { \ttfamily source} and { \ttfamily target} must not be { \ttfamily N\+ U\+ LL} .
2018-06-06 11:42:26 -05:00
\item { \ttfamily source} and { \ttfamily target} must be different.
2018-10-18 11:10:01 -05:00
\end { DoxyItemize} \mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a3715b38135ca24745f610bebd3407c10} \label { classKatabatic_ 1_ 1AutoSegment_ a3715b38135ca24745f610bebd3407c10} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !\+ \_ \+ post\+ Create@{ \+ \_ \+ post\+ Create} }
\index { \+ \_ \+ post\+ Create@{ \+ \_ \+ post\+ Create} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { \+ \_ \+ post\+ Create()} { \_ postCreate()} }
{ \footnotesize \ttfamily void \+ \_ \+ post\+ Create (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [protected]} , { \ttfamily [virtual]} }
Perform operations that, given the data structure cannot be done in the constructor. Also allows for sharing code with the derived classes. Currently\+ :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item Invalidate the whole net (topology change).
2018-10-18 11:10:01 -05:00
\item Insert the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } in the lookup/\+ Session machanism.
\item Call \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} { Auto\+ Segment\+ ::invalidate()} } .
\item Call \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a102e0f4bbb0386e41be214d15a9e4549} { Auto\+ Segment\+ ::update\+ Orient()} } .
\item Call \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6d95f4de39c13611786c95ddc7b8942e} { Auto\+ Segment\+ ::update\+ Positions()} } .
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-10-18 11:10:01 -05:00
Reimplemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a3715b38135ca24745f610bebd3407c10} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a3715b38135ca24745f610bebd3407c10} { Auto\+ Horizontal} } .
References Auto\+ Segment\+ ::get\+ Net(), Session\+ ::invalidate(), Auto\+ Segment\+ ::invalidate(), Session\+ ::link(), Observable\+ ::notify(), Auto\+ Segment\+ ::update\+ Orient(), and Auto\+ Segment\+ ::update\+ Positions().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ post\+ Create(), Auto\+ Vertical\+ ::\+ \_ \+ post\+ Create(), and Auto\+ Segment\+ ::create().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a7c13d9795eafd477994961f8a0d962d0} \label { classKatabatic_ 1_ 1AutoSegment_ a7c13d9795eafd477994961f8a0d962d0} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !\+ \_ \+ pre\+ Destroy@{ \+ \_ \+ pre\+ Destroy} }
\index { \+ \_ \+ pre\+ Destroy@{ \+ \_ \+ pre\+ Destroy} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { \+ \_ \+ pre\+ Destroy()} { \_ preDestroy()} }
{ \footnotesize \ttfamily void \+ \_ \+ pre\+ Destroy (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [protected]} , { \ttfamily [virtual]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Perform operations that must be done before the actual destructor is called. Merely whidrawn the \mbox { \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\+ Segment} } from the lookup/\+ Session mechanism.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Reimplemented in \mbox { \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a7c13d9795eafd477994961f8a0d962d0} { Auto\+ Vertical} } , and \mbox { \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a7c13d9795eafd477994961f8a0d962d0} { Auto\+ Horizontal} } .
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Observable\+ ::notify(), and Session\+ ::unlink().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Horizontal\+ ::\+ \_ \+ pre\+ Destroy(), and Auto\+ Vertical\+ ::\+ \_ \+ pre\+ Destroy().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6a98d2e5839b880893703ad45db4e4c4} \label { classKatabatic_ 1_ 1AutoSegment_ a6a98d2e5839b880893703ad45db4e4c4} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !\+ \_ \+ invalidate@{ \+ \_ \+ invalidate} }
\index { \+ \_ \+ invalidate@{ \+ \_ \+ invalidate} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { \+ \_ \+ invalidate()} { \_ invalidate()} }
{ \footnotesize \ttfamily \textbf { Interval} \+ \_ \+ invalidate (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} )\hspace { 0.3cm} { \ttfamily [protected]} }
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Invalidate this segment. The segment is scheduled into the \mbox { \hyperlink { classKatabatic_ 1_ 1Session} { Session} } revalidation mechanism.
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
References Session\+ ::invalidate(), Auto\+ Segment\+ ::is\+ Invalidated(), Observable\+ ::notify(), Katabatic\+ ::\+ Seg\+ Invalidated, and Auto\+ Segment\+ ::set\+ Flags().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::invalidate().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
\mbox { \Hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae5b4a4f67d480cd5c9ce104e73e73da9} \label { classKatabatic_ 1_ 1AutoSegment_ ae5b4a4f67d480cd5c9ce104e73e73da9} }
\index { Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} !\+ \_ \+ get\+ Flags@{ \+ \_ \+ get\+ Flags} }
\index { \+ \_ \+ get\+ Flags@{ \+ \_ \+ get\+ Flags} !Katabatic\+ ::\+ Auto\+ Segment@{ Katabatic\+ ::\+ Auto\+ Segment} }
\subsubsection { \texorpdfstring { \+ \_ \+ get\+ Flags()} { \_ getFlags()} }
{ \footnotesize \ttfamily unsigned int \+ \_ \+ get\+ Flags (\begin { DoxyParamCaption} { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [protected]} }
2018-06-06 11:42:26 -05:00
Sets { \ttfamily flags} given as arguments.
2018-10-18 11:10:01 -05:00
Referenced by Auto\+ Segment\+ ::compute\+ Terminal().
2018-06-06 11:42:26 -05:00
2018-10-18 11:10:01 -05:00
The documentation for this class was generated from the following files\+ :\begin { DoxyCompactItemize}
2018-06-06 11:42:26 -05:00
\item
2018-10-18 11:10:01 -05:00
Auto\+ Segment.\+ h\item
Auto\+ Segment.\+ cpp\item
Auto\+ Segment.\+ dox\end { DoxyCompactItemize}