2018-06-06 11:42:26 -05:00
<!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)" >
2018-08-19 06:27:09 -05:00
<!-- Generated by Doxygen 1.8.5 -->
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li > < a href = "index.html" > < span > Main  Page< / span > < / a > < / li >
< li > < a href = "pages.html" > < span > Related  Pages< / span > < / a > < / li >
< li > < a href = "modules.html" > < span > Modules< / span > < / a > < / li >
< li > < a href = "namespaces.html" > < span > Namespaces< / span > < / a > < / li >
< li class = "current" > < a href = "annotated.html" > < span > Classes< / span > < / a > < / li >
< li > < a href = "files.html" > < span > Files< / span > < / a > < / li >
< / ul >
< / div >
< div id = "navrow2" class = "tabs2" >
< ul class = "tablist" >
< li > < a href = "annotated.html" > < span > Class  List< / span > < / a > < / li >
< li > < a href = "classes.html" > < span > Class  Index< / span > < / a > < / li >
< li > < a href = "hierarchy.html" > < span > Class  Hierarchy< / span > < / a > < / li >
< li > < a href = "functions.html" > < span > Class  Members< / span > < / a > < / li >
< / ul >
< / div >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< 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 / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a19d8d157762b2b73c5274e4865523d29" > RipupPerpandiculars< / a > = 1,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a548e204a4e2ffae50774910737f11380" > Minimize< / a > = 2,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a361bca46d5e7bdf02f50f7ecaa6018a9" > Dogleg< / a > = 3,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a0d4bff02b3163821c0e5f7ad9dd55f36" > Slacken< / a > = 4,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7ae08187cba35efd6229ab8acfd003a600" > ConflictSolveByHistory< / a > = 5,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7afce071be0ba39626ed1c865789da598b" > ConflictSolveByPlaceds< / a > = 6,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7aa54078da5ffb3463f7d6f291b0b0725e" > LocalVsGlobal< / a > = 7,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7adfd76a7d65b56ed7ecc0eedf921d6f82" > MoveUp< / a > = 8,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a9fc7197613f3435d906edf69a73acf38" > MaximumSlack< / a > = 9,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7ac64569bb9cffe0532bc43b52d7b6c383" > Unimplemented< / a > =10,
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
    < a class = "el" href = "classKite_1_1DataNegociate.html#ab7ccb6fc1f298728995250a3bbcf18c7a27b403019a93f9f127cf64a0688a8288" > Repair< / a > =11
2018-08-19 06:27:09 -05:00
< br / >
2018-06-06 11:42:26 -05:00
}< / 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 >
2018-08-19 06:27:09 -05:00
< tr class = "memitem:a8edc902c3b61bd17205ba0ccc3f2b4dd" > < td class = "memItemLeft" align = "right" valign = "top" > bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1DataNegociate.html#a8edc902c3b61bd17205ba0ccc3f2b4dd" > hasRoutingEvent< / a > () const < / td > < / tr >
< tr class = "separator:a8edc902c3b61bd17205ba0ccc3f2b4dd" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad57c5675c842f63193258cb1faad5fc7" > < 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#ad57c5675c842f63193258cb1faad5fc7" > getRoutingEvent< / a > () const < / td > < / tr >
< tr class = "separator:ad57c5675c842f63193258cb1faad5fc7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a76bd0dbdb86c231cbdc92b1e2b8311dd" > < 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#a76bd0dbdb86c231cbdc92b1e2b8311dd" > getTrackSegment< / a > () const < / td > < / tr >
< tr class = "separator:a76bd0dbdb86c231cbdc92b1e2b8311dd" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:abfd8de286baf41eea066220773c7046d" > < 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#abfd8de286baf41eea066220773c7046d" > getTrack< / a > () const < / td > < / tr >
< tr class = "separator:abfd8de286baf41eea066220773c7046d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad8c1073ad0806f86b183c2e5f7badd3e" > < 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#ad8c1073ad0806f86b183c2e5f7badd3e" > getLeftMinExtend< / a > () const < / td > < / tr >
< tr class = "separator:ad8c1073ad0806f86b183c2e5f7badd3e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad9d0adcb0ddfcd718445ceca8fabc2f0" > < 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#ad9d0adcb0ddfcd718445ceca8fabc2f0" > getRightMinExtend< / a > () const < / td > < / tr >
< tr class = "separator:ad9d0adcb0ddfcd718445ceca8fabc2f0" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:abaca79d35201f3fb74ebb8f3efdfa44f" > < td class = "memItemLeft" align = "right" valign = "top" > unsigned int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1DataNegociate.html#abaca79d35201f3fb74ebb8f3efdfa44f" > getTerminals< / a > () const < / td > < / tr >
< tr class = "separator:abaca79d35201f3fb74ebb8f3efdfa44f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:adf3e1a980233163de0ca34a5c3575998" > < 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#adf3e1a980233163de0ca34a5c3575998" > getNet< / a > () const < / td > < / tr >
< tr class = "separator:adf3e1a980233163de0ca34a5c3575998" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aeff84fdf6cc443a2c7a7bd33b03e871f" > < td class = "memItemLeft" align = "right" valign = "top" > unsigned int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1DataNegociate.html#aeff84fdf6cc443a2c7a7bd33b03e871f" > getState< / a > () const < / td > < / tr >
< tr class = "separator:aeff84fdf6cc443a2c7a7bd33b03e871f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a4a065b203d4b52646032d4f1009bf3dd" > < td class = "memItemLeft" align = "right" valign = "top" > unsigned int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1DataNegociate.html#a4a065b203d4b52646032d4f1009bf3dd" > getStateCount< / a > () const < / td > < / tr >
< tr class = "separator:a4a065b203d4b52646032d4f1009bf3dd" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:acdcfa27d2dbd2c8147daac729a420354" > < td class = "memItemLeft" align = "right" valign = "top" > unsigned int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1DataNegociate.html#acdcfa27d2dbd2c8147daac729a420354" > getRipupCount< / a > () const < / td > < / tr >
< tr class = "separator:acdcfa27d2dbd2c8147daac729a420354" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a9ffd1b2af7972f7be264cb778fba69cf" > < td class = "memItemLeft" align = "right" valign = "top" > unsigned int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classKite_1_1DataNegociate.html#a9ffd1b2af7972f7be264cb778fba69cf" > getStateAndRipupCount< / a > () const < / td > < / tr >
< tr class = "separator:a9ffd1b2af7972f7be264cb778fba69cf" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aafdec9bb61759e2ff1bfd03a05597f2e" > < 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#aafdec9bb61759e2ff1bfd03a05597f2e" > 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:aafdec9bb61759e2ff1bfd03a05597f2e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:adcfee3417e714417cef2fc3e3835352f" > < 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#adcfee3417e714417cef2fc3e3835352f" > getPerpandicularFree< / a > () const < / td > < / tr >
< tr class = "separator:adcfee3417e714417cef2fc3e3835352f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > < b > State related datas:< / b > < / p >
< ul >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > < b > Topological related datas:< / b > < / p >
< ul >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< 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 >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > Main changes in < a class = "el" href = "classKite_1_1DataNegociate.html" title = "Algorimthmic datas associated the TrackSegment. " > DataNegociate< / a > class design:< / p >
< ul >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7" > < / a >
2018-06-06 11:42:26 -05:00
< 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" >
2018-08-19 06:27:09 -05:00
< tr > < th colspan = "2" > Enumerator< / th > < / tr > < tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7a19d8d157762b2b73c5274e4865523d29" > < / a > RipupPerpandiculars< / em > < / 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 >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7a548e204a4e2ffae50774910737f11380" > < / a > Minimize< / em > < / 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 >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7a361bca46d5e7bdf02f50f7ecaa6018a9" > < / a > Dogleg< / em > < / td > < td class = "fielddoc" >
< p > Break the segment into two smaller ones. < / p >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7a0d4bff02b3163821c0e5f7ad9dd55f36" > < / a > Slacken< / em > < / td > < td class = "fielddoc" >
< p > Create additional wiring so threre is no more contraints transmitted by the perpandiculars or the terminal contacts. < / p >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7ae08187cba35efd6229ab8acfd003a600" > < / a > ConflictSolveByHistory< / em > < / 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 >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7afce071be0ba39626ed1c865789da598b" > < / a > ConflictSolveByPlaceds< / em > < / 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 >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7aa54078da5ffb3463f7d6f291b0b0725e" > < / a > LocalVsGlobal< / em > < / td > < td class = "fielddoc" >
< p > < span class = "red" > To be reviewed< / span > . < / p >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7adfd76a7d65b56ed7ecc0eedf921d6f82" > < / a > MoveUp< / em > < / td > < td class = "fielddoc" >
< p > The segment is to be moved up (if possible). < / p >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7a9fc7197613f3435d906edf69a73acf38" > < / a > MaximumSlack< / em > < / td > < td class = "fielddoc" >
< p > The final state, topological modifications are exhausteds, if it cannot place at this point, it never will. < / p >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7ac64569bb9cffe0532bc43b52d7b6c383" > < / a > Unimplemented< / em > < / td > < td class = "fielddoc" >
< p > Used only during the development stage, telling that the state is not available yet. < / p >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
2018-08-19 06:27:09 -05:00
< tr > < td class = "fieldname" > < em > < a class = "anchor" id = "ab7ccb6fc1f298728995250a3bbcf18c7a27b403019a93f9f127cf64a0688a8288" > < / a > Repair< / em > < / td > < td class = "fielddoc" >
< p > The router is in repair mode. < / p >
2018-06-06 11:42:26 -05:00
< / td > < / tr >
< / table >
< / div >
< / div >
< h2 class = "groupheader" > Member Function Documentation< / h2 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "a8edc902c3b61bd17205ba0ccc3f2b4dd" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > 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 >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "ad57c5675c842f63193258cb1faad5fc7" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > 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 >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "a76bd0dbdb86c231cbdc92b1e2b8311dd" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "abfd8de286baf41eea066220773c7046d" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "ad8c1073ad0806f86b183c2e5f7badd3e" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > Referenced by < a class = "el" href = "classKite_1_1Manipulator.html#a7140b507da2cab137d968a037bed19df" > Manipulator::insertInTrack()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "ad9d0adcb0ddfcd718445ceca8fabc2f0" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > Referenced by < a class = "el" href = "classKite_1_1Manipulator.html#a7140b507da2cab137d968a037bed19df" > Manipulator::insertInTrack()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "abaca79d35201f3fb74ebb8f3efdfa44f" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "adf3e1a980233163de0ca34a5c3575998" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "aeff84fdf6cc443a2c7a7bd33b03e871f" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > Referenced by < a class = "el" href = "classKite_1_1RoutingEvent.html#aeff84fdf6cc443a2c7a7bd33b03e871f" > 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 >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "a4a065b203d4b52646032d4f1009bf3dd" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > Referenced by < a class = "el" href = "classKite_1_1SegmentFsm.html#a9c0fa6a9067b6e027e24f38330f627dc" > SegmentFsm::conflictSolveByPlaceds()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "acdcfa27d2dbd2c8147daac729a420354" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > Referenced by < a class = "el" href = "classKite_1_1Manipulator.html#aa1b59e12dd58840e11e1056cab4261b7" > 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 >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "a9ffd1b2af7972f7be264cb778fba69cf" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "aafdec9bb61759e2ff1bfd03a05597f2e" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "adcfee3417e714417cef2fc3e3835352f" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "aafc8cd0dcd351625a12904bed7d5a7d1" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > 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 >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "a044867f105053d6231ab13fee23ec7b0" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > 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 >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "a45492835bdca93f4e656dcd7ed027825" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > Referenced by < a class = "el" href = "classKite_1_1SegmentAction.html#a324f17f0f5a09b76344eb2e003695d74" > SegmentAction::doAction()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "ae50c33d207171246319e11e0671bc706" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "a4f94572b3541ea2d150c75bedc8364ed" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "a00a11ad9089d2df7b290615921e0c96a" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< p > Referenced by < a class = "el" href = "classKite_1_1SegmentAction.html#a324f17f0f5a09b76344eb2e003695d74" > SegmentAction::doAction()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / div >
< / div >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "af1e8d229bb1dfcff3151d44d42a8549b" > < / a >
2018-06-06 11:42:26 -05:00
< 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 >
2018-08-19 06:27:09 -05:00
< a class = "anchor" id = "ac5c54df7ed3b930268c8d7752c101725" > < / a >
2018-06-06 11:42:26 -05:00
< 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:< / dt > < dd > The constructor do not calls it. It is to the algorithm responsability to call it before using the computed datas. < / dd > < / dl >
2018-08-19 06:27:09 -05:00
< p > Referenced by < a class = "el" href = "classKite_1_1NegociateWindow.html#a329dbc5bc549e3fe354996368dbf7113" > NegociateWindow::setGCells()< / a > .< / p >
2018-06-06 11:42:26 -05:00
< / 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 >
2018-08-19 06:27:09 -05:00
< td class = "LFooter" > < small > Generated by doxygen 1.8.5 on Sat Aug 18 2018< / small > < / td >
2018-06-06 11:42:26 -05:00
< 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-2016 UPMC. All rights reserved< / small > < / td >
< / tr >
< / table >
< / body >
< / html >