in Dijkstra:
- Bug: in _propagate, the GCell's bounding box intersection with the search area is now the way to check if the GCell should be treated.
This commit is contained in:
parent
30b636ffb8
commit
fe73199b06
|
@ -345,12 +345,19 @@ namespace Anabatic {
|
||||||
if ((current->getConnexId() == _connectedsId) or (current->getConnexId() < 0)) {
|
if ((current->getConnexId() == _connectedsId) or (current->getConnexId() < 0)) {
|
||||||
for ( Edge* edge : current->getGCell()->getEdges() ) {
|
for ( Edge* edge : current->getGCell()->getEdges() ) {
|
||||||
|
|
||||||
if (edge == current->getFrom()) continue;
|
if (edge == current->getFrom()) {
|
||||||
|
cdebug_log(111,0) << "edge == current->getFrom()" << endl;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
GCell* gneighbor = edge->getOpposite(current->getGCell());
|
GCell* gneighbor = edge->getOpposite(current->getGCell());
|
||||||
Vertex* vneighbor = gneighbor->getObserver<Vertex>(GCell::Observable::Vertex);
|
Vertex* vneighbor = gneighbor->getObserver<Vertex>(GCell::Observable::Vertex);
|
||||||
|
|
||||||
if (not _searchArea.contains(vneighbor->getCenter())) continue;
|
//if (not _searchArea.contains(vneighbor->getCenter())) {
|
||||||
|
if (not _searchArea.intersect(gneighbor->getBoundingBox())) {
|
||||||
|
cdebug_log(111,0) << "not _searchArea.contains(vneighbor->getCenter()):" << _searchArea << endl;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
cdebug_log(111,0) << "| Edge " << edge << endl;
|
cdebug_log(111,0) << "| Edge " << edge << endl;
|
||||||
cdebug_log(111,0) << "+ Neighbor: " << vneighbor << endl;
|
cdebug_log(111,0) << "+ Neighbor: " << vneighbor << endl;
|
||||||
|
@ -462,6 +469,7 @@ namespace Anabatic {
|
||||||
while ( true ) {
|
while ( true ) {
|
||||||
from = target->getFrom();
|
from = target->getFrom();
|
||||||
if ( not from
|
if ( not from
|
||||||
|
or not (target->getGCell()->isMatrix())
|
||||||
or (target->hasGContact(_net))
|
or (target->hasGContact(_net))
|
||||||
or (target->getRpCount())
|
or (target->getRpCount())
|
||||||
or (target->getDegree() > 2)
|
or (target->getDegree() > 2)
|
||||||
|
|
Loading…
Reference in New Issue