* New: In Katana::TrackCost, the TrackElement and it's optional symmetric are now kept as attribute of a TrackCost. The cost is completly computed inside the constructor. TrackCost now support any mix of symmetric event and wide segments. The cost is now computed by adding directly to the current one instead of creating secondaries that are merged afterwards. As a consequence, remove all copy construction and merge capabilities. All the various methods used to compute the cost are renamed "addOverlapcost()" in all the various related objects. As a reminder, the overal cost method call is as follow: 1. TrackCost constructor on a TrackElement. 2. Call TrackElement::addOverlapcost() 3. For all Track under the TrackElement, call Track::addOverlapCost() 4. For all other TrackElement intersecting with the overlap interval call: TrackElement::incOverlapCost() 5. The callback overlap function for segments is called (defined in NegociateWidow). Don't confuse: - TrackElement::addOverlapCost(), which compute the cost of inserting the segment inside a track (or a set of). - TrackElement::incOverlapCost(), which compute the cost of overlaping with this already inserted segment. It is the other way around of the previous one. * Change: In Katana::SegmentFsm, use a vector of pointer to TrackCost instead of an object to avoid copy construction. |
||
---|---|---|
.. | ||
plugins | ||
tools | ||
Alliance.py | ||
CMakeLists.txt | ||
placeandroute.py | ||
ref.py |