<!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&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_1DataNegociate.html">DataNegociate</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="classKite_1_1DataNegociate-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">DataNegociate Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>Algorimthmic datas associated the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a>. <a href="classKite_1_1DataNegociate.html#details">More...</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></td></tr> <tr class="memitem:ab7ccb6fc1f298728995250a3bbcf18c7"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7">SlackState</a> { <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a19d8d157762b2b73c5274e4865523d29">RipupPerpandiculars</a> = 1, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a548e204a4e2ffae50774910737f11380">Minimize</a> = 2, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a361bca46d5e7bdf02f50f7ecaa6018a9">Dogleg</a> = 3, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a0d4bff02b3163821c0e5f7ad9dd55f36">Slacken</a> = 4, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7ae08187cba35efd6229ab8acfd003a600">ConflictSolveByHistory</a> = 5, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7afce071be0ba39626ed1c865789da598b">ConflictSolveByPlaceds</a> = 6, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7aa54078da5ffb3463f7d6f291b0b0725e">LocalVsGlobal</a> = 7, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7adfd76a7d65b56ed7ecc0eedf921d6f82">MoveUp</a> = 8, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a9fc7197613f3435d906edf69a73acf38">MaximumSlack</a> = 9, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7ac64569bb9cffe0532bc43b52d7b6c383">Unimplemented</a> =10, <br />   <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a27b403019a93f9f127cf64a0688a8288">Repair</a> =11 <br /> }</td></tr> <tr class="separator:ab7ccb6fc1f298728995250a3bbcf18c7"><td class="memSeparator" colspan="2"> </td></tr> </table><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:abeeeb06293c85a902f2b56d1b13d260d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#abeeeb06293c85a902f2b56d1b13d260d">hasRoutingEvent</a> () const</td></tr> <tr class="separator:abeeeb06293c85a902f2b56d1b13d260d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a831dab8eb708da17b4f1e1a8c057f283"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKite_1_1RoutingEvent.html">RoutingEvent</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a831dab8eb708da17b4f1e1a8c057f283">getRoutingEvent</a> () const</td></tr> <tr class="separator:a831dab8eb708da17b4f1e1a8c057f283"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abc97e384245eab238831f9461968025b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKite_1_1TrackElement.html">TrackElement</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#abc97e384245eab238831f9461968025b">getTrackSegment</a> () const</td></tr> <tr class="separator:abc97e384245eab238831f9461968025b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3f34f9139b8491a0adb531ac3a904171"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKite_1_1Track.html">Track</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a3f34f9139b8491a0adb531ac3a904171">getTrack</a> () const</td></tr> <tr class="separator:a3f34f9139b8491a0adb531ac3a904171"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a56149c72d0bfe5e33795782b646061b1"><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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a56149c72d0bfe5e33795782b646061b1">getLeftMinExtend</a> () const</td></tr> <tr class="separator:a56149c72d0bfe5e33795782b646061b1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abf06c826acae81494b01b904d3277cc1"><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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#abf06c826acae81494b01b904d3277cc1">getRightMinExtend</a> () const</td></tr> <tr class="separator:abf06c826acae81494b01b904d3277cc1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4f6fbcee2499d33394ab54f856c500c0"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a4f6fbcee2499d33394ab54f856c500c0">getTerminals</a> () const</td></tr> <tr class="separator:a4f6fbcee2499d33394ab54f856c500c0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a692492374623a5c6096b2c4a51190359"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a692492374623a5c6096b2c4a51190359">getNet</a> () const</td></tr> <tr class="separator:a692492374623a5c6096b2c4a51190359"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a40ec2b23684a0e6e6d7ac9783a269037"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a40ec2b23684a0e6e6d7ac9783a269037">getState</a> () const</td></tr> <tr class="separator:a40ec2b23684a0e6e6d7ac9783a269037"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6ad2b700f668f8e2e5cd4fbc717d8765"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a6ad2b700f668f8e2e5cd4fbc717d8765">getStateCount</a> () const</td></tr> <tr class="separator:a6ad2b700f668f8e2e5cd4fbc717d8765"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9832198737bd835fab730ff2b95bbfa0"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a9832198737bd835fab730ff2b95bbfa0">getRipupCount</a> () const</td></tr> <tr class="separator:a9832198737bd835fab730ff2b95bbfa0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acdd169f3bd670279f0a891caa809f99a"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#acdd169f3bd670279f0a891caa809f99a">getStateAndRipupCount</a> () const</td></tr> <tr class="separator:acdd169f3bd670279f0a891caa809f99a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af920f8ca7404239772e56d00f779cac6"><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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#af920f8ca7404239772e56d00f779cac6">getWiringDelta</a> (<a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> axis) const</td></tr> <tr class="separator:af920f8ca7404239772e56d00f779cac6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a60d12d642a8d232241a2b07febeb980b"><td class="memItemLeft" align="right" valign="top">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a60d12d642a8d232241a2b07febeb980b">getPerpandicularFree</a> () const</td></tr> <tr class="separator:a60d12d642a8d232241a2b07febeb980b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aafc8cd0dcd351625a12904bed7d5a7d1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#aafc8cd0dcd351625a12904bed7d5a7d1">setState</a> (unsigned int, unsigned int flags=0)</td></tr> <tr class="separator:aafc8cd0dcd351625a12904bed7d5a7d1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a044867f105053d6231ab13fee23ec7b0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a044867f105053d6231ab13fee23ec7b0">setRoutingEvent</a> (<a class="el" href="classKite_1_1RoutingEvent.html">RoutingEvent</a> *)</td></tr> <tr class="separator:a044867f105053d6231ab13fee23ec7b0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a45492835bdca93f4e656dcd7ed027825"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a45492835bdca93f4e656dcd7ed027825">setRipupCount</a> (unsigned int)</td></tr> <tr class="separator:a45492835bdca93f4e656dcd7ed027825"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae50c33d207171246319e11e0671bc706"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#ae50c33d207171246319e11e0671bc706">incRipupCount</a> ()</td></tr> <tr class="separator:ae50c33d207171246319e11e0671bc706"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4f94572b3541ea2d150c75bedc8364ed"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a4f94572b3541ea2d150c75bedc8364ed">decRipupCount</a> ()</td></tr> <tr class="separator:a4f94572b3541ea2d150c75bedc8364ed"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a00a11ad9089d2df7b290615921e0c96a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#a00a11ad9089d2df7b290615921e0c96a">resetRipupCount</a> ()</td></tr> <tr class="separator:a00a11ad9089d2df7b290615921e0c96a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af1e8d229bb1dfcff3151d44d42a8549b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#af1e8d229bb1dfcff3151d44d42a8549b">resetStateCount</a> ()</td></tr> <tr class="separator:af1e8d229bb1dfcff3151d44d42a8549b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac5c54df7ed3b930268c8d7752c101725"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classKite_1_1DataNegociate.html#ac5c54df7ed3b930268c8d7752c101725">update</a> ()</td></tr> <tr class="separator:ac5c54df7ed3b930268c8d7752c101725"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Algorimthmic datas associated the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a>. </p> <p>The <a class="el" href="classKite_1_1DataNegociate.html" title="Algorimthmic datas associated the TrackSegment. ">DataNegociate</a> object contains all the informations the negociation algorithm needs to know about a <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a>. Those informations mostly describe the slackening and ripup state of that segment.</p> <p><b>State related datas:</b></p><ul> <li>The ripup count in the current state. The count is reset to zero at each state transition.</li> <li>The slackening state (see <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7">DataNegociate::SlackState</a>). The state indicate the <b>next</b> topological modification to be applied on the segment should the ripup count reach it's maximal value.</li> <li>The associated <a class="el" href="classKite_1_1RoutingEvent.html" title="Atomic Placement Request for a TrackSegment. ">RoutingEvent</a>. If no <a class="el" href="classKite_1_1RoutingEvent.html" title="Atomic Placement Request for a TrackSegment. ">RoutingEvent</a> is present, it means the segment has been either successufully placed or the algorithm has given up trying to. If present, it is a <em>pending</em> request for placement.</li> </ul> <p><b>Topological related datas:</b></p><ul> <li><code>leftMinExtend</code>, the potential minimal position of the segment left extension. May not be reachable due to other topological constraints.</li> <li><code>rightMinExtend</code>, the potential minimal position of the segment right extension.</li> <li><code>terminals</code>, the number of terminals attached to this segment.</li> <li><code>attractors</code>, a table of coordinates of the end points of the perpandiculars to this segment. Used to compute the wiring delta if we move the axis of the segment.</li> <li><code>perpandiculars</code>, a <code>vector</code> of the perpandicular <a class="el" href="classKite_1_1TrackElement.html" title="Abstract Class for all Elements inserted inside a Track. ">TrackElement</a>. This is a fast-access cache. It must be updated each time the topology of the net is modificated.</li> <li><code>perpandicularFree</code>, the free interval defined by the perpandiculars, that is for the sgement axis.</li> </ul> <h1><a class="anchor" id="secAttractorsComputation"></a> Perpandiculars, Free, Attractors & Wiring Delta</h1> <p>All those informations are computed and updated by the <a class="el" href="classKite_1_1DataNegociate.html#ac5c54df7ed3b930268c8d7752c101725">DataNegociate::update()</a> method, which relies on:</p><ul> <li>AutoSegment::getTopologicalInfos()</li> <li>AutoSegment::getTerminalCount()</li> </ul> <p><span class="red">They must be reviewed as they do not take advantage of the new</span> <span class="red">AutoSegment structuration.</span></p> <p>For every perpandicular set of AutoSegment to the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> we want to place, get the coordinates of the extremity not connected to the segment and put that coordinate into a table associated with it's <em>spin</em>. The <em>spin</em> tells if the extremity is attracting the segment <em>up</em> or <em>down</em> (for an horizontal segment). The <em>spin</em> is incremented for up and decremented for down. After all the extremities have been processeds, we took into account only the coordinates with a non-zero spin, which means they truly attract the segment (whatever the direction).</p> <div class="image"> <img src="DataNegociate-1.png" alt="DataNegociate-1.png"/> <div class="caption"> Fig 1: Attractors Computation</div></div> <p> The <em>wiring delta</em> is the total wire length needed to connect from the attractors to the segment, should it be placed on <code>axis</code>.</p> <div class="image"> <img src="DataNegociate-2.png" alt="DataNegociate-2.png"/> <div class="caption"> Fig 2: Wiring Delta</div></div> <h1><a class="anchor" id="secDataNegociateModifications"></a> Modifications History</h1> <p>Main changes in <a class="el" href="classKite_1_1DataNegociate.html" title="Algorimthmic datas associated the TrackSegment. ">DataNegociate</a> class design:</p><ul> <li>Merge in the separate class <code>Cost</code>.</li> <li>Suppress the <code>SlackState::Desalignate</code>, due to the simplificated structure of the AutoSegment/AutoContacts (no more collapseds, or forced alignements). </li> </ul> </div><h2 class="groupheader">Member Enumeration Documentation</h2> <a id="ab7ccb6fc1f298728995250a3bbcf18c7"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab7ccb6fc1f298728995250a3bbcf18c7">◆ </a></span>SlackState</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7">SlackState</a></td> </tr> </table> </div><div class="memdoc"> <p>Describe the various stages of a <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> slackening. The numerical values are choosen so we can increment them as a counter. </p> <table class="fieldtable"> <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7a19d8d157762b2b73c5274e4865523d29"></a>RipupPerpandiculars </td><td class="fielddoc"><p>Force perpandiculars to be riped up as well as the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a>, then schedule the placement of the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> <em>before</em> it's perpandiculars. </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7a548e204a4e2ffae50774910737f11380"></a>Minimize </td><td class="fielddoc"><p>If the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> is made of multiple TrackSegments with a forced alignement, suppress the alignement constraint.</p> <p><span class="red">This should be deprecated now</span>. Try to displace the perpandiculars so the <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a> is reduced to it's minimal length. </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7a361bca46d5e7bdf02f50f7ecaa6018a9"></a>Dogleg </td><td class="fielddoc"><p>Break the segment into two smaller ones. </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7a0d4bff02b3163821c0e5f7ad9dd55f36"></a>Slacken </td><td class="fielddoc"><p>Create additional wiring so threre is no more contraints transmitted by the perpandiculars or the terminal contacts. </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7ae08187cba35efd6229ab8acfd003a600"></a>ConflictSolveByHistory </td><td class="fielddoc"><p>Try to solve a conflict between a set of global segments by analysing the event/ripup history. See <a class="el" href="classKite_1_1SegmentFsm.html#a0d9a9926ae67cc7998799347f135e28a">SegmentFsm::conflictSolveByHistory()</a>. </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7afce071be0ba39626ed1c865789da598b"></a>ConflictSolveByPlaceds </td><td class="fielddoc"><p>Try to solve a conflict between a set of global segments by analysing the current track context. See <a class="el" href="classKite_1_1SegmentFsm.html#a9c0fa6a9067b6e027e24f38330f627dc">SegmentFsm::conflictSolveByPlaceds()</a>. </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7aa54078da5ffb3463f7d6f291b0b0725e"></a>LocalVsGlobal </td><td class="fielddoc"><p><span class="red">To be reviewed</span>. </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7adfd76a7d65b56ed7ecc0eedf921d6f82"></a>MoveUp </td><td class="fielddoc"><p>The segment is to be moved up (if possible). </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7a9fc7197613f3435d906edf69a73acf38"></a>MaximumSlack </td><td class="fielddoc"><p>The final state, topological modifications are exhausteds, if it cannot place at this point, it never will. </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7ac64569bb9cffe0532bc43b52d7b6c383"></a>Unimplemented </td><td class="fielddoc"><p>Used only during the development stage, telling that the state is not available yet. </p> </td></tr> <tr><td class="fieldname"><a id="ab7ccb6fc1f298728995250a3bbcf18c7a27b403019a93f9f127cf64a0688a8288"></a>Repair </td><td class="fielddoc"><p>The router is in repair mode. </p> </td></tr> </table> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="abeeeb06293c85a902f2b56d1b13d260d"></a> <h2 class="memtitle"><span class="permalink"><a href="#abeeeb06293c85a902f2b56d1b13d260d">◆ </a></span>hasRoutingEvent()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool hasRoutingEvent </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> <b>true</b> if there is a pending <a class="el" href="classKite_1_1RoutingEvent.html" title="Atomic Placement Request for a TrackSegment. ">RoutingEvent</a> for this <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a>. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1NegociateWindow.html#a51ba8e6a122c0cb93174027658cade63">NegociateWindow::addRoutingEvent()</a>, and <a class="el" href="classKite_1_1TrackSegment.html#a0ffe603ec7d46f21f5e56ccbe84c03fb">TrackSegment::reschedule()</a>.</p> </div> </div> <a id="a831dab8eb708da17b4f1e1a8c057f283"></a> <h2 class="memtitle"><span class="permalink"><a href="#a831dab8eb708da17b4f1e1a8c057f283">◆ </a></span>getRoutingEvent()</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_1RoutingEvent.html">RoutingEvent</a> * getRoutingEvent </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The pending <a class="el" href="classKite_1_1RoutingEvent.html" title="Atomic Placement Request for a TrackSegment. ">RoutingEvent</a>. <code>NULL</code> will be returned if there is no pending event, meaning that the segment has been placed. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1SegmentAction.html#a324f17f0f5a09b76344eb2e003695d74">SegmentAction::doAction()</a>, <a class="el" href="classKite_1_1Manipulator.html#af7b3305693dab195d0c5d075821fbb30">Manipulator::makeDogleg()</a>, <a class="el" href="classKite_1_1Manipulator.html#a8b5b69fd5762d5a0cbc4ceea4d1b68c1">Manipulator::relax()</a>, <a class="el" href="classKite_1_1TrackSegment.html#a0ffe603ec7d46f21f5e56ccbe84c03fb">TrackSegment::reschedule()</a>, <a class="el" href="classKite_1_1RoutingEvent.html#abf2d02f18f96183fc6e78f3e6dc8cbf6">RoutingEvent::reschedule()</a>, and <a class="el" href="classKite_1_1TrackSegment.html#acc245ce084989d1c34816d0e61b9d510">TrackSegment::swapTrack()</a>.</p> </div> </div> <a id="abc97e384245eab238831f9461968025b"></a> <h2 class="memtitle"><span class="permalink"><a href="#abc97e384245eab238831f9461968025b">◆ </a></span>getTrackSegment()</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> * getTrackSegment </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The associated <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a>. </p> </div> </div> <a id="a3f34f9139b8491a0adb531ac3a904171"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3f34f9139b8491a0adb531ac3a904171">◆ </a></span>getTrack()</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_1Track.html">Track</a> * getTrack </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> A proxy accessor for the segment's track. </p> </div> </div> <a id="a56149c72d0bfe5e33795782b646061b1"></a> <h2 class="memtitle"><span class="permalink"><a href="#a56149c72d0bfe5e33795782b646061b1">◆ </a></span>getLeftMinExtend()</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> getLeftMinExtend </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The minimum extend possible of the segment's source (left) ending. Computed by <a class="el" href="classKite_1_1DataNegociate.html#ac5c54df7ed3b930268c8d7752c101725">DataNegociate::update()</a>. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1Manipulator.html#a7140b507da2cab137d968a037bed19df">Manipulator::insertInTrack()</a>.</p> </div> </div> <a id="abf06c826acae81494b01b904d3277cc1"></a> <h2 class="memtitle"><span class="permalink"><a href="#abf06c826acae81494b01b904d3277cc1">◆ </a></span>getRightMinExtend()</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> getRightMinExtend </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The minimum extend possible of the segment's target (right) ending. Computed by <a class="el" href="classKite_1_1DataNegociate.html#ac5c54df7ed3b930268c8d7752c101725">DataNegociate::update()</a>. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1Manipulator.html#a7140b507da2cab137d968a037bed19df">Manipulator::insertInTrack()</a>.</p> </div> </div> <a id="a4f6fbcee2499d33394ab54f856c500c0"></a> <h2 class="memtitle"><span class="permalink"><a href="#a4f6fbcee2499d33394ab54f856c500c0">◆ </a></span>getTerminals()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned int getTerminals </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The number of terminal to which this segment is connected Computed by <a class="el" href="classKite_1_1DataNegociate.html#ac5c54df7ed3b930268c8d7752c101725">DataNegociate::update()</a>.</p> <p><span class="red">Must be refined: direct or indirect?</span>. </p> </div> </div> <a id="a692492374623a5c6096b2c4a51190359"></a> <h2 class="memtitle"><span class="permalink"><a href="#a692492374623a5c6096b2c4a51190359">◆ </a></span>getNet()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Net.html">Net</a> * getNet </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> A cached accessor to the segment's net (for faster access). </p> </div> </div> <a id="a40ec2b23684a0e6e6d7ac9783a269037"></a> <h2 class="memtitle"><span class="permalink"><a href="#a40ec2b23684a0e6e6d7ac9783a269037">◆ </a></span>getState()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned int getState </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The current state (see <a class="el" href="classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7">DataNegociate::SlackState</a>). </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1RoutingEvent.html#a40ec2b23684a0e6e6d7ac9783a269037">RoutingEvent::getState()</a>, <a class="el" href="classKite_1_1Manipulator.html#a7140b507da2cab137d968a037bed19df">Manipulator::insertInTrack()</a>, and <a class="el" href="classKite_1_1Manipulator.html#a147c24aa53f561c10d5d24b82b03448a">Manipulator::ripupPerpandiculars()</a>.</p> </div> </div> <a id="a6ad2b700f668f8e2e5cd4fbc717d8765"></a> <h2 class="memtitle"><span class="permalink"><a href="#a6ad2b700f668f8e2e5cd4fbc717d8765">◆ </a></span>getStateCount()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned int getStateCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The number of times we have reached the ripup limit while in this stage. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1SegmentFsm.html#a9c0fa6a9067b6e027e24f38330f627dc">SegmentFsm::conflictSolveByPlaceds()</a>.</p> </div> </div> <a id="a9832198737bd835fab730ff2b95bbfa0"></a> <h2 class="memtitle"><span class="permalink"><a href="#a9832198737bd835fab730ff2b95bbfa0">◆ </a></span>getRipupCount()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned int getRipupCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The number of times the segment has been riped up in this stage. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1Manipulator.html#acae2506c976194aef762d27900c97b02">Manipulator::canRipup()</a>, <a class="el" href="classKite_1_1SegmentAction.html#a324f17f0f5a09b76344eb2e003695d74">SegmentAction::doAction()</a>, and <a class="el" href="classKite_1_1RoutingEvent.html#a6add4f520081c698421481bf8fe0ad1f">RoutingEvent::process()</a>.</p> </div> </div> <a id="acdd169f3bd670279f0a891caa809f99a"></a> <h2 class="memtitle"><span class="permalink"><a href="#acdd169f3bd670279f0a891caa809f99a">◆ </a></span>getStateAndRipupCount()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned int getStateAndRipupCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <dl class="section return"><dt>Returns</dt><dd>A composite number combining the state and the ripup count: <code>(state<<4)+ripup</code>. </dd></dl> </div> </div> <a id="af920f8ca7404239772e56d00f779cac6"></a> <h2 class="memtitle"><span class="permalink"><a href="#af920f8ca7404239772e56d00f779cac6">◆ </a></span>getWiringDelta()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">DbU::Unit</a> getWiringDelta </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> </td> <td class="paramname"><em>axis</em></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The wiring length needed to connect to the attractors if the segment is put on <code>axis</code>. The lower, the better... </p> </div> </div> <a id="a60d12d642a8d232241a2b07febeb980b"></a> <h2 class="memtitle"><span class="permalink"><a href="#a60d12d642a8d232241a2b07febeb980b">◆ </a></span>getPerpandicularFree()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const <a class="elRef" doxygen="/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/html/hurricane.tag:../hurricane/" href="../hurricane/classHurricane_1_1Interval.html">Interval</a> & getPerpandicularFree </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p><b>Returns:</b> The range of legal positions generated only by the perpandiculars. </p> </div> </div> <a id="aafc8cd0dcd351625a12904bed7d5a7d1"></a> <h2 class="memtitle"><span class="permalink"><a href="#aafc8cd0dcd351625a12904bed7d5a7d1">◆ </a></span>setState()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void setState </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>state</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>flags</em> = <code>0</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Set or reset the slacking state (see SlackState). If the <code>state</code> is the same as the current one, the state count is incremented. If the new state changes or <code>flags</code> contain KtReset, the state count is reset to one. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1SegmentAction.html#a324f17f0f5a09b76344eb2e003695d74">SegmentAction::doAction()</a>, <a class="el" href="classKite_1_1Manipulator.html#a8b5b69fd5762d5a0cbc4ceea4d1b68c1">Manipulator::relax()</a>, <a class="el" href="classKite_1_1Manipulator.html#a9721ea909a9b11297dea855e1ba82a55">Manipulator::repackPerpandiculars()</a>, <a class="el" href="classKite_1_1RoutingEvent.html#abf2d02f18f96183fc6e78f3e6dc8cbf6">RoutingEvent::reschedule()</a>, <a class="el" href="classKite_1_1Manipulator.html#a147c24aa53f561c10d5d24b82b03448a">Manipulator::ripupPerpandiculars()</a>, and <a class="el" href="classKite_1_1RoutingEvent.html#af7ce7f73feb28f3df8f3180632a2f731">RoutingEvent::setState()</a>.</p> </div> </div> <a id="a044867f105053d6231ab13fee23ec7b0"></a> <h2 class="memtitle"><span class="permalink"><a href="#a044867f105053d6231ab13fee23ec7b0">◆ </a></span>setRoutingEvent()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void setRoutingEvent </td> <td>(</td> <td class="paramtype"><a class="el" href="classKite_1_1RoutingEvent.html">RoutingEvent</a> * </td> <td class="paramname"><em>event</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Associate <code>event</code> to this <a class="el" href="classKite_1_1TrackSegment.html" title="Derived Katabatic::AutoSegment for the router. ">TrackSegment</a>. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1RoutingEvent.html#abf2d02f18f96183fc6e78f3e6dc8cbf6">RoutingEvent::reschedule()</a>, and <a class="el" href="classKite_1_1RoutingEvent.html#ae2eddb4497661b6319616a70c4acd165">RoutingEvent::setSegment()</a>.</p> </div> </div> <a id="a45492835bdca93f4e656dcd7ed027825"></a> <h2 class="memtitle"><span class="permalink"><a href="#a45492835bdca93f4e656dcd7ed027825">◆ </a></span>setRipupCount()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void setRipupCount </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"><em>count</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Directly sets the ripup count to <code>count</code>. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1SegmentAction.html#a324f17f0f5a09b76344eb2e003695d74">SegmentAction::doAction()</a>.</p> </div> </div> <a id="ae50c33d207171246319e11e0671bc706"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae50c33d207171246319e11e0671bc706">◆ </a></span>incRipupCount()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void incRipupCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Increment the ripup count. No check is performed for bound limit. </p> </div> </div> <a id="a4f94572b3541ea2d150c75bedc8364ed"></a> <h2 class="memtitle"><span class="permalink"><a href="#a4f94572b3541ea2d150c75bedc8364ed">◆ </a></span>decRipupCount()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void decRipupCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Decrement the ripup count (will never go below zero). </p> </div> </div> <a id="a00a11ad9089d2df7b290615921e0c96a"></a> <h2 class="memtitle"><span class="permalink"><a href="#a00a11ad9089d2df7b290615921e0c96a">◆ </a></span>resetRipupCount()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void resetRipupCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Reset the ripup count to zero. </p> <p class="reference">Referenced by <a class="el" href="classKite_1_1SegmentAction.html#a324f17f0f5a09b76344eb2e003695d74">SegmentAction::doAction()</a>.</p> </div> </div> <a id="af1e8d229bb1dfcff3151d44d42a8549b"></a> <h2 class="memtitle"><span class="permalink"><a href="#af1e8d229bb1dfcff3151d44d42a8549b">◆ </a></span>resetStateCount()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void resetStateCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Reset the state count to zero. </p> </div> </div> <a id="ac5c54df7ed3b930268c8d7752c101725"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac5c54df7ed3b930268c8d7752c101725">◆ </a></span>update()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void update </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Recompute <code>leftMinExtend</code>, <code>righMinExtend</code>, number of terminals and attractors positions.</p> <dl class="section user"><dt>Remark: The constructor do not calls it. It is to the algorithm responsability</dt><dd>to call it before using the computed datas. </dd></dl> <p class="reference">Referenced by <a class="el" href="classKite_1_1NegociateWindow.html#a329dbc5bc549e3fe354996368dbf7113">NegociateWindow::setGCells()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="DataNegociate_8h_source.html">DataNegociate.h</a></li> <li>DataNegociate.cpp</li> <li>DataNegociate.dox</li> </ul> </div><!-- contents --> <br> <hr> <table class="footer1"> <tr> <td class="LFooter"><small>Generated by doxygen 1.8.14 on Thu Nov 12 2020</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 © 2008-2020 Sorbonne Universite. All rights reserved</small></td> </tr> </table> </body> </html>