coriolis/katabatic/doc/html/classKatabatic_1_1AutoSegme...

4382 lines
344 KiB
HTML

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0//EN'>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Katabatic Documentation</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="SoC.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head>
<h1 id="pagetop" class="header">Katabatic - Routing Toolbox</h1>
<!--
<center class="header">
<table class="header">
<tr>
<td><a href="customSummary.html">Summary</a></td>
<td><a href="namespaces.html">Namespaces</a></td>
<td><a href="customHierarchy.html">Class Hierarchy</a></td>
<td><a href="annotated.html">Classes</a></td>
<td><a href="functions.html">Member Index</a></td>
</tr>
</table>
</center>
-->
<br>
<body onload="javascript:toggleLevel(1)">
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceKatabatic.html">Katabatic</a></li><li class="navelem"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="classKatabatic_1_1AutoSegment-members.html">List of all members</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> </div>
<div class="headertitle">
<div class="title">AutoSegment Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Abstract base class for <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>.
<a href="classKatabatic_1_1AutoSegment.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for AutoSegment:</div>
<div class="dyncontent">
<div class="center"><img src="classKatabatic_1_1AutoSegment__inherit__graph.png" border="0" usemap="#AutoSegment_inherit__map" alt="Inheritance graph"/></div>
<map name="AutoSegment_inherit__map" id="AutoSegment_inherit__map">
<area shape="rect" id="node2" href="classKatabatic_1_1AutoHorizontal.html" title="Concrete Horizontal AutoSegment. " alt="" coords="5,80,112,107"/>
<area shape="rect" id="node3" href="classKatabatic_1_1AutoVertical.html" title="Concrete Vertical AutoSegment. " alt="" coords="137,80,231,107"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a53877ff5ef48eb0030c2581a6eeb3c09"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">base</a> () const =0</td></tr>
<tr class="separator:a53877ff5ef48eb0030c2581a6eeb3c09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade416d0483aefe986988fa89a7cf6fcf"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ade416d0483aefe986988fa89a7cf6fcf">base</a> ()=0</td></tr>
<tr class="separator:ade416d0483aefe986988fa89a7cf6fcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a659b8ed90de679564924afe07af478de"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Horizontal.html">Horizontal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a659b8ed90de679564924afe07af478de">getHorizontal</a> ()</td></tr>
<tr class="separator:a659b8ed90de679564924afe07af478de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6a809b6f3ef3cf5385fa35580e31e7a"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Vertical.html">Vertical</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ab6a809b6f3ef3cf5385fa35580e31e7a">getVertical</a> ()</td></tr>
<tr class="separator:ab6a809b6f3ef3cf5385fa35580e31e7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55a3a88610ef1af9931e634f77f2403b"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Cell.html">Cell</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a55a3a88610ef1af9931e634f77f2403b">getCell</a> () const</td></tr>
<tr class="separator:a55a3a88610ef1af9931e634f77f2403b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a692492374623a5c6096b2c4a51190359"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a692492374623a5c6096b2c4a51190359">getNet</a> () const</td></tr>
<tr class="separator:a692492374623a5c6096b2c4a51190359"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab045567c4f529dca7790d66c17c3084f"><td class="memItemLeft" align="right" valign="top">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ab045567c4f529dca7790d66c17c3084f">getLayer</a> () const</td></tr>
<tr class="separator:ab045567c4f529dca7790d66c17c3084f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63a3ab1e6501bbad68b9efd4998e48c0"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html">Box</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a63a3ab1e6501bbad68b9efd4998e48c0">getBoundingBox</a> () const</td></tr>
<tr class="separator:a63a3ab1e6501bbad68b9efd4998e48c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1defbbaef0a1975993e157a8d5f68ded"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Hook.html">Hook</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a1defbbaef0a1975993e157a8d5f68ded">getSourceHook</a> ()</td></tr>
<tr class="separator:a1defbbaef0a1975993e157a8d5f68ded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad62048f68151e5db987b5a7c79cce4ed"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Hook.html">Hook</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ad62048f68151e5db987b5a7c79cce4ed">getTargetHook</a> ()</td></tr>
<tr class="separator:ad62048f68151e5db987b5a7c79cce4ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a497ea2ceeddb939dbc84eae0e7862335"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Contact.html">Contact</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a497ea2ceeddb939dbc84eae0e7862335">getSource</a> () const</td></tr>
<tr class="separator:a497ea2ceeddb939dbc84eae0e7862335"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0862c201bd7d8e5427e44ca2427c2fe6"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Contact.html">Contact</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a0862c201bd7d8e5427e44ca2427c2fe6">getTarget</a> () const</td></tr>
<tr class="separator:a0862c201bd7d8e5427e44ca2427c2fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9216d4467c2d4e0c7b9d9a8b8e798bee"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html">Component</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a9216d4467c2d4e0c7b9d9a8b8e798bee">getOppositeAnchor</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html">Component</a> *) const</td></tr>
<tr class="separator:a9216d4467c2d4e0c7b9d9a8b8e798bee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7339a1ebc7d46384bc4e1317af84bea1"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/namespaceHurricane.html#a7d26d99aeb5dd6d70d51bd35d2473e72">Components</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a7339a1ebc7d46384bc4e1317af84bea1">getAnchors</a> () const</td></tr>
<tr class="separator:a7339a1ebc7d46384bc4e1317af84bea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00b8f54c8171f6699e57de1b8c18eeb1"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a00b8f54c8171f6699e57de1b8c18eeb1">getX</a> () const</td></tr>
<tr class="separator:a00b8f54c8171f6699e57de1b8c18eeb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4580de6b074712e400d5d238ce3af054"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a4580de6b074712e400d5d238ce3af054">getY</a> () const</td></tr>
<tr class="separator:a4580de6b074712e400d5d238ce3af054"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c63fe7288748eaf5332ca796a36d872"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a9c63fe7288748eaf5332ca796a36d872">getWidth</a> () const</td></tr>
<tr class="separator:a9c63fe7288748eaf5332ca796a36d872"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1ca7adfc68761c749a16f65c9aa4088"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ab1ca7adfc68761c749a16f65c9aa4088">getLength</a> () const</td></tr>
<tr class="separator:ab1ca7adfc68761c749a16f65c9aa4088"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a88dc051a8d324aff8763609957dcaa"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a8a88dc051a8d324aff8763609957dcaa">getSourcePosition</a> () const</td></tr>
<tr class="separator:a8a88dc051a8d324aff8763609957dcaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65dea76b4efad9d3caa78be44e96c94c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a65dea76b4efad9d3caa78be44e96c94c">getTargetPosition</a> () const</td></tr>
<tr class="separator:a65dea76b4efad9d3caa78be44e96c94c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a8e127557d70de70f9efb488be30d1a"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a8a8e127557d70de70f9efb488be30d1a">getSourceX</a> () const</td></tr>
<tr class="separator:a8a8e127557d70de70f9efb488be30d1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae913463a76d08b079611a993cebea1a9"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ae913463a76d08b079611a993cebea1a9">getSourceY</a> () const</td></tr>
<tr class="separator:ae913463a76d08b079611a993cebea1a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e6462b43ca9eaeea1e08866cec59a8c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a8e6462b43ca9eaeea1e08866cec59a8c">getTargetX</a> () const</td></tr>
<tr class="separator:a8e6462b43ca9eaeea1e08866cec59a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a003e545e792e8bf22d264bcb3bc90547"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a003e545e792e8bf22d264bcb3bc90547">getTargetY</a> () const</td></tr>
<tr class="separator:a003e545e792e8bf22d264bcb3bc90547"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbac6289ab14574da20f26c933e2e741"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#acbac6289ab14574da20f26c933e2e741">invert</a> ()</td></tr>
<tr class="separator:acbac6289ab14574da20f26c933e2e741"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad4271c35e0162c8a4d034dca07f5a4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aad4271c35e0162c8a4d034dca07f5a4b">setLayer</a> (const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> *)</td></tr>
<tr class="separator:aad4271c35e0162c8a4d034dca07f5a4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21b9cefd33ae22e4c2070ad441bdd30b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">isHorizontal</a> () const</td></tr>
<tr class="separator:a21b9cefd33ae22e4c2070ad441bdd30b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd54544ef1710ee4b67cfb021d73446c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#abd54544ef1710ee4b67cfb021d73446c">isVertical</a> () const</td></tr>
<tr class="separator:abd54544ef1710ee4b67cfb021d73446c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19ba379112d6b29faa45c5eefbf38500"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a19ba379112d6b29faa45c5eefbf38500">isGlobal</a> () const</td></tr>
<tr class="separator:a19ba379112d6b29faa45c5eefbf38500"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add556a145a89fdbcea82346abfb873dc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#add556a145a89fdbcea82346abfb873dc">isLocal</a> () const</td></tr>
<tr class="separator:add556a145a89fdbcea82346abfb873dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd7362b850709bed8b61c1aa22399f97"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#afd7362b850709bed8b61c1aa22399f97">isFixed</a> () const</td></tr>
<tr class="separator:afd7362b850709bed8b61c1aa22399f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72741158d19af38e84c5e9c08f91270f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a72741158d19af38e84c5e9c08f91270f">isBipoint</a> () const</td></tr>
<tr class="separator:a72741158d19af38e84c5e9c08f91270f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef3a61d223be84ac336c4f7bc64884ba"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aef3a61d223be84ac336c4f7bc64884ba">isWeakTerminal</a> () const</td></tr>
<tr class="separator:aef3a61d223be84ac336c4f7bc64884ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4605c9284168f0a62fa48aa2d3ae5ee9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a4605c9284168f0a62fa48aa2d3ae5ee9">isStrongTerminal</a> (unsigned int flags=0) const</td></tr>
<tr class="separator:a4605c9284168f0a62fa48aa2d3ae5ee9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a772596f5d5fa897822dbd0da37024735"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a772596f5d5fa897822dbd0da37024735">isLayerChange</a> () const</td></tr>
<tr class="separator:a772596f5d5fa897822dbd0da37024735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3776b8258ab6544c9551d0714fcc75d2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a3776b8258ab6544c9551d0714fcc75d2">isSpinTop</a> () const</td></tr>
<tr class="separator:a3776b8258ab6544c9551d0714fcc75d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab786dbdb67ea727369b1a988497c01d1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ab786dbdb67ea727369b1a988497c01d1">isSpinBottom</a> () const</td></tr>
<tr class="separator:ab786dbdb67ea727369b1a988497c01d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90d934f7275aed35f4ecb157c6950d6f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a90d934f7275aed35f4ecb157c6950d6f">isSpinTopOrBottom</a> () const</td></tr>
<tr class="separator:a90d934f7275aed35f4ecb157c6950d6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a461c31a8d12458939b78ccecb3b8c299"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a461c31a8d12458939b78ccecb3b8c299">isReduced</a> () const</td></tr>
<tr class="separator:a461c31a8d12458939b78ccecb3b8c299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62d61c231cf404a814ae37665fa8164f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a62d61c231cf404a814ae37665fa8164f">isStrap</a> () const</td></tr>
<tr class="separator:a62d61c231cf404a814ae37665fa8164f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75d91371e5281dd21f60ff39ae70a3e5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a75d91371e5281dd21f60ff39ae70a3e5">isDogleg</a> () const</td></tr>
<tr class="separator:a75d91371e5281dd21f60ff39ae70a3e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac540608485240ff88970131ebc02c1ab"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ac540608485240ff88970131ebc02c1ab">isInvalidated</a> () const</td></tr>
<tr class="separator:ac540608485240ff88970131ebc02c1ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b075644356f016105b3050b031a2ec"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a77b075644356f016105b3050b031a2ec">isInvalidatedLayer</a> () const</td></tr>
<tr class="separator:a77b075644356f016105b3050b031a2ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7d9cf1d7581b1cab04cf38c64f0f72a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#af7d9cf1d7581b1cab04cf38c64f0f72a">isCreated</a> () const</td></tr>
<tr class="separator:af7d9cf1d7581b1cab04cf38c64f0f72a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6d3008d345195a99e0341f0379c33b7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#af6d3008d345195a99e0341f0379c33b7">isCanonical</a> () const</td></tr>
<tr class="separator:af6d3008d345195a99e0341f0379c33b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd22f431b7cf3695babab78fc3b4c9e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a2bd22f431b7cf3695babab78fc3b4c9e">isUnsetAxis</a> () const</td></tr>
<tr class="separator:a2bd22f431b7cf3695babab78fc3b4c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a782cff57d3fe10e758d19ee65a06643d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a782cff57d3fe10e758d19ee65a06643d">isSlackened</a> () const</td></tr>
<tr class="separator:a782cff57d3fe10e758d19ee65a06643d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a676fcb7ece71d129b7a4d87a3f2e07aa"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a676fcb7ece71d129b7a4d87a3f2e07aa">_canSlacken</a> () const =0</td></tr>
<tr class="separator:a676fcb7ece71d129b7a4d87a3f2e07aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1a231b2324a486d4ef61b247886cdeb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#af1a231b2324a486d4ef61b247886cdeb">canReduce</a> () const</td></tr>
<tr class="separator:af1a231b2324a486d4ef61b247886cdeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a449ebb156fd51b04bbc029a657b4cded"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a449ebb156fd51b04bbc029a657b4cded">mustRaise</a> () const</td></tr>
<tr class="separator:a449ebb156fd51b04bbc029a657b4cded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43c865bcfcfd6132352a9ac8a84c25cd"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a43c865bcfcfd6132352a9ac8a84c25cd">canDogleg</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a>)</td></tr>
<tr class="separator:a43c865bcfcfd6132352a9ac8a84c25cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad55626c9d793a0b08bcff5be2a5ad0c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aad55626c9d793a0b08bcff5be2a5ad0c">canMoveULeft</a> (float reserve=0.0) const =0</td></tr>
<tr class="separator:aad55626c9d793a0b08bcff5be2a5ad0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a096deb8a143f098eac2bff9ab9c52243"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a096deb8a143f098eac2bff9ab9c52243">canMoveURight</a> (float reserve=0.0) const =0</td></tr>
<tr class="separator:a096deb8a143f098eac2bff9ab9c52243"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6482341a342eb6e6b3b43f13fd4436f6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">canMoveUp</a> (float reserve=0.0, unsigned int flags=0) const</td></tr>
<tr class="separator:a6482341a342eb6e6b3b43f13fd4436f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cca3afced729492cae6649a92dc7e88"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">canPivotUp</a> (float reserve=0.0, unsigned int flags=0) const</td></tr>
<tr class="separator:a6cca3afced729492cae6649a92dc7e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24de580d1a371b8d27640cbc3431990b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">canPivotDown</a> (float reserve=0.0, unsigned int flags=0) const</td></tr>
<tr class="separator:a24de580d1a371b8d27640cbc3431990b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adec088de3c4c47a28ee9d58eb6d9cf85"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#adec088de3c4c47a28ee9d58eb6d9cf85">canSlacken</a> (unsigned int flags=0) const</td></tr>
<tr class="separator:adec088de3c4c47a28ee9d58eb6d9cf85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af026a81002bd907f1ccd4a4784aaa1db"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#af026a81002bd907f1ccd4a4784aaa1db">checkPositions</a> () const =0</td></tr>
<tr class="separator:af026a81002bd907f1ccd4a4784aaa1db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d5732fd10b4a05076981066a4674487"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a3d5732fd10b4a05076981066a4674487">checkConstraints</a> () const =0</td></tr>
<tr class="separator:a3d5732fd10b4a05076981066a4674487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdedcef127ad2a3677a5b48d7d3453f3"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#afdedcef127ad2a3677a5b48d7d3453f3">getId</a> () const</td></tr>
<tr class="separator:afdedcef127ad2a3677a5b48d7d3453f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae35b78590ed6aa546b626ef95f28c533"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ae35b78590ed6aa546b626ef95f28c533">getDirection</a> () const =0</td></tr>
<tr class="separator:ae35b78590ed6aa546b626ef95f28c533"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a819cf639562a031a1e2e061fe1293d66"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKatabatic_1_1GCell.html">GCell</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a819cf639562a031a1e2e061fe1293d66">getGCell</a> () const</td></tr>
<tr class="separator:a819cf639562a031a1e2e061fe1293d66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ca0022e253d355817d46a057ae01625"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a8ca0022e253d355817d46a057ae01625">getGCells</a> (vector&lt; <a class="el" href="classKatabatic_1_1GCell.html">GCell</a> *&gt; &amp;) const =0</td></tr>
<tr class="separator:a8ca0022e253d355817d46a057ae01625"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ca3fac97e325ec8a55d3e03a2ce11a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">getAutoSource</a> () const</td></tr>
<tr class="separator:a2ca3fac97e325ec8a55d3e03a2ce11a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa494ddc031f4dd1c24999ff83fb878c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">getAutoTarget</a> () const</td></tr>
<tr class="separator:afa494ddc031f4dd1c24999ff83fb878c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c5b0faacc768bf61e17eb72a4ccc248"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a2c5b0faacc768bf61e17eb72a4ccc248">getOppositeAnchor</a> (<a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *) const</td></tr>
<tr class="separator:a2c5b0faacc768bf61e17eb72a4ccc248"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a206b53c34f57945b6c7bdb711101e38f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a206b53c34f57945b6c7bdb711101e38f">getPerpandicularsBound</a> (set&lt; <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&gt; &amp;)</td></tr>
<tr class="separator:a206b53c34f57945b6c7bdb711101e38f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58c1170381b915930188608dab311442"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a58c1170381b915930188608dab311442">getParent</a> () const</td></tr>
<tr class="separator:a58c1170381b915930188608dab311442"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5b5aaa5b318369feee6003dbad039c2"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ab5b5aaa5b318369feee6003dbad039c2">getAxis</a> () const</td></tr>
<tr class="separator:ab5b5aaa5b318369feee6003dbad039c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeaa1543880686755e389c4807128428f"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aeaa1543880686755e389c4807128428f">getSourceU</a> () const =0</td></tr>
<tr class="separator:aeaa1543880686755e389c4807128428f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a828fef2716cc9c370d6d170bb96556ec"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a828fef2716cc9c370d6d170bb96556ec">getTargetU</a> () const =0</td></tr>
<tr class="separator:a828fef2716cc9c370d6d170bb96556ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4881df67bd8f036d0199ed6540fe774"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ab4881df67bd8f036d0199ed6540fe774">getDuSource</a> () const =0</td></tr>
<tr class="separator:ab4881df67bd8f036d0199ed6540fe774"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0644d656eedc71dba2fb3c6c0d83ed3f"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a0644d656eedc71dba2fb3c6c0d83ed3f">getDuTarget</a> () const =0</td></tr>
<tr class="separator:a0644d656eedc71dba2fb3c6c0d83ed3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5fb22520af4b94f2ae984304fa64c26"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ab5fb22520af4b94f2ae984304fa64c26">getOrigin</a> () const</td></tr>
<tr class="separator:ab5fb22520af4b94f2ae984304fa64c26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b81aad92361558c3b9e60fd501b89ba"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a5b81aad92361558c3b9e60fd501b89ba">getExtremity</a> () const</td></tr>
<tr class="separator:a5b81aad92361558c3b9e60fd501b89ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a248eb2fbb06e3286650b28567d495f0b"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a248eb2fbb06e3286650b28567d495f0b">getSpanU</a> () const =0</td></tr>
<tr class="separator:a248eb2fbb06e3286650b28567d495f0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc329583aa1546ed5a01e0628f3ca6ad"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#acc329583aa1546ed5a01e0628f3ca6ad">getMinSpanU</a> () const</td></tr>
<tr class="separator:acc329583aa1546ed5a01e0628f3ca6ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7685e309e1d910db3e8237f8a898c35"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ab7685e309e1d910db3e8237f8a898c35">getSourceConstraints</a> (unsigned int flags=0) const =0</td></tr>
<tr class="separator:ab7685e309e1d910db3e8237f8a898c35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c1b8b3cd57fb7b0bf60c7a6148237c2"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a9c1b8b3cd57fb7b0bf60c7a6148237c2">getTargetConstraints</a> (unsigned int flags=0) const =0</td></tr>
<tr class="separator:a9c1b8b3cd57fb7b0bf60c7a6148237c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c2fed22b081f8d3b7a69abb457153ea"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a7c2fed22b081f8d3b7a69abb457153ea">getConstraints</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> &amp;min, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> &amp;max) const =0</td></tr>
<tr class="separator:a7c2fed22b081f8d3b7a69abb457153ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29c3a56daaf4c78aa3ae6edbde37dd42"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a29c3a56daaf4c78aa3ae6edbde37dd42">getConstraints</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;i) const</td></tr>
<tr class="separator:a29c3a56daaf4c78aa3ae6edbde37dd42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7cf8d4df6a5d945dd180d45e8bbcedf"><td class="memItemLeft" align="right" valign="top">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aa7cf8d4df6a5d945dd180d45e8bbcedf">getUserConstraints</a> () const</td></tr>
<tr class="separator:aa7cf8d4df6a5d945dd180d45e8bbcedf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8789ebe71b2ff3d0265f5319a3be5afb"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a8789ebe71b2ff3d0265f5319a3be5afb">getSlack</a> () const</td></tr>
<tr class="separator:a8789ebe71b2ff3d0265f5319a3be5afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9405b4f5345d116f71c40ba2c16097d0"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a9405b4f5345d116f71c40ba2c16097d0">getOptimalMin</a> () const</td></tr>
<tr class="separator:a9405b4f5345d116f71c40ba2c16097d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bada13dd4460386d4bed22c1a4b3921"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a1bada13dd4460386d4bed22c1a4b3921">getOptimalMax</a> () const</td></tr>
<tr class="separator:a1bada13dd4460386d4bed22c1a4b3921"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a110201bd7c64ed78522cfb3f7b142431"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a110201bd7c64ed78522cfb3f7b142431">getOptimal</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;i) const</td></tr>
<tr class="separator:a110201bd7c64ed78522cfb3f7b142431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e3a02c7a9c1bd559fda628d596b00cd"><td class="memItemLeft" align="right" valign="top">virtual <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a0e3a02c7a9c1bd559fda628d596b00cd">getCost</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> axis) const</td></tr>
<tr class="separator:a0e3a02c7a9c1bd559fda628d596b00cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8acbe1037827da2c2fef71a18c5886c7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a8acbe1037827da2c2fef71a18c5886c7">getCanonical</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> &amp;min, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> &amp;max)</td></tr>
<tr class="separator:a8acbe1037827da2c2fef71a18c5886c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a988beca5780421c168a2475a5298009a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a988beca5780421c168a2475a5298009a">getCanonical</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;i)</td></tr>
<tr class="separator:a988beca5780421c168a2475a5298009a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a6fac115cb81db48e3ac9ffa0721bb5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a1a6fac115cb81db48e3ac9ffa0721bb5">unsetFlags</a> (unsigned int)</td></tr>
<tr class="separator:a1a6fac115cb81db48e3ac9ffa0721bb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb14f94914af58657a0dc2f50ec98df5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aeb14f94914af58657a0dc2f50ec98df5">setFlags</a> (unsigned int)</td></tr>
<tr class="separator:aeb14f94914af58657a0dc2f50ec98df5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf60d18ab6d951a34a3d06959ce2e76f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aaf60d18ab6d951a34a3d06959ce2e76f">setDuSource</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> du)=0</td></tr>
<tr class="separator:aaf60d18ab6d951a34a3d06959ce2e76f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a246756d4c8b3e094a0a9d6de3c2109ff"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a246756d4c8b3e094a0a9d6de3c2109ff">setDuTarget</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> du)=0</td></tr>
<tr class="separator:a246756d4c8b3e094a0a9d6de3c2109ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc72aaeefa7450eaf67aee3212ec974d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#abc72aaeefa7450eaf67aee3212ec974d">computeTerminal</a> ()</td></tr>
<tr class="separator:abc72aaeefa7450eaf67aee3212ec974d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a102e0f4bbb0386e41be214d15a9e4549"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a102e0f4bbb0386e41be214d15a9e4549">updateOrient</a> ()=0</td></tr>
<tr class="separator:a102e0f4bbb0386e41be214d15a9e4549"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d95f4de39c13611786c95ddc7b8942e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a6d95f4de39c13611786c95ddc7b8942e">updatePositions</a> ()=0</td></tr>
<tr class="separator:a6d95f4de39c13611786c95ddc7b8942e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae82ffef92ad9ffdc5da5e0c1830d9537"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ae82ffef92ad9ffdc5da5e0c1830d9537">mergeUserConstraints</a> (const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;)</td></tr>
<tr class="separator:ae82ffef92ad9ffdc5da5e0c1830d9537"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8768352909d37ebad1c06c9cf4ef8bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ac8768352909d37ebad1c06c9cf4ef8bb">resetUserConstraints</a> ()</td></tr>
<tr class="separator:ac8768352909d37ebad1c06c9cf4ef8bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af92b3d000552b630695879dd5d4736a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#af92b3d000552b630695879dd5d4736a1">setOptimalMin</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> min)</td></tr>
<tr class="separator:af92b3d000552b630695879dd5d4736a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90173ab4f35b98c6544f9482ccd93b5e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a90173ab4f35b98c6544f9482ccd93b5e">setOptimalMax</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> max)</td></tr>
<tr class="separator:a90173ab4f35b98c6544f9482ccd93b5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88ac40c065bce0ff97792d18b41b6a67"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">revalidate</a> ()</td></tr>
<tr class="separator:a88ac40c065bce0ff97792d18b41b6a67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39c927c04b5016770692b9b8448c2f04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a39c927c04b5016770692b9b8448c2f04">makeDogleg</a> (<a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *)</td></tr>
<tr class="separator:a39c927c04b5016770692b9b8448c2f04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ca22c853ee33a2b26367eaf29457766"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a5ca22c853ee33a2b26367eaf29457766">makeDogleg</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a>, unsigned int flags=KbNoFlags)</td></tr>
<tr class="separator:a5ca22c853ee33a2b26367eaf29457766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa21b16647c1750ba8b3eb9d99b12f073"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aa21b16647c1750ba8b3eb9d99b12f073">makeDogleg</a> (<a class="el" href="classKatabatic_1_1GCell.html">GCell</a> *, unsigned int flags=KbNoFlags)</td></tr>
<tr class="separator:aa21b16647c1750ba8b3eb9d99b12f073"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37a14b40295ccb50cd5001891385807b"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a37a14b40295ccb50cd5001891385807b">_makeDogleg</a> (<a class="el" href="classKatabatic_1_1GCell.html">GCell</a> *, unsigned int flags)=0</td></tr>
<tr class="separator:a37a14b40295ccb50cd5001891385807b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ca7b17e952f4b599aeeb2f4e5be395"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#af8ca7b17e952f4b599aeeb2f4e5be395">moveULeft</a> ()=0</td></tr>
<tr class="separator:af8ca7b17e952f4b599aeeb2f4e5be395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7fd54ca229fcf5ccd99f87b019b9cbc"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ad7fd54ca229fcf5ccd99f87b019b9cbc">moveURight</a> ()=0</td></tr>
<tr class="separator:ad7fd54ca229fcf5ccd99f87b019b9cbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fbc0adb4c0b14632edc7c55f028cd4b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a1fbc0adb4c0b14632edc7c55f028cd4b">slacken</a> (unsigned int flags)</td></tr>
<tr class="separator:a1fbc0adb4c0b14632edc7c55f028cd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acecc9a1d55a271a4b1587d7872cfe133"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#acecc9a1d55a271a4b1587d7872cfe133">reduceDoglegLayer</a> ()</td></tr>
<tr class="separator:acecc9a1d55a271a4b1587d7872cfe133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27a6a2c747ff93d209878a32d97e9157"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a27a6a2c747ff93d209878a32d97e9157">reduce</a> ()</td></tr>
<tr class="separator:a27a6a2c747ff93d209878a32d97e9157"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace393c3c082a5e62a348168354660e39"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ace393c3c082a5e62a348168354660e39">raise</a> ()</td></tr>
<tr class="separator:ace393c3c082a5e62a348168354660e39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b0d5044dce091d06b633848a6f8a66d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a8b0d5044dce091d06b633848a6f8a66d">canonize</a> (unsigned int flags=KbNoFlags)</td></tr>
<tr class="separator:a8b0d5044dce091d06b633848a6f8a66d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23599eee5a07af377fbc8d47cda7e7b0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">invalidate</a> (unsigned int flags=<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">KbPropagate</a>)</td></tr>
<tr class="separator:a23599eee5a07af377fbc8d47cda7e7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa902247a1e967e52cc3ab087cd52b366"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">computeOptimal</a> (set&lt; <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&gt; &amp;processeds)</td></tr>
<tr class="separator:aa902247a1e967e52cc3ab087cd52b366"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3881efebb7510d9b22e5f89bcd418954"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a3881efebb7510d9b22e5f89bcd418954">setAxis</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>, unsigned int flags=KbNoFlags)</td></tr>
<tr class="separator:a3881efebb7510d9b22e5f89bcd418954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ab41a962e18810808f4f065863b5a73"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a8ab41a962e18810808f4f065863b5a73">toConstraintAxis</a> (unsigned int flags=<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a">KbRealignate</a>)</td></tr>
<tr class="separator:a8ab41a962e18810808f4f065863b5a73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a750983d7154c94b54537127a3a18e14b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a750983d7154c94b54537127a3a18e14b">toOptimalAxis</a> (unsigned int flags=<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a">KbRealignate</a>)</td></tr>
<tr class="separator:a750983d7154c94b54537127a3a18e14b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4430f9704a59e1d4f7c37d7166649510"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceKatabatic.html#a2221b0ddbc24f331809fc86f98e38041">AutoSegments</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a4430f9704a59e1d4f7c37d7166649510">getOnSourceContact</a> (unsigned int direction)</td></tr>
<tr class="separator:a4430f9704a59e1d4f7c37d7166649510"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadbb84c0f1383f6a2addc2661e388583"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceKatabatic.html#a2221b0ddbc24f331809fc86f98e38041">AutoSegments</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aadbb84c0f1383f6a2addc2661e388583">getOnTargetContact</a> (unsigned int direction)</td></tr>
<tr class="separator:aadbb84c0f1383f6a2addc2661e388583"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaca749f49cd03ca06449d5ea2104033a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceKatabatic.html#a2221b0ddbc24f331809fc86f98e38041">AutoSegments</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">getAligneds</a> (unsigned int flags=KbNoFlags)</td></tr>
<tr class="separator:aaca749f49cd03ca06449d5ea2104033a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadc6427db83ebdb690e74980d9c8d7d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceKatabatic.html#a2221b0ddbc24f331809fc86f98e38041">AutoSegments</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#aadc6427db83ebdb690e74980d9c8d7d8">getPerpandiculars</a> ()</td></tr>
<tr class="separator:aadc6427db83ebdb690e74980d9c8d7d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ab0cc9e57beeceec519cd4bd3e415569e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">create</a> (<a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *source, <a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *target, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> *hurricaneSegment)</td></tr>
<tr class="separator:ab0cc9e57beeceec519cd4bd3e415569e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa7ce652576b17985859fd6c29d21489"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#afa7ce652576b17985859fd6c29d21489">create</a> (<a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *source, <a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *target, unsigned int dir, size_t depth=RoutingGauge::nlayerdepth)</td></tr>
<tr class="separator:afa7ce652576b17985859fd6c29d21489"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ae64a61508d148cb4a0ee9b5ffb177659"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ae64a61508d148cb4a0ee9b5ffb177659">AutoSegment</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> *segment)</td></tr>
<tr class="separator:ae64a61508d148cb4a0ee9b5ffb177659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d135025de0c1725d6252099c2e70e2b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a5d135025de0c1725d6252099c2e70e2b">~AutoSegment</a> ()</td></tr>
<tr class="separator:a5d135025de0c1725d6252099c2e70e2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3715b38135ca24745f610bebd3407c10"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a3715b38135ca24745f610bebd3407c10">_postCreate</a> ()</td></tr>
<tr class="separator:a3715b38135ca24745f610bebd3407c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c13d9795eafd477994961f8a0d962d0"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a7c13d9795eafd477994961f8a0d962d0">_preDestroy</a> ()</td></tr>
<tr class="separator:a7c13d9795eafd477994961f8a0d962d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a98d2e5839b880893703ad45db4e4c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a6a98d2e5839b880893703ad45db4e4c4">_invalidate</a> ()</td></tr>
<tr class="separator:a6a98d2e5839b880893703ad45db4e4c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5b4a4f67d480cd5c9ce104e73e73da9"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#ae5b4a4f67d480cd5c9ce104e73e73da9">_getFlags</a> () const</td></tr>
<tr class="separator:ae5b4a4f67d480cd5c9ce104e73e73da9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:a8348937b1db79480305b178482d3ed61"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKatabatic_1_1AutoSegment.html#a8348937b1db79480305b178482d3ed61">_preCreate</a> (<a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *source, <a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *target)</td></tr>
<tr class="separator:a8348937b1db79480305b178482d3ed61"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Abstract base class for <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>. </p>
<h1><a class="anchor" id="secASCreation"></a>
Creating AutoHorizontal &amp; AutoVertical</h1>
<p><a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> is the abstract base class for <a class="el" href="classKatabatic_1_1AutoHorizontal.html" title="Concrete Horizontal AutoSegment. ">AutoHorizontal</a> and <a class="el" href="classKatabatic_1_1AutoVertical.html" title="Concrete Vertical AutoSegment. ">AutoVertical</a>. They are must be created only through the factory method: <a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">AutoSegment::create()</a>.</p>
<h1><a class="anchor" id="secASCharacteristics"></a>
Characteristics of AutoSegments</h1>
<ul>
<li>
Unique ID: to ease the enforcing of a deterministic behavior and to gain some independance from the pointers, each <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> is associated with an unique identifier. <span class="red"><b>IDs</b> are now directly taken from the <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Hurricane::Segment</a>.</span> </li>
<li>
Source contact is always lesser than Target contact <code>(Xs,Ys) &lt; (Xt,Yt)</code>. </li>
<li>
When assembled through <a class="el" href="classKatabatic_1_1AutoContactVTee.html" title="AutoContact V-Tee (one H, two V) ">AutoContactVTee</a> or <a class="el" href="classKatabatic_1_1AutoContactHTee.html" title="AutoContact H-Tee (two H, one V) ">AutoContactHTee</a>, AutoSegments became (i.e. must be kept) aligneds. Among a set of aligned AutoSegments, we distinguish a representative trough which we can manipulate the whole set. This representative is called the <em>canonical</em> <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> and is the one with the lowest <code>id</code>). </li>
<li>
<p class="startli">When an aligned set contains at least one global, all the segments of the set are tagged <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a16ef6f2b6b9e44559e41f04c652919ad">Katabatic::SegWeakGlobal</a>. This is especially useful on local ones to know if they are part of a much longer wire.</p>
<p class="endli">Conversely, a set of aligned may contains only local segments and thus will not have the flag set. </p>
</li>
<li>
To allow some optimization, the <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a637e0426170a532feac45548e009325d">Katabatic::SegNotAligned</a> 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. </li>
</ul>
<p><b>The Ever Fragmenting Data Structure</b></p>
<p>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).</p>
<h1><a class="anchor" id="secASOperations"></a>
Operations on AutoSegments</h1>
<ul>
<li>
<b>Slackening.</b> Constraints transmited through either source or target <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> are too tight (tighter than the <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>), by adding straps in the perpandicular direction, the full slack of the segment is restored. </li>
<li>
<b>Layer Change.</b> One or two layers above or below the current layer. One up/down may means into the perpandicular routing direction. </li>
<li>
<b>Dogleg Creation.</b> 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. </li>
<li>
<b>Reduction/Raising.</b> When a segment is a short dogleg, no greater than one picth, it can use the layer of the perpandiculars. </li>
</ul>
<h1><a class="anchor" id="secASInvalidate"></a>
Invalidate on AutoSegments</h1>
<p>The simple invalidation of an <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <b>do not</b> invalidate it's source &amp; target contact.</p>
<p>An axis position change or a layer change both invalidate the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <b>and</b> it's source &amp; target contacts.</p>
<p>For the complete invalidation/revalidation mechanism see <a class="el" href="classKatabatic_1_1Session.html#secSessionAlgo">Session Algorithm</a>.</p>
<h1><a class="anchor" id="secASAttributes"></a>
Main Attributes of AutoSegments</h1>
<p><a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> retains all attributes from Segment. The Segment itself beeing accessible through the <a class="el" href="classKatabatic_1_1AutoSegment.html#ade416d0483aefe986988fa89a7cf6fcf">base()</a> methods. </p><ul>
<li>
An unique <code>Id</code> (for determinism). </li>
<li>
The <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> from wich it starts from. It is the <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> of the source <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a>. </li>
<li>
A state, combination of flags from <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4">Katabatic::AutoSegmentFlag</a>. </li>
<li>
An interval for the optimal range of the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> axis. </li>
<li>
An interval for user's defined constraint on the axis. </li>
<li>
The interval giving the complete length of the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>, that is, with all extentions cap taken into account. This interval is refered as the <em>span</em>. </li>
<li>
A small counter, of the number of reduced neighbors (never exceed two). </li>
</ul>
<h1><a class="anchor" id="secASImplementation"></a>
Implementation Details</h1>
<p><a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> / <a class="el" href="classKatabatic_1_1AutoHorizontal.html" title="Concrete Horizontal AutoSegment. ">AutoHorizontal</a> &amp; <a class="el" href="classKatabatic_1_1AutoVertical.html" title="Concrete Vertical AutoSegment. ">AutoVertical</a> are kind of decorators of <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Hurricane::Segment</a> (they do not scrictly respect the pattern).</p>
<p>Canonical <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> can should be considered as a kind of Composite.</p>
<p>Thoses objects are created using a Factory method.</p>
<h1><a class="anchor" id="secASMethodsClassif"></a>
Methods Classification</h1>
<ul>
<li>
<em>Wrapper methods</em> on the underlying <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Hurricane::Segment</a>. </li>
</ul>
<ul>
<li>
<em>Atomic methods</em> on <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>, that is, which applies exactly on the current <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>. </li>
</ul>
<ul>
<li>
<em>Canonical methods</em> that applies on the set of aligned AutoSegments. There are two kind of those, the methods part of the API, and the ones that make the link with the atomic methods. Those intermediate methods hide some cumbersome <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> list parameters. <ul>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">AutoSegment::invalidate()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#a3881efebb7510d9b22e5f89bcd418954">AutoSegment::setAxis()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#a8ab41a962e18810808f4f065863b5a73">AutoSegment::toConstraintAxis()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#a750983d7154c94b54537127a3a18e14b">AutoSegment::toOptimalAxis()</a> </li>
</ul>
</li>
</ul>
<ul>
<li>
<em>Uniform access</em>, to simplify the managment of <a class="el" href="classKatabatic_1_1AutoHorizontal.html" title="Concrete Horizontal AutoSegment. ">AutoHorizontal</a> and <a class="el" href="classKatabatic_1_1AutoVertical.html" title="Concrete Vertical AutoSegment. ">AutoVertical</a> through <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>, a set of uniformized methods is introduced. For instance, to avoid to check the dynamic type to choose to call <a class="el" href="classKatabatic_1_1AutoSegment.html#a8a8e127557d70de70f9efb488be30d1a">getSourceX()</a> or <a class="el" href="classKatabatic_1_1AutoSegment.html#ae913463a76d08b079611a993cebea1a9">getSourceY()</a>, we may call <a class="el" href="classKatabatic_1_1AutoSegment.html#aeaa1543880686755e389c4807128428f">getSourceU()</a>. Uniform methods are named by replacing <code>X/Y</code> with <code>U</code>. <ul>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#aeaa1543880686755e389c4807128428f">AutoSegment::getSourceU()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#a828fef2716cc9c370d6d170bb96556ec">AutoSegment::getTargetU()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#ab4881df67bd8f036d0199ed6540fe774">AutoSegment::getDuSource()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#a0644d656eedc71dba2fb3c6c0d83ed3f">AutoSegment::getDuTarget()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#a248eb2fbb06e3286650b28567d495f0b">AutoSegment::getSpanU()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#aaf60d18ab6d951a34a3d06959ce2e76f">AutoSegment::setDuSource()</a> </li>
<li>
<a class="el" href="classKatabatic_1_1AutoSegment.html#a246756d4c8b3e094a0a9d6de3c2109ff">AutoSegment::setDuTarget()</a> </li>
</ul>
</li>
</ul>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ae64a61508d148cb4a0ee9b5ffb177659"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae64a61508d148cb4a0ee9b5ffb177659">&#9670;&nbsp;</a></span>AutoSegment()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> *&#160;</td>
<td class="paramname"><em>segment</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> constructor. It is not directly accessible, instead use one flavor of the <a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">AutoSegment::create()</a>. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1GCell.html#ab5d8bf98ab5af6fcfebea1b9f446d5d7">GCell::getBoundingBox()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a819cf639562a031a1e2e061fe1293d66">AutoContact::getGCell()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aaa8954fc5948f2a881cdbc9213f9f7a9">Segment::getSource()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a1f7f13b33be3b1a20ea23b3f501296e9">Segment::getTarget()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#a77b9db757080544fcede3e670cee8c5c">Box::getXMax()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#a06e1a86a06dacfca6d3403c16affc7e8">Box::getYMax()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#aabac50fd9b8e1bba7289573973658d18">AutoContact::invalidate()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a19ba379112d6b29faa45c5eefbf38500">AutoSegment::isGlobal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">AutoSegment::isHorizontal()</a>, <a class="el" href="classKatabatic_1_1Session.html#acc20c1f675cc59f9a0068aba727eca47">Session::lookup()</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a01513b74d37a8721370cf7b91fb419ad">Katabatic::SegCreated</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a275eb973fc7a219eb34d2031309ff75c">Katabatic::SegHorizontal</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aeb14f94914af58657a0dc2f50ec98df5">AutoSegment::setFlags()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a90173ab4f35b98c6544f9482ccd93b5e">AutoSegment::setOptimalMax()</a>.</p>
</div>
</div>
<a id="a5d135025de0c1725d6252099c2e70e2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d135025de0c1725d6252099c2e70e2b">&#9670;&nbsp;</a></span>~AutoSegment()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">~<a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> destructor. It is not directly accessible, instead use one flavor of the <a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">AutoSegment::create()</a>. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a19ba379112d6b29faa45c5eefbf38500">AutoSegment::isGlobal()</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ab0cc9e57beeceec519cd4bd3e415569e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0cc9e57beeceec519cd4bd3e415569e">&#9670;&nbsp;</a></span>create() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td>
<td class="paramname"><em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> *&#160;</td>
<td class="paramname"><em>hurricaneSegment</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a>. </td></tr>
<tr><td class="paramname">target</td><td>The target <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a>. </td></tr>
<tr><td class="paramname">hurricaneSegment</td><td>The <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Hurricane::Segment</a> to decorate. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The AutoHorizontal/AutoVertical decorator segment.</dd></dl>
<p>Factory method to create <a class="el" href="classKatabatic_1_1AutoHorizontal.html" title="Concrete Horizontal AutoSegment. ">AutoHorizontal</a> or <a class="el" href="classKatabatic_1_1AutoVertical.html" title="Concrete Vertical AutoSegment. ">AutoVertical</a>. It is important to note that this function may modify the underlying <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Hurricane::Segment</a>.</p><ul>
<li>Layer is set to the default (bottom) routing Layers.</li>
<li>Source &amp; target anchor of <code>hurricaneSegment</code> are set on <code>source</code> and <code>target</code>. If the <code>hurricaneSegment</code> is already anchored and <code>source</code> or <code>target</code> are not the one decorating the anchors, an exception is thrown. </li>
</ul>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a3715b38135ca24745f610bebd3407c10">AutoSegment::_postCreate()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Hook.html#aacc4dacd0d128b35fd15546bc6dde3c3">Hook::attach()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Hook.html#a83f5beb5092e97947d24bd18adb33db1">Hook::detach()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a4092778435abf3fb25a986a802bdb6c6">AutoContact::getBodyHook()</a>, <a class="el" href="classKatabatic_1_1Session.html#a1ec4ff2ad2a5b964c0ff98170a366197">Session::getKatabatic()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#ab451ef19059e6e5bbb77ae391d02a039">Component::getLayer()</a>, <a class="el" href="classKatabatic_1_1Session.html#a3efd0f0d87be640dc566c1afd821e5e6">Session::getRoutingLayer()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aaa8954fc5948f2a881cdbc9213f9f7a9">Segment::getSource()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aa9d0303b444b44d7b8e47d42ac7151eb">Segment::getSourceHook()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a1f7f13b33be3b1a20ea23b3f501296e9">Segment::getTarget()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a0fe6cd20516eca2a0b5639ab886bd831">Segment::getTargetHook()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#gadc9c1a06b4296dbddcf711077113f4bd">DbU::getValueString()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a36c7ddda39077385bd8747a8c1df726a">Segment::getWidth()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a00b8f54c8171f6699e57de1b8c18eeb1">AutoContact::getX()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a4580de6b074712e400d5d238ce3af054">AutoContact::getY()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#afd7362b850709bed8b61c1aa22399f97">AutoContact::isFixed()</a>, <a class="el" href="classKatabatic_1_1KatabaticEngine.html#a83a7793270669d2669222eac2caa7f93">KatabaticEngine::isGMetal()</a>, <a class="el" href="classKatabatic_1_1Session.html#acc20c1f675cc59f9a0068aba727eca47">Session::lookup()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#acd0b0cd25c824ba7f3b1ff2776c97cf1">Segment::setLayer()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aec203d5d3aa96150979ba532d4bd1c7d">Segment::setWidth()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Vertical.html#aaea60cb8247f4ea837f90a4532901143">Vertical::setX()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Horizontal.html#a794aa68157beb2d04816a5f4e9160187">Horizontal::setY()</a>.</p>
<p class="reference">Referenced by <a class="el" href="group__LoadGlobalRouting.html#ga2519ef984b3d19f123827a9b12651672">GCellTopology::_do_1G_1M3()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga97942453a1bc5b01106aa380271fd7fc">GCellTopology::_do_1G_xM1()</a>, <a class="el" href="group__LoadGlobalRouting.html#gaaa6d4ccd2eadfb6bc3e2cc98cfaf2cca">GCellTopology::_do_xG()</a>, <a class="el" href="group__LoadGlobalRouting.html#gae60ed4e27ad89a1e2ff2cd6415ef33f1">GCellTopology::_do_xG_1M1_1M2()</a>, <a class="el" href="group__LoadGlobalRouting.html#gabe00ab10a0dab8a3d2de0709e61e4e7d">GCellTopology::_do_xG_1Pad()</a>, <a class="el" href="group__LoadGlobalRouting.html#gaf9b009520f54099668ac9d12f2c85257">GCellTopology::_do_xG_xM1_xM3()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga532d1c6b530e0375078ea2d6ea3c6024">GCellTopology::_do_xG_xM2()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga007efc725aae31782204a44949765cb4">GCellTopology::_do_xG_xM3()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa7ce652576b17985859fd6c29d21489">AutoSegment::create()</a>, <a class="el" href="group__LoadGlobalRouting.html#gada6d3c694b8d741b6504b7c3da166357">GCellTopology::doRp_Access()</a>, <a class="el" href="group__LoadGlobalRouting.html#gae9cae408ea16a3f7c77c3d75f0242f19">GCellTopology::doRp_AutoContacts()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga3291d84592215974fe4052c00304bdb1">GCellTopology::doRp_StairCaseH()</a>, <a class="el" href="group__LoadGlobalRouting.html#ga6361fb0e90f35cd59063a1ee971ef2a9">GCellTopology::doRp_StairCaseV()</a>, and <a class="el" href="group__LoadGlobalRouting.html#ga3973291866b39c10cea5ca17f7d174fb">anonymous_namespace{LoadGrByNet.cpp}::singleGCell()</a>.</p>
</div>
</div>
<a id="afa7ce652576b17985859fd6c29d21489"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa7ce652576b17985859fd6c29d21489">&#9670;&nbsp;</a></span>create() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td>
<td class="paramname"><em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>depth</em> = <code>RoutingGauge::nlayerdepth</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>The source <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a>. </td></tr>
<tr><td class="paramname">target</td><td>The target <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a>. </td></tr>
<tr><td class="paramname">dir</td><td>Specify the segment direction. </td></tr>
<tr><td class="paramname">depth</td><td>The layer, given by it's depth in the RoutingGauge. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The AutoHorizontal/AutoVertical.</dd></dl>
<p>Factory method to create <a class="el" href="classKatabatic_1_1AutoHorizontal.html" title="Concrete Horizontal AutoSegment. ">AutoHorizontal</a> or <a class="el" href="classKatabatic_1_1AutoVertical.html" title="Concrete Vertical AutoSegment. ">AutoVertical</a>. <code>flags</code> indicate the direction (KbHorizontal or KbVertical). The underlying Hurricane segment is also created. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoContact.html#ab422116c7edfacedd31711c96e3ec95b">AutoContact::base()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Horizontal.html#a15f13508993b6c0219fb944fe1141c3f">Horizontal::create()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Vertical.html#a1ff223aa8f0b9ffe3aefc5e3ade6d34a">Vertical::create()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">AutoSegment::create()</a>, <a class="el" href="classKatabatic_1_1Session.html#a3efd0f0d87be640dc566c1afd821e5e6">Session::getRoutingLayer()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a00b8f54c8171f6699e57de1b8c18eeb1">AutoContact::getX()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a4580de6b074712e400d5d238ce3af054">AutoContact::getY()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#afd7362b850709bed8b61c1aa22399f97">AutoContact::isFixed()</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a1a9045673c5d3c30b067100f1440ae1b">Katabatic::KbHorizontal</a>, and <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a284cad95203a27172838b09e396e3590">Katabatic::KbVertical</a>.</p>
</div>
</div>
<a id="a53877ff5ef48eb0030c2581a6eeb3c09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53877ff5ef48eb0030c2581a6eeb3c09">&#9670;&nbsp;</a></span>base() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> * base </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> the decorated <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Hurricane::Segment</a> (const flavor). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a6f14a3faa93f2c610ea0d2cc7d903706">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a6f14a3faa93f2c610ea0d2cc7d903706">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5b5aaa5b318369feee6003dbad039c2">AutoSegment::getAxis()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a63a3ab1e6501bbad68b9efd4998e48c0">AutoSegment::getBoundingBox()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8acbe1037827da2c2fef71a18c5886c7">AutoSegment::getCanonical()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a55a3a88610ef1af9931e634f77f2403b">AutoSegment::getCell()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab045567c4f529dca7790d66c17c3084f">AutoSegment::getLayer()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab1ca7adfc68761c749a16f65c9aa4088">AutoSegment::getLength()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a692492374623a5c6096b2c4a51190359">AutoSegment::getNet()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a9216d4467c2d4e0c7b9d9a8b8e798bee">AutoSegment::getOppositeAnchor()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a497ea2ceeddb939dbc84eae0e7862335">AutoSegment::getSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a1defbbaef0a1975993e157a8d5f68ded">AutoSegment::getSourceHook()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8a8e127557d70de70f9efb488be30d1a">AutoSegment::getSourceX()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ae913463a76d08b079611a993cebea1a9">AutoSegment::getSourceY()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a0862c201bd7d8e5427e44ca2427c2fe6">AutoSegment::getTarget()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ad62048f68151e5db987b5a7c79cce4ed">AutoSegment::getTargetHook()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8e6462b43ca9eaeea1e08866cec59a8c">AutoSegment::getTargetX()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a003e545e792e8bf22d264bcb3bc90547">AutoSegment::getTargetY()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a9c63fe7288748eaf5332ca796a36d872">AutoSegment::getWidth()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a00b8f54c8171f6699e57de1b8c18eeb1">AutoSegment::getX()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a4580de6b074712e400d5d238ce3af054">AutoSegment::getY()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#acbac6289ab14574da20f26c933e2e741">AutoSegment::invert()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#aad4271c35e0162c8a4d034dca07f5a4b">AutoSegment::setLayer()</a>.</p>
</div>
</div>
<a id="ade416d0483aefe986988fa89a7cf6fcf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade416d0483aefe986988fa89a7cf6fcf">&#9670;&nbsp;</a></span>base() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Segment</a> * base </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> the decorated <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Hurricane::Segment</a>. </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a9e651c17b47f82166a02865c9296a2df">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9e651c17b47f82166a02865c9296a2df">AutoHorizontal</a>.</p>
</div>
</div>
<a id="a659b8ed90de679564924afe07af478de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a659b8ed90de679564924afe07af478de">&#9670;&nbsp;</a></span>getHorizontal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Horizontal.html">Horizontal</a> * getHorizontal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> If the decorated segment is a <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Horizontal.html">Hurricane::Horizontal</a>, return it. <code>NULL</code> otherwise. </p>
<p>Reimplemented in <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a659b8ed90de679564924afe07af478de">AutoHorizontal</a>.</p>
</div>
</div>
<a id="ab6a809b6f3ef3cf5385fa35580e31e7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6a809b6f3ef3cf5385fa35580e31e7a">&#9670;&nbsp;</a></span>getVertical()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Vertical.html">Vertical</a> * getVertical </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> If the decorated segment is a <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Vertical.html">Hurricane::Vertical</a>, return it. <code>NULL</code> otherwise. </p>
<p>Reimplemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#ab6a809b6f3ef3cf5385fa35580e31e7a">AutoVertical</a>.</p>
</div>
</div>
<a id="a55a3a88610ef1af9931e634f77f2403b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55a3a88610ef1af9931e634f77f2403b">&#9670;&nbsp;</a></span>getCell()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Cell.html">Cell</a> * getCell </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Entity.html#a42bdf015f583be477cc54b48652b1007">Segment::getCell()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Entity.html#a42bdf015f583be477cc54b48652b1007">Entity::getCell()</a>.</p>
</div>
</div>
<a id="a692492374623a5c6096b2c4a51190359"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a692492374623a5c6096b2c4a51190359">&#9670;&nbsp;</a></span>getNet()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> * getNet </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#a1556ef77d6b89bfc17698d52ebde9791">Segment::getNet()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#a1556ef77d6b89bfc17698d52ebde9791">Component::getNet()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a3715b38135ca24745f610bebd3407c10">AutoSegment::_postCreate()</a>.</p>
</div>
</div>
<a id="ab045567c4f529dca7790d66c17c3084f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab045567c4f529dca7790d66c17c3084f">&#9670;&nbsp;</a></span>getLayer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> * getLayer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#ab451ef19059e6e5bbb77ae391d02a039">Segment::getLayer()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#ab451ef19059e6e5bbb77ae391d02a039">Component::getLayer()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9b0c21eeb26c256876592ba63438da74">AutoHorizontal::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a9b0c21eeb26c256876592ba63438da74">AutoVertical::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a69d29e4d230a0111ca18e6e661a48f8b">AutoContact::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoHorizontal::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoVertical::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">AutoSegment::canPivotDown()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">AutoSegment::canPivotUp()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a6575c17bfa589c087215c87678e5719c">AutoHorizontal::checkPositions()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a6575c17bfa589c087215c87678e5719c">AutoVertical::checkPositions()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a39c927c04b5016770692b9b8448c2f04">AutoSegment::makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">AutoSegment::revalidate()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9662a77c2ed8553d6a0312c5292060ad">AutoHorizontal::updatePositions()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a9662a77c2ed8553d6a0312c5292060ad">AutoVertical::updatePositions()</a>, <a class="el" href="classKatabatic_1_1AutoContactTurn.html#af5bf1f5e71204ef84346e4e036175431">AutoContactTurn::updateTopology()</a>, and <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#af5bf1f5e71204ef84346e4e036175431">AutoContactTerminal::updateTopology()</a>.</p>
</div>
</div>
<a id="a63a3ab1e6501bbad68b9efd4998e48c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63a3ab1e6501bbad68b9efd4998e48c0">&#9670;&nbsp;</a></span>getBoundingBox()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">BoundingBox * getBoundingBox </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#aabb87b9ef71f71cea681a03a6213f616">Segment::getBoundingBox()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#aabb87b9ef71f71cea681a03a6213f616">Component::getBoundingBox()</a>.</p>
</div>
</div>
<a id="a1defbbaef0a1975993e157a8d5f68ded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1defbbaef0a1975993e157a8d5f68ded">&#9670;&nbsp;</a></span>getSourceHook()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Hook.html">Hook</a> * getSourceHook </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aa9d0303b444b44d7b8e47d42ac7151eb">Segment::getSourceHook()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aa9d0303b444b44d7b8e47d42ac7151eb">Segment::getSourceHook()</a>.</p>
</div>
</div>
<a id="ad62048f68151e5db987b5a7c79cce4ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad62048f68151e5db987b5a7c79cce4ed">&#9670;&nbsp;</a></span>getTargetHook()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Hook.html">Hook</a> * getTargetHook </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a0fe6cd20516eca2a0b5639ab886bd831">Segment::getTargetHook()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a0fe6cd20516eca2a0b5639ab886bd831">Segment::getTargetHook()</a>.</p>
</div>
</div>
<a id="a497ea2ceeddb939dbc84eae0e7862335"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a497ea2ceeddb939dbc84eae0e7862335">&#9670;&nbsp;</a></span>getSource()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Contact.html">Contact</a> * getSource </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aaa8954fc5948f2a881cdbc9213f9f7a9">Segment::getSource()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aaa8954fc5948f2a881cdbc9213f9f7a9">Segment::getSource()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a4430f9704a59e1d4f7c37d7166649510">AutoSegment::getOnSourceContact()</a>.</p>
</div>
</div>
<a id="a0862c201bd7d8e5427e44ca2427c2fe6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0862c201bd7d8e5427e44ca2427c2fe6">&#9670;&nbsp;</a></span>getTarget()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Contact.html">Contact</a> * getTarget </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a1f7f13b33be3b1a20ea23b3f501296e9">Segment::getTarget()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a1f7f13b33be3b1a20ea23b3f501296e9">Segment::getTarget()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#aadbb84c0f1383f6a2addc2661e388583">AutoSegment::getOnTargetContact()</a>.</p>
</div>
</div>
<a id="a9216d4467c2d4e0c7b9d9a8b8e798bee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9216d4467c2d4e0c7b9d9a8b8e798bee">&#9670;&nbsp;</a></span>getOppositeAnchor() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html">Component</a> * getOppositeAnchor </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html">Component</a> *&#160;</td>
<td class="paramname"><em>anchor</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#a1556ef77d6b89bfc17698d52ebde9791">Segment::getNet()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aa425757f271df5c58b024b0494c21588">Segment::getOppositeAnchor()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a2c5b0faacc768bf61e17eb72a4ccc248">AutoSegment::getOppositeAnchor()</a>.</p>
</div>
</div>
<a id="a7339a1ebc7d46384bc4e1317af84bea1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7339a1ebc7d46384bc4e1317af84bea1">&#9670;&nbsp;</a></span>getAnchors()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/namespaceHurricane.html#a7d26d99aeb5dd6d70d51bd35d2473e72">Components</a> getAnchors </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#ac179f0263fee7fc71e03c9cf8c2d4e45">Segment::getAnchors()</a>. </dd></dl>
</div>
</div>
<a id="a00b8f54c8171f6699e57de1b8c18eeb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00b8f54c8171f6699e57de1b8c18eeb1">&#9670;&nbsp;</a></span>getX()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getX </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#a0f8299ed73705fd4fbf56589dcc7e074">Segment::getX()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#a0f8299ed73705fd4fbf56589dcc7e074">Component::getX()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#a3e218f6934c51380fb15d0e2bd380071">AutoContactTerminal::updateGeometry()</a>.</p>
</div>
</div>
<a id="a4580de6b074712e400d5d238ce3af054"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4580de6b074712e400d5d238ce3af054">&#9670;&nbsp;</a></span>getY()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getY </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#a727da3f127c3a7a0a09468219f98c3e6">Segment::getY()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#a727da3f127c3a7a0a09468219f98c3e6">Component::getY()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#a3e218f6934c51380fb15d0e2bd380071">AutoContactTerminal::updateGeometry()</a>.</p>
</div>
</div>
<a id="a9c63fe7288748eaf5332ca796a36d872"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c63fe7288748eaf5332ca796a36d872">&#9670;&nbsp;</a></span>getWidth()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getWidth </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a36c7ddda39077385bd8747a8c1df726a">Segment::getWidth()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a36c7ddda39077385bd8747a8c1df726a">Segment::getWidth()</a>.</p>
</div>
</div>
<a id="ab1ca7adfc68761c749a16f65c9aa4088"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1ca7adfc68761c749a16f65c9aa4088">&#9670;&nbsp;</a></span>getLength()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getLength </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a9f6c42c2de0330aa6a486cdbf550cea1">Segment::getLength()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a9f6c42c2de0330aa6a486cdbf550cea1">Segment::getLength()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#af1a231b2324a486d4ef61b247886cdeb">AutoSegment::canReduce()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a449ebb156fd51b04bbc029a657b4cded">AutoSegment::mustRaise()</a>.</p>
</div>
</div>
<a id="a8a88dc051a8d324aff8763609957dcaa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a88dc051a8d324aff8763609957dcaa">&#9670;&nbsp;</a></span>getSourcePosition()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getSourcePosition </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a41c4b88c35b9af0ad741205d0a8ea9c2">Segment::getSourcePosition()</a>. </dd></dl>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a8acbe1037827da2c2fef71a18c5886c7">AutoSegment::getCanonical()</a>.</p>
</div>
</div>
<a id="a65dea76b4efad9d3caa78be44e96c94c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65dea76b4efad9d3caa78be44e96c94c">&#9670;&nbsp;</a></span>getTargetPosition()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getTargetPosition </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#af24bee306be3461bb5dd1ba680f2a2df">Segment::getTargetPosition()</a>. </dd></dl>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a8acbe1037827da2c2fef71a18c5886c7">AutoSegment::getCanonical()</a>.</p>
</div>
</div>
<a id="a8a8e127557d70de70f9efb488be30d1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a8e127557d70de70f9efb488be30d1a">&#9670;&nbsp;</a></span>getSourceX()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getSourceX </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a0347e3bde8e2e90b05cffdaf2d048710">Segment::getSourceX()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a0347e3bde8e2e90b05cffdaf2d048710">Segment::getSourceX()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>.</p>
</div>
</div>
<a id="ae913463a76d08b079611a993cebea1a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae913463a76d08b079611a993cebea1a9">&#9670;&nbsp;</a></span>getSourceY()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getSourceY </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#abf305dd4510de6fe6fae5286acbe285a">Segment::getSourceY()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#abf305dd4510de6fe6fae5286acbe285a">Segment::getSourceY()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>.</p>
</div>
</div>
<a id="a8e6462b43ca9eaeea1e08866cec59a8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e6462b43ca9eaeea1e08866cec59a8c">&#9670;&nbsp;</a></span>getTargetX()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getTargetX </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#abba6713e109a0925c078a9785274f389">Segment::getTargetX()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#abba6713e109a0925c078a9785274f389">Segment::getTargetX()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>.</p>
</div>
</div>
<a id="a003e545e792e8bf22d264bcb3bc90547"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a003e545e792e8bf22d264bcb3bc90547">&#9670;&nbsp;</a></span>getTargetY()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getTargetY </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a27d530abcff9742b81c4b549db161b90">Segment::getTargetY()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#a27d530abcff9742b81c4b549db161b90">Segment::getTargetY()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>.</p>
</div>
</div>
<a id="acbac6289ab14574da20f26c933e2e741"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbac6289ab14574da20f26c933e2e741">&#9670;&nbsp;</a></span>invert()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> invert </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aceaa61242eb7275cf9c6a39cf1868c53">Segment::invert()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#aceaa61242eb7275cf9c6a39cf1868c53">Segment::invert()</a>.</p>
</div>
</div>
<a id="aad4271c35e0162c8a4d034dca07f5a4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad4271c35e0162c8a4d034dca07f5a4b">&#9670;&nbsp;</a></span>setLayer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setLayer </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> *&#160;</td>
<td class="paramname"><em>layer</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#acd0b0cd25c824ba7f3b1ff2776c97cf1">Segment::setLayer()</a>. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html#acd0b0cd25c824ba7f3b1ff2776c97cf1">Segment::setLayer()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#acecc9a1d55a271a4b1587d7872cfe133">AutoSegment::reduceDoglegLayer()</a>.</p>
</div>
</div>
<a id="a21b9cefd33ae22e4c2070ad441bdd30b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21b9cefd33ae22e4c2070ad441bdd30b">&#9670;&nbsp;</a></span>isHorizontal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isHorizontal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Hurricane::Segment</a> is Horizontal. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a275eb973fc7a219eb34d2031309ff75c">Katabatic::SegHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#ae64a61508d148cb4a0ee9b5ffb177659">AutoSegment::AutoSegment()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5b5aaa5b318369feee6003dbad039c2">AutoSegment::getAxis()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a5b81aad92361558c3b9e60fd501b89ba">AutoSegment::getExtremity()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5fb22520af4b94f2ae984304fa64c26">AutoSegment::getOrigin()</a>, <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#a99fa8a78e97a29f2fb5730eaaa59acfc">AutoContactTerminal::getSegment()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a39c927c04b5016770692b9b8448c2f04">AutoSegment::makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a3881efebb7510d9b22e5f89bcd418954">AutoSegment::setAxis()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ab41a962e18810808f4f065863b5a73">AutoSegment::toConstraintAxis()</a>, and <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#a3e218f6934c51380fb15d0e2bd380071">AutoContactTerminal::updateGeometry()</a>.</p>
</div>
</div>
<a id="abd54544ef1710ee4b67cfb021d73446c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd54544ef1710ee4b67cfb021d73446c">&#9670;&nbsp;</a></span>isVertical()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isVertical </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Segment.html">Hurricane::Segment</a> is Vertical. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a275eb973fc7a219eb34d2031309ff75c">Katabatic::SegHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>, and <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#a99fa8a78e97a29f2fb5730eaaa59acfc">AutoContactTerminal::getSegment()</a>.</p>
</div>
</div>
<a id="a19ba379112d6b29faa45c5eefbf38500"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19ba379112d6b29faa45c5eefbf38500">&#9670;&nbsp;</a></span>isGlobal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isGlobal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the segment is global (span over more than one <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>). </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a940d92cb98a61e671a94204701767868">Katabatic::SegGlobal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#ae64a61508d148cb4a0ee9b5ffb177659">AutoSegment::AutoSegment()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9b0c21eeb26c256876592ba63438da74">AutoHorizontal::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a9b0c21eeb26c256876592ba63438da74">AutoVertical::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoHorizontal::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoVertical::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8b0d5044dce091d06b633848a6f8a66d">AutoSegment::canonize()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#af1a231b2324a486d4ef61b247886cdeb">AutoSegment::canReduce()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#adec088de3c4c47a28ee9d58eb6d9cf85">AutoSegment::canSlacken()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a66f92d8233776fb858075f78af451997">AutoContact::showTopologyError()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a5d135025de0c1725d6252099c2e70e2b">AutoSegment::~AutoSegment()</a>.</p>
</div>
</div>
<a id="add556a145a89fdbcea82346abfb873dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add556a145a89fdbcea82346abfb873dc">&#9670;&nbsp;</a></span>isLocal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isLocal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the segment is local (fully enclosed in one <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>). </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a940d92cb98a61e671a94204701767868">Katabatic::SegGlobal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">AutoSegment::canPivotDown()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">AutoSegment::canPivotUp()</a>, <a class="el" href="classKatabatic_1_1GCell.html#af4dcc99733b7ea77e8c3c7da9ac3cd3c">GCell::checkEdgeSaturation()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoHorizontal::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoVertical::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#aa469e37853e31f8b1bc817518c896d62">AutoHorizontal::moveURight()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#aa469e37853e31f8b1bc817518c896d62">AutoVertical::moveURight()</a>.</p>
</div>
</div>
<a id="afd7362b850709bed8b61c1aa22399f97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd7362b850709bed8b61c1aa22399f97">&#9670;&nbsp;</a></span>isFixed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isFixed </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment must not be moved by the router. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4aa291777ea80e37ea23e785870d8833ed">Katabatic::SegFixed</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">AutoSegment::canPivotDown()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">AutoSegment::canPivotUp()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#aa21b16647c1750ba8b3eb9d99b12f073">AutoSegment::makeDogleg()</a>.</p>
</div>
</div>
<a id="a72741158d19af38e84c5e9c08f91270f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72741158d19af38e84c5e9c08f91270f">&#9670;&nbsp;</a></span>isBipoint()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isBipoint </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the segment straigh join two terminals. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a2d969cfff8aa7da1ac3486924f4786d2">Katabatic::SegBipoint</a>.</p>
</div>
</div>
<a id="aef3a61d223be84ac336c4f7bc64884ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef3a61d223be84ac336c4f7bc64884ba">&#9670;&nbsp;</a></span>isWeakTerminal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isWeakTerminal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment is indirectly connected to a terminal. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a419e7722198b077c1f71d6c47e2fc2ab">Katabatic::SegWeakTerminal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>.</p>
</div>
</div>
<a id="a4605c9284168f0a62fa48aa2d3ae5ee9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4605c9284168f0a62fa48aa2d3ae5ee9">&#9670;&nbsp;</a></span>isStrongTerminal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool isStrongTerminal </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>0</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment is directly connected to a terminal. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">Katabatic::KbPropagate</a>, and <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a93251a6b8197685e2aaf77a760851557">Katabatic::SegStrongTerminal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">AutoSegment::canPivotDown()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">AutoSegment::canPivotUp()</a>.</p>
</div>
</div>
<a id="a772596f5d5fa897822dbd0da37024735"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a772596f5d5fa897822dbd0da37024735">&#9670;&nbsp;</a></span>isLayerChange()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isLayerChange </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment is a strap used only to connect between two different metal layers on the way up or down. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4afc9fc027fe8f457520c3fe6fb1144b2b">Katabatic::SegLayerChange</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">AutoSegment::canPivotDown()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">AutoSegment::canPivotUp()</a>.</p>
</div>
</div>
<a id="a3776b8258ab6544c9551d0714fcc75d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3776b8258ab6544c9551d0714fcc75d2">&#9670;&nbsp;</a></span>isSpinTop()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isSpinTop </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment is connected to turns and both perpandiculars segments are in the <em>top</em> layer (candidate for reduction). </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#af1a231b2324a486d4ef61b247886cdeb">AutoSegment::canReduce()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a90d934f7275aed35f4ecb157c6950d6f">AutoSegment::isSpinTopOrBottom()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a449ebb156fd51b04bbc029a657b4cded">AutoSegment::mustRaise()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#acecc9a1d55a271a4b1587d7872cfe133">AutoSegment::reduceDoglegLayer()</a>.</p>
</div>
</div>
<a id="ab786dbdb67ea727369b1a988497c01d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab786dbdb67ea727369b1a988497c01d1">&#9670;&nbsp;</a></span>isSpinBottom()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isSpinBottom </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment is connected to turns and both perpandiculars segments are in the <em>bottom</em> layer (candidate for reduction). </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#af1a231b2324a486d4ef61b247886cdeb">AutoSegment::canReduce()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a90d934f7275aed35f4ecb157c6950d6f">AutoSegment::isSpinTopOrBottom()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a449ebb156fd51b04bbc029a657b4cded">AutoSegment::mustRaise()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#acecc9a1d55a271a4b1587d7872cfe133">AutoSegment::reduceDoglegLayer()</a>.</p>
</div>
</div>
<a id="a90d934f7275aed35f4ecb157c6950d6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90d934f7275aed35f4ecb157c6950d6f">&#9670;&nbsp;</a></span>isSpinTopOrBottom()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isSpinTopOrBottom </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment is either <em>spin top</em> or <em>spin bottom</em> (candidate for reduction). </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#ab786dbdb67ea727369b1a988497c01d1">AutoSegment::isSpinBottom()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a3776b8258ab6544c9551d0714fcc75d2">AutoSegment::isSpinTop()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#af1a231b2324a486d4ef61b247886cdeb">AutoSegment::canReduce()</a>.</p>
</div>
</div>
<a id="a461c31a8d12458939b78ccecb3b8c299"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a461c31a8d12458939b78ccecb3b8c299">&#9670;&nbsp;</a></span>isReduced()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isReduced </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment is actually in a reduced state: it's effective layer will be the one of it's perpandiculars. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4af4dd1db46475e4a16555fb6978a85580">Katabatic::SegIsReduced</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#acecc9a1d55a271a4b1587d7872cfe133">AutoSegment::reduceDoglegLayer()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">AutoSegment::revalidate()</a>.</p>
</div>
</div>
<a id="a62d61c231cf404a814ae37665fa8164f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62d61c231cf404a814ae37665fa8164f">&#9670;&nbsp;</a></span>isStrap()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isStrap </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment has been created from a slackening operation to restore the slack of another segment. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a8c676eccde69f8a431ffaf2ffcae7209">Katabatic::SegStrap</a>.</p>
</div>
</div>
<a id="a75d91371e5281dd21f60ff39ae70a3e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75d91371e5281dd21f60ff39ae70a3e5">&#9670;&nbsp;</a></span>isDogleg()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isDogleg </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment has been created as the perpandicular part of a dogleg. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4ab3a62f799073ef374df7aaa26514c09b">Katabatic::SegDogleg</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ab41a962e18810808f4f065863b5a73">AutoSegment::toConstraintAxis()</a>.</p>
</div>
</div>
<a id="ac540608485240ff88970131ebc02c1ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac540608485240ff88970131ebc02c1ab">&#9670;&nbsp;</a></span>isInvalidated()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isInvalidated </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment has been moved or topologicaly altered. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a3c1d76fecee6a8bd5e12ce3fec013827">Katabatic::SegInvalidated</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a6a98d2e5839b880893703ad45db4e4c4">AutoSegment::_invalidate()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">AutoSegment::invalidate()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">AutoSegment::revalidate()</a>.</p>
</div>
</div>
<a id="a77b075644356f016105b3050b031a2ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77b075644356f016105b3050b031a2ec">&#9670;&nbsp;</a></span>isInvalidatedLayer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isInvalidatedLayer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment has been changed of layer. Source and Target <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> may need to be altered. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a11c86dd3185eb251b2f3ce536cc2ab34">Katabatic::SegInvalidatedLayer</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoContactTurn.html#af5bf1f5e71204ef84346e4e036175431">AutoContactTurn::updateTopology()</a>.</p>
</div>
</div>
<a id="af7d9cf1d7581b1cab04cf38c64f0f72a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7d9cf1d7581b1cab04cf38c64f0f72a">&#9670;&nbsp;</a></span>isCreated()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isCreated </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment has just been created and is not revalidated for the first time </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a01513b74d37a8721370cf7b91fb419ad">Katabatic::SegCreated</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#a3e218f6934c51380fb15d0e2bd380071">AutoContactTerminal::updateGeometry()</a>.</p>
</div>
</div>
<a id="af6d3008d345195a99e0341f0379c33b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6d3008d345195a99e0341f0379c33b7">&#9670;&nbsp;</a></span>isCanonical()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isCanonical </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if segment is the representant of an aligned set. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a296b371b45ade66cd1d44bc8898e64d9">Katabatic::SegCanonical</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8b0d5044dce091d06b633848a6f8a66d">AutoSegment::canonize()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8acbe1037827da2c2fef71a18c5886c7">AutoSegment::getCanonical()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a3881efebb7510d9b22e5f89bcd418954">AutoSegment::setAxis()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ab41a962e18810808f4f065863b5a73">AutoSegment::toConstraintAxis()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a750983d7154c94b54537127a3a18e14b">AutoSegment::toOptimalAxis()</a>.</p>
</div>
</div>
<a id="a2bd22f431b7cf3695babab78fc3b4c9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bd22f431b7cf3695babab78fc3b4c9e">&#9670;&nbsp;</a></span>isUnsetAxis()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isUnsetAxis </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the segment axis has never been set. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a86d22dbc8fbc045a1e12e25ba357e1d1">Katabatic::SegAxisSet</a>.</p>
</div>
</div>
<a id="a782cff57d3fe10e758d19ee65a06643d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a782cff57d3fe10e758d19ee65a06643d">&#9670;&nbsp;</a></span>isSlackened()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isSlackened </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the segment has already been slackened. </p>
<p class="reference">References <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4ac47f838c52b3b33b1150eb53133c2383">Katabatic::SegSlackened</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>.</p>
</div>
</div>
<a id="a676fcb7ece71d129b7a4d87a3f2e07aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a676fcb7ece71d129b7a4d87a3f2e07aa">&#9670;&nbsp;</a></span>_canSlacken()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool _canSlacken </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the segment can be slackened. That is, source or target constraints are less than three pitches. </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a2ced98fb06f208aa88c0962a706e64db">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a2ced98fb06f208aa88c0962a706e64db">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#adec088de3c4c47a28ee9d58eb6d9cf85">AutoSegment::canSlacken()</a>.</p>
</div>
</div>
<a id="af1a231b2324a486d4ef61b247886cdeb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1a231b2324a486d4ef61b247886cdeb">&#9670;&nbsp;</a></span>canReduce()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool canReduce </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the segment can be reduced. That is:</p><ul>
<li>Source &amp; target are <a class="el" href="classKatabatic_1_1AutoContactTurn.html" title="AutoContact Turn (one H, one V) ">AutoContactTurn</a>.</li>
<li>It is either <em>spin top</em> or <em>spin bottom</em>, that is connecting perpandiculars both in the same layer.</li>
<li>Has a length less or equal one pitch in the perpandicular direction.</li>
<li>Neither of the perpandicular are also reduceds. </li>
</ul>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab1ca7adfc68761c749a16f65c9aa4088">AutoSegment::getLength()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a19ba379112d6b29faa45c5eefbf38500">AutoSegment::isGlobal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab786dbdb67ea727369b1a988497c01d1">AutoSegment::isSpinBottom()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a3776b8258ab6544c9551d0714fcc75d2">AutoSegment::isSpinTop()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a90d934f7275aed35f4ecb157c6950d6f">AutoSegment::isSpinTopOrBottom()</a>, and <a class="el" href="classKatabatic_1_1AutoContact.html#a249530ac086dbf92f981887cc633facf">AutoContact::isTurn()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a27a6a2c747ff93d209878a32d97e9157">AutoSegment::reduce()</a>.</p>
</div>
</div>
<a id="a449ebb156fd51b04bbc029a657b4cded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a449ebb156fd51b04bbc029a657b4cded">&#9670;&nbsp;</a></span>mustRaise()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool mustRaise </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the segment must <em>be</em> reduced. That is:</p><ul>
<li>It is in reduced state...</li>
<li>It is no longer <em>spin top</em> or <em>spin bottom</em>.</li>
<li>It's length exceed one pitch in the perpandicular direction. </li>
</ul>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#ab1ca7adfc68761c749a16f65c9aa4088">AutoSegment::getLength()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab786dbdb67ea727369b1a988497c01d1">AutoSegment::isSpinBottom()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a3776b8258ab6544c9551d0714fcc75d2">AutoSegment::isSpinTop()</a>, and <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4af4dd1db46475e4a16555fb6978a85580">Katabatic::SegIsReduced</a>.</p>
</div>
</div>
<a id="a43c865bcfcfd6132352a9ac8a84c25cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43c865bcfcfd6132352a9ac8a84c25cd">&#9670;&nbsp;</a></span>canDogleg()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int canDogleg </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a>&#160;</td>
<td class="paramname"><em>interval</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> non-zero if the aligned set of segment can be broken <em>outside</em> <code>interval</code>. The returned value could be zero (failure) or <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679">Katabatic::KbDoglegOnLeft</a> or <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217afe7fcb4c332f36e477433169b3d3f515">Katabatic::KbDoglegOnRight</a> menaing that the aligned set could be broken on the left of the <code>interval</code> (resp. right of it). </p>
<p class="reference">References <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a84beba7ba34552e12e6cb9e462a94765">Interval::contains()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a248eb2fbb06e3286650b28567d495f0b">AutoSegment::getSpanU()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a2f5ec659fde913492f89dc215001acb2">Interval::getVMax()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a6e0deb1b38065375a78c7fd6885b5909">Interval::getVMin()</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679">Katabatic::KbDoglegOnLeft</a>, and <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217afe7fcb4c332f36e477433169b3d3f515">Katabatic::KbDoglegOnRight</a>.</p>
</div>
</div>
<a id="aad55626c9d793a0b08bcff5be2a5ad0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad55626c9d793a0b08bcff5be2a5ad0c">&#9670;&nbsp;</a></span>canMoveULeft()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool canMoveULeft </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>reserve</em> = <code>0.0</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><b>true</b> if the <em>global</em> segment can be moved on the left <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> (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:<ul>
<li>The segment mustn't be on the leftmost <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> (obvious...).</li>
<li>The segment must be global.</li>
<li>The source and target contacts must be AutoContactTurn(s).</li>
<li>At least one of the perpandicular must be global <b>and</b> connected through the <em>target</em>. That is, it's a global which extends toward left.</li>
<li>The <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> of maximum density on the left must remains below the current <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> of maximum density, with a margin of <code>reserve</code> (expressed in total saturation percentage). </li>
</ul>
</dd></dl>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a9b0c21eeb26c256876592ba63438da74">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9b0c21eeb26c256876592ba63438da74">AutoHorizontal</a>.</p>
</div>
</div>
<a id="a096deb8a143f098eac2bff9ab9c52243"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a096deb8a143f098eac2bff9ab9c52243">&#9670;&nbsp;</a></span>canMoveURight()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool canMoveURight </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>reserve</em> = <code>0.0</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><b>true</b> if the <em>global</em> segment can be moved on the right <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> (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:<ul>
<li>The segment mustn't be on the leftmost <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> (obvious...).</li>
<li>The segment must be global.</li>
<li>The source and target contacts must be AutoContactTurn(s).</li>
<li>At least one of the perpandicular must be global <b>and</b> connected through the <em>source</em>. That is, it's a global which extends toward right.</li>
<li>The <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> of maximum density on the left must remains below the current <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> of maximum density, with a margin of <code>reserve</code> (expressed in total saturation percentage). </li>
</ul>
</dd></dl>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoHorizontal</a>.</p>
</div>
</div>
<a id="a6482341a342eb6e6b3b43f13fd4436f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6482341a342eb6e6b3b43f13fd4436f6">&#9670;&nbsp;</a></span>canMoveUp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool canMoveUp </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>reserve</em> = <code>0.0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reserve</td><td>Number of track that must remains free <em>after</em> the move. </td></tr>
<tr><td class="paramname">flags</td><td>Modificate the method behavior, see below. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><b>true</b> 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 <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> of the segment, at least <code>reserve</code> tracks are still avalaible <em>after</em> the segment has been moved up (<code>reserve</code> can be less than <code>1.0</code>).</dd></dl>
<p>Possible (bitwise) value for <code>flags</code> :</p><ul>
<li><code>KbAllowTerminal</code> : allow strong terminal to be moved up.</li>
<li><code>KbAllowLocal</code> : allow local segments to be moved up.</li>
<li><code>KbPropagate</code> : perform the check on the whole aligned set.</li>
<li><code>KbWithPerpands</code> : also check the density on the perpandiculars begin &amp; end <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>, there must be at least a <code>0.5</code> density reserve on them. </li>
</ul>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1Session.html#a4d9fd503149d2fff66eb8ba3955b7a13">Session::getConfiguration()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a44ec8d16030b5900bd0ccc02652b727f">GCell::getFragmentation()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ca0022e253d355817d46a057ae01625">AutoSegment::getGCells()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a762de91e7869ca544ff034b99fc2e0a6">GCell::getIndex()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab045567c4f529dca7790d66c17c3084f">AutoSegment::getLayer()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingGauge.html#ac429c6ad1b2af7c588c60eff35c2d02e">RoutingGauge::getLayerDepth()</a>, <a class="el" href="classKatabatic_1_1Session.html#a9a05289b33122f312aa2c88c4b023292">Session::getRoutingGauge()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afd7362b850709bed8b61c1aa22399f97">AutoSegment::isFixed()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a772596f5d5fa897822dbd0da37024735">AutoSegment::isLayerChange()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#add556a145a89fdbcea82346abfb873dc">AutoSegment::isLocal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a4605c9284168f0a62fa48aa2d3ae5ee9">AutoSegment::isStrongTerminal()</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">Katabatic::KbPropagate</a>, and <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217ae2d033c8f78b61468c827de8db5fe839">Katabatic::KbWithPerpands</a>.</p>
</div>
</div>
<a id="a6cca3afced729492cae6649a92dc7e88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cca3afced729492cae6649a92dc7e88">&#9670;&nbsp;</a></span>canPivotUp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool canPivotUp </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>reserve</em> = <code>0.0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reserve</td><td>Number of track that must remains free <em>after</em> the move. </td></tr>
<tr><td class="paramname">flags</td><td>Modificate the method behavior, see below.</td></tr>
</table>
</dd>
</dl>
<p>Checks of the segment can be <em>pivoted</em> up. The difference between <code><a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">canMoveUp()</a></code> and <code><a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">canPivotUp()</a></code> lies in the fact that no perpandicular segment needs to be altered if the current segment is moved up. For example an <b>M3</b> segment connected to only <b>M4</b> can be pivoted up (in <b>M5</b>), but if connected to <b>M2</b>, it cannot.</p>
<p>Possible (bitwise) value for <code>flags</code> :</p><ul>
<li><code>KbPropagate</code> : perform the check on the whole aligned set.</li>
<li><code>KbIgnoreContacts</code> : do not check the source &amp; target layers to know if the segment can be pivoted up. </li>
</ul>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ca0022e253d355817d46a057ae01625">AutoSegment::getGCells()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab045567c4f529dca7790d66c17c3084f">AutoSegment::getLayer()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingGauge.html#ac429c6ad1b2af7c588c60eff35c2d02e">RoutingGauge::getLayerDepth()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#ada381cbb88211a7f63d30691b669b5e1">AutoContact::getMinDepth()</a>, <a class="el" href="classKatabatic_1_1Session.html#a9a05289b33122f312aa2c88c4b023292">Session::getRoutingGauge()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afd7362b850709bed8b61c1aa22399f97">AutoSegment::isFixed()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a772596f5d5fa897822dbd0da37024735">AutoSegment::isLayerChange()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#add556a145a89fdbcea82346abfb873dc">AutoSegment::isLocal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a4605c9284168f0a62fa48aa2d3ae5ee9">AutoSegment::isStrongTerminal()</a>, and <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">Katabatic::KbPropagate</a>.</p>
</div>
</div>
<a id="a24de580d1a371b8d27640cbc3431990b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24de580d1a371b8d27640cbc3431990b">&#9670;&nbsp;</a></span>canPivotDown()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool canPivotDown </td>
<td>(</td>
<td class="paramtype">float&#160;</td>
<td class="paramname"><em>reserve</em> = <code>0.0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reserve</td><td>Number of track that must remains free <em>after</em> the move. </td></tr>
<tr><td class="paramname">flags</td><td>Modificate the method behavior, see below.</td></tr>
</table>
</dd>
</dl>
<p>Checks of the segment can be <em>pivoted</em> down. The difference between <code>canMoveDown()</code> and <code><a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">canPivotDown()</a></code> lies in the fact that no perpandicular segment needs to be altered if the current segment is moved down.</p>
<p>Possible (bitwise) value for <code>flags</code> :</p><ul>
<li><code>KbPropagate</code> : perform the check on the whole aligned set. </li>
</ul>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ca0022e253d355817d46a057ae01625">AutoSegment::getGCells()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab045567c4f529dca7790d66c17c3084f">AutoSegment::getLayer()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingGauge.html#ac429c6ad1b2af7c588c60eff35c2d02e">RoutingGauge::getLayerDepth()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#ac350bb9d2d038287530fcf474987ba55">AutoContact::getMaxDepth()</a>, <a class="el" href="classKatabatic_1_1Session.html#a9a05289b33122f312aa2c88c4b023292">Session::getRoutingGauge()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afd7362b850709bed8b61c1aa22399f97">AutoSegment::isFixed()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a772596f5d5fa897822dbd0da37024735">AutoSegment::isLayerChange()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#add556a145a89fdbcea82346abfb873dc">AutoSegment::isLocal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a4605c9284168f0a62fa48aa2d3ae5ee9">AutoSegment::isStrongTerminal()</a>, and <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">Katabatic::KbPropagate</a>.</p>
</div>
</div>
<a id="adec088de3c4c47a28ee9d58eb6d9cf85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adec088de3c4c47a28ee9d58eb6d9cf85">&#9670;&nbsp;</a></span>canSlacken()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool canSlacken </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>0</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the segment can be slackened. That is, source or target constraints are less than three pitches.</p>
<p>If <code>flags</code> contains KbPropagate, look on the whole aligned set. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a676fcb7ece71d129b7a4d87a3f2e07aa">AutoSegment::_canSlacken()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a19ba379112d6b29faa45c5eefbf38500">AutoSegment::isGlobal()</a>, and <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">Katabatic::KbPropagate</a>.</p>
</div>
</div>
<a id="af026a81002bd907f1ccd4a4784aaa1db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af026a81002bd907f1ccd4a4784aaa1db">&#9670;&nbsp;</a></span>checkPositions()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool checkPositions </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the relative positions of source &amp; target are coherent. (source &lt;= target). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a6575c17bfa589c087215c87678e5719c">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a6575c17bfa589c087215c87678e5719c">AutoHorizontal</a>.</p>
</div>
</div>
<a id="a3d5732fd10b4a05076981066a4674487"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d5732fd10b4a05076981066a4674487">&#9670;&nbsp;</a></span>checkConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool checkConstraints </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <b>true</b> if the constraint intervel is coherent (non-empty or punctual in the worst case). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a8aef8f4bbafe3426840f9ebf31bb3b81">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a8aef8f4bbafe3426840f9ebf31bb3b81">AutoHorizontal</a>.</p>
</div>
</div>
<a id="afdedcef127ad2a3677a5b48d7d3453f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afdedcef127ad2a3677a5b48d7d3453f3">&#9670;&nbsp;</a></span>getId()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned long getId </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> unique identifier. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a7c13d9795eafd477994961f8a0d962d0">AutoHorizontal::_preDestroy()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a7c13d9795eafd477994961f8a0d962d0">AutoVertical::_preDestroy()</a>.</p>
</div>
</div>
<a id="ae35b78590ed6aa546b626ef95f28c533"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae35b78590ed6aa546b626ef95f28c533">&#9670;&nbsp;</a></span>getDirection()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int getDirection </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a1a9045673c5d3c30b067100f1440ae1b">Katabatic::KbHorizontal</a> or <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a284cad95203a27172838b09e396e3590">Katabatic::KbVertical</a> according to the decorated segment. </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a0dd7cf705ace42c662c289955313b2e9">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a0dd7cf705ace42c662c289955313b2e9">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#acc329583aa1546ed5a01e0628f3ca6ad">AutoSegment::getMinSpanU()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a206b53c34f57945b6c7bdb711101e38f">AutoSegment::getPerpandicularsBound()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a5ca22c853ee33a2b26367eaf29457766">AutoSegment::makeDogleg()</a>.</p>
</div>
</div>
<a id="a819cf639562a031a1e2e061fe1293d66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a819cf639562a031a1e2e061fe1293d66">&#9670;&nbsp;</a></span>getGCell()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1GCell.html">GCell</a> * getGCell </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> into which the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> starts (the one of the source). </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9b0c21eeb26c256876592ba63438da74">AutoHorizontal::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a9b0c21eeb26c256876592ba63438da74">AutoVertical::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoHorizontal::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoVertical::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#accdaef4410043f64da247a94a309733e">AutoHorizontal::getGCells()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#accdaef4410043f64da247a94a309733e">AutoVertical::getGCells()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoHorizontal::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoVertical::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#aa469e37853e31f8b1bc817518c896d62">AutoHorizontal::moveURight()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#aa469e37853e31f8b1bc817518c896d62">AutoVertical::moveURight()</a>.</p>
</div>
</div>
<a id="a8ca0022e253d355817d46a057ae01625"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ca0022e253d355817d46a057ae01625">&#9670;&nbsp;</a></span>getGCells()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t getGCells </td>
<td>(</td>
<td class="paramtype">vector&lt; <a class="el" href="classKatabatic_1_1GCell.html">GCell</a> *&gt; &amp;&#160;</td>
<td class="paramname"><em>gcells</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">gcells</td><td>A vector that will be filled by all the GCells that the segment overlap. In increasing order, from source to target. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The vector's size. </dd></dl>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#accdaef4410043f64da247a94a309733e">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#accdaef4410043f64da247a94a309733e">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">AutoSegment::canPivotDown()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">AutoSegment::canPivotUp()</a>.</p>
</div>
</div>
<a id="a2ca3fac97e325ec8a55d3e03a2ce11a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ca3fac97e325ec8a55d3e03a2ce11a6">&#9670;&nbsp;</a></span>getAutoSource()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> * getAutoSource </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The source <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a>. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a497ea2ceeddb939dbc84eae0e7862335">AutoSegment::getSource()</a>, and <a class="el" href="classKatabatic_1_1Session.html#acc20c1f675cc59f9a0068aba727eca47">Session::lookup()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a2ced98fb06f208aa88c0962a706e64db">AutoHorizontal::_canSlacken()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a2ced98fb06f208aa88c0962a706e64db">AutoVertical::_canSlacken()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a3715b38135ca24745f610bebd3407c10">AutoHorizontal::_postCreate()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a3715b38135ca24745f610bebd3407c10">AutoVertical::_postCreate()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a7c13d9795eafd477994961f8a0d962d0">AutoHorizontal::_preDestroy()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a7c13d9795eafd477994961f8a0d962d0">AutoVertical::_preDestroy()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9b0c21eeb26c256876592ba63438da74">AutoHorizontal::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a9b0c21eeb26c256876592ba63438da74">AutoVertical::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoHorizontal::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoVertical::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">AutoSegment::canPivotDown()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">AutoSegment::canPivotUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#af1a231b2324a486d4ef61b247886cdeb">AutoSegment::canReduce()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a8aef8f4bbafe3426840f9ebf31bb3b81">AutoHorizontal::checkConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a8aef8f4bbafe3426840f9ebf31bb3b81">AutoVertical::checkConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#abc72aaeefa7450eaf67aee3212ec974d">AutoSegment::computeTerminal()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a16737e7f2b77f8595fd2b607fac0f2f5">AutoHorizontal::getConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a16737e7f2b77f8595fd2b607fac0f2f5">AutoVertical::getConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#accdaef4410043f64da247a94a309733e">AutoHorizontal::getGCells()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#accdaef4410043f64da247a94a309733e">AutoVertical::getGCells()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a3239751f475bc65adb9d56f6c771ebb0">AutoHorizontal::getSourceConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a3239751f475bc65adb9d56f6c771ebb0">AutoVertical::getSourceConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a39c927c04b5016770692b9b8448c2f04">AutoSegment::makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoHorizontal::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoVertical::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#aa469e37853e31f8b1bc817518c896d62">AutoHorizontal::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#aa469e37853e31f8b1bc817518c896d62">AutoVertical::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ace393c3c082a5e62a348168354660e39">AutoSegment::raise()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a27a6a2c747ff93d209878a32d97e9157">AutoSegment::reduce()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#acecc9a1d55a271a4b1587d7872cfe133">AutoSegment::reduceDoglegLayer()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">AutoSegment::revalidate()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ab41a962e18810808f4f065863b5a73">AutoSegment::toConstraintAxis()</a>.</p>
</div>
</div>
<a id="afa494ddc031f4dd1c24999ff83fb878c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa494ddc031f4dd1c24999ff83fb878c">&#9670;&nbsp;</a></span>getAutoTarget()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> * getAutoTarget </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The target <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a>. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a0862c201bd7d8e5427e44ca2427c2fe6">AutoSegment::getTarget()</a>, and <a class="el" href="classKatabatic_1_1Session.html#acc20c1f675cc59f9a0068aba727eca47">Session::lookup()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a2ced98fb06f208aa88c0962a706e64db">AutoHorizontal::_canSlacken()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a2ced98fb06f208aa88c0962a706e64db">AutoVertical::_canSlacken()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a3715b38135ca24745f610bebd3407c10">AutoHorizontal::_postCreate()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a3715b38135ca24745f610bebd3407c10">AutoVertical::_postCreate()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a7c13d9795eafd477994961f8a0d962d0">AutoHorizontal::_preDestroy()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a7c13d9795eafd477994961f8a0d962d0">AutoVertical::_preDestroy()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9b0c21eeb26c256876592ba63438da74">AutoHorizontal::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a9b0c21eeb26c256876592ba63438da74">AutoVertical::canMoveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoHorizontal::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#ad0c972e34d6bac47bd9276a7d6e053d8">AutoVertical::canMoveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">AutoSegment::canPivotDown()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">AutoSegment::canPivotUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#af1a231b2324a486d4ef61b247886cdeb">AutoSegment::canReduce()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a8aef8f4bbafe3426840f9ebf31bb3b81">AutoHorizontal::checkConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a8aef8f4bbafe3426840f9ebf31bb3b81">AutoVertical::checkConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#abc72aaeefa7450eaf67aee3212ec974d">AutoSegment::computeTerminal()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a16737e7f2b77f8595fd2b607fac0f2f5">AutoHorizontal::getConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a16737e7f2b77f8595fd2b607fac0f2f5">AutoVertical::getConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#accdaef4410043f64da247a94a309733e">AutoHorizontal::getGCells()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#accdaef4410043f64da247a94a309733e">AutoVertical::getGCells()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#ad2b5aeb2604548378c8d78c60862091f">AutoHorizontal::getTargetConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#ad2b5aeb2604548378c8d78c60862091f">AutoVertical::getTargetConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a5ca22c853ee33a2b26367eaf29457766">AutoSegment::makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoHorizontal::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoVertical::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#aa469e37853e31f8b1bc817518c896d62">AutoHorizontal::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#aa469e37853e31f8b1bc817518c896d62">AutoVertical::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ace393c3c082a5e62a348168354660e39">AutoSegment::raise()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a27a6a2c747ff93d209878a32d97e9157">AutoSegment::reduce()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#acecc9a1d55a271a4b1587d7872cfe133">AutoSegment::reduceDoglegLayer()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">AutoSegment::revalidate()</a>.</p>
</div>
</div>
<a id="a2c5b0faacc768bf61e17eb72a4ccc248"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c5b0faacc768bf61e17eb72a4ccc248">&#9670;&nbsp;</a></span>getOppositeAnchor() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> * getOppositeAnchor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td>
<td class="paramname"><em>contact</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The source or target <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> opposite to <code>contact</code>. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoContact.html#ab422116c7edfacedd31711c96e3ec95b">AutoContact::base()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a9216d4467c2d4e0c7b9d9a8b8e798bee">AutoSegment::getOppositeAnchor()</a>, and <a class="el" href="classKatabatic_1_1Session.html#acc20c1f675cc59f9a0068aba727eca47">Session::lookup()</a>.</p>
</div>
</div>
<a id="a206b53c34f57945b6c7bdb711101e38f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a206b53c34f57945b6c7bdb711101e38f">&#9670;&nbsp;</a></span>getPerpandicularsBound()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t getPerpandicularsBound </td>
<td>(</td>
<td class="paramtype">set&lt; <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&gt; &amp;&#160;</td>
<td class="paramname"><em>bounds</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bounds</td><td>A vector that will be filled by all the AutoSegments perpandicular to this one that induce a constraint. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The vector's size. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#ae35b78590ed6aa546b626ef95f28c533">AutoSegment::getDirection()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#af6d6b7c6b3cb18754cfa02bc5fb1e754">Component::getSlaveComponents()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Collection.html#aa32ea7249d57ee05e3c71dcde8106832">Collection&lt; Type &gt;::getSubSet()</a>, and <a class="el" href="classKatabatic_1_1Session.html#acc20c1f675cc59f9a0068aba727eca47">Session::lookup()</a>.</p>
</div>
</div>
<a id="a58c1170381b915930188608dab311442"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58c1170381b915930188608dab311442">&#9670;&nbsp;</a></span>getParent()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * getParent </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> If this segment has been created by a dogleg operation, the parent is the one from which we fragmented. </p>
</div>
</div>
<a id="ab5b5aaa5b318369feee6003dbad039c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5b5aaa5b318369feee6003dbad039c2">&#9670;&nbsp;</a></span>getAxis()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getAxis </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> axis position. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#a0f8299ed73705fd4fbf56589dcc7e074">Component::getX()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Component.html#a727da3f127c3a7a0a09468219f98c3e6">Component::getY()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">AutoSegment::isHorizontal()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a3881efebb7510d9b22e5f89bcd418954">AutoSegment::setAxis()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ab41a962e18810808f4f065863b5a73">AutoSegment::toConstraintAxis()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a750983d7154c94b54537127a3a18e14b">AutoSegment::toOptimalAxis()</a>.</p>
</div>
</div>
<a id="aeaa1543880686755e389c4807128428f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeaa1543880686755e389c4807128428f">&#9670;&nbsp;</a></span>getSourceU()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getSourceU </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <em>uniform</em> source position. (X for an horizontal and Y for a Vertical). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#ad521ffba761b0e81b7b81b99d62f76f9">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#ad521ffba761b0e81b7b81b99d62f76f9">AutoHorizontal</a>.</p>
</div>
</div>
<a id="a828fef2716cc9c370d6d170bb96556ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a828fef2716cc9c370d6d170bb96556ec">&#9670;&nbsp;</a></span>getTargetU()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getTargetU </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <em>uniform</em> target position. (X for an horizontal and Y for a Vertical). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a4d52a506cd19dfa8e22e1dc0695bd960">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a4d52a506cd19dfa8e22e1dc0695bd960">AutoHorizontal</a>.</p>
</div>
</div>
<a id="ab4881df67bd8f036d0199ed6540fe774"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4881df67bd8f036d0199ed6540fe774">&#9670;&nbsp;</a></span>getDuSource()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getDuSource </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <em>uniform</em> delta from source. (dX for an horizontal and dY for a Vertical). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a760500b1fd027c71f5362dd8c0b01ea7">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a760500b1fd027c71f5362dd8c0b01ea7">AutoHorizontal</a>.</p>
</div>
</div>
<a id="a0644d656eedc71dba2fb3c6c0d83ed3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0644d656eedc71dba2fb3c6c0d83ed3f">&#9670;&nbsp;</a></span>getDuTarget()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getDuTarget </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <em>uniform</em> delta from source. (dX for an horizontal and dY for a Vertical). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a76e349c14c904b3300a15caa1ee8b680">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a76e349c14c904b3300a15caa1ee8b680">AutoHorizontal</a>.</p>
</div>
</div>
<a id="ab5fb22520af4b94f2ae984304fa64c26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5fb22520af4b94f2ae984304fa64c26">&#9670;&nbsp;</a></span>getOrigin()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getOrigin </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <em>uniform</em> source (lowest) <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> coordinate. (dX for an horizontal and dY for a Vertical). </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1GCell.html#a00b8f54c8171f6699e57de1b8c18eeb1">GCell::getX()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a4580de6b074712e400d5d238ce3af054">GCell::getY()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">AutoSegment::isHorizontal()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a1bada13dd4460386d4bed22c1a4b3921">AutoSegment::getOptimalMax()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a9405b4f5345d116f71c40ba2c16097d0">AutoSegment::getOptimalMin()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a90173ab4f35b98c6544f9482ccd93b5e">AutoSegment::setOptimalMax()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#af92b3d000552b630695879dd5d4736a1">AutoSegment::setOptimalMin()</a>.</p>
</div>
</div>
<a id="a5b81aad92361558c3b9e60fd501b89ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b81aad92361558c3b9e60fd501b89ba">&#9670;&nbsp;</a></span>getExtremity()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getExtremity </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <em>uniform</em> target (greatest) <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> coordinate. (dX for an horizontal and dY for a Vertical). </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1GCell.html#aaf7ff16cd2fd5a3fa4c5221efb9b9b76">GCell::getXMax()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a096a92c18156eac4268efb50496a2d18">GCell::getYMax()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">AutoSegment::isHorizontal()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>.</p>
</div>
</div>
<a id="a248eb2fbb06e3286650b28567d495f0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a248eb2fbb06e3286650b28567d495f0b">&#9670;&nbsp;</a></span>getSpanU()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> getSpanU </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <em>uniform</em> occupying interval (on X for horizontal and on Y for vertical). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a0b5ac47ab175815e1a9bc07f2517614a">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a0b5ac47ab175815e1a9bc07f2517614a">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a43c865bcfcfd6132352a9ac8a84c25cd">AutoSegment::canDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a5ca22c853ee33a2b26367eaf29457766">AutoSegment::makeDogleg()</a>.</p>
</div>
</div>
<a id="acc329583aa1546ed5a01e0628f3ca6ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc329583aa1546ed5a01e0628f3ca6ad">&#9670;&nbsp;</a></span>getMinSpanU()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> getMinSpanU </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> <em>uniform</em> minimum occupying interval, computed from the constraints of all the supporting aligned AutoContacts. (on X for horizontal and on Y for vertical). </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#ae35b78590ed6aa546b626ef95f28c533">AutoSegment::getDirection()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a2f5ec659fde913492f89dc215001acb2">Interval::getVMax()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a6e0deb1b38065375a78c7fd6885b5909">Interval::getVMin()</a>.</p>
</div>
</div>
<a id="ab7685e309e1d910db3e8237f8a898c35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7685e309e1d910db3e8237f8a898c35">&#9670;&nbsp;</a></span>getSourceConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> getSourceConstraints </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>0</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The Interval into witch the source <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> can vary. By default all deduced constraints and user constraints are took into account. If <code>flags</code> contains <code>KbNativeConstraints</code> the constraint returned is only the enclosing <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>. </dd></dl>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a3239751f475bc65adb9d56f6c771ebb0">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a3239751f475bc65adb9d56f6c771ebb0">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a5ca22c853ee33a2b26367eaf29457766">AutoSegment::makeDogleg()</a>.</p>
</div>
</div>
<a id="a9c1b8b3cd57fb7b0bf60c7a6148237c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c1b8b3cd57fb7b0bf60c7a6148237c2">&#9670;&nbsp;</a></span>getTargetConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> getTargetConstraints </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>0</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The Interval into witch the target <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> can vary. By default all deduced constraints and user constraints are took into account. If <code>flags</code> contains <code>KbNativeConstraints</code> the constraint returned is only the enclosing <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>. </dd></dl>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#ad2b5aeb2604548378c8d78c60862091f">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#ad2b5aeb2604548378c8d78c60862091f">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a5ca22c853ee33a2b26367eaf29457766">AutoSegment::makeDogleg()</a>.</p>
</div>
</div>
<a id="a7c2fed22b081f8d3b7a69abb457153ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c2fed22b081f8d3b7a69abb457153ea">&#9670;&nbsp;</a></span>getConstraints() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool getConstraints </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> &amp;&#160;</td>
<td class="paramname"><em>min</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> &amp;&#160;</td>
<td class="paramname"><em>max</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> in <code>min</code> &amp; <code>max</code> the allowed range for the segment axis. </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a16737e7f2b77f8595fd2b607fac0f2f5">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a16737e7f2b77f8595fd2b607fac0f2f5">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a29c3a56daaf4c78aa3ae6edbde37dd42">AutoSegment::getConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8789ebe71b2ff3d0265f5319a3be5afb">AutoSegment::getSlack()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ab41a962e18810808f4f065863b5a73">AutoSegment::toConstraintAxis()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a750983d7154c94b54537127a3a18e14b">AutoSegment::toOptimalAxis()</a>.</p>
</div>
</div>
<a id="a29c3a56daaf4c78aa3ae6edbde37dd42"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29c3a56daaf4c78aa3ae6edbde37dd42">&#9670;&nbsp;</a></span>getConstraints() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool getConstraints </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;&#160;</td>
<td class="paramname"><em>i</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> in <code>i</code> the allowed range for the segment axis. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a7c2fed22b081f8d3b7a69abb457153ea">AutoSegment::getConstraints()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a2f5ec659fde913492f89dc215001acb2">Interval::getVMax()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a6e0deb1b38065375a78c7fd6885b5909">Interval::getVMin()</a>.</p>
</div>
</div>
<a id="aa7cf8d4df6a5d945dd180d45e8bbcedf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7cf8d4df6a5d945dd180d45e8bbcedf">&#9670;&nbsp;</a></span>getUserConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp; getUserConstraints </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> A reference to the additional constraints added to the axis of the segment. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a16737e7f2b77f8595fd2b607fac0f2f5">AutoHorizontal::getConstraints()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a16737e7f2b77f8595fd2b607fac0f2f5">AutoVertical::getConstraints()</a>.</p>
</div>
</div>
<a id="a8789ebe71b2ff3d0265f5319a3be5afb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8789ebe71b2ff3d0265f5319a3be5afb">&#9670;&nbsp;</a></span>getSlack()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getSlack </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The length of the axis constraint interval. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a7c2fed22b081f8d3b7a69abb457153ea">AutoSegment::getConstraints()</a>.</p>
</div>
</div>
<a id="a9405b4f5345d116f71c40ba2c16097d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9405b4f5345d116f71c40ba2c16097d0">&#9670;&nbsp;</a></span>getOptimalMin()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getOptimalMin </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> minimum axis optimal range. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5fb22520af4b94f2ae984304fa64c26">AutoSegment::getOrigin()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#gaa1ba98acc939ff1c370c18544a5e0dce">DbU::lambda()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a0e3a02c7a9c1bd559fda628d596b00cd">AutoSegment::getCost()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a110201bd7c64ed78522cfb3f7b142431">AutoSegment::getOptimal()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a750983d7154c94b54537127a3a18e14b">AutoSegment::toOptimalAxis()</a>.</p>
</div>
</div>
<a id="a1bada13dd4460386d4bed22c1a4b3921"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1bada13dd4460386d4bed22c1a4b3921">&#9670;&nbsp;</a></span>getOptimalMax()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getOptimalMax </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> maximum axis optimal range. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5fb22520af4b94f2ae984304fa64c26">AutoSegment::getOrigin()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#gaa1ba98acc939ff1c370c18544a5e0dce">DbU::lambda()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a0e3a02c7a9c1bd559fda628d596b00cd">AutoSegment::getCost()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a110201bd7c64ed78522cfb3f7b142431">AutoSegment::getOptimal()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a750983d7154c94b54537127a3a18e14b">AutoSegment::toOptimalAxis()</a>.</p>
</div>
</div>
<a id="a110201bd7c64ed78522cfb3f7b142431"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a110201bd7c64ed78522cfb3f7b142431">&#9670;&nbsp;</a></span>getOptimal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp; getOptimal </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;&#160;</td>
<td class="paramname"><em>i</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Inialize <code>i</code> with the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> axis optimal range. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a1bada13dd4460386d4bed22c1a4b3921">AutoSegment::getOptimalMax()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a9405b4f5345d116f71c40ba2c16097d0">AutoSegment::getOptimalMin()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a2f5ec659fde913492f89dc215001acb2">Interval::getVMax()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a6e0deb1b38065375a78c7fd6885b5909">Interval::getVMin()</a>.</p>
</div>
</div>
<a id="a0e3a02c7a9c1bd559fda628d596b00cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e3a02c7a9c1bd559fda628d596b00cd">&#9670;&nbsp;</a></span>getCost()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getCost </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td>
<td class="paramname"><em>axis</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The cost if this segment is placed at <code>axis</code>. The cost is null if <code>axis</code> is inside the optimal interval and is the distance toward the nearest bound outside. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a1bada13dd4460386d4bed22c1a4b3921">AutoSegment::getOptimalMax()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a9405b4f5345d116f71c40ba2c16097d0">AutoSegment::getOptimalMin()</a>.</p>
</div>
</div>
<a id="a8acbe1037827da2c2fef71a18c5886c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8acbe1037827da2c2fef71a18c5886c7">&#9670;&nbsp;</a></span>getCanonical() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * getCanonical </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> &amp;&#160;</td>
<td class="paramname"><em>min</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> &amp;&#160;</td>
<td class="paramname"><em>max</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The canonical segment associated to this one. Additionnaly compute the source &amp; target position of the whole set of aligned segments. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a53877ff5ef48eb0030c2581a6eeb3c09">AutoSegment::base()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8a88dc051a8d324aff8763609957dcaa">AutoSegment::getSourcePosition()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a65dea76b4efad9d3caa78be44e96c94c">AutoSegment::getTargetPosition()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#af6d3008d345195a99e0341f0379c33b7">AutoSegment::isCanonical()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a988beca5780421c168a2475a5298009a">AutoSegment::getCanonical()</a>.</p>
</div>
</div>
<a id="a988beca5780421c168a2475a5298009a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a988beca5780421c168a2475a5298009a">&#9670;&nbsp;</a></span>getCanonical() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * getCanonical </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;&#160;</td>
<td class="paramname"><em>i</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The canonical segment associated to this one. Additionnaly compute the source &amp; target position of the whole set of aligned segments. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a8acbe1037827da2c2fef71a18c5886c7">AutoSegment::getCanonical()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a2f5ec659fde913492f89dc215001acb2">Interval::getVMax()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a6e0deb1b38065375a78c7fd6885b5909">Interval::getVMin()</a>.</p>
</div>
</div>
<a id="a1a6fac115cb81db48e3ac9ffa0721bb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a6fac115cb81db48e3ac9ffa0721bb5">&#9670;&nbsp;</a></span>unsetFlags()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void unsetFlags </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unsets <code>flags</code> given as arguments. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8b0d5044dce091d06b633848a6f8a66d">AutoSegment::canonize()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#abc72aaeefa7450eaf67aee3212ec974d">AutoSegment::computeTerminal()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoHorizontal::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoVertical::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#aa469e37853e31f8b1bc817518c896d62">AutoHorizontal::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#aa469e37853e31f8b1bc817518c896d62">AutoVertical::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">AutoSegment::revalidate()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a59058f4593049c583c5b3698ff81b299">AutoHorizontal::updateOrient()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a59058f4593049c583c5b3698ff81b299">AutoVertical::updateOrient()</a>.</p>
</div>
</div>
<a id="aeb14f94914af58657a0dc2f50ec98df5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb14f94914af58657a0dc2f50ec98df5">&#9670;&nbsp;</a></span>setFlags()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setFlags </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets <code>flags</code> given as arguments. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a6a98d2e5839b880893703ad45db4e4c4">AutoSegment::_invalidate()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a3715b38135ca24745f610bebd3407c10">AutoHorizontal::_postCreate()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a3715b38135ca24745f610bebd3407c10">AutoVertical::_postCreate()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ae64a61508d148cb4a0ee9b5ffb177659">AutoSegment::AutoSegment()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8b0d5044dce091d06b633848a6f8a66d">AutoSegment::canonize()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#abc72aaeefa7450eaf67aee3212ec974d">AutoSegment::computeTerminal()</a>, <a class="el" href="group__LoadGlobalRouting.html#gae9cae408ea16a3f7c77c3d75f0242f19">GCellTopology::doRp_AutoContacts()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">AutoSegment::invalidate()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoHorizontal::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoVertical::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#aa469e37853e31f8b1bc817518c896d62">AutoHorizontal::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#aa469e37853e31f8b1bc817518c896d62">AutoVertical::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">AutoSegment::revalidate()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a59058f4593049c583c5b3698ff81b299">AutoHorizontal::updateOrient()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a59058f4593049c583c5b3698ff81b299">AutoVertical::updateOrient()</a>.</p>
</div>
</div>
<a id="aaf60d18ab6d951a34a3d06959ce2e76f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf60d18ab6d951a34a3d06959ce2e76f">&#9670;&nbsp;</a></span>setDuSource()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setDuSource </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td>
<td class="paramname"><em>du</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the <em>uniform</em> <code>dU</code> from source anchor (dX for Horizontal, dY for Vertical). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a756616a1967c5ad8efd08be96d18f25d">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a756616a1967c5ad8efd08be96d18f25d">AutoHorizontal</a>.</p>
</div>
</div>
<a id="a246756d4c8b3e094a0a9d6de3c2109ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a246756d4c8b3e094a0a9d6de3c2109ff">&#9670;&nbsp;</a></span>setDuTarget()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setDuTarget </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td>
<td class="paramname"><em>du</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the <em>uniform</em> <code>dU</code> from target anchor (dX for Horizontal, dY for Vertical). </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a9df2ef68c1fbf4159cc837be5c699b53">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9df2ef68c1fbf4159cc837be5c699b53">AutoHorizontal</a>.</p>
</div>
</div>
<a id="abc72aaeefa7450eaf67aee3212ec974d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc72aaeefa7450eaf67aee3212ec974d">&#9670;&nbsp;</a></span>computeTerminal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void computeTerminal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Recompute the terminal status of an <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>. Initially, a segment which source or target is a terminal is flagged as SegStrongTerminal. 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.</p>
<p>Status from stronger to weaker:</p><ul>
<li><a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a93251a6b8197685e2aaf77a760851557">Katabatic::SegStrongTerminal</a>.</li>
<li><a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a7b3e09b8ab4cf676fd308535d7fba892">Katabatic::SegWeakTerminal1</a></li>
<li><a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a32f77fa2da27348bcfc294a039efd766">Katabatic::SegWeakTerminal2</a></li>
</ul>
<dl class="section user"><dt>Remark: The weakening is poorly done. After making a dogleg we do not</dt><dd>know which of the segment must be weakened if not directly attached on a terminal. We must examinate source &amp; target. </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#ae5b4a4f67d480cd5c9ce104e73e73da9">AutoSegment::_getFlags()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a419e7722198b077c1f71d6c47e2fc2ab">Katabatic::SegWeakTerminal</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a7b3e09b8ab4cf676fd308535d7fba892">Katabatic::SegWeakTerminal1</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a32f77fa2da27348bcfc294a039efd766">Katabatic::SegWeakTerminal2</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aeb14f94914af58657a0dc2f50ec98df5">AutoSegment::setFlags()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a1a6fac115cb81db48e3ac9ffa0721bb5">AutoSegment::unsetFlags()</a>.</p>
</div>
</div>
<a id="a102e0f4bbb0386e41be214d15a9e4549"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a102e0f4bbb0386e41be214d15a9e4549">&#9670;&nbsp;</a></span>updateOrient()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void updateOrient </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>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 <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>, which are already ordered. </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a59058f4593049c583c5b3698ff81b299">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a59058f4593049c583c5b3698ff81b299">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a3715b38135ca24745f610bebd3407c10">AutoSegment::_postCreate()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">AutoSegment::revalidate()</a>.</p>
</div>
</div>
<a id="a6d95f4de39c13611786c95ddc7b8942e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d95f4de39c13611786c95ddc7b8942e">&#9670;&nbsp;</a></span>updatePositions()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void updatePositions </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>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. </p>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a9662a77c2ed8553d6a0312c5292060ad">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a9662a77c2ed8553d6a0312c5292060ad">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a3715b38135ca24745f610bebd3407c10">AutoSegment::_postCreate()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a88ac40c065bce0ff97792d18b41b6a67">AutoSegment::revalidate()</a>.</p>
</div>
</div>
<a id="ae82ffef92ad9ffdc5da5e0c1830d9537"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae82ffef92ad9ffdc5da5e0c1830d9537">&#9670;&nbsp;</a></span>mergeUserConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void mergeUserConstraints </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> &amp;&#160;</td>
<td class="paramname"><em>constraints</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constraints applies on the valid axis interval. Merge in <code>constraints</code> with the user's constraints. The resulting constraints is the intersection of the former user's contraints and the one given as argument. </p>
<p class="reference">References <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a0eeaaa7eb5b4ade89719c57a2c284909">Interval::intersection()</a>.</p>
</div>
</div>
<a id="ac8768352909d37ebad1c06c9cf4ef8bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8768352909d37ebad1c06c9cf4ef8bb">&#9670;&nbsp;</a></span>resetUserConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void resetUserConstraints </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constraints applies on the valid axis interval. Suppress all user's constraints. </p>
</div>
</div>
<a id="af92b3d000552b630695879dd5d4736a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af92b3d000552b630695879dd5d4736a1">&#9670;&nbsp;</a></span>setOptimalMin()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setOptimalMin </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td>
<td class="paramname"><em>min</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the lower bound of the optimal axis interval. </p>
<p class="reference">References <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#gadea6b9a6e84243f70f3a5e2725b2c6d8">DbU::getLambda()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5fb22520af4b94f2ae984304fa64c26">AutoSegment::getOrigin()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>.</p>
</div>
</div>
<a id="a90173ab4f35b98c6544f9482ccd93b5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90173ab4f35b98c6544f9482ccd93b5e">&#9670;&nbsp;</a></span>setOptimalMax()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setOptimalMax </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td>
<td class="paramname"><em>max</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the lower bound of the optimal axis interval. </p>
<p class="reference">References <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#gadea6b9a6e84243f70f3a5e2725b2c6d8">DbU::getLambda()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5fb22520af4b94f2ae984304fa64c26">AutoSegment::getOrigin()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#ae64a61508d148cb4a0ee9b5ffb177659">AutoSegment::AutoSegment()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>.</p>
</div>
</div>
<a id="a88ac40c065bce0ff97792d18b41b6a67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88ac40c065bce0ff97792d18b41b6a67">&#9670;&nbsp;</a></span>revalidate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> revalidate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Mark this segment as valid (unset the Invalidated flag) and update positions. Unlike <a class="el" href="classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">AutoSegment::invalidate()</a>, it's an atomic method. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#ab045567c4f529dca7790d66c17c3084f">AutoContact::getLayer()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab045567c4f529dca7790d66c17c3084f">AutoSegment::getLayer()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a994371005874f946cc0ac78005d38423">AutoContact::getPerpandicular()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html#a5f7c43a29f3dd02a9ebccbcbf91d6727">Layer::getTop()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ac540608485240ff88970131ebc02c1ab">AutoSegment::isInvalidated()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a461c31a8d12458939b78ccecb3b8c299">AutoSegment::isReduced()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a249530ac086dbf92f981887cc633facf">AutoContact::isTurn()</a>, <a class="el" href="classKatabatic_1_1Observable.html#a52e577fb0c4f2e3650928334fb621c2f">Observable::notify()</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a01513b74d37a8721370cf7b91fb419ad">Katabatic::SegCreated</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a3c1d76fecee6a8bd5e12ce3fec013827">Katabatic::SegInvalidated</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a11c86dd3185eb251b2f3ce536cc2ab34">Katabatic::SegInvalidatedLayer</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a29f1952fe978a9fdd1902a6fcd085b44">Katabatic::SegSourceBottom</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4ae5f763897c8e6221dcc8177816c72b33">Katabatic::SegSourceTop</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4ae600c6015187dddac3860fcc008a2213">Katabatic::SegTargetBottom</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a100b7ff78619133970733fedbb34ffa8">Katabatic::SegTargetTop</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aeb14f94914af58657a0dc2f50ec98df5">AutoSegment::setFlags()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a1a6fac115cb81db48e3ac9ffa0721bb5">AutoSegment::unsetFlags()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a102e0f4bbb0386e41be214d15a9e4549">AutoSegment::updateOrient()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a6d95f4de39c13611786c95ddc7b8942e">AutoSegment::updatePositions()</a>.</p>
</div>
</div>
<a id="a39c927c04b5016770692b9b8448c2f04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39c927c04b5016770692b9b8448c2f04">&#9670;&nbsp;</a></span>makeDogleg() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * makeDogleg </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td>
<td class="paramname"><em>from</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">from</td><td>The <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> <em>from</em> which we want to make a dogleg.</td></tr>
</table>
</dd>
</dl>
<p>This method is dedicated for the restauration of topology connexity on AutoContcact after a layer change on one of their connected <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>.</p>
<p>It perform three operations:</p><ol type="1">
<li>Create a dogleg on the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> (using the normal <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> variant).</li>
<li>Adjust the layers of the dogleg according whether we are going <em>up</em> or <em>down</em> from the <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> <code>from</code> to the segment.</li>
<li>Returns the new <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> connected to <code>from</code> (it may be the same as before, <b>if</b> the <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> is the source of the segment). </li>
</ol>
<p class="reference">References <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html#af63dd0a48e2a3514a1cdaccd4586bad8">Layer::contains()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingGauge.html#a4b603c0fd5f21db1c93d8a747ec1f4ba">RoutingGauge::getContactLayer()</a>, <a class="el" href="classKatabatic_1_1Session.html#a84211b77fe7fb8b49a93d7f298a5de90">Session::getDoglegs()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a819cf639562a031a1e2e061fe1293d66">AutoContact::getGCell()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#ab045567c4f529dca7790d66c17c3084f">AutoContact::getLayer()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab045567c4f529dca7790d66c17c3084f">AutoSegment::getLayer()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingGauge.html#ac429c6ad1b2af7c588c60eff35c2d02e">RoutingGauge::getLayerDepth()</a>, <a class="el" href="classKatabatic_1_1Session.html#a9a05289b33122f312aa2c88c4b023292">Session::getRoutingGauge()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/crlcore/doc/crlcore/html/crlcore.tag:../crlcore/" href="../crlcore/classCRL_1_1RoutingGauge.html#a6d6c1951c8728886d3fb702891685b94">RoutingGauge::getRoutingLayer()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a00b8f54c8171f6699e57de1b8c18eeb1">AutoContact::getX()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a4580de6b074712e400d5d238ce3af054">AutoContact::getY()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">AutoSegment::isHorizontal()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoContactTurn.html#af5bf1f5e71204ef84346e4e036175431">AutoContactTurn::updateTopology()</a>, and <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#af5bf1f5e71204ef84346e4e036175431">AutoContactTerminal::updateTopology()</a>.</p>
</div>
</div>
<a id="a5ca22c853ee33a2b26367eaf29457766"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ca22c853ee33a2b26367eaf29457766">&#9670;&nbsp;</a></span>makeDogleg() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int makeDogleg </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a>&#160;</td>
<td class="paramname"><em>interval</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>KbNoFlags</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Make a dogleg <em>in a set of aligned segments</em>, thus the dogleg may not be created on <code>this</code> segment but in one which span intersect <code>interval</code>.</p>
<p><b>Returns:</b> A set of flags telling if the break has occured on the left candidate (<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679">Katabatic::KbDoglegOnLeft</a>) or right (<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217afe7fcb4c332f36e477433169b3d3f515">Katabatic::KbDoglegOnRight</a>). 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.</p>
<p>Break the set of aligned segments so the break point is <em>outside</em> <code>interval</code>. The break point so can occurs on the <em>left</em> of the interval (<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679">Katabatic::KbDoglegOnLeft</a>) or on the <em>right</em> of the interval (<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217afe7fcb4c332f36e477433169b3d3f515">Katabatic::KbDoglegOnRight</a>). When the set of aligned segments fully enclose <code>interval</code>, a choice has to be made between the left and right candidate. The rules are as follow:</p><ul>
<li>A <em>left</em> candidate include the <em>min</em> of the interval into it's span.</li>
<li>A <em>right</em> candidate include the <em>max</em> of the interval into it's span.</li>
<li>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.</li>
<li>If the two candidates are avalaibles, we choose the one with the greated <em>native</em> constraints.</li>
<li>In case of strict equality, the left candidate is choosen.</li>
</ul>
<div class="image">
<img src="_makeDogleg-4.png" alt="_makeDogleg-4.png"/>
<div class="caption">
Example Case 4</div></div>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a37a14b40295ccb50cd5001891385807b">AutoSegment::_makeDogleg()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a84beba7ba34552e12e6cb9e462a94765">Interval::contains()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ae35b78590ed6aa546b626ef95f28c533">AutoSegment::getDirection()</a>, <a class="el" href="classKatabatic_1_1Session.html#a84211b77fe7fb8b49a93d7f298a5de90">Session::getDoglegs()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a819cf639562a031a1e2e061fe1293d66">AutoContact::getGCell()</a>, <a class="el" href="classKatabatic_1_1GCell.html#abdeb6b4a351f8b292894d3f0c24f105d">GCell::getRight()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a10f3dd5001b2015e34a9aacdacf6eae6">GCell::getSide()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a61d877fee3986f93c357910cd63f1caa">Interval::getSize()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab7685e309e1d910db3e8237f8a898c35">AutoSegment::getSourceConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a248eb2fbb06e3286650b28567d495f0b">AutoSegment::getSpanU()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a9c1b8b3cd57fb7b0bf60c7a6148237c2">AutoSegment::getTargetConstraints()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a335506a314a2330b5a354906e798e60c">GCell::getUp()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#gadc9c1a06b4296dbddcf711077113f4bd">DbU::getValueString()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a2f5ec659fde913492f89dc215001acb2">Interval::getVMax()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#a6e0deb1b38065375a78c7fd6885b5909">Interval::getVMin()</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a67bb7c53bbbc73a0e2d1f3f3e16ab679">Katabatic::KbDoglegOnLeft</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217afe7fcb4c332f36e477433169b3d3f515">Katabatic::KbDoglegOnRight</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a1a9045673c5d3c30b067100f1440ae1b">Katabatic::KbHorizontal</a>, and <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217af1d61226371622b8063fe47c63cd9dff">Katabatic::KbNativeConstraints</a>.</p>
</div>
</div>
<a id="aa21b16647c1750ba8b3eb9d99b12f073"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa21b16647c1750ba8b3eb9d99b12f073">&#9670;&nbsp;</a></span>makeDogleg() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int makeDogleg </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1GCell.html">GCell</a> *&#160;</td>
<td class="paramname"><em>doglegGCell</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>KbNoFlags</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Make a dogleg <em>in a set of aligned segments</em>, thus the dogleg may not be created on <code>this</code> segment but in the one which is under <code>doglegGCell</code>.</p>
<p><b>Returns:</b> A flag telling if the above or below layer was used for the perpandicular segment (<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217af756099f1bbe259dd1bf22067dc40eac">Katabatic::KbUseAboveLayer</a> or <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a41cbd981337678e042354f340bfae25d">Katabatic::KbUseBelowLayer</a>). </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a37a14b40295ccb50cd5001891385807b">AutoSegment::_makeDogleg()</a>, <a class="el" href="namespaceKatabatic.html#ab9e409db5feff0bdbc85e90e2a029cdaa5e262eba2c323c8ab5365b5e1364fc1e">Katabatic::EngineGlobalLoaded</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ae35b78590ed6aa546b626ef95f28c533">AutoSegment::getDirection()</a>, <a class="el" href="classKatabatic_1_1Session.html#a1ec4ff2ad2a5b964c0ff98170a366197">Session::getKatabatic()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a10f3dd5001b2015e34a9aacdacf6eae6">GCell::getSide()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a248eb2fbb06e3286650b28567d495f0b">AutoSegment::getSpanU()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#af4862b82fe5b37cdb3986a3b05245469">Interval::intersect()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#afd7362b850709bed8b61c1aa22399f97">AutoSegment::isFixed()</a>.</p>
</div>
</div>
<a id="a37a14b40295ccb50cd5001891385807b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37a14b40295ccb50cd5001891385807b">&#9670;&nbsp;</a></span>_makeDogleg()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int _makeDogleg </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1GCell.html">GCell</a> *&#160;</td>
<td class="paramname"><em>doglegGCell</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>This method is the workhorse for the various dogleg and topology restauration methods.</b> It is the atomic method that actually make the dogleg on <b>this</b> segment.</p>
<p><b>Returns:</b> <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217af756099f1bbe259dd1bf22067dc40eac">Katabatic::KbUseAboveLayer</a> if the dogleg is using the <em>above</em> layer (<a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a41cbd981337678e042354f340bfae25d">Katabatic::KbUseBelowLayer</a> for the below layer).</p>
<p>Break the current segment in two (a.k.a. making a dogleg).</p><ul>
<li>The segment is broken inside <code>doglegGCell</code>.</li>
<li>Two new segments are createds, one perpandicular and one parallel.</li>
<li>The original segment is always kept attached to the <em>source</em>. (the new parallel fragment is attached to the <em>target</em>).</li>
<li>The perpandicular segment is in the layer <em>above</em> by default. If we are already on the topmost routing layer, the <em>below</em> layer is used.</li>
<li>If the segment pass through the breaking <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>, it's axis is set into the center. If the segment is local, the axis is the middle of the segment.</li>
<li>The Local/Global kind of the original segment is updated. The local/global status is computed by the constructor of the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> for the perpandicular and the new parallel.</li>
<li>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 <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a7b3e09b8ab4cf676fd308535d7fba892">Katabatic::SegWeakTerminal1</a>.</li>
<li>The perpandicular is obviously a canonical. If the broken segment is canonical, the original <b>is</b> 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).</li>
<li>The three segments are added to the session dogleg stack.</li>
</ul>
<p><span class="red">After this method call the net topology is guarantee to be valid.</span></p>
<div class="image">
<img src="_makeDogleg-1.png" alt="_makeDogleg-1.png"/>
<div class="caption">
Example Case 1</div></div>
<div class="image">
<img src="_makeDogleg-2.png" alt="_makeDogleg-2.png"/>
<div class="caption">
Example Case 2</div></div>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a5ca22c853ee33a2b26367eaf29457766">AutoSegment::makeDogleg()</a>.</p>
</div>
</div>
<a id="af8ca7b17e952f4b599aeeb2f4e5be395"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8ca7b17e952f4b599aeeb2f4e5be395">&#9670;&nbsp;</a></span>moveULeft()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool moveULeft </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>This function do not manage an aligned set. It applies on <code>this</code> segment only.</b></p>
<p>Displace an Horizontal or Vertical segment to the <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> below (a.k.a. lower or inferior). Rules for displacement:</p><ul>
<li>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).</li>
<li>And, of course, the segment must not already by on the bottomost <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>...</li>
</ul>
<p>The displacement take care of:</p><ul>
<li>Managing the status of the various perpandiculars. The stretched one are made global if needed. The shrinked one made local, if needed.</li>
<li>The supporting <a class="el" href="classKatabatic_1_1AutoContact.html" title="Abstract base class for AutoContact. ">AutoContact</a> (source &amp; target) are changed of <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a>.</li>
<li>If the segment is global, the go-through GCells are updateds.</li>
</ul>
<p><b>Returns:</b> <b>true</b> if the move has succeeded.</p>
<div class="image">
<img src="moveULeft-1.png" alt="moveULeft-1.png"/>
<div class="caption">
moveULeft() for an Horizontal</div></div>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoHorizontal</a>.</p>
</div>
</div>
<a id="ad7fd54ca229fcf5ccd99f87b019b9cbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7fd54ca229fcf5ccd99f87b019b9cbc">&#9670;&nbsp;</a></span>moveURight()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool moveURight </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>This function do not manage an aligned set. It applies on <code>this</code> segment only.</b></p>
<p>Displace an Horizontal or Vertical segment to the <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> above (a.k.a. upper or superior). Rules for displacement:</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classKatabatic_1_1AutoSegment.html#af8ca7b17e952f4b599aeeb2f4e5be395">AutoSegment::moveULeft()</a> for a complete description. </dd></dl>
<p>Implemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#aa469e37853e31f8b1bc817518c896d62">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#aa469e37853e31f8b1bc817518c896d62">AutoHorizontal</a>.</p>
</div>
</div>
<a id="a1fbc0adb4c0b14632edc7c55f028cd4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fbc0adb4c0b14632edc7c55f028cd4b">&#9670;&nbsp;</a></span>slacken()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void slacken </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If the the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> is attached trough source and/or target to a terminal with too tight constraints, create a dogleg on overconstrained extremities.</p>
<p>If <code>flags</code> contains <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">Katabatic::KbPropagate</a>, 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).</p>
<p>If <code>flags</code> contains <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a1d6ccf82d04758a0922270d4f469066a">Katabatic::KbHalfSlacken</a>, the number of tracks under which the constraints are considered too tight is 3. Otherwise it is 10, that is a whole <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> 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).</p>
<p>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.</p>
<div class="image">
<img src="_slacken-1.png" alt="_slacken-1.png"/>
<div class="caption">
slacken() for an Horizontal</div></div>
<p> The <code><a class="el" href="classKatabatic_1_1AutoSegment.html#a1fbc0adb4c0b14632edc7c55f028cd4b">slacken()</a></code> method reject the slackening of short locals as shown in figure <b>2.a</b>. One way or another, we must connect to the terminal through <b>this</b> 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 <a class="el" href="classKatabatic_1_1GCell.html" title="Routing Global Cell. ">GCell</a> and make subsequent routing more difficult.</p>
<p>The figures <b>2.b</b> and <b>2.c</b> shows the special case of slackening an horizontal from an <em>horizontal</em> terminal. In the original configuration, the slack on segment <code>id:10</code> 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 <code>id:10</code> we impose that the <em>source</em> contact is <b>fixed</b> on the terminal itself. That is, the segment <code>id:10</code> will be reduced to a zero-length and we made an immediate turn (see <b>2.c</b> ).</p>
<div class="image">
<img src="_slacken-2.png" alt="_slacken-2.png"/>
<div class="caption">
slacken() for an Horizontal (special cases)</div></div>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, and <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">Katabatic::KbPropagate</a>.</p>
</div>
</div>
<a id="acecc9a1d55a271a4b1587d7872cfe133"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acecc9a1d55a271a4b1587d7872cfe133">&#9670;&nbsp;</a></span>reduceDoglegLayer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool reduceDoglegLayer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform the actual layer change on a reduced segment. This method is to be called juste before destroying the <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> database.</p>
<p><b>Returns:</b> <b>true</b> if a change occurs. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1Session.html#a3efd0f0d87be640dc566c1afd821e5e6">Session::getRoutingLayer()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a461c31a8d12458939b78ccecb3b8c299">AutoSegment::isReduced()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab786dbdb67ea727369b1a988497c01d1">AutoSegment::isSpinBottom()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a3776b8258ab6544c9551d0714fcc75d2">AutoSegment::isSpinTop()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#aad4271c35e0162c8a4d034dca07f5a4b">AutoContact::setLayer()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#aad4271c35e0162c8a4d034dca07f5a4b">AutoSegment::setLayer()</a>.</p>
</div>
</div>
<a id="a27a6a2c747ff93d209878a32d97e9157"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27a6a2c747ff93d209878a32d97e9157">&#9670;&nbsp;</a></span>reduce()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool reduce </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the segment into reduced state.</p>
<p><b>Returns:</b> <b>true</b> if the operation did succeed. The layer will not be actually changed until the <a class="el" href="namespaceKatabatic.html" title="The namespace dedicated to Katabatic. ">Katabatic</a> database is saved/destroyed.</p>
<p>A segment can be reduced if:</p><ul>
<li>Source &amp; target are <a class="el" href="classKatabatic_1_1AutoContactTurn.html" title="AutoContact Turn (one H, one V) ">AutoContactTurn</a>.</li>
<li>It is either <em>spin top</em> or <em>spin bottom</em>, that is connecting perpandiculars both in the same layer.</li>
<li>Has a length less or equal one pitch in the perpandicular direction.</li>
<li>Neither of the perpandicular are also reduceds.</li>
</ul>
<div class="image">
<img src="reduce-1.png" alt="reduce-1.png"/>
<div class="caption">
Reduce Example</div></div>
<p> If segment <code>id:12</code> is reduced, it prevents <code>id:10</code> &amp; <code>id:14</code> to be also reduced, by increasing the <code>_reduced</code> counter. In this example <code>id:14</code> is <em>spin top</em> and <code>id:12</code> is <em>spin bottom</em>.</p>
<p>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 <em>same layer</em> dogleg. Besides, the turn contact between them will be changed into a pure metal one, generating a disconnexion...</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classKatabatic_1_1AutoSegment.html#ace393c3c082a5e62a348168354660e39">AutoSegment::raise()</a> </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#af1a231b2324a486d4ef61b247886cdeb">AutoSegment::canReduce()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a994371005874f946cc0ac78005d38423">AutoContact::getPerpandicular()</a>, and <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4af4dd1db46475e4a16555fb6978a85580">Katabatic::SegIsReduced</a>.</p>
</div>
</div>
<a id="ace393c3c082a5e62a348168354660e39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace393c3c082a5e62a348168354660e39">&#9670;&nbsp;</a></span>raise()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool raise </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a segment out of <em>reduced</em> state.</p>
<p><b>Returns:</b> <b>true</b> if a state change did really take place.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classKatabatic_1_1AutoSegment.html#a27a6a2c747ff93d209878a32d97e9157">AutoSegment::reduce()</a> </dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a994371005874f946cc0ac78005d38423">AutoContact::getPerpandicular()</a>, and <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4af4dd1db46475e4a16555fb6978a85580">Katabatic::SegIsReduced</a>.</p>
</div>
</div>
<a id="a8b0d5044dce091d06b633848a6f8a66d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b0d5044dce091d06b633848a6f8a66d">&#9670;&nbsp;</a></span>canonize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> * canonize </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>KbNoFlags</code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Find and set the canonical <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> 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.</p>
<p>The canonical <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> is the one with the lowest <code>Id</code>. This a way of ensuring reproductible results. Note that the canonical one may not be the <em>geometrically</em> lowest one.</p>
<dl class="section user"><dt>Remark: Canonical aware method. </dt><dd></dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#af6d3008d345195a99e0341f0379c33b7">AutoSegment::isCanonical()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a19ba379112d6b29faa45c5eefbf38500">AutoSegment::isGlobal()</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a296b371b45ade66cd1d44bc8898e64d9">Katabatic::SegCanonical</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a637e0426170a532feac45548e009325d">Katabatic::SegNotAligned</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a16ef6f2b6b9e44559e41f04c652919ad">Katabatic::SegWeakGlobal</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aeb14f94914af58657a0dc2f50ec98df5">AutoSegment::setFlags()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a1a6fac115cb81db48e3ac9ffa0721bb5">AutoSegment::unsetFlags()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>.</p>
</div>
</div>
<a id="a23599eee5a07af377fbc8d47cda7e7b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23599eee5a07af377fbc8d47cda7e7b0">&#9670;&nbsp;</a></span>invalidate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void invalidate </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code><a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">KbPropagate</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Invalidate this <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>, or if the <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">Katabatic::KbPropagate</a> flags is set, the whole set of aligned segments.</p>
<dl class="section user"><dt>Remark: If Katabatic is in the destruction stage, this function does nothing.</dt><dd></dd></dl>
<dl class="section user"><dt>Remark: Canonical aware method. </dt><dd></dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a6a98d2e5839b880893703ad45db4e4c4">AutoSegment::_invalidate()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ac540608485240ff88970131ebc02c1ab">AutoSegment::isInvalidated()</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a3f95c1f06fe0b58b44ccbc57d99f2a5d">Katabatic::KbPropagate</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a8c8fd7a68cd428639057fbc6dbb8c46a">Katabatic::KbSource</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a041350b28d805a40d048fa0be9994a26">Katabatic::KbTarget</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#aeb14f94914af58657a0dc2f50ec98df5">AutoSegment::setFlags()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a36c0eecad40d3559b5378caefec6a7e0">AutoHorizontal::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a36c0eecad40d3559b5378caefec6a7e0">AutoVertical::_makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a3715b38135ca24745f610bebd3407c10">AutoSegment::_postCreate()</a>, <a class="el" href="classKatabatic_1_1AutoContactVTee.html#af5bf1f5e71204ef84346e4e036175431">AutoContactVTee::updateTopology()</a>, <a class="el" href="classKatabatic_1_1AutoContactTurn.html#af5bf1f5e71204ef84346e4e036175431">AutoContactTurn::updateTopology()</a>, and <a class="el" href="classKatabatic_1_1AutoContactTerminal.html#af5bf1f5e71204ef84346e4e036175431">AutoContactTerminal::updateTopology()</a>.</p>
</div>
</div>
<a id="aa902247a1e967e52cc3ab087cd52b366"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa902247a1e967e52cc3ab087cd52b366">&#9670;&nbsp;</a></span>computeOptimal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> computeOptimal </td>
<td>(</td>
<td class="paramtype">set&lt; <a class="el" href="classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&gt; &amp;&#160;</td>
<td class="paramname"><em>processeds</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">processeds</td><td>A set of already processeds <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>. Used by the caller function to avoid doing again the computation on an <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> from an already proccessed aligned set. Compute the optimal axis interval for the aligned set.</td></tr>
</table>
</dd>
</dl>
<dl class="section user"><dt>Remark: Canonical aware method. </dt><dd></dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#afa494ddc031f4dd1c24999ff83fb878c">AutoSegment::getAutoTarget()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5b5aaa5b318369feee6003dbad039c2">AutoSegment::getAxis()</a>, <a class="el" href="classKatabatic_1_1GCell.html#ab5d8bf98ab5af6fcfebea1b9f446d5d7">GCell::getBoundingBox()</a>, <a class="el" href="classKatabatic_1_1GCell.html#ac5b1a776c3eafa7f68d31292615011fa">GCell::getColumn()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#ae9d087a6cd3d459d7f4bea6bc8b08b49">AutoContact::getConstraintBox()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a7c2fed22b081f8d3b7a69abb457153ea">AutoSegment::getConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a5b81aad92361558c3b9e60fd501b89ba">AutoSegment::getExtremity()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5fb22520af4b94f2ae984304fa64c26">AutoSegment::getOrigin()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aadc6427db83ebdb690e74980d9c8d7d8">AutoSegment::getPerpandiculars()</a>, <a class="el" href="classKatabatic_1_1GCell.html#ad26f8bcf642c2620ac525cc04c8376c0">GCell::getRow()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#a77b9db757080544fcede3e670cee8c5c">Box::getXMax()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#ad5122ef7dda8a58c1dacddb57cd4ccfb">Box::getXMin()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#a06e1a86a06dacfca6d3403c16affc7e8">Box::getYMax()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Box.html#a542c383466845aeca0e32f51b77c7439">Box::getYMin()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">AutoSegment::isHorizontal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#abd54544ef1710ee4b67cfb021d73446c">AutoSegment::isVertical()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a90173ab4f35b98c6544f9482ccd93b5e">AutoSegment::setOptimalMax()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#af92b3d000552b630695879dd5d4736a1">AutoSegment::setOptimalMin()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4923a9a443871282ad7d331be2a2a5d4">DbU::toLambda()</a>.</p>
</div>
</div>
<a id="a3881efebb7510d9b22e5f89bcd418954"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3881efebb7510d9b22e5f89bcd418954">&#9670;&nbsp;</a></span>setAxis()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void setAxis </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a>&#160;</td>
<td class="paramname"><em>axis</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>KbNoFlags</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">axis</td><td>The new position of the axis. </td></tr>
<tr><td class="paramname">flags</td><td>See KbRealignate.</td></tr>
</table>
</dd>
</dl>
<p>Set the axis of an aligned set. This method does nothing if not called on the canonical <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> of the set. If the new value of the axis is equal to the previous one, nothing is done (non-canonical <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> are not looked after). To force an actual axis set, with invalidation of the whole <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> set, set the KbRealignate flag.</p>
<dl class="section user"><dt>Remark: Canonical aware method. </dt><dd></dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#aaca749f49cd03ca06449d5ea2104033a">AutoSegment::getAligneds()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5b5aaa5b318369feee6003dbad039c2">AutoSegment::getAxis()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#af6d3008d345195a99e0341f0379c33b7">AutoSegment::isCanonical()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">AutoSegment::isHorizontal()</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a">Katabatic::KbRealignate</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4923a9a443871282ad7d331be2a2a5d4">DbU::toLambda()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoHorizontal::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a1fa2421b74bf0eb934b7002fd3da2321">AutoVertical::moveULeft()</a>, <a class="el" href="classKatabatic_1_1AutoHorizontal.html#aa469e37853e31f8b1bc817518c896d62">AutoHorizontal::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#aa469e37853e31f8b1bc817518c896d62">AutoVertical::moveURight()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8ab41a962e18810808f4f065863b5a73">AutoSegment::toConstraintAxis()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a750983d7154c94b54537127a3a18e14b">AutoSegment::toOptimalAxis()</a>.</p>
</div>
</div>
<a id="a8ab41a962e18810808f4f065863b5a73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ab41a962e18810808f4f065863b5a73">&#9670;&nbsp;</a></span>toConstraintAxis()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool toConstraintAxis </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code><a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a">KbRealignate</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> axis is outside the constraint interval, put it on nearest bound. This method is active only on canonical AutoSegments.</p>
<dl class="section return"><dt>Returns</dt><dd><b>true</b> if an actual axis change is made.</dd></dl>
<dl class="section user"><dt>Remark: Canonical aware method. </dt><dd></dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a2ca3fac97e325ec8a55d3e03a2ce11a6">AutoSegment::getAutoSource()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5b5aaa5b318369feee6003dbad039c2">AutoSegment::getAxis()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a7c2fed22b081f8d3b7a69abb457153ea">AutoSegment::getConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoContact.html#a819cf639562a031a1e2e061fe1293d66">AutoContact::getGCell()</a>, <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html#abe66d75c0854ca0a76189801f0f7d0e3">Interval::getHalfSize()</a>, <a class="el" href="classKatabatic_1_1GCell.html#a10f3dd5001b2015e34a9aacdacf6eae6">GCell::getSide()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#af6d3008d345195a99e0341f0379c33b7">AutoSegment::isCanonical()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a75d91371e5281dd21f60ff39ae70a3e5">AutoSegment::isDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">AutoSegment::isHorizontal()</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a1a9045673c5d3c30b067100f1440ae1b">Katabatic::KbHorizontal</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a284cad95203a27172838b09e396e3590">Katabatic::KbVertical</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a3881efebb7510d9b22e5f89bcd418954">AutoSegment::setAxis()</a>.</p>
</div>
</div>
<a id="a750983d7154c94b54537127a3a18e14b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a750983d7154c94b54537127a3a18e14b">&#9670;&nbsp;</a></span>toOptimalAxis()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool toOptimalAxis </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code><a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a">KbRealignate</a></code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> axis is outside the optimal interval, put it on nearest bound. This method is active only on canonical AutoSegments.</p>
<dl class="section return"><dt>Returns</dt><dd><b>true</b> if an actual axis change is made.</dd></dl>
<dl class="section user"><dt>Remark: Canonical aware method. </dt><dd></dd></dl>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#ab5b5aaa5b318369feee6003dbad039c2">AutoSegment::getAxis()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a7c2fed22b081f8d3b7a69abb457153ea">AutoSegment::getConstraints()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a1bada13dd4460386d4bed22c1a4b3921">AutoSegment::getOptimalMax()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a9405b4f5345d116f71c40ba2c16097d0">AutoSegment::getOptimalMin()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#af6d3008d345195a99e0341f0379c33b7">AutoSegment::isCanonical()</a>, <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217a45a219697151531a23e997b11118e08a">Katabatic::KbRealignate</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a3881efebb7510d9b22e5f89bcd418954">AutoSegment::setAxis()</a>.</p>
</div>
</div>
<a id="a4430f9704a59e1d4f7c37d7166649510"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4430f9704a59e1d4f7c37d7166649510">&#9670;&nbsp;</a></span>getOnSourceContact()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceKatabatic.html#a2221b0ddbc24f331809fc86f98e38041">AutoSegments</a> getOnSourceContact </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>direction</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The Collection of <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> in <code>direction</code> that are on this segment source contact. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a497ea2ceeddb939dbc84eae0e7862335">AutoSegment::getSource()</a>, and <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Collection.html#aa32ea7249d57ee05e3c71dcde8106832">Collection&lt; Type &gt;::getSubSet()</a>.</p>
</div>
</div>
<a id="aadbb84c0f1383f6a2addc2661e388583"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadbb84c0f1383f6a2addc2661e388583">&#9670;&nbsp;</a></span>getOnTargetContact()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceKatabatic.html#a2221b0ddbc24f331809fc86f98e38041">AutoSegments</a> getOnTargetContact </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>direction</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The Collection of <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> in <code>direction</code> that are on this segment target contact. </p>
<p class="reference">References <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Collection.html#aa32ea7249d57ee05e3c71dcde8106832">Collection&lt; Type &gt;::getSubSet()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a0862c201bd7d8e5427e44ca2427c2fe6">AutoSegment::getTarget()</a>.</p>
</div>
</div>
<a id="aaca749f49cd03ca06449d5ea2104033a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaca749f49cd03ca06449d5ea2104033a">&#9670;&nbsp;</a></span>getAligneds()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceKatabatic.html#a2221b0ddbc24f331809fc86f98e38041">AutoSegments</a> getAligneds </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code>KbNoFlags</code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The Collection of AutoSegments that are aligned on this one through <a class="el" href="classKatabatic_1_1AutoContactHTee.html" title="AutoContact H-Tee (two H, one V) ">AutoContactHTee</a> or <a class="el" href="classKatabatic_1_1AutoContactVTee.html" title="AutoContact V-Tee (one H, two V) ">AutoContactVTee</a>. If the <code>flags</code> contains <a class="el" href="namespaceKatabatic.html#a2af2ad6b6441614038caf59d04b3b217ae2d033c8f78b61468c827de8db5fe839">Katabatic::KbWithPerpands</a>, the Collection will also includes the AutoSegments directly perpandiculars to the whole aligned set. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a43c865bcfcfd6132352a9ac8a84c25cd">AutoSegment::canDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6482341a342eb6e6b3b43f13fd4436f6">AutoSegment::canMoveUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8b0d5044dce091d06b633848a6f8a66d">AutoSegment::canonize()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a24de580d1a371b8d27640cbc3431990b">AutoSegment::canPivotDown()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a6cca3afced729492cae6649a92dc7e88">AutoSegment::canPivotUp()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#adec088de3c4c47a28ee9d58eb6d9cf85">AutoSegment::canSlacken()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a8acbe1037827da2c2fef71a18c5886c7">AutoSegment::getCanonical()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">AutoSegment::invalidate()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a4605c9284168f0a62fa48aa2d3ae5ee9">AutoSegment::isStrongTerminal()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a5ca22c853ee33a2b26367eaf29457766">AutoSegment::makeDogleg()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a3881efebb7510d9b22e5f89bcd418954">AutoSegment::setAxis()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a1fbc0adb4c0b14632edc7c55f028cd4b">AutoSegment::slacken()</a>.</p>
</div>
</div>
<a id="aadc6427db83ebdb690e74980d9c8d7d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadc6427db83ebdb690e74980d9c8d7d8">&#9670;&nbsp;</a></span>getPerpandiculars()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceKatabatic.html#a2221b0ddbc24f331809fc86f98e38041">AutoSegments</a> getPerpandiculars </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The Collection of all AutoSegments directly perpandiculars to the whole aligned set. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#aa902247a1e967e52cc3ab087cd52b366">AutoSegment::computeOptimal()</a>.</p>
</div>
</div>
<a id="a8348937b1db79480305b178482d3ed61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8348937b1db79480305b178482d3ed61">&#9670;&nbsp;</a></span>_preCreate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void _preCreate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td>
<td class="paramname"><em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classKatabatic_1_1AutoContact.html">AutoContact</a> *&#160;</td>
<td class="paramname"><em>target</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform sanity checks before allowing the actual creation of an <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a>. If an error occurs throw an exception.</p>
<p>Check for:</p><ul>
<li><code>source</code> and <code>target</code> must not be <code>NULL</code>.</li>
<li><code>source</code> and <code>target</code> must be different. </li>
</ul>
</div>
</div>
<a id="a3715b38135ca24745f610bebd3407c10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3715b38135ca24745f610bebd3407c10">&#9670;&nbsp;</a></span>_postCreate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void _postCreate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform operations that, given the data structure cannot be done in the constructor. Also allows for sharing code with the derived classes. Currently:</p><ul>
<li>Invalidate the whole net (topology change).</li>
<li>Insert the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> in the lookup/Session machanism.</li>
<li>Call <a class="el" href="classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">AutoSegment::invalidate()</a>.</li>
<li>Call <a class="el" href="classKatabatic_1_1AutoSegment.html#a102e0f4bbb0386e41be214d15a9e4549">AutoSegment::updateOrient()</a>.</li>
<li>Call <a class="el" href="classKatabatic_1_1AutoSegment.html#a6d95f4de39c13611786c95ddc7b8942e">AutoSegment::updatePositions()</a>. </li>
</ul>
<p>Reimplemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a3715b38135ca24745f610bebd3407c10">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a3715b38135ca24745f610bebd3407c10">AutoHorizontal</a>.</p>
<p class="reference">References <a class="el" href="classKatabatic_1_1AutoSegment.html#a692492374623a5c6096b2c4a51190359">AutoSegment::getNet()</a>, <a class="el" href="classKatabatic_1_1Session.html#ae310a7c2c301b7e5f90fba5d34cc5be9">Session::invalidate()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">AutoSegment::invalidate()</a>, <a class="el" href="classKatabatic_1_1Session.html#a8fad7191a9fc248f84e71cf1c9d0c6be">Session::link()</a>, <a class="el" href="classKatabatic_1_1Observable.html#a52e577fb0c4f2e3650928334fb621c2f">Observable::notify()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#a102e0f4bbb0386e41be214d15a9e4549">AutoSegment::updateOrient()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#a6d95f4de39c13611786c95ddc7b8942e">AutoSegment::updatePositions()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a3715b38135ca24745f610bebd3407c10">AutoHorizontal::_postCreate()</a>, <a class="el" href="classKatabatic_1_1AutoVertical.html#a3715b38135ca24745f610bebd3407c10">AutoVertical::_postCreate()</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#ab0cc9e57beeceec519cd4bd3e415569e">AutoSegment::create()</a>.</p>
</div>
</div>
<a id="a7c13d9795eafd477994961f8a0d962d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c13d9795eafd477994961f8a0d962d0">&#9670;&nbsp;</a></span>_preDestroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void _preDestroy </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform operations that must be done before the actual destructor is called. Merely whidrawn the <a class="el" href="classKatabatic_1_1AutoSegment.html" title="Abstract base class for AutoSegment. ">AutoSegment</a> from the lookup/Session mechanism. </p>
<p>Reimplemented in <a class="el" href="classKatabatic_1_1AutoVertical.html#a7c13d9795eafd477994961f8a0d962d0">AutoVertical</a>, and <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a7c13d9795eafd477994961f8a0d962d0">AutoHorizontal</a>.</p>
<p class="reference">References <a class="el" href="classKatabatic_1_1Observable.html#a52e577fb0c4f2e3650928334fb621c2f">Observable::notify()</a>, and <a class="el" href="classKatabatic_1_1Session.html#a10c42636ea5786d898d530905ccb30d6">Session::unlink()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoHorizontal.html#a7c13d9795eafd477994961f8a0d962d0">AutoHorizontal::_preDestroy()</a>, and <a class="el" href="classKatabatic_1_1AutoVertical.html#a7c13d9795eafd477994961f8a0d962d0">AutoVertical::_preDestroy()</a>.</p>
</div>
</div>
<a id="a6a98d2e5839b880893703ad45db4e4c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a98d2e5839b880893703ad45db4e4c4">&#9670;&nbsp;</a></span>_invalidate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> _invalidate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Invalidate this segment. The segment is scheduled into the <a class="el" href="classKatabatic_1_1Session.html" title="Modification Session for Katabatic. ">Session</a> revalidation mechanism. </p>
<p class="reference">References <a class="el" href="classKatabatic_1_1Session.html#ae310a7c2c301b7e5f90fba5d34cc5be9">Session::invalidate()</a>, <a class="el" href="classKatabatic_1_1AutoSegment.html#ac540608485240ff88970131ebc02c1ab">AutoSegment::isInvalidated()</a>, <a class="el" href="classKatabatic_1_1Observable.html#a52e577fb0c4f2e3650928334fb621c2f">Observable::notify()</a>, <a class="el" href="namespaceKatabatic.html#a94585537ee1724ea9315578ec54380f4a3c1d76fecee6a8bd5e12ce3fec013827">Katabatic::SegInvalidated</a>, and <a class="el" href="classKatabatic_1_1AutoSegment.html#aeb14f94914af58657a0dc2f50ec98df5">AutoSegment::setFlags()</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">AutoSegment::invalidate()</a>.</p>
</div>
</div>
<a id="ae5b4a4f67d480cd5c9ce104e73e73da9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5b4a4f67d480cd5c9ce104e73e73da9">&#9670;&nbsp;</a></span>_getFlags()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int _getFlags </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets <code>flags</code> given as arguments. </p>
<p class="reference">Referenced by <a class="el" href="classKatabatic_1_1AutoSegment.html#abc72aaeefa7450eaf67aee3212ec974d">AutoSegment::computeTerminal()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="AutoSegment_8h_source.html">AutoSegment.h</a></li>
<li>AutoSegment.cpp</li>
<li>AutoSegment.dox</li>
</ul>
</div><!-- contents -->
<br>
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>
<table class="footer2">
<tr>
<td class="LFooter">Katabatic - Routing Toolbox</td>
<td class="RFooter"><small>Copyright &#169; 2008-2016 UPMC. All rights reserved</small></td>
</tr>
</table>
</body>
</html>