coriolis/kite/doc/html/classKite_1_1TrackSegment.html

1706 lines
104 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.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="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:afd7362b850709bed8b61c1aa22399f97"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#afd7362b850709bed8b61c1aa22399f97">isFixed</a> () const</td></tr>
<tr class="separator:afd7362b850709bed8b61c1aa22399f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21b9cefd33ae22e4c2070ad441bdd30b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a21b9cefd33ae22e4c2070ad441bdd30b">isHorizontal</a> () const</td></tr>
<tr class="separator:a21b9cefd33ae22e4c2070ad441bdd30b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd54544ef1710ee4b67cfb021d73446c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#abd54544ef1710ee4b67cfb021d73446c">isVertical</a> () const</td></tr>
<tr class="separator:abd54544ef1710ee4b67cfb021d73446c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add556a145a89fdbcea82346abfb873dc"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#add556a145a89fdbcea82346abfb873dc">isLocal</a> () const</td></tr>
<tr class="separator:add556a145a89fdbcea82346abfb873dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19ba379112d6b29faa45c5eefbf38500"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a19ba379112d6b29faa45c5eefbf38500">isGlobal</a> () const</td></tr>
<tr class="separator:a19ba379112d6b29faa45c5eefbf38500"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72741158d19af38e84c5e9c08f91270f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a72741158d19af38e84c5e9c08f91270f">isBipoint</a> () const</td></tr>
<tr class="separator:a72741158d19af38e84c5e9c08f91270f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e074cb3064037035548e5e6d238e315"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a1e074cb3064037035548e5e6d238e315">isTerminal</a> () const</td></tr>
<tr class="separator:a1e074cb3064037035548e5e6d238e315"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62d61c231cf404a814ae37665fa8164f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a62d61c231cf404a814ae37665fa8164f">isStrap</a> () const</td></tr>
<tr class="separator:a62d61c231cf404a814ae37665fa8164f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a782cff57d3fe10e758d19ee65a06643d"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a782cff57d3fe10e758d19ee65a06643d">isSlackened</a> () const</td></tr>
<tr class="separator:a782cff57d3fe10e758d19ee65a06643d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75d91371e5281dd21f60ff39ae70a3e5"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#a75d91371e5281dd21f60ff39ae70a3e5">isDogleg</a> () const</td></tr>
<tr class="separator:a75d91371e5281dd21f60ff39ae70a3e5"><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:abb61228ad7b29c19c6428902d34126f7"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#abb61228ad7b29c19c6428902d34126f7">getMaxUnderDensity</a> (unsigned int flags) const</td></tr>
<tr class="separator:abb61228ad7b29c19c6428902d34126f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdedcef127ad2a3677a5b48d7d3453f3"><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#afdedcef127ad2a3677a5b48d7d3453f3">getId</a> () const</td></tr>
<tr class="separator:afdedcef127ad2a3677a5b48d7d3453f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dd7cf705ace42c662c289955313b2e9"><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#a0dd7cf705ace42c662c289955313b2e9">getDirection</a> () const</td></tr>
<tr class="separator:a0dd7cf705ace42c662c289955313b2e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a692492374623a5c6096b2c4a51190359"><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#a692492374623a5c6096b2c4a51190359">getNet</a> () const</td></tr>
<tr class="separator:a692492374623a5c6096b2c4a51190359"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab045567c4f529dca7790d66c17c3084f"><td class="memItemLeft" align="right" valign="top">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#ab045567c4f529dca7790d66c17c3084f">getLayer</a> () const</td></tr>
<tr class="separator:ab045567c4f529dca7790d66c17c3084f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7552c20cc46abcac558627b2ca341f8"><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#aa7552c20cc46abcac558627b2ca341f8">getFreedomDegree</a> () const</td></tr>
<tr class="separator:aa7552c20cc46abcac558627b2ca341f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add78c6f914788c549f144998caacda84"><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#add78c6f914788c549f144998caacda84">getDoglegLevel</a> () const</td></tr>
<tr class="separator:add78c6f914788c549f144998caacda84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a010b7fc8801c5b88aefa4137cf85186d"><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#a010b7fc8801c5b88aefa4137cf85186d">getNext</a> () const</td></tr>
<tr class="separator:a010b7fc8801c5b88aefa4137cf85186d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55d6115d84c11ad147f4c38fe372ea24"><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#a55d6115d84c11ad147f4c38fe372ea24">getPrevious</a> () const</td></tr>
<tr class="separator:a55d6115d84c11ad147f4c38fe372ea24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95ec3b8e7e1ec87c20ee0b37bcc96df7"><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#a95ec3b8e7e1ec87c20ee0b37bcc96df7">getParent</a> () const</td></tr>
<tr class="separator:a95ec3b8e7e1ec87c20ee0b37bcc96df7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5b5aaa5b318369feee6003dbad039c2"><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#ab5b5aaa5b318369feee6003dbad039c2">getAxis</a> () const</td></tr>
<tr class="separator:ab5b5aaa5b318369feee6003dbad039c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a034711e2d3617ea848ef9f5a18255e10"><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#a034711e2d3617ea848ef9f5a18255e10">getFreeInterval</a> () const</td></tr>
<tr class="separator:a034711e2d3617ea848ef9f5a18255e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48f8b54f9489da3778d85c382a483f81"><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#a48f8b54f9489da3778d85c382a483f81">getSourceConstraints</a> () const</td></tr>
<tr class="separator:a48f8b54f9489da3778d85c382a483f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69af7d4287bc0e44c9ca2c8e6f692be9"><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#a69af7d4287bc0e44c9ca2c8e6f692be9">getTargetConstraints</a> () const</td></tr>
<tr class="separator:a69af7d4287bc0e44c9ca2c8e6f692be9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd0170a05128ec4af16ecd0060c3a3b5"><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#acd0170a05128ec4af16ecd0060c3a3b5">getDataNegociate</a> (unsigned int flags=<a class="el" href="namespaceKite.html#acca8fffa3182dea5f94208f454f14b47a68e917ff37d4b5cef906303181836404">KtDataSelf</a>) const</td></tr>
<tr class="separator:acd0170a05128ec4af16ecd0060c3a3b5"><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:af45301f76558f613ccb605a8f851080e"><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#af45301f76558f613ccb605a8f851080e">getGCells</a> (Katabatic::GCellVector &amp;) const</td></tr>
<tr class="separator:af45301f76558f613ccb605a8f851080e"><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:ad79f4c6ea0fe1135b8264a29af085909"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1TrackSegment.html#ad79f4c6ea0fe1135b8264a29af085909">_check</a> () const</td></tr>
<tr class="separator:ad79f4c6ea0fe1135b8264a29af085909"><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:af7d9cf1d7581b1cab04cf38c64f0f72a 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#af7d9cf1d7581b1cab04cf38c64f0f72a">isCreated</a> () const</td></tr>
<tr class="separator:af7d9cf1d7581b1cab04cf38c64f0f72a inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac540608485240ff88970131ebc02c1ab 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#ac540608485240ff88970131ebc02c1ab">isInvalidated</a> () const</td></tr>
<tr class="separator:ac540608485240ff88970131ebc02c1ab inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fffa77f98cf6f0375f831bddce8a8fe 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#a3fffa77f98cf6f0375f831bddce8a8fe">isBlockage</a> () const</td></tr>
<tr class="separator:a3fffa77f98cf6f0375f831bddce8a8fe inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43966e19963e4bcb7f7f9b5327ec732b 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#a43966e19963e4bcb7f7f9b5327ec732b">isLocked</a> () const</td></tr>
<tr class="separator:a43966e19963e4bcb7f7f9b5327ec732b inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29202b7dfab21852f8c8d773de7b3728 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#a29202b7dfab21852f8c8d773de7b3728">isRouted</a> () const</td></tr>
<tr class="separator:a29202b7dfab21852f8c8d773de7b3728 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0ab07d0bdd701562ecc14bbdb41368d 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#ab0ab07d0bdd701562ecc14bbdb41368d">hasSourceDogleg</a> () const</td></tr>
<tr class="separator:ab0ab07d0bdd701562ecc14bbdb41368d inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f1f15d433698222015fdda8e7fb599c 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#a2f1f15d433698222015fdda8e7fb599c">hasTargetDogleg</a> () const</td></tr>
<tr class="separator:a2f1f15d433698222015fdda8e7fb599c inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b37c425c3152c576444ac0253b04f9f 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#a9b37c425c3152c576444ac0253b04f9f">canRipple</a> () const</td></tr>
<tr class="separator:a9b37c425c3152c576444ac0253b04f9f inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f34f9139b8491a0adb531ac3a904171 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#a3f34f9139b8491a0adb531ac3a904171">getTrack</a> () const</td></tr>
<tr class="separator:a3f34f9139b8491a0adb531ac3a904171 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad65a47a8b8a83be5d0b456b1074d1220 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#ad65a47a8b8a83be5d0b456b1074d1220">getIndex</a> () const</td></tr>
<tr class="separator:ad65a47a8b8a83be5d0b456b1074d1220 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5d8bf98ab5af6fcfebea1b9f446d5d7 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#ab5d8bf98ab5af6fcfebea1b9f446d5d7">getBoundingBox</a> () const</td></tr>
<tr class="separator:ab5d8bf98ab5af6fcfebea1b9f446d5d7 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad521ffba761b0e81b7b81b99d62f76f9 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#ad521ffba761b0e81b7b81b99d62f76f9">getSourceU</a> () const</td></tr>
<tr class="separator:ad521ffba761b0e81b7b81b99d62f76f9 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d52a506cd19dfa8e22e1dc0695bd960 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#a4d52a506cd19dfa8e22e1dc0695bd960">getTargetU</a> () const</td></tr>
<tr class="separator:a4d52a506cd19dfa8e22e1dc0695bd960 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1ca7adfc68761c749a16f65c9aa4088 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#ab1ca7adfc68761c749a16f65c9aa4088">getLength</a> () const</td></tr>
<tr class="separator:ab1ca7adfc68761c749a16f65c9aa4088 inherit pub_methods_classKite_1_1TrackElement"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae96c050b96eaea51a3821cc01a1f3334 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#ae96c050b96eaea51a3821cc01a1f3334">getCanonicalInterval</a> () const</td></tr>
<tr class="separator:ae96c050b96eaea51a3821cc01a1f3334 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:a7f1126d43df68dd4edbb8d047a134edb 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#a7f1126d43df68dd4edbb8d047a134edb">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:a7f1126d43df68dd4edbb8d047a134edb 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#ac86883c8d5a0f34ab9b4ec6eaaad6c9f">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#ac86883c8d5a0f34ab9b4ec6eaaad6c9f">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 Katabatic 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 Katabatic 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 Katabatic 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 Katabatic. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a536f91d468e6c2097f85169e6d790f64"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a536f91d468e6c2097f85169e6d790f64">&#9670;&nbsp;</a></span>create()</h2>
<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 Katabatic 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 Katabatic data-base with the router attributes. </p>
<p class="reference">Referenced by <a class="el" href="classKite_1_1NegociateWindow.html#a7bf31fcd4e4007e62454689ef7c553fc">NegociateWindow::createTrackSegment()</a>.</p>
</div>
</div>
<a id="afd7362b850709bed8b61c1aa22399f97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd7362b850709bed8b61c1aa22399f97">&#9670;&nbsp;</a></span>isFixed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isFixed </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#afd7362b850709bed8b61c1aa22399f97">Katabatic::AutoSegment::isFixed()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#afd7362b850709bed8b61c1aa22399f97">TrackElement</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#aa0bb6f1592688e942ff67e0ac318a4fd">TrackSegment::canDogleg()</a>.</p>
</div>
</div>
<a id="a21b9cefd33ae22e4c2070ad441bdd30b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21b9cefd33ae22e4c2070ad441bdd30b">&#9670;&nbsp;</a></span>isHorizontal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isHorizontal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#a21b9cefd33ae22e4c2070ad441bdd30b">Katabatic::AutoSegment::isHorizontal()</a>. </p>
<p>Implements <a class="el" href="classKite_1_1TrackElement.html#a9d3db1f8a5aca58f8f54d291faebf873">TrackElement</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#af45301f76558f613ccb605a8f851080e">TrackSegment::getGCells()</a>.</p>
</div>
</div>
<a id="abd54544ef1710ee4b67cfb021d73446c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd54544ef1710ee4b67cfb021d73446c">&#9670;&nbsp;</a></span>isVertical()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isVertical </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#abd54544ef1710ee4b67cfb021d73446c">Katabatic::AutoSegment::isVertical()</a>. </p>
<p>Implements <a class="el" href="classKite_1_1TrackElement.html#a6fa2bf0568a2b295dd7cd1f7207247d5">TrackElement</a>.</p>
</div>
</div>
<a id="add556a145a89fdbcea82346abfb873dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add556a145a89fdbcea82346abfb873dc">&#9670;&nbsp;</a></span>isLocal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isLocal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#add556a145a89fdbcea82346abfb873dc">TrackElement</a>.</p>
<p class="reference">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 id="a19ba379112d6b29faa45c5eefbf38500"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19ba379112d6b29faa45c5eefbf38500">&#9670;&nbsp;</a></span>isGlobal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isGlobal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#a19ba379112d6b29faa45c5eefbf38500">Katabatic::AutoSegment::isGlobal()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a19ba379112d6b29faa45c5eefbf38500">TrackElement</a>.</p>
</div>
</div>
<a id="a72741158d19af38e84c5e9c08f91270f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72741158d19af38e84c5e9c08f91270f">&#9670;&nbsp;</a></span>isBipoint()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isBipoint </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#a72741158d19af38e84c5e9c08f91270f">Katabatic::AutoSegment::isBipoint()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a72741158d19af38e84c5e9c08f91270f">TrackElement</a>.</p>
</div>
</div>
<a id="a1e074cb3064037035548e5e6d238e315"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e074cb3064037035548e5e6d238e315">&#9670;&nbsp;</a></span>isTerminal()</h2>
<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#a1e074cb3064037035548e5e6d238e315">TrackElement</a>.</p>
</div>
</div>
<a id="a62d61c231cf404a814ae37665fa8164f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62d61c231cf404a814ae37665fa8164f">&#9670;&nbsp;</a></span>isStrap()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isStrap </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#a62d61c231cf404a814ae37665fa8164f">Katabatic::AutoSegment::isStrap()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a62d61c231cf404a814ae37665fa8164f">TrackElement</a>.</p>
</div>
</div>
<a id="a782cff57d3fe10e758d19ee65a06643d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a782cff57d3fe10e758d19ee65a06643d">&#9670;&nbsp;</a></span>isSlackened()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isSlackened </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#a782cff57d3fe10e758d19ee65a06643d">Katabatic::AutoSegment::isSlackened()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a782cff57d3fe10e758d19ee65a06643d">TrackElement</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#aa0bb6f1592688e942ff67e0ac318a4fd">TrackSegment::canDogleg()</a>.</p>
</div>
</div>
<a id="a75d91371e5281dd21f60ff39ae70a3e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75d91371e5281dd21f60ff39ae70a3e5">&#9670;&nbsp;</a></span>isDogleg()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool isDogleg </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#a75d91371e5281dd21f60ff39ae70a3e5">TrackElement</a>.</p>
</div>
</div>
<a id="aa0bb6f1592688e942ff67e0ac318a4fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0bb6f1592688e942ff67e0ac318a4fd">&#9670;&nbsp;</a></span>canDogleg() <span class="overload">[1/3]</span></h2>
<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 id="accb4c6a7ee2678a0cff4dbc4a7860fe1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#accb4c6a7ee2678a0cff4dbc4a7860fe1">&#9670;&nbsp;</a></span>canDogleg() <span class="overload">[2/3]</span></h2>
<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 id="a4f040cf33009e4886d401115c3bea838"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f040cf33009e4886d401115c3bea838">&#9670;&nbsp;</a></span>canDogleg() <span class="overload">[3/3]</span></h2>
<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 id="abb61228ad7b29c19c6428902d34126f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb61228ad7b29c19c6428902d34126f7">&#9670;&nbsp;</a></span>getMaxUnderDensity()</h2>
<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#aa34ceb4288e76357b65725ca00e56df8">TrackElement</a>.</p>
</div>
</div>
<a id="afdedcef127ad2a3677a5b48d7d3453f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afdedcef127ad2a3677a5b48d7d3453f3">&#9670;&nbsp;</a></span>getId()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned long getId </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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#afdedcef127ad2a3677a5b48d7d3453f3">TrackElement</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#ac295bade8aee589f6718dfa79edc2a34">TrackSegment::detach()</a>.</p>
</div>
</div>
<a id="a0dd7cf705ace42c662c289955313b2e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0dd7cf705ace42c662c289955313b2e9">&#9670;&nbsp;</a></span>getDirection()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int getDirection </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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 class="reference">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 id="a692492374623a5c6096b2c4a51190359"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a692492374623a5c6096b2c4a51190359">&#9670;&nbsp;</a></span>getNet()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> * getNet </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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 class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a034711e2d3617ea848ef9f5a18255e10">TrackSegment::getFreeInterval()</a>, <a class="el" href="classKite_1_1TrackSegment.html#a010b7fc8801c5b88aefa4137cf85186d">TrackSegment::getNext()</a>, and <a class="el" href="classKite_1_1TrackSegment.html#a55d6115d84c11ad147f4c38fe372ea24">TrackSegment::getPrevious()</a>.</p>
</div>
</div>
<a id="ab045567c4f529dca7790d66c17c3084f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab045567c4f529dca7790d66c17c3084f">&#9670;&nbsp;</a></span>getLayer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Layer.html">Layer</a> * getLayer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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 id="aa7552c20cc46abcac558627b2ca341f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7552c20cc46abcac558627b2ca341f8">&#9670;&nbsp;</a></span>getFreedomDegree()</h2>
<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#aa7552c20cc46abcac558627b2ca341f8">TrackElement</a>.</p>
</div>
</div>
<a id="add78c6f914788c549f144998caacda84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add78c6f914788c549f144998caacda84">&#9670;&nbsp;</a></span>getDoglegLevel()</h2>
<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#add78c6f914788c549f144998caacda84">TrackElement</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#aa0bb6f1592688e942ff67e0ac318a4fd">TrackSegment::canDogleg()</a>.</p>
</div>
</div>
<a id="a010b7fc8801c5b88aefa4137cf85186d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a010b7fc8801c5b88aefa4137cf85186d">&#9670;&nbsp;</a></span>getNext()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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#af3db59591bef3c690ace92c114a4e4aa">Track::getNext()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a010b7fc8801c5b88aefa4137cf85186d">TrackElement</a>.</p>
</div>
</div>
<a id="a55d6115d84c11ad147f4c38fe372ea24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55d6115d84c11ad147f4c38fe372ea24">&#9670;&nbsp;</a></span>getPrevious()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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#a290fcfe6131730d216951a3b5207d777">Track::getPrevious()</a>. </p>
<p>Reimplemented from <a class="el" href="classKite_1_1TrackElement.html#a55d6115d84c11ad147f4c38fe372ea24">TrackElement</a>.</p>
</div>
</div>
<a id="a95ec3b8e7e1ec87c20ee0b37bcc96df7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95ec3b8e7e1ec87c20ee0b37bcc96df7">&#9670;&nbsp;</a></span>getParent()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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#a95ec3b8e7e1ec87c20ee0b37bcc96df7">TrackElement</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#acd0170a05128ec4af16ecd0060c3a3b5">TrackSegment::getDataNegociate()</a>.</p>
</div>
</div>
<a id="ab5b5aaa5b318369feee6003dbad039c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5b5aaa5b318369feee6003dbad039c2">&#9670;&nbsp;</a></span>getAxis()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getAxis </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">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 id="a034711e2d3617ea848ef9f5a18255e10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a034711e2d3617ea848ef9f5a18255e10">&#9670;&nbsp;</a></span>getFreeInterval()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> 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#a034711e2d3617ea848ef9f5a18255e10">TrackElement</a>.</p>
</div>
</div>
<a id="a48f8b54f9489da3778d85c382a483f81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48f8b54f9489da3778d85c382a483f81">&#9670;&nbsp;</a></span>getSourceConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> getSourceConstraints </td>
<td>(</td>
<td class="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#a48f8b54f9489da3778d85c382a483f81">TrackElement</a>.</p>
</div>
</div>
<a id="a69af7d4287bc0e44c9ca2c8e6f692be9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69af7d4287bc0e44c9ca2c8e6f692be9">&#9670;&nbsp;</a></span>getTargetConstraints()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> getTargetConstraints </td>
<td>(</td>
<td class="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#a69af7d4287bc0e44c9ca2c8e6f692be9">TrackElement</a>.</p>
</div>
</div>
<a id="acd0170a05128ec4af16ecd0060c3a3b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd0170a05128ec4af16ecd0060c3a3b5">&#9670;&nbsp;</a></span>getDataNegociate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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#acd0170a05128ec4af16ecd0060c3a3b5">TrackElement</a>.</p>
<p class="reference">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 id="af2d46d64cbd02bdbba53d5483d95e26d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2d46d64cbd02bdbba53d5483d95e26d">&#9670;&nbsp;</a></span>getCanonical()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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 id="af45301f76558f613ccb605a8f851080e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af45301f76558f613ccb605a8f851080e">&#9670;&nbsp;</a></span>getGCells()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t getGCells </td>
<td>(</td>
<td class="paramtype">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#af45301f76558f613ccb605a8f851080e">TrackElement</a>.</p>
<p class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a4f040cf33009e4886d401115c3bea838">TrackSegment::canDogleg()</a>.</p>
</div>
</div>
<a id="a7e79fbfe77f173d46b1959c41087930a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e79fbfe77f173d46b1959c41087930a">&#9670;&nbsp;</a></span>getSourceDogleg()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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 id="aeb4e39bd925d093e6c45599433bb421c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb4e39bd925d093e6c45599433bb421c">&#9670;&nbsp;</a></span>getTargetDogleg()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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 id="aa0ba92ebf19f596537dc051c090d5736"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0ba92ebf19f596537dc051c090d5736">&#9670;&nbsp;</a></span>getPerpandiculars()</h2>
<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 id="abd3d8093f871d3d1a7f24b053648026c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd3d8093f871d3d1a7f24b053648026c">&#9670;&nbsp;</a></span>setTrack()</h2>
<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 class="reference">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 id="af5332d647c0482aa90ad7cc9b2a50f3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5332d647c0482aa90ad7cc9b2a50f3a">&#9670;&nbsp;</a></span>updateFreedomDegree()</h2>
<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 id="a2b90319cb042b283aa5d1fdb1992f11f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b90319cb042b283aa5d1fdb1992f11f">&#9670;&nbsp;</a></span>setDoglegLevel()</h2>
<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 id="acc245ce084989d1c34816d0e61b9d510"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc245ce084989d1c34816d0e61b9d510">&#9670;&nbsp;</a></span>swapTrack()</h2>
<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 id="a0ffe603ec7d46f21f5e56ccbe84c03fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ffe603ec7d46f21f5e56ccbe84c03fb">&#9670;&nbsp;</a></span>reschedule()</h2>
<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 class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a10a45c049d0bd7d01c7eff1c5441c7a2">TrackSegment::_postDoglegs()</a>.</p>
</div>
</div>
<a id="ac295bade8aee589f6718dfa79edc2a34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac295bade8aee589f6718dfa79edc2a34">&#9670;&nbsp;</a></span>detach()</h2>
<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 id="a893f1101c650c08c98612515c2b1a89c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a893f1101c650c08c98612515c2b1a89c">&#9670;&nbsp;</a></span>invalidate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void invalidate </td>
<td>(</td>
<td class="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 class="reference">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 id="a5bd93abe1416952ace15a98dbeeed124"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5bd93abe1416952ace15a98dbeeed124">&#9670;&nbsp;</a></span>revalidate()</h2>
<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 id="a262a915c38127d3722ec561b30d80f91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a262a915c38127d3722ec561b30d80f91">&#9670;&nbsp;</a></span>setAxis()</h2>
<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 id="a7a9637875364e84e6862de0102341715"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a9637875364e84e6862de0102341715">&#9670;&nbsp;</a></span>makeDogleg() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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 id="a524f1569b2f2c1a84df2fe47e84e28ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a524f1569b2f2c1a84df2fe47e84e28ed">&#9670;&nbsp;</a></span>makeDogleg() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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 id="a10a45c049d0bd7d01c7eff1c5441c7a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10a45c049d0bd7d01c7eff1c5441c7a2">&#9670;&nbsp;</a></span>_postDoglegs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="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 class="reference">Referenced by <a class="el" href="classKite_1_1TrackSegment.html#a524f1569b2f2c1a84df2fe47e84e28ed">TrackSegment::makeDogleg()</a>.</p>
</div>
</div>
<a id="ad79f4c6ea0fe1135b8264a29af085909"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad79f4c6ea0fe1135b8264a29af085909">&#9670;&nbsp;</a></span>_check()</h2>
<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#ad79f4c6ea0fe1135b8264a29af085909">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.14 on Mon Oct 28 2019</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>
<table class="footer2">
<tr>
<td class="LFooter">Kite - Detailed Router</td>
<td class="RFooter"><small>Copyright &#169; 2008-2016 UPMC. All rights reserved</small></td>
</tr>
</table>
</body>
</html>