2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
Abstract base class for \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Inheritance diagram for Auto\- Segment\- :\nopagebreak
2018-06-06 11:42:26 -05:00
\begin { figure} [H]
\begin { center}
\leavevmode
\includegraphics [width=249pt] { classKatabatic_ 1_ 1AutoSegment_ _ inherit_ _ graph}
\end { center}
\end { figure}
\subsection * { Public Member Functions}
\begin { DoxyCompactItemize}
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a53877ff5ef48eb0030c2581a6eeb3c09} { base} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ade416d0483aefe986988fa89a7cf6fcf} { base} ()=0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Horizontal} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a659b8ed90de679564924afe07af478de} { get\- Horizontal} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Vertical} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab6a809b6f3ef3cf5385fa35580e31e7a} { get\- Vertical} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Cell} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a148fdf09f18e7adb39a73c747f165266} { get\- Cell} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Net} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ adf3e1a980233163de0ca34a5c3575998} { get\- Net} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
const { \bf Layer} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a304ee4e02745811e04ac6fb688bf834f} { get\- Layer} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Box} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a4e70b34c1b87c093c4405d9d2e924a05} { get\- Bounding\- Box} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Hook} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1defbbaef0a1975993e157a8d5f68ded} { get\- Source\- Hook} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Hook} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ad62048f68151e5db987b5a7c79cce4ed} { get\- Target\- Hook} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Contact} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6f00fc7f0357778613214c4e57d9bc2f} { get\- Source} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Contact} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ac92a1ae33842aab5d067b393dd2596fe} { get\- Target} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Component} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a898ede38fc37409371bff9d7dc7f917a} { get\- Opposite\- Anchor} ({ \bf Component} $ \ast $ ) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Components} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7b72661b3586b369ebf3adc59a5239c2} { get\- Anchors} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a852afe759ce2cb8cb9c0524fc1e23387} { get\- X} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ac597d25a34a79fb4393211c70f5a1bc3} { get\- Y} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aa018d3e74791b77d2def527248b9b00a} { get\- Width} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a5370f2cf21823e1fa58d0627ee53c483} { get\- Length} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a60c1e9c6cda9445e409e00ff22b1f52c} { get\- Source\- Position} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a2b6bdf8fa83a7ce4cafa61314bee4e43} { get\- Target\- Position} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab160396298a1a51b9988ad246dc2a47f} { get\- Source\- X} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a232af840ba84faa0b1411ba1c3a418f1} { get\- Source\- Y} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae80b70bf8e29a74d8a5f61d1257c6cf2} { get\- Target\- X} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0917c7f78a251822ea0ac6f48298d1c5} { get\- Target\- Y} () const
2018-06-06 11:42:26 -05:00
\item
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ acbac6289ab14574da20f26c933e2e741} { invert} ()
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aad4271c35e0162c8a4d034dca07f5a4b} { set\- Layer} (const { \bf Layer} $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ac46ac3b48d712750c7888b48964ac189} { is\- Horizontal} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a2bb30e82aad1f321af4a065338775f36} { is\- Vertical} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a017b1ead8e5988dd0e491cae93ac510c} { is\- Global} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a69fb7e260ed2bc6fa82bfe12c2aeec5a} { is\- Local} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af5e7d3badddf2ec07159f1d83426d4c1} { is\- Fixed} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab5035e6d84cf3ec7b519a5acb109efaa} { is\- Bipoint} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae5574df7051a09ce3338cbe8481b8af3} { is\- Weak\- Terminal} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ acc92dc6f1ef0c36e7330f38726297b35} { is\- Strong\- Terminal} (unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0ddce124ab6b4cd97e59db077e7a2eac} { is\- Layer\- Change} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aaff91f5124850956e44501facf668556} { is\- Spin\- Top} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0330666095b102f61bc957eefae34c4f} { is\- Spin\- Bottom} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ad5a5ba75ef6654f9352cca1e4b0aff51} { is\- Spin\- Top\- Or\- Bottom} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aca1e1b7dece8c71dcdc1ce786a0958e3} { is\- Reduced} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a4721fcbe9c93ed5392afd9a756b989a8} { is\- Strap} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a172b2394f9c2cbaaf5bc4b19e0e76e65} { is\- Dogleg} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a54f713d06c43bebf4e0dfef06e347531} { is\- Invalidated} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a52c4108abf5e0622a216c2d81c47b9bb} { is\- Invalidated\- Layer} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6a7e35dd5a9ca99ca879e424ce42b902} { is\- Created} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab671233e7112693ae31541190d1d251d} { is\- Canonical} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a436eb0e5951f681ce68e429ab671e582} { is\- Unset\- Axis} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab1f9e0bca70dea59558459a003a62d88} { is\- Slackened} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a676fcb7ece71d129b7a4d87a3f2e07aa} { \- \_ \- can\- Slacken} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6191fe9409cee6c5a0429ebb9e653ea4} { can\- Reduce} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ abe32548ca8d41da334413928405fec87} { must\- Raise} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
unsigned int \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a43c865bcfcfd6132352a9ac8a84c25cd} { can\- Dogleg} ({ \bf Interval} )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \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-08-19 06:27:09 -05:00
virtual bool \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-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a02e6ec81411b250d60dccc0da39964a6} { can\- Move\- Up} (float reserve=0.\- 0, unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af76432e1e58e015bde917134757003f9} { can\- Pivot\- Up} (float reserve=0.\- 0, unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1c810a1a6860202d94c670999546c4b8} { can\- Pivot\- Down} (float reserve=0.\- 0, unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a46f380673fde750e88aad991168a35fd} { can\- Slacken} (unsigned int flags=0) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af026a81002bd907f1ccd4a4784aaa1db} { check\- Positions} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3d5732fd10b4a05076981066a4674487} { check\- Constraints} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
unsigned long \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae68c47fdf838be02cbf6660cd25a0806} { get\- Id} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual unsigned int \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae35b78590ed6aa546b626ef95f28c533} { get\- Direction} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab45ccfee0f781ec16c50672663d36141} { get\- G\- Cell} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual size\- \_ \- t \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ad9d24f97e55e2f538ed1c907bee99e81} { get\- G\- Cells} (vector$ < $ \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} $ \ast $ $ > $ \& ) const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ afb5b4d8bddc75cd604c7a68aa5943c12} { get\- Auto\- Source} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a5a35baf84e1e3531c38a6132fb8118fb} { get\- Auto\- Target} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ac2d254eb530ff299dad804100198cc24} { get\- Opposite\- Anchor} (\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ ) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
size\- \_ \- t \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a5a63602ccc44f51012f10d138e1480c4} { get\- Perpandiculars\- Bound} (set$ < $ \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ $ > $ \& )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0ca0f04492f7365856ccceb905968bb5} { get\- Parent} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af85576c58c70007850ad56e238e8d266} { get\- Axis} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f} { get\- Source\- U} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a828fef2716cc9c370d6d170bb96556ec} { get\- Target\- U} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab4881df67bd8f036d0199ed6540fe774} { get\- Du\- Source} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0644d656eedc71dba2fb3c6c0d83ed3f} { get\- Du\- Target} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ acedb5dbab9d0c872dc476fdbefff431c} { get\- Origin} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6cf0ef9d591a27428ad29332e188b616} { get\- Extremity} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Interval} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a248eb2fbb06e3286650b28567d495f0b} { get\- Span\- U} () const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Interval} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0599f720e9aac305ecae20c7f4526c58} { get\- Min\- Span\- U} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Interval} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab7685e309e1d910db3e8237f8a898c35} { get\- Source\- Constraints} (unsigned int flags=0) const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Interval} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a9c1b8b3cd57fb7b0bf60c7a6148237c2} { get\- Target\- Constraints} (unsigned int flags=0) const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7c2fed22b081f8d3b7a69abb457153ea} { get\- Constraints} ({ \bf Db\- U\- ::\- Unit} \& min, { \bf Db\- U\- ::\- Unit} \& max) const =0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a61a7442901868f6167e5b5303d8f1736} { get\- Constraints} ({ \bf Interval} \& i) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
const { \bf Interval} \& \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a5a69d84299029f9fd381a85d9de0a488} { get\- User\- Constraints} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a15034a21dff23562fd70a83599a16d3a} { get\- Slack} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a2786cefb5df6ac92dcbb081c55ae50e6} { get\- Optimal\- Min} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a9bea24981e7eaafb5746015355bf44f7} { get\- Optimal\- Max} () const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
{ \bf Interval} \& \hyperlink { classKatabatic_ 1_ 1AutoSegment_ abc07fe91810925f4a0191cd245cc85b6} { get\- Optimal} ({ \bf Interval} \& i) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual { \bf Db\- U\- ::\- Unit} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aaa87df41319c74dd180039708f68ff7e} { get\- Cost} ({ \bf Db\- U\- ::\- Unit} axis) const
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8acbe1037827da2c2fef71a18c5886c7} { get\- Canonical} ({ \bf Db\- U\- ::\- Unit} \& min, { \bf Db\- U\- ::\- Unit} \& max)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a988beca5780421c168a2475a5298009a} { get\- Canonical} ({ \bf Interval} \& i)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1a6fac115cb81db48e3ac9ffa0721bb5} { unset\- Flags} (unsigned int)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aeb14f94914af58657a0dc2f50ec98df5} { set\- Flags} (unsigned int)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aaf60d18ab6d951a34a3d06959ce2e76f} { set\- Du\- Source} ({ \bf Db\- U\- ::\- Unit} du)=0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a246756d4c8b3e094a0a9d6de3c2109ff} { set\- Du\- Target} ({ \bf Db\- U\- ::\- Unit} du)=0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ abc72aaeefa7450eaf67aee3212ec974d} { compute\- Terminal} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a102e0f4bbb0386e41be214d15a9e4549} { update\- Orient} ()=0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6d95f4de39c13611786c95ddc7b8942e} { update\- Positions} ()=0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae82ffef92ad9ffdc5da5e0c1830d9537} { merge\- User\- Constraints} (const { \bf Interval} \& )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ac8768352909d37ebad1c06c9cf4ef8bb} { reset\- User\- Constraints} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af92b3d000552b630695879dd5d4736a1} { set\- Optimal\- Min} ({ \bf Db\- U\- ::\- Unit} min)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a90173ab4f35b98c6544f9482ccd93b5e} { set\- Optimal\- Max} ({ \bf Db\- U\- ::\- Unit} max)
2018-06-06 11:42:26 -05:00
\item
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a88ac40c065bce0ff97792d18b41b6a67} { revalidate} ()
\item
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a39c927c04b5016770692b9b8448c2f04} { make\- Dogleg} (\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
unsigned int \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a5ca22c853ee33a2b26367eaf29457766} { make\- Dogleg} ({ \bf Interval} , unsigned int flags=Kb\- No\- Flags)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
unsigned int \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aa21b16647c1750ba8b3eb9d99b12f073} { make\- Dogleg} (\hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} $ \ast $ , unsigned int flags=Kb\- No\- Flags)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual unsigned int \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a37a14b40295ccb50cd5001891385807b} { \- \_ \- make\- Dogleg} (\hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} $ \ast $ , unsigned int flags)=0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af8ca7b17e952f4b599aeeb2f4e5be395} { move\- U\- Left} ()=0
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ad7fd54ca229fcf5ccd99f87b019b9cbc} { move\- U\- Right} ()=0
2018-06-06 11:42:26 -05:00
\item
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1fbc0adb4c0b14632edc7c55f028cd4b} { slacken} (unsigned int flags)
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ acecc9a1d55a271a4b1587d7872cfe133} { reduce\- Dogleg\- Layer} ()
2018-06-06 11:42:26 -05:00
\item
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a27a6a2c747ff93d209878a32d97e9157} { reduce} ()
\item
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ace393c3c082a5e62a348168354660e39} { raise} ()
\item
2018-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8b0d5044dce091d06b633848a6f8a66d} { canonize} (unsigned int flags=Kb\- No\- Flags)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} { invalidate} (unsigned int flags=\hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d} { Kb\- Propagate} )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7654ca2b0787b8a9eac8629bf9218761} { compute\- Optimal} (set$ < $ \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ $ > $ \& processeds)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3881efebb7510d9b22e5f89bcd418954} { set\- Axis} ({ \bf Db\- U\- ::\- Unit} , unsigned int flags=Kb\- No\- Flags)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8ab41a962e18810808f4f065863b5a73} { to\- Constraint\- Axis} (unsigned int flags=\hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a} { Kb\- Realignate} )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
bool \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a750983d7154c94b54537127a3a18e14b} { to\- Optimal\- Axis} (unsigned int flags=\hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a} { Kb\- Realignate} )
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\- Segments} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a4430f9704a59e1d4f7c37d7166649510} { get\- On\- Source\- Contact} (unsigned int direction)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\- Segments} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aadbb84c0f1383f6a2addc2661e388583} { get\- On\- Target\- Contact} (unsigned int direction)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\- Segments} \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aaca749f49cd03ca06449d5ea2104033a} { get\- Aligneds} (unsigned int flags=Kb\- No\- Flags)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
\hyperlink { namespaceKatabatic_ a2221b0ddbc24f331809fc86f98e38041} { Auto\- Segments} \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-08-19 06:27:09 -05:00
static \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} { create} (\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ source, \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ target, { \bf Segment} $ \ast $ hurricane\- Segment)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
static \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} $ \ast $ \hyperlink { classKatabatic_ 1_ 1AutoSegment_ afa7ce652576b17985859fd6c29d21489} { create} (\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ source, \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-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoSegment_ ae64a61508d148cb4a0ee9b5ffb177659} { Auto\- Segment} ({ \bf Segment} $ \ast $ segment)
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a5d135025de0c1725d6252099c2e70e2b} { $ \sim $ \- Auto\- Segment} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3715b38135ca24745f610bebd3407c10} { \- \_ \- post\- Create} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
virtual void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7c13d9795eafd477994961f8a0d962d0} { \- \_ \- pre\- Destroy} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6a98d2e5839b880893703ad45db4e4c4} { \- \_ \- invalidate} ()
2018-06-06 11:42:26 -05:00
\item
2018-08-19 06:27:09 -05:00
unsigned int \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ade0d97282e43595452ae8ac326d99752} { \- \_ \- get\- Flags} () const
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection * { Static Protected Member Functions}
\begin { DoxyCompactItemize}
\item
2018-08-19 06:27:09 -05:00
static void \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8348937b1db79480305b178482d3ed61} { \- \_ \- pre\- Create} (\hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ source, \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} $ \ast $ target)
2018-06-06 11:42:26 -05:00
\end { DoxyCompactItemize}
\subsection { Detailed Description}
2018-08-19 06:27:09 -05:00
Abstract base class for \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ secASCreation} { } \subsection { Creating Auto\- Horizontal \& Auto\- Vertical} \label { classKatabatic_ 1_ 1AutoSegment_ secASCreation}
\hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} is the abstract base class for \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\- Horizontal} and \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\- Vertical} . They are must be created only through the factory method\- : \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-08-19 06:27:09 -05:00
\item Unique I\- D\- : to ease the enforcing of a deterministic behavior and to gain some independance from the pointers, each \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} is associated with an unique identifier. { \bfseries I\- Ds} are now directly taken from the { \bf 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-08-19 06:27:09 -05:00
\item When assembled through \hyperlink { classKatabatic_ 1_ 1AutoContactVTee} { Auto\- Contact\- V\- Tee} or \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} \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 \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-08-19 06:27:09 -05:00
\item To allow some optimization, the \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-08-19 06:27:09 -05:00
All the transformations applied to the database, after it'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-08-19 06:27:09 -05:00
\item { \bfseries Slackening.} Constraints transmited through either source or target \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} are too tight (tighter than the \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-08-19 06:27:09 -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 \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} { \bfseries do not} invalidate it's source \& target contact.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
An axis position change or a layer change both invalidate the \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} { \bfseries and} it's source \& target contacts.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
For the complete invalidation/revalidation mechanism see \hyperlink { classKatabatic_ 1_ 1Session_ secSessionAlgo} { Session Algorithm} .\hypertarget { classKatabatic_ 1_ 1AutoSegment_ secASAttributes} { } \subsection { Main Attributes of Auto\- Segments} \label { classKatabatic_ 1_ 1AutoSegment_ secASAttributes}
\hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} retains all attributes from Segment. The Segment itself beeing accessible through the \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-08-19 06:27:09 -05:00
\item The \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} from wich it starts from. It is the \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} of the source \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} .
\item A state, combination of flags from \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4} { Katabatic\- ::\- Auto\- Segment\- Flag} .
\item An interval for the optimal range of the \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} axis.
\item An interval for user's defined constraint on the axis.
\item The interval giving the complete length of the \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-08-19 06:27:09 -05:00
\hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} / \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\- Horizontal} \& \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\- Vertical} are kind of decorators of { \bf Hurricane\- ::\- Segment} (they do not scrictly respect the pattern).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Canonical \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-08-19 06:27:09 -05:00
\item { \itshape Wrapper methods} on the underlying { \bf Hurricane\- ::\- Segment} .
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\begin { DoxyItemize}
2018-08-19 06:27:09 -05:00
\item { \itshape Atomic methods} on \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} , that is, which applies exactly on the current \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
\begin { DoxyItemize}
2018-08-19 06:27:09 -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\- P\- I, and the ones that make the link with the atomic methods. Those intermediate methods hide some cumbersome \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} list parameters.
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -05:00
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} { Auto\- Segment\- ::invalidate()}
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a7654ca2b0787b8a9eac8629bf9218761} { Auto\- Segment\- ::compute\- Optimal()}
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a3881efebb7510d9b22e5f89bcd418954} { Auto\- Segment\- ::set\- Axis()}
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a8ab41a962e18810808f4f065863b5a73} { Auto\- Segment\- ::to\- Constraint\- Axis()}
\item \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-08-19 06:27:09 -05:00
\item { \itshape Uniform access} , to simplify the managment of \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\- Horizontal} and \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\- Vertical} through \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 \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab160396298a1a51b9988ad246dc2a47f} { get\- Source\- X()} or \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a232af840ba84faa0b1411ba1c3a418f1} { get\- Source\- Y()} , we may call \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-08-19 06:27:09 -05:00
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f} { Auto\- Segment\- ::get\- Source\- U()}
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a828fef2716cc9c370d6d170bb96556ec} { Auto\- Segment\- ::get\- Target\- U()}
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab4881df67bd8f036d0199ed6540fe774} { Auto\- Segment\- ::get\- Du\- Source()}
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a0644d656eedc71dba2fb3c6c0d83ed3f} { Auto\- Segment\- ::get\- Du\- Target()}
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a248eb2fbb06e3286650b28567d495f0b} { Auto\- Segment\- ::get\- Span\- U()}
\item \hyperlink { classKatabatic_ 1_ 1AutoSegment_ aaf60d18ab6d951a34a3d06959ce2e76f} { Auto\- Segment\- ::set\- Du\- Source()}
\item \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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae64a61508d148cb4a0ee9b5ffb177659} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !Auto\- Segment@{ Auto\- Segment} }
\index { Auto\- Segment@{ Auto\- Segment} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{Auto\-Segment}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} (
\begin { DoxyParamCaption}
\item [{{\bf Segment} $\ast$}] { segment}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [protected]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ae64a61508d148cb4a0ee9b5ffb177659}
\hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} constructor. It is not directly accessible, instead use one flavor of the \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} { Auto\- Segment\- ::create()} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a5d135025de0c1725d6252099c2e70e2b} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !$ \sim $ \- Auto\- Segment@{ $ \sim $ \- Auto\- Segment} }
\index { $ \sim $ \- Auto\- Segment@{ $ \sim $ \- Auto\- Segment} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{$\sim$\-Auto\-Segment}] { \setlength { \rightskip } { 0pt plus 5cm} $ \sim $ { \bf Auto\- Segment} (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [protected]} , { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a5d135025de0c1725d6252099c2e70e2b}
\hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} destructor. It is not directly accessible, instead use one flavor of the \hyperlink { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} { Auto\- Segment\- ::create()} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::is\- Global().
2018-06-06 11:42:26 -05:00
\subsection { Member Function Documentation}
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !create@{ create} }
\index { create@{ create} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{create}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ create (
\begin { DoxyParamCaption}
\item [{{\bf Auto\-Contact} $\ast$}] { source, }
\item [{{\bf Auto\-Contact} $\ast$}] { target, }
\item [{{\bf Segment} $\ast$}] { hurricane\- Segment}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [static]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ab0cc9e57beeceec519cd4bd3e415569e}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-08-19 06:27:09 -05:00
{ \em source} & The source \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} . \\
2018-06-06 11:42:26 -05:00
\hline
2018-08-19 06:27:09 -05:00
{ \em target} & The target \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} . \\
2018-06-06 11:42:26 -05:00
\hline
2018-08-19 06:27:09 -05:00
{ \em hurricane\- Segment} & The { \bf Hurricane\- ::\- Segment} to decorate. \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
The Auto\- Horizontal/\- Auto\- Vertical decorator segment.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Factory method to create \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\- Horizontal} or \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\- Vertical} . It is important to note that this function may modify the underlying { \bf Hurricane\- ::\- Segment} .
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
\item Layer is set to the default (bottom) routing Layers.
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
References Auto\- Segment\- ::\- \_ \- post\- Create(), 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-08-19 06:27:09 -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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ afa7ce652576b17985859fd6c29d21489} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !create@{ create} }
\index { create@{ create} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{create}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ create (
\begin { DoxyParamCaption}
\item [{{\bf Auto\-Contact} $\ast$}] { source, }
\item [{{\bf Auto\-Contact} $\ast$}] { target, }
\item [{unsigned int}] { dir, }
\item [{size\-\_\-t}] { depth = { \ttfamily RoutingGauge\- :\- :nlayerdepth} }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [static]} } } \label { classKatabatic_ 1_ 1AutoSegment_ afa7ce652576b17985859fd6c29d21489}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-08-19 06:27:09 -05:00
{ \em source} & The source \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} . \\
2018-06-06 11:42:26 -05:00
\hline
2018-08-19 06:27:09 -05:00
{ \em target} & The target \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} . \\
2018-06-06 11:42:26 -05:00
\hline
{ \em dir} & Specify the segment direction. \\
\hline
2018-08-19 06:27:09 -05:00
{ \em depth} & The layer, given by it's depth in the Routing\- Gauge. \\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
The Auto\- Horizontal/\- Auto\- Vertical.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Factory method to create \hyperlink { classKatabatic_ 1_ 1AutoHorizontal} { Auto\- Horizontal} or \hyperlink { classKatabatic_ 1_ 1AutoVertical} { Auto\- Vertical} . { \ttfamily flags} indicate the direction (Kb\- Horizontal or Kb\- Vertical). The underlying { \bf 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.
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a53877ff5ef48eb0030c2581a6eeb3c09} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !base@{ base} }
\index { base@{ base} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{base}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Segment} $ \ast $ base (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a53877ff5ef48eb0030c2581a6eeb3c09}
{ \bfseries Returns\- :} the decorated { \bf Hurricane\- ::\- Segment} (const flavor).
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ adcd751c3ec393fabdef5ede0ffff6f2d} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ adcd751c3ec393fabdef5ede0ffff6f2d} { 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().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ade416d0483aefe986988fa89a7cf6fcf} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !base@{ base} }
\index { base@{ base} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{base}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Segment} $ \ast $ base (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ade416d0483aefe986988fa89a7cf6fcf}
{ \bfseries Returns\- :} the decorated { \bf Hurricane\- ::\- Segment} .
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9e651c17b47f82166a02865c9296a2df} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a9e651c17b47f82166a02865c9296a2df} { Auto\- Horizontal} .
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a659b8ed90de679564924afe07af478de} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Horizontal@{ get\- Horizontal} }
\index { get\- Horizontal@{ get\- Horizontal} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Horizontal}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Horizontal} $ \ast $ get\- Horizontal (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a659b8ed90de679564924afe07af478de}
{ \bfseries Returns\- :} If the decorated segment is a { \bf Hurricane\- ::\- Horizontal} , return it. { \ttfamily N\- U\- L\- L} otherwise.
Reimplemented in \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a659b8ed90de679564924afe07af478de} { Auto\- Horizontal} .
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab6a809b6f3ef3cf5385fa35580e31e7a} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Vertical@{ get\- Vertical} }
\index { get\- Vertical@{ get\- Vertical} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Vertical}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Vertical} $ \ast $ get\- Vertical (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ab6a809b6f3ef3cf5385fa35580e31e7a}
{ \bfseries Returns\- :} If the decorated segment is a { \bf Hurricane\- ::\- Vertical} , return it. { \ttfamily N\- U\- L\- L} otherwise.
Reimplemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ab6a809b6f3ef3cf5385fa35580e31e7a} { Auto\- Vertical} .
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a148fdf09f18e7adb39a73c747f165266} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Cell@{ get\- Cell} }
\index { get\- Cell@{ get\- Cell} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Cell}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Cell} $ \ast $ get\- Cell (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a148fdf09f18e7adb39a73c747f165266}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Cell()} .
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Entity\- ::get\- Cell().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ adf3e1a980233163de0ca34a5c3575998} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Net@{ get\- Net} }
\index { get\- Net@{ get\- Net} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Net}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Net} $ \ast $ get\- Net (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ adf3e1a980233163de0ca34a5c3575998}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Net()} .
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Component\- ::get\- Net().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::\- \_ \- make\- Dogleg(), and Auto\- Segment\- ::\- \_ \- post\- Create().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a304ee4e02745811e04ac6fb688bf834f} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Layer@{ get\- Layer} }
\index { get\- Layer@{ get\- Layer} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Layer}] { \setlength { \rightskip } { 0pt plus 5cm} const { \bf Layer} $ \ast $ get\- Layer (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a304ee4e02745811e04ac6fb688bf834f}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Layer()} .
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Component\- ::get\- Layer().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a4e70b34c1b87c093c4405d9d2e924a05} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Bounding\- Box@{ get\- Bounding\- Box} }
\index { get\- Bounding\- Box@{ get\- Bounding\- Box} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Bounding\-Box}] { \setlength { \rightskip } { 0pt plus 5cm} Bounding\- Box $ \ast $ get\- Bounding\- Box (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a4e70b34c1b87c093c4405d9d2e924a05}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Bounding\- Box()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Component\- ::get\- Bounding\- Box().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Source\-Hook}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Hook} $ \ast $ get\- Source\- Hook (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a1defbbaef0a1975993e157a8d5f68ded}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Source\- Hook()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Source\- Hook().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Target\-Hook}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Hook} $ \ast $ get\- Target\- Hook (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ad62048f68151e5db987b5a7c79cce4ed}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Target\- Hook()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Target\- Hook().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6f00fc7f0357778613214c4e57d9bc2f} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Source@{ get\- Source} }
\index { get\- Source@{ get\- Source} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Source}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Contact} $ \ast $ get\- Source (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a6f00fc7f0357778613214c4e57d9bc2f}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Source()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Source().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ac92a1ae33842aab5d067b393dd2596fe} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Target@{ get\- Target} }
\index { get\- Target@{ get\- Target} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Target}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Contact} $ \ast $ get\- Target (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ac92a1ae33842aab5d067b393dd2596fe}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Target()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Target().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a898ede38fc37409371bff9d7dc7f917a} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Opposite\- Anchor@{ get\- Opposite\- Anchor} }
\index { get\- Opposite\- Anchor@{ get\- Opposite\- Anchor} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Opposite\-Anchor}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Component} $ \ast $ get\- Opposite\- Anchor (
\begin { DoxyParamCaption}
\item [{{\bf Component} $\ast$}] { anchor}
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a898ede38fc37409371bff9d7dc7f917a}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Net()} .
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Opposite\- Anchor().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::get\- Opposite\- Anchor().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a7b72661b3586b369ebf3adc59a5239c2} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Anchors@{ get\- Anchors} }
\index { get\- Anchors@{ get\- Anchors} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Anchors}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Components} get\- Anchors (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a7b72661b3586b369ebf3adc59a5239c2}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Anchors()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a852afe759ce2cb8cb9c0524fc1e23387} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- X@{ get\- X} }
\index { get\- X@{ get\- X} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-X}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- X (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a852afe759ce2cb8cb9c0524fc1e23387}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- X()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Component\- ::get\- X().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Vertical\- ::\- \_ \- make\- Dogleg(), and Auto\- Contact\- Terminal\- ::update\- Geometry().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ac597d25a34a79fb4393211c70f5a1bc3} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Y@{ get\- Y} }
\index { get\- Y@{ get\- Y} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Y}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Y (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ac597d25a34a79fb4393211c70f5a1bc3}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Y()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Component\- ::get\- Y().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::\- \_ \- make\- Dogleg(), and Auto\- Contact\- Terminal\- ::update\- Geometry().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aa018d3e74791b77d2def527248b9b00a} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Width@{ get\- Width} }
\index { get\- Width@{ get\- Width} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Width}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Width (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ aa018d3e74791b77d2def527248b9b00a}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Width()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Width().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a5370f2cf21823e1fa58d0627ee53c483} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Length@{ get\- Length} }
\index { get\- Length@{ get\- Length} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Length}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Length (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a5370f2cf21823e1fa58d0627ee53c483}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Length()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Length().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::can\- Reduce(), and Auto\- Segment\- ::must\- Raise().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a60c1e9c6cda9445e409e00ff22b1f52c} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Source\- Position@{ get\- Source\- Position} }
\index { get\- Source\- Position@{ get\- Source\- Position} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Source\-Position}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Source\- Position (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a60c1e9c6cda9445e409e00ff22b1f52c}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Source\- Position()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::get\- Canonical().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a2b6bdf8fa83a7ce4cafa61314bee4e43} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Target\- Position@{ get\- Target\- Position} }
\index { get\- Target\- Position@{ get\- Target\- Position} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Target\-Position}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Target\- Position (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a2b6bdf8fa83a7ce4cafa61314bee4e43}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Target\- Position()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::get\- Canonical().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab160396298a1a51b9988ad246dc2a47f} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Source\- X@{ get\- Source\- X} }
\index { get\- Source\- X@{ get\- Source\- X} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Source\-X}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Source\- X (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ab160396298a1a51b9988ad246dc2a47f}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Source\- X()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Source\- X().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::\- \_ \- make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a232af840ba84faa0b1411ba1c3a418f1} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Source\- Y@{ get\- Source\- Y} }
\index { get\- Source\- Y@{ get\- Source\- Y} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Source\-Y}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Source\- Y (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a232af840ba84faa0b1411ba1c3a418f1}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Source\- Y()} .
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Source\- Y().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Vertical\- ::\- \_ \- make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae80b70bf8e29a74d8a5f61d1257c6cf2} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Target\- X@{ get\- Target\- X} }
\index { get\- Target\- X@{ get\- Target\- X} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Target\-X}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Target\- X (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ae80b70bf8e29a74d8a5f61d1257c6cf2}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Target\- X()} .
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Target\- X().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::\- \_ \- make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a0917c7f78a251822ea0ac6f48298d1c5} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Target\- Y@{ get\- Target\- Y} }
\index { get\- Target\- Y@{ get\- Target\- Y} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Target\-Y}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Target\- Y (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a0917c7f78a251822ea0ac6f48298d1c5}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::get\- Target\- Y()} .
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::get\- Target\- Y().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Vertical\- ::\- \_ \- make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ acbac6289ab14574da20f26c933e2e741} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !invert@{ invert} }
\index { invert@{ invert} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{invert}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} invert (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ acbac6289ab14574da20f26c933e2e741}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::invert()} .
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::invert().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aad4271c35e0162c8a4d034dca07f5a4b} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !set\- Layer@{ set\- Layer} }
\index { set\- Layer@{ set\- Layer} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{set\-Layer}] { \setlength { \rightskip } { 0pt plus 5cm} void set\- Layer (
\begin { DoxyParamCaption}
\item [{const {\bf Layer} $\ast$}] { layer}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ aad4271c35e0162c8a4d034dca07f5a4b}
\begin { DoxySeeAlso} { See Also}
{ \bf Segment\- ::set\- Layer()} .
\end { DoxySeeAlso}
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), and Segment\- ::set\- Layer().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::\- \_ \- make\- Dogleg(), Auto\- Vertical\- ::\- \_ \- make\- Dogleg(), and Auto\- Segment\- ::reduce\- Dogleg\- Layer().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ac46ac3b48d712750c7888b48964ac189} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Horizontal@{ is\- Horizontal} }
\index { is\- Horizontal@{ is\- Horizontal} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Horizontal}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Horizontal (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ac46ac3b48d712750c7888b48964ac189}
{ \bfseries Returns\- :} { \bfseries true} if the { \bf Hurricane\- ::\- Segment} is Horizontal.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Horizontal.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a2bb30e82aad1f321af4a065338775f36} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Vertical@{ is\- Vertical} }
\index { is\- Vertical@{ is\- Vertical} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Vertical}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Vertical (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a2bb30e82aad1f321af4a065338775f36}
{ \bfseries Returns\- :} { \bfseries true} if the { \bf Hurricane\- ::\- Segment} is Vertical.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Horizontal.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::compute\- Optimal(), and Auto\- Contact\- Terminal\- ::get\- Segment().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a017b1ead8e5988dd0e491cae93ac510c} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Global@{ is\- Global} }
\index { is\- Global@{ is\- Global} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Global}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Global (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a017b1ead8e5988dd0e491cae93ac510c}
{ \bfseries Returns\- :} { \bfseries true} if the segment is global (span over more than one \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} ).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Global.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a69fb7e260ed2bc6fa82bfe12c2aeec5a} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Local@{ is\- Local} }
\index { is\- Local@{ is\- Local} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Local}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Local (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a69fb7e260ed2bc6fa82bfe12c2aeec5a}
{ \bfseries Returns\- :} { \bfseries true} if the segment is local (fully enclosed in one \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} ).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Global.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ af5e7d3badddf2ec07159f1d83426d4c1} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Fixed@{ is\- Fixed} }
\index { is\- Fixed@{ is\- Fixed} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Fixed}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Fixed (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ af5e7d3badddf2ec07159f1d83426d4c1}
{ \bfseries Returns\- :} { \bfseries true} if segment must not be moved by the router.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Fixed.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab5035e6d84cf3ec7b519a5acb109efaa} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Bipoint@{ is\- Bipoint} }
\index { is\- Bipoint@{ is\- Bipoint} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Bipoint}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Bipoint (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ab5035e6d84cf3ec7b519a5acb109efaa}
{ \bfseries Returns\- :} { \bfseries true} if the segment straigh join two terminals.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Bipoint.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae5574df7051a09ce3338cbe8481b8af3} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Weak\- Terminal@{ is\- Weak\- Terminal} }
\index { is\- Weak\- Terminal@{ is\- Weak\- Terminal} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Weak\-Terminal}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Weak\- Terminal (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ae5574df7051a09ce3338cbe8481b8af3}
{ \bfseries Returns\- :} { \bfseries true} if segment is indirectly connected to a terminal.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Weak\- Terminal.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::\- \_ \- make\- Dogleg(), and Auto\- Vertical\- ::\- \_ \- make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ acc92dc6f1ef0c36e7330f38726297b35} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Strong\- Terminal@{ is\- Strong\- Terminal} }
\index { is\- Strong\- Terminal@{ is\- Strong\- Terminal} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Strong\-Terminal}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Strong\- Terminal (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags = { \ttfamily 0} }
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ acc92dc6f1ef0c36e7330f38726297b35}
{ \bfseries Returns\- :} { \bfseries true} if segment is directly connected to a terminal.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Aligneds(), Katabatic\- ::\- Kb\- Propagate, and Katabatic\- ::\- Seg\- Strong\- Terminal.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a0ddce124ab6b4cd97e59db077e7a2eac} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Layer\- Change@{ is\- Layer\- Change} }
\index { is\- Layer\- Change@{ is\- Layer\- Change} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Layer\-Change}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Layer\- Change (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a0ddce124ab6b4cd97e59db077e7a2eac}
{ \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-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Layer\- Change.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aaff91f5124850956e44501facf668556} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Spin\- Top@{ is\- Spin\- Top} }
\index { is\- Spin\- Top@{ is\- Spin\- Top} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Spin\-Top}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Spin\- Top (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ aaff91f5124850956e44501facf668556}
{ \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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a0330666095b102f61bc957eefae34c4f} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Spin\- Bottom@{ is\- Spin\- Bottom} }
\index { is\- Spin\- Bottom@{ is\- Spin\- Bottom} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Spin\-Bottom}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Spin\- Bottom (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a0330666095b102f61bc957eefae34c4f}
{ \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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ad5a5ba75ef6654f9352cca1e4b0aff51} { \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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Spin\-Top\-Or\-Bottom}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Spin\- Top\- Or\- Bottom (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ad5a5ba75ef6654f9352cca1e4b0aff51}
{ \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-08-19 06:27:09 -05:00
References Auto\- Segment\- ::is\- Spin\- Bottom(), and Auto\- Segment\- ::is\- Spin\- Top().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::can\- Reduce().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aca1e1b7dece8c71dcdc1ce786a0958e3} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Reduced@{ is\- Reduced} }
\index { is\- Reduced@{ is\- Reduced} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Reduced}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Reduced (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ aca1e1b7dece8c71dcdc1ce786a0958e3}
{ \bfseries Returns\- :} { \bfseries true} if segment is actually in a reduced state\- : it's effective layer will be the one of it's perpandiculars.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Is\- Reduced.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::reduce\- Dogleg\- Layer(), and Auto\- Segment\- ::revalidate().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a4721fcbe9c93ed5392afd9a756b989a8} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Strap@{ is\- Strap} }
\index { is\- Strap@{ is\- Strap} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Strap}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Strap (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a4721fcbe9c93ed5392afd9a756b989a8}
{ \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-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Strap.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a172b2394f9c2cbaaf5bc4b19e0e76e65} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Dogleg@{ is\- Dogleg} }
\index { is\- Dogleg@{ is\- Dogleg} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Dogleg}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Dogleg (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a172b2394f9c2cbaaf5bc4b19e0e76e65}
{ \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-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Dogleg.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::to\- Constraint\- Axis().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a54f713d06c43bebf4e0dfef06e347531} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Invalidated@{ is\- Invalidated} }
\index { is\- Invalidated@{ is\- Invalidated} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Invalidated}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Invalidated (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a54f713d06c43bebf4e0dfef06e347531}
{ \bfseries Returns\- :} { \bfseries true} if segment has been moved or topologicaly altered.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Invalidated.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::\- \_ \- invalidate(), Auto\- Segment\- ::invalidate(), and Auto\- Segment\- ::revalidate().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a52c4108abf5e0622a216c2d81c47b9bb} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Invalidated\- Layer@{ is\- Invalidated\- Layer} }
\index { is\- Invalidated\- Layer@{ is\- Invalidated\- Layer} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Invalidated\-Layer}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Invalidated\- Layer (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a52c4108abf5e0622a216c2d81c47b9bb}
{ \bfseries Returns\- :} { \bfseries true} if segment has been changed of layer. Source and Target \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} may need to be altered.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Invalidated\- Layer.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Contact\- Turn\- ::update\- Topology().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6a7e35dd5a9ca99ca879e424ce42b902} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Created@{ is\- Created} }
\index { is\- Created@{ is\- Created} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Created}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Created (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a6a7e35dd5a9ca99ca879e424ce42b902}
{ \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-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Created.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Contact\- Terminal\- ::update\- Geometry().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab671233e7112693ae31541190d1d251d} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Canonical@{ is\- Canonical} }
\index { is\- Canonical@{ is\- Canonical} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Canonical}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Canonical (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ab671233e7112693ae31541190d1d251d}
{ \bfseries Returns\- :} { \bfseries true} if segment is the representant of an aligned set.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Canonical.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a436eb0e5951f681ce68e429ab671e582} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Unset\- Axis@{ is\- Unset\- Axis} }
\index { is\- Unset\- Axis@{ is\- Unset\- Axis} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Unset\-Axis}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Unset\- Axis (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a436eb0e5951f681ce68e429ab671e582}
{ \bfseries Returns\- :} { \bfseries true} if the segment axis has never been set.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Axis\- Set.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab1f9e0bca70dea59558459a003a62d88} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !is\- Slackened@{ is\- Slackened} }
\index { is\- Slackened@{ is\- Slackened} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{is\-Slackened}] { \setlength { \rightskip } { 0pt plus 5cm} bool is\- Slackened (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ab1f9e0bca70dea59558459a003a62d88}
{ \bfseries Returns\- :} { \bfseries true} if the segment has already been slackened.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Katabatic\- ::\- Seg\- Slackened.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::\- \_ \- make\- Dogleg(), and Auto\- Vertical\- ::\- \_ \- make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a676fcb7ece71d129b7a4d87a3f2e07aa} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !\- \_ \- can\- Slacken@{ \- \_ \- can\- Slacken} }
\index { \- \_ \- can\- Slacken@{ \- \_ \- can\- Slacken} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{\-\_\-can\-Slacken}] { \setlength { \rightskip } { 0pt plus 5cm} bool \- \_ \- can\- Slacken (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a676fcb7ece71d129b7a4d87a3f2e07aa}
{ \bfseries Returns\- :} { \bfseries true} if the segment can be slackened. That is, source or target constraints are less than three pitches.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ab0c6fe24404afe19268a7b796fa74bec} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ ab0c6fe24404afe19268a7b796fa74bec} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::can\- Slacken().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6191fe9409cee6c5a0429ebb9e653ea4} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !can\- Reduce@{ can\- Reduce} }
\index { can\- Reduce@{ can\- Reduce} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{can\-Reduce}] { \setlength { \rightskip } { 0pt plus 5cm} bool can\- Reduce (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ a6191fe9409cee6c5a0429ebb9e653ea4}
{ \bfseries Returns\- :} { \bfseries true} if the segment can be reduced. That is\- :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -05:00
\item Source \& target are \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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::reduce().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ abe32548ca8d41da334413928405fec87} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !must\- Raise@{ must\- Raise} }
\index { must\- Raise@{ must\- Raise} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{must\-Raise}] { \setlength { \rightskip } { 0pt plus 5cm} bool must\- Raise (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ abe32548ca8d41da334413928405fec87}
{ \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-08-19 06:27:09 -05:00
\item It's length exceed one pitch in the perpandicular direction.
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Length(), Auto\- Segment\- ::is\- Spin\- Bottom(), Auto\- Segment\- ::is\- Spin\- Top(), and Katabatic\- ::\- Seg\- Is\- Reduced.
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a43c865bcfcfd6132352a9ac8a84c25cd} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !can\- Dogleg@{ can\- Dogleg} }
\index { can\- Dogleg@{ can\- Dogleg} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{can\-Dogleg}] { \setlength { \rightskip } { 0pt plus 5cm} unsigned int can\- Dogleg (
\begin { DoxyParamCaption}
\item [{{\bf Interval}}] { interval}
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a43c865bcfcfd6132352a9ac8a84c25cd}
{ \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 \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679} { Katabatic\- ::\- Kb\- Dogleg\- On\- Left} or \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.
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{can\-Move\-U\-Left}] { \setlength { \rightskip } { 0pt plus 5cm} bool can\- Move\- U\- Left (
\begin { DoxyParamCaption}
\item [{float}] { reserve = { \ttfamily 0.0} }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ aad55626c9d793a0b08bcff5be2a5ad0c}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
{ \bfseries true} if the { \itshape global} segment can be moved on the left \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-08-19 06:27:09 -05:00
\item The segment mustn't be on the leftmost \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} (obvious...).
2018-06-06 11:42:26 -05:00
\item The segment must be global.
2018-08-19 06:27:09 -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's a global which extends toward left.
\item The \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} of maximum density on the left must remains below the current \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-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ aa9e85f38a842d1966eb72afccb446676} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ aa9e85f38a842d1966eb72afccb446676} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{can\-Move\-U\-Right}] { \setlength { \rightskip } { 0pt plus 5cm} bool can\- Move\- U\- Right (
\begin { DoxyParamCaption}
\item [{float}] { reserve = { \ttfamily 0.0} }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a096deb8a143f098eac2bff9ab9c52243}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
{ \bfseries true} if the { \itshape global} segment can be moved on the right \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-08-19 06:27:09 -05:00
\item The segment mustn't be on the leftmost \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} (obvious...).
2018-06-06 11:42:26 -05:00
\item The segment must be global.
2018-08-19 06:27:09 -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's a global which extends toward right.
\item The \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} of maximum density on the left must remains below the current \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-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a7559a856712400a9325665842e0bcd64} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a7559a856712400a9325665842e0bcd64} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a02e6ec81411b250d60dccc0da39964a6} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !can\- Move\- Up@{ can\- Move\- Up} }
\index { can\- Move\- Up@{ can\- Move\- Up} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{can\-Move\-Up}] { \setlength { \rightskip } { 0pt plus 5cm} bool can\- Move\- Up (
\begin { DoxyParamCaption}
\item [{float}] { reserve = { \ttfamily 0.0} , }
\item [{unsigned int}] { flags = { \ttfamily 0} }
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ a02e6ec81411b250d60dccc0da39964a6}
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-08-19 06:27:09 -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 \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-08-19 06:27:09 -05:00
Possible (bitwise) value for { \ttfamily flags} \- :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -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 \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-08-19 06:27:09 -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(), and Katabatic\- ::\- Kb\- With\- Perpands.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ af76432e1e58e015bde917134757003f9} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !can\- Pivot\- Up@{ can\- Pivot\- Up} }
\index { can\- Pivot\- Up@{ can\- Pivot\- Up} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{can\-Pivot\-Up}] { \setlength { \rightskip } { 0pt plus 5cm} bool can\- Pivot\- Up (
\begin { DoxyParamCaption}
\item [{float}] { reserve = { \ttfamily 0.0} , }
\item [{unsigned int}] { flags = { \ttfamily 0} }
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ af76432e1e58e015bde917134757003f9}
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-08-19 06:27:09 -05:00
Checks of the segment can be { \itshape pivoted} up. The difference between { \ttfamily \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a02e6ec81411b250d60dccc0da39964a6} { can\- Move\- Up()} } and { \ttfamily \hyperlink { classKatabatic_ 1_ 1AutoSegment_ af76432e1e58e015bde917134757003f9} { 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-08-19 06:27:09 -05:00
Possible (bitwise) value for { \ttfamily flags} \- :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -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-08-19 06:27:09 -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(), and Auto\- Segment\- ::is\- Strong\- Terminal().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a1c810a1a6860202d94c670999546c4b8} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !can\- Pivot\- Down@{ can\- Pivot\- Down} }
\index { can\- Pivot\- Down@{ can\- Pivot\- Down} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{can\-Pivot\-Down}] { \setlength { \rightskip } { 0pt plus 5cm} bool can\- Pivot\- Down (
\begin { DoxyParamCaption}
\item [{float}] { reserve = { \ttfamily 0.0} , }
\item [{unsigned int}] { flags = { \ttfamily 0} }
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ a1c810a1a6860202d94c670999546c4b8}
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-08-19 06:27:09 -05:00
Checks of the segment can be { \itshape pivoted} down. The difference between { \ttfamily can\- Move\- Down()} and { \ttfamily \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a1c810a1a6860202d94c670999546c4b8} { 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-08-19 06:27:09 -05:00
Possible (bitwise) value for { \ttfamily flags} \- :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -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-08-19 06:27:09 -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(), and Auto\- Segment\- ::is\- Strong\- Terminal().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a46f380673fde750e88aad991168a35fd} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !can\- Slacken@{ can\- Slacken} }
\index { can\- Slacken@{ can\- Slacken} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{can\-Slacken}] { \setlength { \rightskip } { 0pt plus 5cm} bool can\- Slacken (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags = { \ttfamily 0} }
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ a46f380673fde750e88aad991168a35fd}
{ \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(), and Auto\- Segment\- ::is\- Global().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ af026a81002bd907f1ccd4a4784aaa1db} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !check\- Positions@{ check\- Positions} }
\index { check\- Positions@{ check\- Positions} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{check\-Positions}] { \setlength { \rightskip } { 0pt plus 5cm} bool check\- Positions (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ af026a81002bd907f1ccd4a4784aaa1db}
{ \bfseries Returns\- :} { \bfseries true} if the relative positions of source \& target are coherent. (source $ < $ = target).
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ acfbdc94b1e84bd192087df53ead1f06f} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ acfbdc94b1e84bd192087df53ead1f06f} { Auto\- Horizontal} .
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a3d5732fd10b4a05076981066a4674487} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !check\- Constraints@{ check\- Constraints} }
\index { check\- Constraints@{ check\- Constraints} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{check\-Constraints}] { \setlength { \rightskip } { 0pt plus 5cm} bool check\- Constraints (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a3d5732fd10b4a05076981066a4674487}
{ \bfseries Returns\- :} { \bfseries true} if the constraint intervel is coherent (non-\/ empty or punctual in the worst case).
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a46576c7c5c5146f8fa53a821b0766994} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a46576c7c5c5146f8fa53a821b0766994} { Auto\- Horizontal} .
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae68c47fdf838be02cbf6660cd25a0806} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Id@{ get\- Id} }
\index { get\- Id@{ get\- Id} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Id}] { \setlength { \rightskip } { 0pt plus 5cm} unsigned long get\- Id (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ae68c47fdf838be02cbf6660cd25a0806}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} unique identifier.
Referenced by Auto\- Horizontal\- ::\- \_ \- pre\- Destroy(), and Auto\- Vertical\- ::\- \_ \- pre\- Destroy().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ae35b78590ed6aa546b626ef95f28c533} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Direction@{ get\- Direction} }
\index { get\- Direction@{ get\- Direction} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Direction}] { \setlength { \rightskip } { 0pt plus 5cm} unsigned int get\- Direction (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ae35b78590ed6aa546b626ef95f28c533}
{ \bfseries Returns\- :} \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a1a9045673c5d3c30b067100f1440ae1b} { Katabatic\- ::\- Kb\- Horizontal} or \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a284cad95203a27172838b09e396e3590} { Katabatic\- ::\- Kb\- Vertical} according to the decorated segment.
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a09d03fbca9ab891c2f25bdae7f89a899} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a09d03fbca9ab891c2f25bdae7f89a899} { Auto\- Horizontal} .
Referenced by Auto\- Segment\- ::get\- Min\- Span\- U(), Auto\- Segment\- ::get\- Perpandiculars\- Bound(), and Auto\- Segment\- ::make\- Dogleg().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ab45ccfee0f781ec16c50672663d36141} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- G\- Cell@{ get\- G\- Cell} }
\index { get\- G\- Cell@{ get\- G\- Cell} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-G\-Cell}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf G\- Cell} $ \ast $ get\- G\- Cell (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ab45ccfee0f781ec16c50672663d36141}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} into which the \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().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ad9d24f97e55e2f538ed1c907bee99e81} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- G\- Cells@{ get\- G\- Cells} }
\index { get\- G\- Cells@{ get\- G\- Cells} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-G\-Cells}] { \setlength { \rightskip } { 0pt plus 5cm} size\- \_ \- t get\- G\- Cells (
\begin { DoxyParamCaption}
\item [{vector$<$ {\bf G\-Cell} $\ast$ $>$ \&}] { gcells}
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ad9d24f97e55e2f538ed1c907bee99e81}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
The vector's size.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ ab681dca7dc930e06cacc2de85bf99166} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ ab681dca7dc930e06cacc2de85bf99166} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ afb5b4d8bddc75cd604c7a68aa5943c12} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Auto\- Source@{ get\- Auto\- Source} }
\index { get\- Auto\- Source@{ get\- Auto\- Source} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Auto\-Source}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Contact} $ \ast $ get\- Auto\- Source (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ afb5b4d8bddc75cd604c7a68aa5943c12}
{ \bfseries Returns\- :} The source \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Source(), and Session\- ::lookup().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a5a35baf84e1e3531c38a6132fb8118fb} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Auto\- Target@{ get\- Auto\- Target} }
\index { get\- Auto\- Target@{ get\- Auto\- Target} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Auto\-Target}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Contact} $ \ast $ get\- Auto\- Target (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a5a35baf84e1e3531c38a6132fb8118fb}
{ \bfseries Returns\- :} The target \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Target(), and Session\- ::lookup().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ac2d254eb530ff299dad804100198cc24} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Opposite\- Anchor@{ get\- Opposite\- Anchor} }
\index { get\- Opposite\- Anchor@{ get\- Opposite\- Anchor} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Opposite\-Anchor}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Contact} $ \ast $ get\- Opposite\- Anchor (
\begin { DoxyParamCaption}
\item [{{\bf Auto\-Contact} $\ast$}] { contact}
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ ac2d254eb530ff299dad804100198cc24}
{ \bfseries Returns\- :} The source or target \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} opposite to { \ttfamily contact} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Contact\- ::base(), Auto\- Segment\- ::get\- Opposite\- Anchor(), and Session\- ::lookup().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a5a63602ccc44f51012f10d138e1480c4} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Perpandiculars\- Bound@{ get\- Perpandiculars\- Bound} }
\index { get\- Perpandiculars\- Bound@{ get\- Perpandiculars\- Bound} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Perpandiculars\-Bound}] { \setlength { \rightskip } { 0pt plus 5cm} size\- \_ \- t get\- Perpandiculars\- Bound (
\begin { DoxyParamCaption}
\item [{set$<$ {\bf Auto\-Segment} $\ast$ $>$ \&}] { bounds}
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a5a63602ccc44f51012f10d138e1480c4}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
The vector's size.
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Direction(), Component\- ::get\- Slave\- Components(), Generic\- Collection$ < $ Type $ > $ \- ::get\- Sub\- Set(), and Session\- ::lookup().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a0ca0f04492f7365856ccceb905968bb5} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Parent@{ get\- Parent} }
\index { get\- Parent@{ get\- Parent} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Parent}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ get\- Parent (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a0ca0f04492f7365856ccceb905968bb5}
{ \bfseries Returns\- :} If this segment has been created by a dogleg operation, the parent is the one from which we fragmented. \hypertarget { classKatabatic_ 1_ 1AutoSegment_ af85576c58c70007850ad56e238e8d266} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Axis@{ get\- Axis} }
\index { get\- Axis@{ get\- Axis} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Axis}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Axis (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ af85576c58c70007850ad56e238e8d266}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} axis position.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::base(), Component\- ::get\- X(), Component\- ::get\- Y(), and Auto\- Segment\- ::is\- Horizontal().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Source\- U@{ get\- Source\- U} }
\index { get\- Source\- U@{ get\- Source\- U} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Source\-U}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Source\- U (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ aeaa1543880686755e389c4807128428f}
{ \bfseries Returns\- :} The \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-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a3932d5ce9094ead510e4e33bd4e78e1a} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a3932d5ce9094ead510e4e33bd4e78e1a} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a828fef2716cc9c370d6d170bb96556ec} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Target\- U@{ get\- Target\- U} }
\index { get\- Target\- U@{ get\- Target\- U} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Target\-U}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Target\- U (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a828fef2716cc9c370d6d170bb96556ec}
{ \bfseries Returns\- :} The \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-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a8e5f2a51f56c6bdb74024ac77c08a22a} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a8e5f2a51f56c6bdb74024ac77c08a22a} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Du\-Source}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Du\- Source (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ab4881df67bd8f036d0199ed6540fe774}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} { \itshape uniform} delta from source. (d\- X for an horizontal and d\- Y for a Vertical).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a44998a5f0d71597006fe4f3ffed8e3d1} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a44998a5f0d71597006fe4f3ffed8e3d1} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Du\-Target}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Du\- Target (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a0644d656eedc71dba2fb3c6c0d83ed3f}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} { \itshape uniform} delta from source. (d\- X for an horizontal and d\- Y for a Vertical).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a4f505a59109fc6087696f483ccc7f9dc} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a4f505a59109fc6087696f483ccc7f9dc} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ acedb5dbab9d0c872dc476fdbefff431c} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Origin@{ get\- Origin} }
\index { get\- Origin@{ get\- Origin} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Origin}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Origin (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ acedb5dbab9d0c872dc476fdbefff431c}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} { \itshape uniform} source (lowest) \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} coordinate. (d\- X for an horizontal and d\- Y for a Vertical).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6cf0ef9d591a27428ad29332e188b616} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Extremity@{ get\- Extremity} }
\index { get\- Extremity@{ get\- Extremity} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Extremity}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Extremity (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a6cf0ef9d591a27428ad29332e188b616}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} { \itshape uniform} target (greatest) \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} coordinate. (d\- X for an horizontal and d\- Y for a Vertical).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::compute\- Optimal().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a248eb2fbb06e3286650b28567d495f0b} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Span\- U@{ get\- Span\- U} }
\index { get\- Span\- U@{ get\- Span\- U} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Span\-U}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Interval} get\- Span\- U (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a248eb2fbb06e3286650b28567d495f0b}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} { \itshape uniform} occupying interval (on X for horizontal and on Y for vertical).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9409a4b64c21fa8b1517149728f0a4c1} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a9409a4b64c21fa8b1517149728f0a4c1} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::can\- Dogleg(), and Auto\- Segment\- ::make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a0599f720e9aac305ecae20c7f4526c58} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Min\- Span\- U@{ get\- Min\- Span\- U} }
\index { get\- Min\- Span\- U@{ get\- Min\- Span\- U} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Min\-Span\-U}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Interval} get\- Min\- Span\- U (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ a0599f720e9aac305ecae20c7f4526c58}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
The \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-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Direction(), Interval\- ::get\- V\- Max(), and Interval\- ::get\- V\- Min().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Source\-Constraints}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Interval} get\- Source\- Constraints (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags = { \ttfamily 0} }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ab7685e309e1d910db3e8237f8a898c35}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
The Interval into witch the source \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 \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a3c24695921b612a57c5ac60ff0aa3878} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a3c24695921b612a57c5ac60ff0aa3878} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Target\-Constraints}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Interval} get\- Target\- Constraints (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags = { \ttfamily 0} }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a9c1b8b3cd57fb7b0bf60c7a6148237c2}
2018-06-06 11:42:26 -05:00
\begin { DoxyReturn} { Returns}
2018-08-19 06:27:09 -05:00
The Interval into witch the target \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 \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} .
2018-06-06 11:42:26 -05:00
\end { DoxyReturn}
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ aaa70ba865e312fb30f81fa7f973a0376} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ aaa70ba865e312fb30f81fa7f973a0376} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a7c2fed22b081f8d3b7a69abb457153ea} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Constraints@{ get\- Constraints} }
\index { get\- Constraints@{ get\- Constraints} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Constraints}] { \setlength { \rightskip } { 0pt plus 5cm} bool get\- Constraints (
\begin { DoxyParamCaption}
\item [{{\bf Db\-U\-::\-Unit} \&}] { min, }
\item [{{\bf Db\-U\-::\-Unit} \&}] { max}
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a7c2fed22b081f8d3b7a69abb457153ea}
{ \bfseries Returns\- :} in { \ttfamily min} \& { \ttfamily max} the allowed range for the segment axis.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ aff207f4cc3c3682ed57369fdfe157d2d} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ aff207f4cc3c3682ed57369fdfe157d2d} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a61a7442901868f6167e5b5303d8f1736} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Constraints@{ get\- Constraints} }
\index { get\- Constraints@{ get\- Constraints} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Constraints}] { \setlength { \rightskip } { 0pt plus 5cm} bool get\- Constraints (
\begin { DoxyParamCaption}
\item [{{\bf Interval} \&}] { i}
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a61a7442901868f6167e5b5303d8f1736}
{ \bfseries Returns\- :} in { \ttfamily i} the allowed range for the segment axis.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a5a69d84299029f9fd381a85d9de0a488} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- User\- Constraints@{ get\- User\- Constraints} }
\index { get\- User\- Constraints@{ get\- User\- Constraints} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-User\-Constraints}] { \setlength { \rightskip } { 0pt plus 5cm} const { \bf Interval} \& get\- User\- Constraints (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a5a69d84299029f9fd381a85d9de0a488}
{ \bfseries Returns\- :} A reference to the additional constraints added to the axis of the segment.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::get\- Constraints(), and Auto\- Vertical\- ::get\- Constraints().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a15034a21dff23562fd70a83599a16d3a} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Slack@{ get\- Slack} }
\index { get\- Slack@{ get\- Slack} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Slack}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Slack (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a15034a21dff23562fd70a83599a16d3a}
{ \bfseries Returns\- :} The length of the axis constraint interval.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Constraints().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a2786cefb5df6ac92dcbb081c55ae50e6} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Optimal\- Min@{ get\- Optimal\- Min} }
\index { get\- Optimal\- Min@{ get\- Optimal\- Min} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Optimal\-Min}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Optimal\- Min (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a2786cefb5df6ac92dcbb081c55ae50e6}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} minimum axis optimal range.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Origin(), and lambda().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a9bea24981e7eaafb5746015355bf44f7} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Optimal\- Max@{ get\- Optimal\- Max} }
\index { get\- Optimal\- Max@{ get\- Optimal\- Max} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Optimal\-Max}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Optimal\- Max (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a9bea24981e7eaafb5746015355bf44f7}
{ \bfseries Returns\- :} The \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} maximum axis optimal range.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Origin(), and lambda().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ abc07fe91810925f4a0191cd245cc85b6} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Optimal@{ get\- Optimal} }
\index { get\- Optimal@{ get\- Optimal} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Optimal}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Interval} \& get\- Optimal (
\begin { DoxyParamCaption}
\item [{{\bf Interval} \&}] { i}
\end { DoxyParamCaption}
) const} } \label { classKatabatic_ 1_ 1AutoSegment_ abc07fe91810925f4a0191cd245cc85b6}
Inialize { \ttfamily i} with the \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} axis optimal range.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Optimal\- Max(), Auto\- Segment\- ::get\- Optimal\- Min(), Interval\- ::get\- V\- Max(), and Interval\- ::get\- V\- Min().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aaa87df41319c74dd180039708f68ff7e} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Cost@{ get\- Cost} }
\index { get\- Cost@{ get\- Cost} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Cost}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Db\- U\- ::\- Unit} get\- Cost (
\begin { DoxyParamCaption}
\item [{{\bf Db\-U\-::\-Unit}}] { axis}
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ aaa87df41319c74dd180039708f68ff7e}
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-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Optimal\- Max(), and Auto\- Segment\- ::get\- Optimal\- Min().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8acbe1037827da2c2fef71a18c5886c7} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Canonical@{ get\- Canonical} }
\index { get\- Canonical@{ get\- Canonical} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Canonical}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ get\- Canonical (
\begin { DoxyParamCaption}
\item [{{\bf Db\-U\-::\-Unit} \&}] { min, }
\item [{{\bf Db\-U\-::\-Unit} \&}] { max}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a8acbe1037827da2c2fef71a18c5886c7}
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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::get\- Canonical().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a988beca5780421c168a2475a5298009a} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Canonical@{ get\- Canonical} }
\index { get\- Canonical@{ get\- Canonical} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Canonical}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ get\- Canonical (
\begin { DoxyParamCaption}
\item [{{\bf Interval} \&}] { i}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a988beca5780421c168a2475a5298009a}
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-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Canonical(), Interval\- ::get\- V\- Max(), and Interval\- ::get\- V\- Min().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a1a6fac115cb81db48e3ac9ffa0721bb5} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !unset\- Flags@{ unset\- Flags} }
\index { unset\- Flags@{ unset\- Flags} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{unset\-Flags}] { \setlength { \rightskip } { 0pt plus 5cm} void unset\- Flags (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a1a6fac115cb81db48e3ac9ffa0721bb5}
2018-06-06 11:42:26 -05:00
Unsets { \ttfamily flags} given as arguments.
2018-08-19 06:27:09 -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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aeb14f94914af58657a0dc2f50ec98df5} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !set\- Flags@{ set\- Flags} }
\index { set\- Flags@{ set\- Flags} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{set\-Flags}] { \setlength { \rightskip } { 0pt plus 5cm} void set\- Flags (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ aeb14f94914af58657a0dc2f50ec98df5}
2018-06-06 11:42:26 -05:00
Sets { \ttfamily flags} given as arguments.
2018-08-19 06:27:09 -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().
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{set\-Du\-Source}] { \setlength { \rightskip } { 0pt plus 5cm} void set\- Du\- Source (
\begin { DoxyParamCaption}
\item [{{\bf Db\-U\-::\-Unit}}] { du}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ aaf60d18ab6d951a34a3d06959ce2e76f}
Set the { \itshape uniform} { \ttfamily d\- U} from source anchor (d\- X for Horizontal, d\- Y for Vertical).
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a756616a1967c5ad8efd08be96d18f25d} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a756616a1967c5ad8efd08be96d18f25d} { Auto\- Horizontal} .
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{set\-Du\-Target}] { \setlength { \rightskip } { 0pt plus 5cm} void set\- Du\- Target (
\begin { DoxyParamCaption}
\item [{{\bf Db\-U\-::\-Unit}}] { du}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a246756d4c8b3e094a0a9d6de3c2109ff}
Set the { \itshape uniform} { \ttfamily d\- U} from target anchor (d\- X for Horizontal, d\- Y for Vertical).
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9df2ef68c1fbf4159cc837be5c699b53} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a9df2ef68c1fbf4159cc837be5c699b53} { Auto\- Horizontal} .
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ abc72aaeefa7450eaf67aee3212ec974d} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !compute\- Terminal@{ compute\- Terminal} }
\index { compute\- Terminal@{ compute\- Terminal} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{compute\-Terminal}] { \setlength { \rightskip } { 0pt plus 5cm} void compute\- Terminal (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ abc72aaeefa7450eaf67aee3212ec974d}
Recompute the terminal status of an \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-08-19 06:27:09 -05:00
\item \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4a93251a6b8197685e2aaf77a760851557} { Katabatic\- ::\- Seg\- Strong\- Terminal} .
\item \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4a7b3e09b8ab4cf676fd308535d7fba892} { Katabatic\- ::\- Seg\- Weak\- Terminal1}
\item \hyperlink { namespaceKatabatic_ a94585537ee1724ea9315578ec54380f4a32f77fa2da27348bcfc294a039efd766} { Katabatic\- ::\- Seg\- Weak\- Terminal2}
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-08-19 06:27:09 -05:00
\begin { DoxyParagraph} { Remark\- :}
2018-06-06 11:42:26 -05:00
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.
\end { DoxyParagraph}
2018-08-19 06:27:09 -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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a102e0f4bbb0386e41be214d15a9e4549} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !update\- Orient@{ update\- Orient} }
\index { update\- Orient@{ update\- Orient} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{update\-Orient}] { \setlength { \rightskip } { 0pt plus 5cm} void update\- Orient (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a102e0f4bbb0386e41be214d15a9e4549}
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 \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} , which are already ordered.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a59058f4593049c583c5b3698ff81b299} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a59058f4593049c583c5b3698ff81b299} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::\- \_ \- post\- Create(), and Auto\- Segment\- ::revalidate().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6d95f4de39c13611786c95ddc7b8942e} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !update\- Positions@{ update\- Positions} }
\index { update\- Positions@{ update\- Positions} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{update\-Positions}] { \setlength { \rightskip } { 0pt plus 5cm} void update\- Positions (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a6d95f4de39c13611786c95ddc7b8942e}
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's long axis.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a9662a77c2ed8553d6a0312c5292060ad} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a9662a77c2ed8553d6a0312c5292060ad} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::\- \_ \- post\- Create(), and Auto\- Segment\- ::revalidate().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{merge\-User\-Constraints}] { \setlength { \rightskip } { 0pt plus 5cm} void merge\- User\- Constraints (
\begin { DoxyParamCaption}
\item [{const {\bf Interval} \&}] { constraints}
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ ae82ffef92ad9ffdc5da5e0c1830d9537}
Constraints applies on the valid axis interval. Merge in { \ttfamily constraints} with the user's constraints. The resulting constraints is the intersection of the former user's contraints and the one given as argument.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Interval\- ::intersection().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{reset\-User\-Constraints}] { \setlength { \rightskip } { 0pt plus 5cm} void reset\- User\- Constraints (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ac8768352909d37ebad1c06c9cf4ef8bb}
Constraints applies on the valid axis interval. Suppress all user's constraints. \hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{set\-Optimal\-Min}] { \setlength { \rightskip } { 0pt plus 5cm} void set\- Optimal\- Min (
\begin { DoxyParamCaption}
\item [{{\bf Db\-U\-::\-Unit}}] { min}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ af92b3d000552b630695879dd5d4736a1}
2018-06-06 11:42:26 -05:00
Sets the lower bound of the optimal axis interval.
2018-08-19 06:27:09 -05:00
References get\- Lambda(), and Auto\- Segment\- ::get\- Origin().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::compute\- Optimal().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{set\-Optimal\-Max}] { \setlength { \rightskip } { 0pt plus 5cm} void set\- Optimal\- Max (
\begin { DoxyParamCaption}
\item [{{\bf Db\-U\-::\-Unit}}] { max}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [inline]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a90173ab4f35b98c6544f9482ccd93b5e}
2018-06-06 11:42:26 -05:00
Sets the lower bound of the optimal axis interval.
2018-08-19 06:27:09 -05:00
References get\- Lambda(), and Auto\- Segment\- ::get\- Origin().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::\- Auto\- Segment(), and Auto\- Segment\- ::compute\- Optimal().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a88ac40c065bce0ff97792d18b41b6a67} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !revalidate@{ revalidate} }
\index { revalidate@{ revalidate} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{revalidate}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Interval} revalidate (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a88ac40c065bce0ff97792d18b41b6a67}
Mark this segment as valid (unset the Invalidated flag) and update positions. Unlike \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} { Auto\- Segment\- ::invalidate()} , it's an atomic method.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a39c927c04b5016770692b9b8448c2f04} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !make\- Dogleg@{ make\- Dogleg} }
\index { make\- Dogleg@{ make\- Dogleg} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{make\-Dogleg}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ make\- Dogleg (
\begin { DoxyParamCaption}
\item [{{\bf Auto\-Contact} $\ast$}] { from}
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a39c927c04b5016770692b9b8448c2f04}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-08-19 06:27:09 -05:00
{ \em from} & The \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-08-19 06:27:09 -05:00
This method is dedicated for the restauration of topology connexity on Auto\- Contcact after a layer change on one of their connected \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
It perform three operations\- :
2018-06-06 11:42:26 -05:00
\begin { DoxyEnumerate}
2018-08-19 06:27:09 -05:00
\item Create a dogleg on the \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} (using the normal \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 \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} { \ttfamily from} to the segment.
\item Returns the new \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} connected to { \ttfamily from} (it may be the same as before, { \bfseries if} the \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} is the source of the segment).
2018-06-06 11:42:26 -05:00
\end { DoxyEnumerate}
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
Referenced by Auto\- Contact\- Turn\- ::update\- Topology(), and Auto\- Contact\- Terminal\- ::update\- Topology().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a5ca22c853ee33a2b26367eaf29457766} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !make\- Dogleg@{ make\- Dogleg} }
\index { make\- Dogleg@{ make\- Dogleg} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{make\-Dogleg}] { \setlength { \rightskip } { 0pt plus 5cm} unsigned int make\- Dogleg (
\begin { DoxyParamCaption}
\item [{{\bf Interval}}] { interval, }
\item [{unsigned int}] { flags = { \ttfamily KbNoFlags} }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a5ca22c853ee33a2b26367eaf29457766}
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-08-19 06:27:09 -05:00
{ \bfseries Returns\- :} A set of flags telling if the break has occured on the left candidate (\hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679} { Katabatic\- ::\- Kb\- Dogleg\- On\- Left} ) or right (\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-08-19 06:27:09 -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 (\hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679} { Katabatic\- ::\- Kb\- Dogleg\- On\- Left} ) or on the { \itshape right} of the interval (\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-08-19 06:27:09 -05:00
\item A { \itshape left} candidate include the { \itshape min} of the interval into it's span.
\item A { \itshape right} candidate include the { \itshape max} of the interval into it'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-08-19 06:27:09 -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.
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aa21b16647c1750ba8b3eb9d99b12f073} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !make\- Dogleg@{ make\- Dogleg} }
\index { make\- Dogleg@{ make\- Dogleg} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{make\-Dogleg}] { \setlength { \rightskip } { 0pt plus 5cm} unsigned int make\- Dogleg (
\begin { DoxyParamCaption}
\item [{{\bf G\-Cell} $\ast$}] { dogleg\- G\- Cell, }
\item [{unsigned int}] { flags = { \ttfamily KbNoFlags} }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ aa21b16647c1750ba8b3eb9d99b12f073}
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 (\hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217af756099f1bbe259dd1bf22067dc40eac} { Katabatic\- ::\- Kb\- Use\- Above\- Layer} or \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().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a37a14b40295ccb50cd5001891385807b} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !\- \_ \- make\- Dogleg@{ \- \_ \- make\- Dogleg} }
\index { \- \_ \- make\- Dogleg@{ \- \_ \- make\- Dogleg} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{\-\_\-make\-Dogleg}] { \setlength { \rightskip } { 0pt plus 5cm} unsigned int \- \_ \- make\- Dogleg (
\begin { DoxyParamCaption}
\item [{{\bf G\-Cell} $\ast$}] { dogleg\- G\- Cell, }
\item [{unsigned int}] { flags}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a37a14b40295ccb50cd5001891385807b}
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-08-19 06:27:09 -05:00
{ \bfseries Returns\- :} \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217af756099f1bbe259dd1bf22067dc40eac} { Katabatic\- ::\- Kb\- Use\- Above\- Layer} if the dogleg is using the { \itshape above} layer (\hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a41cbd981337678e042354f340bfae25d} { Katabatic\- ::\- Kb\- Use\- Below\- Layer} for the below layer).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\item If the segment pass through the breaking \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} , it'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 \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 \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-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a36c0eecad40d3559b5378caefec6a7e0} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a36c0eecad40d3559b5378caefec6a7e0} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{move\-U\-Left}] { \setlength { \rightskip } { 0pt plus 5cm} bool move\- U\- Left (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ af8ca7b17e952f4b599aeeb2f4e5be395}
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-08-19 06:27:09 -05:00
Displace an Horizontal or Vertical segment to the \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-08-19 06:27:09 -05:00
\item And, of course, the segment must not already by on the bottomost \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} ...
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\item The supporting \hyperlink { classKatabatic_ 1_ 1AutoContact} { Auto\- Contact} (source \& target) are changed of \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-08-19 06:27:09 -05:00
{ \bfseries Returns\- :} { \bfseries true} if the move has succeeded.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a1fa2421b74bf0eb934b7002fd3da2321} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a1fa2421b74bf0eb934b7002fd3da2321} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{move\-U\-Right}] { \setlength { \rightskip } { 0pt plus 5cm} bool move\- U\- Right (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [pure virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ad7fd54ca229fcf5ccd99f87b019b9cbc}
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-08-19 06:27:09 -05:00
Displace an Horizontal or Vertical segment to the \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-08-19 06:27:09 -05:00
\begin { DoxySeeAlso} { See Also}
\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-08-19 06:27:09 -05:00
Implemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ aa469e37853e31f8b1bc817518c896d62} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ aa469e37853e31f8b1bc817518c896d62} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a1fbc0adb4c0b14632edc7c55f028cd4b} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !slacken@{ slacken} }
\index { slacken@{ slacken} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{slacken}] { \setlength { \rightskip } { 0pt plus 5cm} void slacken (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags}
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a1fbc0adb4c0b14632edc7c55f028cd4b}
If the the \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-08-19 06:27:09 -05:00
If { \ttfamily flags} contains \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-08-19 06:27:09 -05:00
If { \ttfamily flags} contains \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 \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's terminal, the other one offering sufficient slack (typically\- : 8).
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
The segment will also be slackened from it'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-08-19 06:27:09 -05:00
The { \ttfamily \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't help. In fact, it will only clutter more the \hyperlink { classKatabatic_ 1_ 1GCell} { G\- Cell} and make subsequent routing more difficult.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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'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-08-19 06:27:09 -05:00
References Auto\- Segment\- ::get\- Aligneds().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{reduce\-Dogleg\-Layer}] { \setlength { \rightskip } { 0pt plus 5cm} bool reduce\- Dogleg\- Layer (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ acecc9a1d55a271a4b1587d7872cfe133}
2018-06-06 11:42:26 -05:00
Perform the actual layer change on a reduced segment. This method is to be called juste before destroying the \hyperlink { namespaceKatabatic} { Katabatic} database.
2018-08-19 06:27:09 -05:00
{ \bfseries Returns\- :} { \bfseries true} if a change occurs.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a27a6a2c747ff93d209878a32d97e9157} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !reduce@{ reduce} }
\index { reduce@{ reduce} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{reduce}] { \setlength { \rightskip } { 0pt plus 5cm} bool reduce (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a27a6a2c747ff93d209878a32d97e9157}
2018-06-06 11:42:26 -05:00
Sets the segment into reduced state.
2018-08-19 06:27:09 -05:00
{ \bfseries Returns\- :} { \bfseries true} if the operation did succeed. The layer will not be actually changed until the \hyperlink { namespaceKatabatic} { Katabatic} database is saved/destroyed.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
A segment can be reduced if\- :
2018-06-06 11:42:26 -05:00
\begin { DoxyItemize}
2018-08-19 06:27:09 -05:00
\item Source \& target are \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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\begin { DoxySeeAlso} { See Also}
\hyperlink { classKatabatic_ 1_ 1AutoSegment_ ace393c3c082a5e62a348168354660e39} { Auto\- Segment\- ::raise()}
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ace393c3c082a5e62a348168354660e39} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !raise@{ raise} }
\index { raise@{ raise} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{raise}] { \setlength { \rightskip } { 0pt plus 5cm} bool raise (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ ace393c3c082a5e62a348168354660e39}
2018-06-06 11:42:26 -05:00
Get a segment out of { \itshape reduced} state.
2018-08-19 06:27:09 -05:00
{ \bfseries Returns\- :} { \bfseries true} if a state change did really take place.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\begin { DoxySeeAlso} { See Also}
\hyperlink { classKatabatic_ 1_ 1AutoSegment_ a27a6a2c747ff93d209878a32d97e9157} { Auto\- Segment\- ::reduce()}
2018-06-06 11:42:26 -05:00
\end { DoxySeeAlso}
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8b0d5044dce091d06b633848a6f8a66d} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !canonize@{ canonize} }
\index { canonize@{ canonize} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{canonize}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segment} $ \ast $ canonize (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags = { \ttfamily KbNoFlags} }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a8b0d5044dce091d06b633848a6f8a66d}
Find and set the canonical \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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
The canonical \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.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\begin { DoxyParagraph} { Remark\- :}
2018-06-06 11:42:26 -05:00
Canonical aware method.
\end { DoxyParagraph}
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::\- \_ \- make\- Dogleg(), and Auto\- Vertical\- ::\- \_ \- make\- Dogleg().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !invalidate@{ invalidate} }
\index { invalidate@{ invalidate} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{invalidate}] { \setlength { \rightskip } { 0pt plus 5cm} void invalidate (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags = { \ttfamily { \bf Kb\- Propagate} } }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0}
Invalidate this \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} , or if the \hyperlink { namespaceKatabatic_ a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d} { Katabatic\- ::\- Kb\- Propagate} flags is set, the whole set of aligned segments.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\begin { DoxyParagraph} { Remark\- :}
2018-06-06 11:42:26 -05:00
If \hyperlink { namespaceKatabatic} { Katabatic} is in the destruction stage, this function does nothing.
\end { DoxyParagraph}
2018-08-19 06:27:09 -05:00
\begin { DoxyParagraph} { Remark\- :}
2018-06-06 11:42:26 -05:00
Canonical aware method.
\end { DoxyParagraph}
2018-08-19 06:27:09 -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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a7654ca2b0787b8a9eac8629bf9218761} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !compute\- Optimal@{ compute\- Optimal} }
\index { compute\- Optimal@{ compute\- Optimal} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{compute\-Optimal}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Interval} compute\- Optimal (
\begin { DoxyParamCaption}
\item [{set$<$ {\bf Auto\-Segment} $\ast$ $>$ \&}] { processeds}
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a7654ca2b0787b8a9eac8629bf9218761}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
2018-08-19 06:27:09 -05:00
{ \em processeds} & A set of already processeds \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} . Used by the caller function to avoid doing again the computation on an \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-08-19 06:27:09 -05:00
\begin { DoxyParagraph} { Remark\- :}
2018-06-06 11:42:26 -05:00
Canonical aware method.
\end { DoxyParagraph}
2018-08-19 06:27:09 -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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a3881efebb7510d9b22e5f89bcd418954} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !set\- Axis@{ set\- Axis} }
\index { set\- Axis@{ set\- Axis} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{set\-Axis}] { \setlength { \rightskip } { 0pt plus 5cm} void set\- Axis (
\begin { DoxyParamCaption}
\item [{{\bf Db\-U\-::\-Unit}}] { axis, }
\item [{unsigned int}] { flags = { \ttfamily KbNoFlags} }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a3881efebb7510d9b22e5f89bcd418954}
2018-06-06 11:42:26 -05:00
\begin { DoxyParams} { Parameters}
{ \em axis} & The new position of the axis. \\
\hline
2018-08-19 06:27:09 -05:00
{ \em flags} & See Kb\- Realignate.\\
2018-06-06 11:42:26 -05:00
\hline
\end { DoxyParams}
2018-08-19 06:27:09 -05:00
Set the axis of an aligned set. This method does nothing if not called on the canonical \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 \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} are not looked after). To force an actual axis set, with invalidation of the whole \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} set, set the Kb\- Realignate flag.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\begin { DoxyParagraph} { Remark\- :}
2018-06-06 11:42:26 -05:00
Canonical aware method.
\end { DoxyParagraph}
2018-08-19 06:27:09 -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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{to\-Constraint\-Axis}] { \setlength { \rightskip } { 0pt plus 5cm} bool to\- Constraint\- Axis (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags = { \ttfamily { \bf Kb\- Realignate} } }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a8ab41a962e18810808f4f065863b5a73}
If the \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-08-19 06:27:09 -05:00
\begin { DoxyParagraph} { Remark\- :}
2018-06-06 11:42:26 -05:00
Canonical aware method.
\end { DoxyParagraph}
2018-08-19 06:27:09 -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().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{to\-Optimal\-Axis}] { \setlength { \rightskip } { 0pt plus 5cm} bool to\- Optimal\- Axis (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags = { \ttfamily { \bf Kb\- Realignate} } }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a750983d7154c94b54537127a3a18e14b}
If the \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-08-19 06:27:09 -05:00
\begin { DoxyParagraph} { Remark\- :}
2018-06-06 11:42:26 -05:00
Canonical aware method.
\end { DoxyParagraph}
2018-08-19 06:27:09 -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().
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-On\-Source\-Contact}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segments} get\- On\- Source\- Contact (
\begin { DoxyParamCaption}
\item [{unsigned int}] { direction}
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ a4430f9704a59e1d4f7c37d7166649510}
{ \bfseries Returns\- :} The Collection of \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} in { \ttfamily direction} that are on this segment source contact.
References Auto\- Segment\- ::get\- Source().
\hypertarget { 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::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-On\-Target\-Contact}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segments} get\- On\- Target\- Contact (
\begin { DoxyParamCaption}
\item [{unsigned int}] { direction}
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ aadbb84c0f1383f6a2addc2661e388583}
{ \bfseries Returns\- :} The Collection of \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} in { \ttfamily direction} that are on this segment target contact.
References Auto\- Segment\- ::get\- Target().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aaca749f49cd03ca06449d5ea2104033a} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Aligneds@{ get\- Aligneds} }
\index { get\- Aligneds@{ get\- Aligneds} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Aligneds}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segments} get\- Aligneds (
\begin { DoxyParamCaption}
\item [{unsigned int}] { flags = { \ttfamily KbNoFlags} }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ aaca749f49cd03ca06449d5ea2104033a}
The Collection of Auto\- Segments that are aligned on this one through \hyperlink { classKatabatic_ 1_ 1AutoContactHTee} { Auto\- Contact\- H\- Tee} or \hyperlink { classKatabatic_ 1_ 1AutoContactVTee} { Auto\- Contact\- V\- Tee} . If the { \ttfamily flags} contains \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().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ aadc6427db83ebdb690e74980d9c8d7d8} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !get\- Perpandiculars@{ get\- Perpandiculars} }
\index { get\- Perpandiculars@{ get\- Perpandiculars} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{get\-Perpandiculars}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Auto\- Segments} get\- Perpandiculars (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)} } \label { classKatabatic_ 1_ 1AutoSegment_ aadc6427db83ebdb690e74980d9c8d7d8}
The Collection of all Auto\- Segments directly perpandiculars to the whole aligned set.
Referenced by Auto\- Segment\- ::compute\- Optimal().
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a8348937b1db79480305b178482d3ed61} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !\- \_ \- pre\- Create@{ \- \_ \- pre\- Create} }
\index { \- \_ \- pre\- Create@{ \- \_ \- pre\- Create} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{\-\_\-pre\-Create}] { \setlength { \rightskip } { 0pt plus 5cm} void \- \_ \- pre\- Create (
\begin { DoxyParamCaption}
\item [{{\bf Auto\-Contact} $\ast$}] { source, }
\item [{{\bf Auto\-Contact} $\ast$}] { target}
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [static]} , { \ttfamily [protected]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a8348937b1db79480305b178482d3ed61}
Perform sanity checks before allowing the actual creation of an \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-08-19 06:27:09 -05:00
\item { \ttfamily source} and { \ttfamily target} must not be { \ttfamily N\- U\- L\- L} .
2018-06-06 11:42:26 -05:00
\item { \ttfamily source} and { \ttfamily target} must be different.
2018-08-19 06:27:09 -05:00
\end { DoxyItemize} \hypertarget { classKatabatic_ 1_ 1AutoSegment_ a3715b38135ca24745f610bebd3407c10} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !\- \_ \- post\- Create@{ \- \_ \- post\- Create} }
\index { \- \_ \- post\- Create@{ \- \_ \- post\- Create} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{\-\_\-post\-Create}] { \setlength { \rightskip } { 0pt plus 5cm} void \- \_ \- post\- Create (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [protected]} , { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a3715b38135ca24745f610bebd3407c10}
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-08-19 06:27:09 -05:00
\item Insert the \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} in the lookup/\- Session machanism.
\item Call \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a23599eee5a07af377fbc8d47cda7e7b0} { Auto\- Segment\- ::invalidate()} .
\item Call \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a102e0f4bbb0386e41be214d15a9e4549} { Auto\- Segment\- ::update\- Orient()} .
\item Call \hyperlink { classKatabatic_ 1_ 1AutoSegment_ a6d95f4de39c13611786c95ddc7b8942e} { Auto\- Segment\- ::update\- Positions()} .
2018-06-06 11:42:26 -05:00
\end { DoxyItemize}
2018-08-19 06:27:09 -05:00
Reimplemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a3715b38135ca24745f610bebd3407c10} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a3715b38135ca24745f610bebd3407c10} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
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-08-19 06:27:09 -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-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a7c13d9795eafd477994961f8a0d962d0} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !\- \_ \- pre\- Destroy@{ \- \_ \- pre\- Destroy} }
\index { \- \_ \- pre\- Destroy@{ \- \_ \- pre\- Destroy} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{\-\_\-pre\-Destroy}] { \setlength { \rightskip } { 0pt plus 5cm} void \- \_ \- pre\- Destroy (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [protected]} , { \ttfamily [virtual]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a7c13d9795eafd477994961f8a0d962d0}
Perform operations that must be done before the actual destructor is called. Merely whidrawn the \hyperlink { classKatabatic_ 1_ 1AutoSegment} { Auto\- Segment} from the lookup/\- Session mechanism.
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Reimplemented in \hyperlink { classKatabatic_ 1_ 1AutoVertical_ a7c13d9795eafd477994961f8a0d962d0} { Auto\- Vertical} , and \hyperlink { classKatabatic_ 1_ 1AutoHorizontal_ a7c13d9795eafd477994961f8a0d962d0} { Auto\- Horizontal} .
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
References Observable\- ::notify(), and Session\- ::unlink().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Horizontal\- ::\- \_ \- pre\- Destroy(), and Auto\- Vertical\- ::\- \_ \- pre\- Destroy().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ a6a98d2e5839b880893703ad45db4e4c4} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !\- \_ \- invalidate@{ \- \_ \- invalidate} }
\index { \- \_ \- invalidate@{ \- \_ \- invalidate} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{\-\_\-invalidate}] { \setlength { \rightskip } { 0pt plus 5cm} { \bf Interval} \- \_ \- invalidate (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
)\hspace { 0.3cm} { \ttfamily [protected]} } } \label { classKatabatic_ 1_ 1AutoSegment_ a6a98d2e5839b880893703ad45db4e4c4}
2018-06-06 11:42:26 -05:00
Invalidate this segment. The segment is scheduled into the \hyperlink { classKatabatic_ 1_ 1Session} { Session} revalidation mechanism.
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::invalidate().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -05:00
\hypertarget { classKatabatic_ 1_ 1AutoSegment_ ade0d97282e43595452ae8ac326d99752} { \index { Katabatic\- ::\- Auto\- Segment@{ Katabatic\- ::\- Auto\- Segment} !\- \_ \- get\- Flags@{ \- \_ \- get\- Flags} }
\index { \- \_ \- get\- Flags@{ \- \_ \- get\- Flags} !Katabatic::AutoSegment@{ Katabatic\- ::\- Auto\- Segment} }
\subsubsection [{\-\_\-get\-Flags}] { \setlength { \rightskip } { 0pt plus 5cm} unsigned int \- \_ \- get\- Flags (
\begin { DoxyParamCaption}
{ }
\end { DoxyParamCaption}
) const\hspace { 0.3cm} { \ttfamily [inline]} , { \ttfamily [protected]} } } \label { classKatabatic_ 1_ 1AutoSegment_ ade0d97282e43595452ae8ac326d99752}
2018-06-06 11:42:26 -05:00
Sets { \ttfamily flags} given as arguments.
2018-08-19 06:27:09 -05:00
Referenced by Auto\- Segment\- ::compute\- Terminal().
2018-06-06 11:42:26 -05:00
2018-08-19 06:27:09 -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-08-19 06:27:09 -05:00
Auto\- Segment.\- h\item
Auto\- Segment.\- cpp\item
Auto\- Segment.\- dox\end { DoxyCompactItemize}