router: use VIA::PushoutForce() for via push force calculation in the shove algorithm
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10317
This commit is contained in:
parent
4d0a317e3d
commit
79fe0bf456
|
@ -1012,8 +1012,7 @@ SHOVE::SHOVE_STATUS SHOVE::onCollidingVia( ITEM* aCurrent, VIA* aObstacleVia )
|
||||||
const VIA& currentVia = currentLine->Via();
|
const VIA& currentVia = currentLine->Via();
|
||||||
int viaClearance = getClearance( ¤tVia, aObstacleVia );
|
int viaClearance = getClearance( ¤tVia, aObstacleVia );
|
||||||
|
|
||||||
viaCollision = aObstacleVia->Shape()->Collide( currentVia.Shape(), viaClearance,
|
viaCollision = aObstacleVia->PushoutForce( m_currentNode, ¤tVia, mtvVia );
|
||||||
&mtvVia );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( aCurrent->OfKind( ITEM::SOLID_T ) )
|
else if( aCurrent->OfKind( ITEM::SOLID_T ) )
|
||||||
|
@ -1024,7 +1023,7 @@ SHOVE::SHOVE_STATUS SHOVE::onCollidingVia( ITEM* aCurrent, VIA* aObstacleVia )
|
||||||
|
|
||||||
// fixme: we may have a sign issue in Collide(CIRCLE, LINE_CHAIN)
|
// fixme: we may have a sign issue in Collide(CIRCLE, LINE_CHAIN)
|
||||||
if( viaCollision )
|
if( viaCollision )
|
||||||
mtv = mtvVia;
|
mtv = -mtvVia;
|
||||||
else if ( lineCollision )
|
else if ( lineCollision )
|
||||||
mtv = -mtvLine;
|
mtv = -mtvLine;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue