Prevent round-off errors from drawing one spoke and not the other.
Fixes https://gitlab.com/kicad/code/kicad/issues/13316
This commit is contained in:
parent
c5948de2af
commit
f4bce6079c
|
@ -1302,7 +1302,11 @@ bool ZONE_FILLER::fillCopperZone( const ZONE* aZone, PCB_LAYER_ID aLayer, PCB_LA
|
|||
// Hit-test against other spokes
|
||||
for( const SHAPE_LINE_CHAIN& other : thermalSpokes )
|
||||
{
|
||||
if( &other != &spoke && other.PointInside( testPt, 1, USE_BBOX_CACHES ) )
|
||||
// Hit test in both directions to avoid interactions with round-off errors.
|
||||
// (See https://gitlab.com/kicad/code/kicad/-/issues/13316.)
|
||||
if( &other != &spoke
|
||||
&& other.PointInside( testPt, 1, USE_BBOX_CACHES )
|
||||
&& spoke.PointInside( other.CPoint( 3 ), 1, USE_BBOX_CACHES ) )
|
||||
{
|
||||
if( m_debugZoneFiller )
|
||||
debugSpokes.AddOutline( spoke );
|
||||
|
|
Loading…
Reference in New Issue