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:
Tomasz Wlostowski 2022-01-13 00:43:25 +01:00
parent 4d0a317e3d
commit 79fe0bf456
1 changed files with 2 additions and 3 deletions

View File

@ -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( &currentVia, aObstacleVia ); int viaClearance = getClearance( &currentVia, aObstacleVia );
viaCollision = aObstacleVia->Shape()->Collide( currentVia.Shape(), viaClearance, viaCollision = aObstacleVia->PushoutForce( m_currentNode, &currentVia, 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