coriolis/kite/doc/html/classKite_1_1TrackSegment.html

1624 lines
100 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>Kite - Detailed Router</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">Kite - Detailed Router</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.5 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceKite.html">Kite</a></li><li class="navelem"><a class="el" href="classKite_1_1TrackSegment.html">TrackSegment</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classKite_1_1TrackSegment-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">TrackSegment Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Derived <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html">Katabatic::AutoSegment</a> for the router.
<a href="classKite_1_1TrackSegment.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for TrackSegment:</div>
<div class="dyncontent">
<div class="center"><img src="classKite_1_1TrackSegment__inherit__graph.png" border="0" usemap="#TrackSegment_inherit__map" alt="Inheritance graph"/></div>
<map name="TrackSegment_inherit__map" id="TrackSegment_inherit__map">
<area shape="rect" id="node2" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. " alt="" coords="7,5,109,32"/></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:af5e7d3badddf2ec07159f1d83426d4c1"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#af5e7d3badddf2ec07159f1d83426d4c1">isFixed</a> () const </td></tr>
<tr class="separator:af5e7d3badddf2ec07159f1d83426d4c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac46ac3b48d712750c7888b48964ac189"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#ac46ac3b48d712750c7888b48964ac189">isHorizontal</a> () const </td></tr>
<tr class="separator:ac46ac3b48d712750c7888b48964ac189"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bb30e82aad1f321af4a065338775f36"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a2bb30e82aad1f321af4a065338775f36">isVertical</a> () const </td></tr>
<tr class="separator:a2bb30e82aad1f321af4a065338775f36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69fb7e260ed2bc6fa82bfe12c2aeec5a"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a69fb7e260ed2bc6fa82bfe12c2aeec5a">isLocal</a> () const </td></tr>
<tr class="separator:a69fb7e260ed2bc6fa82bfe12c2aeec5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a017b1ead8e5988dd0e491cae93ac510c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a017b1ead8e5988dd0e491cae93ac510c">isGlobal</a> () const </td></tr>
<tr class="separator:a017b1ead8e5988dd0e491cae93ac510c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5035e6d84cf3ec7b519a5acb109efaa"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#ab5035e6d84cf3ec7b519a5acb109efaa">isBipoint</a> () const </td></tr>
<tr class="separator:ab5035e6d84cf3ec7b519a5acb109efaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d6f4521b27f32080d7477cf8ee8a274"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a8d6f4521b27f32080d7477cf8ee8a274">isTerminal</a> () const </td></tr>
<tr class="separator:a8d6f4521b27f32080d7477cf8ee8a274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4721fcbe9c93ed5392afd9a756b989a8"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a4721fcbe9c93ed5392afd9a756b989a8">isStrap</a> () const </td></tr>
<tr class="separator:a4721fcbe9c93ed5392afd9a756b989a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1f9e0bca70dea59558459a003a62d88"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#ab1f9e0bca70dea59558459a003a62d88">isSlackened</a> () const </td></tr>
<tr class="separator:ab1f9e0bca70dea59558459a003a62d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a172b2394f9c2cbaaf5bc4b19e0e76e65"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a172b2394f9c2cbaaf5bc4b19e0e76e65">isDogleg</a> () const </td></tr>
<tr class="separator:a172b2394f9c2cbaaf5bc4b19e0e76e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0bb6f1592688e942ff67e0ac318a4fd"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#aa0bb6f1592688e942ff67e0ac318a4fd">canDogleg</a> ()</td></tr>
<tr class="separator:aa0bb6f1592688e942ff67e0ac318a4fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accb4c6a7ee2678a0cff4dbc4a7860fe1"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#accb4c6a7ee2678a0cff4dbc4a7860fe1">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:accb4c6a7ee2678a0cff4dbc4a7860fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f040cf33009e4886d401115c3bea838"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a4f040cf33009e4886d401115c3bea838">canDogleg</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1GCell.html">Katabatic::GCell</a> *, unsigned int flags=0)</td></tr>
<tr class="separator:a4f040cf33009e4886d401115c3bea838"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bc51798c4b09a1537350822025adcea"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a3bc51798c4b09a1537350822025adcea">getMaxUnderDensity</a> (unsigned int flags) const </td></tr>
<tr class="separator:a3bc51798c4b09a1537350822025adcea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae68c47fdf838be02cbf6660cd25a0806"><td class="memItemLeft" align="right" valign="top">virtual unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#ae68c47fdf838be02cbf6660cd25a0806">getId</a> () const </td></tr>
<tr class="separator:ae68c47fdf838be02cbf6660cd25a0806"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09d03fbca9ab891c2f25bdae7f89a899"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a09d03fbca9ab891c2f25bdae7f89a899">getDirection</a> () const </td></tr>
<tr class="separator:a09d03fbca9ab891c2f25bdae7f89a899"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf3e1a980233163de0ca34a5c3575998"><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_1Net.html">Net</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#adf3e1a980233163de0ca34a5c3575998">getNet</a> () const </td></tr>
<tr class="separator:adf3e1a980233163de0ca34a5c3575998"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a304ee4e02745811e04ac6fb688bf834f"><td class="memItemLeft" align="right" valign="top">virtual 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="classKite_1_1TrackSegment.html#a304ee4e02745811e04ac6fb688bf834f">getLayer</a> () const </td></tr>
<tr class="separator:a304ee4e02745811e04ac6fb688bf834f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f20f94d2d8aaa38c2b9ead5275ead27"><td class="memItemLeft" align="right" valign="top">virtual unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a9f20f94d2d8aaa38c2b9ead5275ead27">getFreedomDegree</a> () const </td></tr>
<tr class="separator:a9f20f94d2d8aaa38c2b9ead5275ead27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace669b962e7df815b92fe70e1f4ad755"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#ace669b962e7df815b92fe70e1f4ad755">getDoglegLevel</a> () const </td></tr>
<tr class="separator:ace669b962e7df815b92fe70e1f4ad755"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5af0ac91c558873fea9703e7ab6f48df"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a5af0ac91c558873fea9703e7ab6f48df">getNext</a> () const </td></tr>
<tr class="separator:a5af0ac91c558873fea9703e7ab6f48df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbb9c965449bf4502d71149563cec0a2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#acbb9c965449bf4502d71149563cec0a2">getPrevious</a> () const </td></tr>
<tr class="separator:acbb9c965449bf4502d71149563cec0a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1a03a36d5908ce44c3d0391ff9c7103"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#ad1a03a36d5908ce44c3d0391ff9c7103">getParent</a> () const </td></tr>
<tr class="separator:ad1a03a36d5908ce44c3d0391ff9c7103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af85576c58c70007850ad56e238e8d266"><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="classKite_1_1TrackSegment.html#af85576c58c70007850ad56e238e8d266">getAxis</a> () const </td></tr>
<tr class="separator:af85576c58c70007850ad56e238e8d266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38d30a241d00a14943a06401d0d12923"><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="classKite_1_1TrackSegment.html#a38d30a241d00a14943a06401d0d12923">getFreeInterval</a> () const </td></tr>
<tr class="separator:a38d30a241d00a14943a06401d0d12923"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a972921aeb7f907194710ea35ac7600be"><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="classKite_1_1TrackSegment.html#a972921aeb7f907194710ea35ac7600be">getSourceConstraints</a> () const </td></tr>
<tr class="separator:a972921aeb7f907194710ea35ac7600be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00d398bdc1837c6c1e4847895c557829"><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="classKite_1_1TrackSegment.html#a00d398bdc1837c6c1e4847895c557829">getTargetConstraints</a> () const </td></tr>
<tr class="separator:a00d398bdc1837c6c1e4847895c557829"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76a45d5701f875711a03692e9bf6d5ce"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKite_1_1DataNegociate.html">DataNegociate</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a76a45d5701f875711a03692e9bf6d5ce">getDataNegociate</a> (unsigned int flags=<a class="el" href="namespaceKite.html#acca8fffa3182dea5f94208f454f14b47a68e917ff37d4b5cef906303181836404">KtDataSelf</a>) const </td></tr>
<tr class="separator:a76a45d5701f875711a03692e9bf6d5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2d46d64cbd02bdbba53d5483d95e26d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#af2d46d64cbd02bdbba53d5483d95e26d">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;)</td></tr>
<tr class="separator:af2d46d64cbd02bdbba53d5483d95e26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79b25d8199fe90446e99cf08d2d85674"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a79b25d8199fe90446e99cf08d2d85674">getGCells</a> (Katabatic::GCellVector &amp;) const </td></tr>
<tr class="separator:a79b25d8199fe90446e99cf08d2d85674"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e79fbfe77f173d46b1959c41087930a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a7e79fbfe77f173d46b1959c41087930a">getSourceDogleg</a> ()</td></tr>
<tr class="separator:a7e79fbfe77f173d46b1959c41087930a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb4e39bd925d093e6c45599433bb421c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#aeb4e39bd925d093e6c45599433bb421c">getTargetDogleg</a> ()</td></tr>
<tr class="separator:aeb4e39bd925d093e6c45599433bb421c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0ba92ebf19f596537dc051c090d5736"><td class="memItemLeft" align="right" valign="top">virtual TrackElements&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#aa0ba92ebf19f596537dc051c090d5736">getPerpandiculars</a> ()</td></tr>
<tr class="separator:aa0ba92ebf19f596537dc051c090d5736"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd3d8093f871d3d1a7f24b053648026c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#abd3d8093f871d3d1a7f24b053648026c">setTrack</a> (<a class="el" href="classKite_1_1Track.html">Track</a> *)</td></tr>
<tr class="separator:abd3d8093f871d3d1a7f24b053648026c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5332d647c0482aa90ad7cc9b2a50f3a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#af5332d647c0482aa90ad7cc9b2a50f3a">updateFreedomDegree</a> ()</td></tr>
<tr class="separator:af5332d647c0482aa90ad7cc9b2a50f3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b90319cb042b283aa5d1fdb1992f11f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a2b90319cb042b283aa5d1fdb1992f11f">setDoglegLevel</a> (unsigned int)</td></tr>
<tr class="separator:a2b90319cb042b283aa5d1fdb1992f11f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc245ce084989d1c34816d0e61b9d510"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#acc245ce084989d1c34816d0e61b9d510">swapTrack</a> (<a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *)</td></tr>
<tr class="separator:acc245ce084989d1c34816d0e61b9d510"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ffe603ec7d46f21f5e56ccbe84c03fb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a0ffe603ec7d46f21f5e56ccbe84c03fb">reschedule</a> (unsigned int level)</td></tr>
<tr class="separator:a0ffe603ec7d46f21f5e56ccbe84c03fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac295bade8aee589f6718dfa79edc2a34"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#ac295bade8aee589f6718dfa79edc2a34">detach</a> ()</td></tr>
<tr class="separator:ac295bade8aee589f6718dfa79edc2a34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a893f1101c650c08c98612515c2b1a89c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a893f1101c650c08c98612515c2b1a89c">invalidate</a> ()</td></tr>
<tr class="separator:a893f1101c650c08c98612515c2b1a89c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bd93abe1416952ace15a98dbeeed124"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a5bd93abe1416952ace15a98dbeeed124">revalidate</a> ()</td></tr>
<tr class="separator:a5bd93abe1416952ace15a98dbeeed124"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a262a915c38127d3722ec561b30d80f91"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a262a915c38127d3722ec561b30d80f91">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)</td></tr>
<tr class="separator:a262a915c38127d3722ec561b30d80f91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a9637875364e84e6862de0102341715"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a7a9637875364e84e6862de0102341715">makeDogleg</a> ()</td></tr>
<tr class="separator:a7a9637875364e84e6862de0102341715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a524f1569b2f2c1a84df2fe47e84e28ed"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a524f1569b2f2c1a84df2fe47e84e28ed">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 &amp;flags)</td></tr>
<tr class="separator:a524f1569b2f2c1a84df2fe47e84e28ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10a45c049d0bd7d01c7eff1c5441c7a2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a10a45c049d0bd7d01c7eff1c5441c7a2">_postDoglegs</a> (<a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&amp;perpandicular, <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&amp;parallel)</td></tr>
<tr class="separator:a10a45c049d0bd7d01c7eff1c5441c7a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1ef325b98fab61d2c7c5bdc1fcd92fc"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#aa1ef325b98fab61d2c7c5bdc1fcd92fc">_check</a> () const </td></tr>
<tr class="separator:aa1ef325b98fab61d2c7c5bdc1fcd92fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classKite_1_1TrackElement"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classKite_1_1TrackElement')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a></td></tr>
<tr class="memitem:a6a7e35dd5a9ca99ca879e424ce42b902 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a6a7e35dd5a9ca99ca879e424ce42b902">isCreated</a> () const </td></tr>
<tr class="separator:a6a7e35dd5a9ca99ca879e424ce42b902 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54f713d06c43bebf4e0dfef06e347531 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a54f713d06c43bebf4e0dfef06e347531">isInvalidated</a> () const </td></tr>
<tr class="separator:a54f713d06c43bebf4e0dfef06e347531 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dbaf905a283e4e45ac71c4771e9e644 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a1dbaf905a283e4e45ac71c4771e9e644">isBlockage</a> () const </td></tr>
<tr class="separator:a1dbaf905a283e4e45ac71c4771e9e644 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0c9fa9daf2467984aea571a0f3940c6 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#ae0c9fa9daf2467984aea571a0f3940c6">isLocked</a> () const </td></tr>
<tr class="separator:ae0c9fa9daf2467984aea571a0f3940c6 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7adbfe4ada0ac46f8cd9cc8f296327d inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#ae7adbfe4ada0ac46f8cd9cc8f296327d">isRouted</a> () const </td></tr>
<tr class="separator:ae7adbfe4ada0ac46f8cd9cc8f296327d inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5f88959753a39f16726a858ee6fb0fd inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#af5f88959753a39f16726a858ee6fb0fd">hasSourceDogleg</a> () const </td></tr>
<tr class="separator:af5f88959753a39f16726a858ee6fb0fd inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71fcabadfc78d0e1aefa934659cb1204 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a71fcabadfc78d0e1aefa934659cb1204">hasTargetDogleg</a> () const </td></tr>
<tr class="separator:a71fcabadfc78d0e1aefa934659cb1204 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5aa65e9913c7368130b187464404ded6 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a5aa65e9913c7368130b187464404ded6">canRipple</a> () const </td></tr>
<tr class="separator:a5aa65e9913c7368130b187464404ded6 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfd8de286baf41eea066220773c7046d inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKite_1_1Track.html">Track</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#abfd8de286baf41eea066220773c7046d">getTrack</a> () const </td></tr>
<tr class="separator:abfd8de286baf41eea066220773c7046d inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a659e8df65f89db5547aa8a8fe3d92f69 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a659e8df65f89db5547aa8a8fe3d92f69">getIndex</a> () const </td></tr>
<tr class="separator:a659e8df65f89db5547aa8a8fe3d92f69 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b9694bf093e3ea16e4a8c8126a8d4db inherit pub_methods_classKite_1_1TrackElement"><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="classKite_1_1TrackElement.html#a3b9694bf093e3ea16e4a8c8126a8d4db">getBoundingBox</a> () const </td></tr>
<tr class="separator:a3b9694bf093e3ea16e4a8c8126a8d4db inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3932d5ce9094ead510e4e33bd4e78e1a inherit pub_methods_classKite_1_1TrackElement"><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="classKite_1_1TrackElement.html#a3932d5ce9094ead510e4e33bd4e78e1a">getSourceU</a> () const </td></tr>
<tr class="separator:a3932d5ce9094ead510e4e33bd4e78e1a inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e5f2a51f56c6bdb74024ac77c08a22a inherit pub_methods_classKite_1_1TrackElement"><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="classKite_1_1TrackElement.html#a8e5f2a51f56c6bdb74024ac77c08a22a">getTargetU</a> () const </td></tr>
<tr class="separator:a8e5f2a51f56c6bdb74024ac77c08a22a inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5370f2cf21823e1fa58d0627ee53c483 inherit pub_methods_classKite_1_1TrackElement"><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="classKite_1_1TrackElement.html#a5370f2cf21823e1fa58d0627ee53c483">getLength</a> () const </td></tr>
<tr class="separator:a5370f2cf21823e1fa58d0627ee53c483 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad78cfb34e7d8e92ba854fbc2dbf9d842 inherit pub_methods_classKite_1_1TrackElement"><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="classKite_1_1TrackElement.html#ad78cfb34e7d8e92ba854fbc2dbf9d842">getCanonicalInterval</a> () const </td></tr>
<tr class="separator:ad78cfb34e7d8e92ba854fbc2dbf9d842 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb14f94914af58657a0dc2f50ec98df5 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#aeb14f94914af58657a0dc2f50ec98df5">setFlags</a> (unsigned int)</td></tr>
<tr class="separator:aeb14f94914af58657a0dc2f50ec98df5 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a6fac115cb81db48e3ac9ffa0721bb5 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a1a6fac115cb81db48e3ac9ffa0721bb5">unsetFlags</a> (unsigned int)</td></tr>
<tr class="separator:a1a6fac115cb81db48e3ac9ffa0721bb5 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abee236b4d62f51320212f31e010fc1b5 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#abee236b4d62f51320212f31e010fc1b5">setIndex</a> (size_t)</td></tr>
<tr class="separator:abee236b4d62f51320212f31e010fc1b5 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a250348f9030b92b19580749bf99030b5 inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a250348f9030b92b19580749bf99030b5">incOverlapCost</a> (<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> *, TrackCost &amp;) const </td></tr>
<tr class="separator:a250348f9030b92b19580749bf99030b5 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e1b4982a2427f74e55592520ab6272d inherit pub_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a3e1b4982a2427f74e55592520ab6272d">makeDogleg</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1GCell.html">Katabatic::GCell</a> *)</td></tr>
<tr class="separator:a3e1b4982a2427f74e55592520ab6272d inherit pub_methods_classKite_1_1TrackElement"><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:a536f91d468e6c2097f85169e6d790f64"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a536f91d468e6c2097f85169e6d790f64">create</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html">AutoSegment</a> *, <a class="el" href="classKite_1_1Track.html">Track</a> *, bool &amp;created)</td></tr>
<tr class="separator:a536f91d468e6c2097f85169e6d790f64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_methods_classKite_1_1TrackElement"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classKite_1_1TrackElement')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a></td></tr>
<tr class="memitem:a4648fa47d0870cf743436ff6a6239fd9 inherit pub_static_methods_classKite_1_1TrackElement"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceKite.html#aa5bc3df660243357cdf8639f57d4a41b">SegmentOverlapCostCB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackElement.html#a4648fa47d0870cf743436ff6a6239fd9">setOverlapCostCB</a> (<a class="el" href="namespaceKite.html#aa5bc3df660243357cdf8639f57d4a41b">SegmentOverlapCostCB</a> *)</td></tr>
<tr class="separator:a4648fa47d0870cf743436ff6a6239fd9 inherit pub_static_methods_classKite_1_1TrackElement"><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>Derived <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html">Katabatic::AutoSegment</a> for the router. </p>
<div class="image">
<img src="TrackSegment-10.png" alt="TrackSegment-10.png"/>
<div class="caption">
Fig 1: TrackSegment Context</div></div>
<p> We create one <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> per aligned <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html">Katabatic::AutoSegment</a> set, the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> is associated to the canonical one of the set.</p>
<p>To provide some speedup, the full extention of the aligned segment set is computed once and stored in the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> itself. The drawback beeing that whenever one segment from the aligned set has it's extention modified, the full extention must be recomputed.</p>
<h1><a class="anchor" id="secTSLazyRevalidate"></a>
Lazy Revalidate</h1>
<p>When the <a class="el" href="classKite_1_1TrackSegment.html#a5bd93abe1416952ace15a98dbeeed124">TrackSegment::revalidate()</a> method is called, it only update the cached size of the segment (from the AutoSegment set of aligneds) and the track into which it may be inserted.</p>
<p>The associated <a class="el" href="classKite_1_1DataNegociate.html" title="Algorimthmic datas associated the TrackSegment. ">DataNegociate</a> and <a class="el" href="classKite_1_1RoutingEvent.html" title="Atomic Placement Request for a TrackSegment. ">RoutingEvent</a> are <b>not</b> updated.</p>
<ul>
<li>The <a class="el" href="classKite_1_1RoutingEvent.html" title="Atomic Placement Request for a TrackSegment. ">RoutingEvent</a> will be updated when it's key is updated, typically during a requeueing operation <b>and</b> in the <a class="el" href="classKite_1_1SegmentFsm.html" title="Pseudo-decorator to process a RoutingEvent. ">SegmentFsm</a> constructor. This should be optimized in the future.</li>
<li>The <a class="el" href="classKite_1_1DataNegociate.html" title="Algorimthmic datas associated the TrackSegment. ">DataNegociate</a> is updated <em>only</em> in the <a class="el" href="classKite_1_1SegmentFsm.html" title="Pseudo-decorator to process a RoutingEvent. ">SegmentFsm</a> constructor. This is the most costly of the two updates as it perform a perpandicular &amp; parallel connexity exploration.</li>
</ul>
<h1><a class="anchor" id="secDogleg"></a>
Dogleg Management</h1>
<p>The basic <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a43c865bcfcfd6132352a9ac8a84c25cd">AutoSegment::canDogleg()</a> method is declined in three more dedicated methods in this class:</p>
<ul>
<li><a class="el" href="classKite_1_1TrackSegment.html#aa0bb6f1592688e942ff67e0ac318a4fd">TrackSegment::canDogleg()</a>, for locals only, check if a break is possible, never break a segment more than once (to avoid fragmentation).</li>
<li><a class="el" href="classKite_1_1TrackSegment.html#a4f040cf33009e4886d401115c3bea838">TrackSegment::canDogleg(Katabatic::GCell*,unsigned int flags)</a> for globals, check that the segment is breakable in the desired GCell. Never break twice in the first/last GCell (fragmentation limitation), but may <em>reuse</em> an already existing dogleg.</li>
<li><a class="el" href="classKite_1_1TrackSegment.html#accb4c6a7ee2678a0cff4dbc4a7860fe1">TrackSegment::canDogleg(Interval)</a>, for locals only, direct proxy for the AutoSegment method. Never allow more than one break.</li>
</ul>
<p><b>Relationship between AutoSegment and <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a></b></p>
<p>Figure 2 below, shows an example of dogleg creation:</p>
<ul>
<li>At the <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/namespaceKatabatic.html">Katabatic</a> level, AutoSegment <code>id:12</code> is broken. Thus the creation of AutoSegments <code>id:20</code> and <code>id:21</code>. The orignal <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> (canonical AutoSegment <code>id:10</code>) remains on the right side (target) of the break.</li>
<li>But, because the canonical of the former aligned AutoSegment set <code></code>(10,11,12,13,14) was on the <em>right</em> side of the break, the new parallel <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> will be created on the <code>left</code> side, associated to the newly promoted canonical AutoSegment <code>id:12</code>.</li>
</ul>
<div class="image">
<img src="_makeDogleg-10.png" alt="_makeDogleg-10.png"/>
<div class="caption">
Fig 2: Dogleg Management</div></div>
<p> The <a class="el" href="classKite_1_1TrackSegment.html#a10a45c049d0bd7d01c7eff1c5441c7a2">TrackSegment::_postDoglegs()</a> method called by all flavors of <a class="el" href="classKite_1_1TrackSegment.html#a7a9637875364e84e6862de0102341715">TrackSegment::makeDogleg()</a> methods is responsible for creating new TrackSegments for the new doglegs (there may be more than one), it also update the dogleg level and source/target dogleg flags.</p>
<p><b><span class="red">This section is not finished.</span></b> I need to review the parent and doglevel numbering management. There seems to be a risk of infinite fragmentation as the numbering of the original segment is not increased, we should create a <em>break</em> counter separate from deepness.</p>
<h1><a class="anchor" id="secWeakGlobal"></a>
Global, Weak Global and Local Segments</h1>
<p>There's a slight semantic change between <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/namespaceKatabatic.html">Katabatic</a> and <a class="el" href="namespaceKite.html" title="The namespace dedicated to Kite. ">Kite</a> about what is local and what is local. This is due to how we consider the intermediate status of <em>WeakGlobal</em>.</p>
<p>A <code>WeakGlobal</code> segment is a local segment which is aligned with a global (though a VTee or an HTee contact).</p>
<p>In <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/namespaceKatabatic.html">Katabatic</a> a local segment is one that is not <code>Global</code>, a local segment can be both <code>Local</code> and <code>WeakGlobal</code>.</p>
<p>In <a class="el" href="namespaceKite.html" title="The namespace dedicated to Kite. ">Kite</a> a local segment is one that is neither <code>Global</code> or <code>WeakGlobal</code>. The <code>WeakGlobal</code> sides with <code>Global</code> unlike in <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/namespaceKatabatic.html">Katabatic</a>. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a536f91d468e6c2097f85169e6d790f64"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classKite_1_1TrackSegment.html">TrackSegment</a> * create </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html">AutoSegment</a> *&#160;</td>
<td class="paramname"><em>segment</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classKite_1_1Track.html">Track</a> *&#160;</td>
<td class="paramname"><em>track</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool &amp;&#160;</td>
<td class="paramname"><em>created</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">segment</td><td>The <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/namespaceKatabatic.html">Katabatic</a> AutoSegment to decorate. </td></tr>
<tr><td class="paramname">track</td><td>A <a class="el" href="classKite_1_1Track.html" title="Structure managing one routing track. ">Track</a> into which insert the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> (may be <code>NULL</code>). </td></tr>
<tr><td class="paramname">created</td><td>This flag is sets is a new <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> has be created. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> wrapped around an AutoSegment.</dd></dl>
<p>Constructor mainly used at loading time to decorate the <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/namespaceKatabatic.html">Katabatic</a> data-base with the router attributes. </p>
<p>Referenced by <a class="el" href="classKite_1_1NegociateWindow.html#a7bf31fcd4e4007e62454689ef7c553fc">NegociateWindow::createTrackSegment()</a>.</p>
</div>
</div>
<a class="anchor" id="af5e7d3badddf2ec07159f1d83426d4c1"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#af5e7d3badddf2ec07159f1d83426d4c1">Katabatic::AutoSegment::isFixed()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#af5e7d3badddf2ec07159f1d83426d4c1">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#aa0bb6f1592688e942ff67e0ac318a4fd">TrackSegment::canDogleg()</a>.</p>
</div>
</div>
<a class="anchor" id="ac46ac3b48d712750c7888b48964ac189"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#ac46ac3b48d712750c7888b48964ac189">Katabatic::AutoSegment::isHorizontal()</a>. </p>
<p>Implements <a class="el" href="classKite_1_1TrackElement.html#a9d3db1f8a5aca58f8f54d291faebf873">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a79b25d8199fe90446e99cf08d2d85674">TrackSegment::getGCells()</a>.</p>
</div>
</div>
<a class="anchor" id="a2bb30e82aad1f321af4a065338775f36"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a2bb30e82aad1f321af4a065338775f36">Katabatic::AutoSegment::isVertical()</a>. </p>
<p>Implements <a class="el" href="classKite_1_1TrackElement.html#a6fa2bf0568a2b295dd7cd1f7207247d5">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a69fb7e260ed2bc6fa82bfe12c2aeec5a"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; Katabatic::isLocal(). </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a69fb7e260ed2bc6fa82bfe12c2aeec5a">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a10a45c049d0bd7d01c7eff1c5441c7a2">TrackSegment::_postDoglegs()</a>, and <a class="el" href="classKite_1_1TrackSegment.html#aa0bb6f1592688e942ff67e0ac318a4fd">TrackSegment::canDogleg()</a>.</p>
</div>
</div>
<a class="anchor" id="a017b1ead8e5988dd0e491cae93ac510c"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a017b1ead8e5988dd0e491cae93ac510c">Katabatic::AutoSegment::isGlobal()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a017b1ead8e5988dd0e491cae93ac510c">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="ab5035e6d84cf3ec7b519a5acb109efaa"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#ab5035e6d84cf3ec7b519a5acb109efaa">Katabatic::AutoSegment::isBipoint()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#ab5035e6d84cf3ec7b519a5acb109efaa">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a8d6f4521b27f32080d7477cf8ee8a274"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isTerminal </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>See also:</b>&#160; Katabatic::AutoSegment::isTerminal(). </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a8d6f4521b27f32080d7477cf8ee8a274">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a4721fcbe9c93ed5392afd9a756b989a8"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a4721fcbe9c93ed5392afd9a756b989a8">Katabatic::AutoSegment::isStrap()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a4721fcbe9c93ed5392afd9a756b989a8">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="ab1f9e0bca70dea59558459a003a62d88"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#ab1f9e0bca70dea59558459a003a62d88">Katabatic::AutoSegment::isSlackened()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#ab1f9e0bca70dea59558459a003a62d88">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#aa0bb6f1592688e942ff67e0ac318a4fd">TrackSegment::canDogleg()</a>.</p>
</div>
</div>
<a class="anchor" id="a172b2394f9c2cbaaf5bc4b19e0e76e65"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; Katabatic::isDogleg(). </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a172b2394f9c2cbaaf5bc4b19e0e76e65">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="aa0bb6f1592688e942ff67e0ac318a4fd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool canDogleg </td>
<td>(</td>
<td class="paramname"></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><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a43c865bcfcfd6132352a9ac8a84c25cd">AutoSegment::canDogleg()</a>. At <a class="el" href="namespaceKite.html" title="The namespace dedicated to Kite. ">Kite</a> level, this variant of the method will apply only on local segments and the segment must not already have a source or target dogleg. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#aa0bb6f1592688e942ff67e0ac318a4fd">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="accb4c6a7ee2678a0cff4dbc4a7860fe1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool 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"></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><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a43c865bcfcfd6132352a9ac8a84c25cd">AutoSegment::canDogleg()</a>. At <a class="el" href="namespaceKite.html" title="The namespace dedicated to Kite. ">Kite</a> level, this variant of the method will apply only on local segments and the segment must not already have a source or target dogleg. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#accb4c6a7ee2678a0cff4dbc4a7860fe1">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a4f040cf33009e4886d401115c3bea838"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool canDogleg </td>
<td>(</td>
<td class="paramtype"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1GCell.html">Katabatic::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>0</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a43c865bcfcfd6132352a9ac8a84c25cd">AutoSegment::canDogleg()</a>. At kite level, this variant of the method is mainly targeted to global segment. For local segment it behave like <a class="el" href="classKite_1_1TrackElement.html#accb4c6a7ee2678a0cff4dbc4a7860fe1">TrackElement::canDogleg(Interval)</a>. For global segment, make the break in the requested GCell <code>doglegGCell</code>. If it's in the first or last GCell and there is already a dogleg, allow to reuse it if <code>flags</code> contains <a class="el" href="namespaceKite.html#acca8fffa3182dea5f94208f454f14b47a766f453d6caa06490196a952762f0bb8">Kite::KtAllowDoglegReuse</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a4f040cf33009e4886d401115c3bea838">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a3bc51798c4b09a1537350822025adcea"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">float getMaxUnderDensity </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</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">
<p><b>Returns:</b> The maximum density of all the GCells under this element. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a71b29fb20a3ba09616a6be4b122a797e">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="ae68c47fdf838be02cbf6660cd25a0806"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The <code>Id</code> of the supporting AutoSegment, if there is any. <em>Zero</em> otherwise. </dd></dl>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#ae68c47fdf838be02cbf6660cd25a0806">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#ac295bade8aee589f6718dfa79edc2a34">TrackSegment::detach()</a>.</p>
</div>
</div>
<a class="anchor" id="a09d03fbca9ab891c2f25bdae7f89a899"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The direction of the supporting element (should match the preferred direction of the <a class="el" href="classKite_1_1Track.html" title="Structure managing one routing track. ">Track</a>). </dd></dl>
<p>Implements <a class="el" href="classKite_1_1TrackElement.html#ae35b78590ed6aa546b626ef95f28c533">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a7e79fbfe77f173d46b1959c41087930a">TrackSegment::getSourceDogleg()</a>, and <a class="el" href="classKite_1_1TrackSegment.html#aeb4e39bd925d093e6c45599433bb421c">TrackSegment::getTargetDogleg()</a>.</p>
</div>
</div>
<a class="anchor" id="adf3e1a980233163de0ca34a5c3575998"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The Net associated to the element (may be <code>NULL</code>). </p>
<p>Implements <a class="el" href="classKite_1_1TrackElement.html#a2b383a5b6f5028911a35e446a682dabd">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a38d30a241d00a14943a06401d0d12923">TrackSegment::getFreeInterval()</a>, <a class="el" href="classKite_1_1TrackSegment.html#a5af0ac91c558873fea9703e7ab6f48df">TrackSegment::getNext()</a>, and <a class="el" href="classKite_1_1TrackSegment.html#acbb9c965449bf4502d71149563cec0a2">TrackSegment::getPrevious()</a>.</p>
</div>
</div>
<a class="anchor" id="a304ee4e02745811e04ac6fb688bf834f"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The Layer of the element (should match the one of the <a class="el" href="classKite_1_1Track.html" title="Structure managing one routing track. ">Track</a>). </p>
<p>Implements <a class="el" href="classKite_1_1TrackElement.html#ad96c66549598873bf68c2e18ec7164c1">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a9f20f94d2d8aaa38c2b9ead5275ead27"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned long getFreedomDegree </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 degree of freedom of the element. It is used as a priority value when sorting <a class="el" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. ">TrackElement</a> (in <a class="el" href="classKite_1_1RoutingEvent.html" title="Atomic Placement Request for a TrackSegment. ">RoutingEvent</a>).</p>
<p><b>Returns:</b> The degree of freedom of the element. It is used as a priority value when sorting <a class="el" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. ">TrackElement</a> (in <a class="el" href="classKite_1_1RoutingEvent.html" title="Atomic Placement Request for a TrackSegment. ">RoutingEvent</a>).</p>
<p>Currently, it is the <em>slack</em> of the <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html">Katabatic::AutoSegment</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a9f20f94d2d8aaa38c2b9ead5275ead27">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="ace669b962e7df815b92fe70e1f4ad755"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int getDoglegLevel </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 deepness of the dogleg. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#ace669b962e7df815b92fe70e1f4ad755">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#aa0bb6f1592688e942ff67e0ac318a4fd">TrackSegment::canDogleg()</a>.</p>
</div>
</div>
<a class="anchor" id="a5af0ac91c558873fea9703e7ab6f48df"></a>
<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="classKite_1_1TrackElement.html">TrackElement</a> * getNext </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 next <a class="el" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. ">TrackElement</a>, on the same track and of a <em>different</em> net. <b>See also:</b>&#160; <a class="el" href="classKite_1_1Track.html#afaad0c947c459bab3b7ef742aaa5c59f">Track::getNext()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a5af0ac91c558873fea9703e7ab6f48df">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="acbb9c965449bf4502d71149563cec0a2"></a>
<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="classKite_1_1TrackElement.html">TrackElement</a> * getPrevious </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 previous <a class="el" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. ">TrackElement</a>, on the same track and of a <em>different</em> net. <b>See also:</b>&#160; <a class="el" href="classKite_1_1Track.html#a4ebcb68fdea325b48de96a417a86d896">Track::getPrevious()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#acbb9c965449bf4502d71149563cec0a2">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="ad1a03a36d5908ce44c3d0391ff9c7103"></a>
<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="classKite_1_1TrackElement.html">TrackElement</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The <a class="el" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. ">TrackElement</a> from which the dogleg has been created, if any. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#ad1a03a36d5908ce44c3d0391ff9c7103">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a76a45d5701f875711a03692e9bf6d5ce">TrackSegment::getDataNegociate()</a>.</p>
</div>
</div>
<a class="anchor" id="af85576c58c70007850ad56e238e8d266"></a>
<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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The axis position of the element (must be the same as the <a class="el" href="classKite_1_1Track.html" title="Structure managing one routing track. ">Track</a>). </p>
<p>Implements <a class="el" href="classKite_1_1TrackElement.html#ac492fb5399691d81c31547db6b56fd03">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a38d30a241d00a14943a06401d0d12923"></a>
<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> getFreeInterval </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 greatest free interval enclosing this element. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a38d30a241d00a14943a06401d0d12923">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a972921aeb7f907194710ea35ac7600be"></a>
<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="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>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#ab7685e309e1d910db3e8237f8a898c35">Katabatic::AutoSegment::getSourceConstraints()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a972921aeb7f907194710ea35ac7600be">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a00d398bdc1837c6c1e4847895c557829"></a>
<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="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>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a9c1b8b3cd57fb7b0bf60c7a6148237c2">Katabatic::AutoSegment::getTargetConstraints()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a00d398bdc1837c6c1e4847895c557829">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a76a45d5701f875711a03692e9bf6d5ce"></a>
<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="classKite_1_1DataNegociate.html">DataNegociate</a> * getDataNegociate </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>flags</em> = <code><a class="el" href="namespaceKite.html#acca8fffa3182dea5f94208f454f14b47a68e917ff37d4b5cef906303181836404">KtDataSelf</a></code></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 additional data-structure supplied by the routing algorithm. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a76a45d5701f875711a03692e9bf6d5ce">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a10a45c049d0bd7d01c7eff1c5441c7a2">TrackSegment::_postDoglegs()</a>, and <a class="el" href="classKite_1_1TrackSegment.html#acc245ce084989d1c34816d0e61b9d510">TrackSegment::swapTrack()</a>.</p>
</div>
</div>
<a class="anchor" id="af2d46d64cbd02bdbba53d5483d95e26d"></a>
<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="classKite_1_1TrackElement.html">TrackElement</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><span class="red">Inner working still unclear to myself.</span> </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#af2d46d64cbd02bdbba53d5483d95e26d">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a79b25d8199fe90446e99cf08d2d85674"></a>
<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">Katabatic::GCellVector &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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>Returns:</b> The table of <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1GCell.html">Katabatic::GCell</a> underneath the element whole span. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a79b25d8199fe90446e99cf08d2d85674">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a4f040cf33009e4886d401115c3bea838">TrackSegment::canDogleg()</a>.</p>
</div>
</div>
<a class="anchor" id="a7e79fbfe77f173d46b1959c41087930a"></a>
<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="classKite_1_1TrackElement.html">TrackElement</a> * getSourceDogleg </td>
<td>(</td>
<td class="paramname"></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><b>Returns:</b> The source part of the segment from which the dogleg has been created. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a7e79fbfe77f173d46b1959c41087930a">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="aeb4e39bd925d093e6c45599433bb421c"></a>
<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="classKite_1_1TrackElement.html">TrackElement</a> * getTargetDogleg </td>
<td>(</td>
<td class="paramname"></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><b>Returns:</b> The target part of the segment from which the dogleg has been created. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#aeb4e39bd925d093e6c45599433bb421c">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="aa0ba92ebf19f596537dc051c090d5736"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">TrackElements getPerpandiculars </td>
<td>(</td>
<td class="paramname"></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><b>Returns:</b> The collection of all element perpandiculars to this one. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#aa0ba92ebf19f596537dc051c090d5736">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="abd3d8093f871d3d1a7f24b053648026c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setTrack </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKite_1_1Track.html">Track</a> *&#160;</td>
<td class="paramname"><em>track</em></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>Insert the element into <code>track</code>, also used as an insertion marker. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#abd3d8093f871d3d1a7f24b053648026c">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#ac295bade8aee589f6718dfa79edc2a34">TrackSegment::detach()</a>, and <a class="el" href="classKite_1_1TrackSegment.html#acc245ce084989d1c34816d0e61b9d510">TrackSegment::swapTrack()</a>.</p>
</div>
</div>
<a class="anchor" id="af5332d647c0482aa90ad7cc9b2a50f3a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void updateFreedomDegree </td>
<td>(</td>
<td class="paramname"></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>Update, from the element characteristics, it's degree of freedom. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#af5332d647c0482aa90ad7cc9b2a50f3a">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a2b90319cb042b283aa5d1fdb1992f11f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void setDoglegLevel </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>level</em></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>Sets the level of dogleg of the element. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a2b90319cb042b283aa5d1fdb1992f11f">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="acc245ce084989d1c34816d0e61b9d510"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void swapTrack </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&#160;</td>
<td class="paramname"><em>other</em></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>Swap the tracks of <code>this</code> and <code>other</code>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#acc245ce084989d1c34816d0e61b9d510">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a0ffe603ec7d46f21f5e56ccbe84c03fb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void reschedule </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>level</em></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>If the <a class="el" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. ">TrackElement</a> has already an event scheduled, change the level of this event, otherwise create a new event.</p>
<p><b>See also:</b>&#160; NegotiateWindow::rescheduleEvent(). </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a0ffe603ec7d46f21f5e56ccbe84c03fb">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a10a45c049d0bd7d01c7eff1c5441c7a2">TrackSegment::_postDoglegs()</a>.</p>
</div>
</div>
<a class="anchor" id="ac295bade8aee589f6718dfa79edc2a34"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void detach </td>
<td>(</td>
<td class="paramname"></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>Remove the link from the <a class="el" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. ">TrackElement</a> to it's owning <a class="el" href="classKite_1_1Track.html" title="Structure managing one routing track. ">Track</a>, marking it for removal. The removal from the <a class="el" href="classKite_1_1Track.html" title="Structure managing one routing track. ">Track</a>'s vector is managed by the <a class="el" href="classKite_1_1Track.html" title="Structure managing one routing track. ">Track</a> itself during the <a class="el" href="classKite_1_1Session.html" title="Kite update Session. ">Session</a> revalidation stage. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#ac295bade8aee589f6718dfa79edc2a34">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a893f1101c650c08c98612515c2b1a89c"></a>
<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="paramname"></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><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a23599eee5a07af377fbc8d47cda7e7b0">AutoSegment::invalidate()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a893f1101c650c08c98612515c2b1a89c">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a536f91d468e6c2097f85169e6d790f64">TrackSegment::create()</a>, and <a class="el" href="classKite_1_1TrackSegment.html#a262a915c38127d3722ec561b30d80f91">TrackSegment::setAxis()</a>.</p>
</div>
</div>
<a class="anchor" id="a5bd93abe1416952ace15a98dbeeed124"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void revalidate </td>
<td>(</td>
<td class="paramname"></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>Actualize the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> characteristics from the supporting elements (set of AutoSegment).</p>
<p>This method do not update the <a class="el" href="classKite_1_1DataNegociate.html" title="Algorimthmic datas associated the TrackSegment. ">DataNegociate</a> or the <a class="el" href="classKite_1_1RoutingEvent.html" title="Atomic Placement Request for a TrackSegment. ">RoutingEvent</a>. This is a lazy update delayed until the constructor of <a class="el" href="classKite_1_1SegmentFsm.html" title="Pseudo-decorator to process a RoutingEvent. ">SegmentFsm</a> is called. (see <a class="el" href="classKite_1_1TrackSegment.html#secTSLazyRevalidate">Lazy Revalidate</a>). </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a5bd93abe1416952ace15a98dbeeed124">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a262a915c38127d3722ec561b30d80f91"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<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">, </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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the axis of the <a class="el" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. ">TrackElement</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a45e685b1e3ee630d24bf43746553af4c">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a7a9637875364e84e6862de0102341715"></a>
<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="classKite_1_1TrackElement.html">TrackElement</a> * makeDogleg </td>
<td>(</td>
<td class="paramname"></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>Create a dogleg on the source end of the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a>. Put the dogleg axis on the source <b><span class="red">To be further reviewed</span></b>.</p>
<p><b>See also:</b>&#160; <a class="el" href="classKite_1_1TrackSegment.html#secDogleg">Dogleg management</a>.</p>
<p>Post-processing done by <a class="el" href="classKite_1_1TrackSegment.html#a10a45c049d0bd7d01c7eff1c5441c7a2">TrackSegment::_postDoglegs()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a7a9637875364e84e6862de0102341715">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a524f1569b2f2c1a84df2fe47e84e28ed"></a>
<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="classKite_1_1TrackElement.html">TrackElement</a> * 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 &amp;&#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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><b>See also:</b>&#160; <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/katabatic/doc/html/katabatic.tag:../katabatic/" href="../katabatic/classKatabatic_1_1AutoSegment.html#a39c927c04b5016770692b9b8448c2f04">AutoSegment::makeDogleg()</a>, <a class="el" href="classKite_1_1TrackSegment.html#secDogleg">Dogleg management</a>, the return flags from this method are returned through the <code>flags</code> variable.</p>
<p>Post-processing done by <a class="el" href="classKite_1_1TrackSegment.html#a10a45c049d0bd7d01c7eff1c5441c7a2">TrackSegment::_postDoglegs()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a524f1569b2f2c1a84df2fe47e84e28ed">TrackElement</a>.</p>
</div>
</div>
<a class="anchor" id="a10a45c049d0bd7d01c7eff1c5441c7a2"></a>
<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="classKite_1_1TrackSegment.html">TrackSegment</a> * _postDoglegs </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&amp;&#160;</td>
<td class="paramname"><em>perpandicular</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> *&amp;&#160;</td>
<td class="paramname"><em>parallel</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">
<p>Post-process to be called inside the various dogleg creation or slacken methods. Iterate through the newly created AutoSegments to create, for the <em>perpandicular</em> and the <em>new parallel</em> associateds TrackSegments. Also sets the dogleg levels and flags of the newly created elements.</p>
<p>The session dogleg reset is called at the end of this method. The <code>perpandicular</code> and <code>parallel</code> references to pointers contains the newly created segments for the <b>last</b> dogleg. If more than one was created, you cannot access them (the need has not arised yet). </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html">TrackElement</a>.</p>
<p>Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a524f1569b2f2c1a84df2fe47e84e28ed">TrackSegment::makeDogleg()</a>.</p>
</div>
</div>
<a class="anchor" id="aa1ef325b98fab61d2c7c5bdc1fcd92fc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool _check </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>Check the coherency of the element. For a <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a>:</p>
<ul>
<li>The supporting AutoSegment the canonical one of the set.</li>
<li>The cached <code>min</code> &amp; <code>max</code> values are identical to the computed ones.</li>
</ul>
<p><b>Returns:</b> <b>true</b> on success. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#aa1ef325b98fab61d2c7c5bdc1fcd92fc">TrackElement</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="TrackSegment_8h_source.html">TrackSegment.h</a></li>
<li>TrackSegment.cpp</li>
<li>TrackSegment.dox</li>
</ul>
</div><!-- contents -->
<br>
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.5 on Mon Oct 1 2018</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">Kite - Detailed Router</td>
<td class="RFooter"><small>Copyright &#169; 2008-2016 UPMC. All rights reserved</small></td>
</tr>
</table>
</body>
</html>