From 54dc91a62326aeb19e988f6e4d4b80e7bb786831 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Wed, 14 Oct 2020 11:05:23 +0100 Subject: [PATCH] Account for segment width in aActual calculation. Fixes https://gitlab.com/kicad/code/kicad/issues/5990 --- libs/kimath/src/geometry/shape_collisions.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libs/kimath/src/geometry/shape_collisions.cpp b/libs/kimath/src/geometry/shape_collisions.cpp index 9cc7d70d01..eb9c7fa60d 100644 --- a/libs/kimath/src/geometry/shape_collisions.cpp +++ b/libs/kimath/src/geometry/shape_collisions.cpp @@ -247,6 +247,9 @@ static inline bool Collide( const SHAPE_CIRCLE& aA, const SHAPE_SEGMENT& aSeg, i if( aMTV ) *aMTV = -pushoutForce( aA, aSeg.GetSeg(), aClearance + aSeg.GetWidth() / 2); + if( aActual ) + *aActual = std::max( 0, *aActual - aSeg.GetWidth() / 2 ); + return true; }