Must clear arcs before calling Clipper.
This commit is contained in:
parent
7aebc4b11f
commit
46d423a164
|
@ -1149,7 +1149,7 @@ bool ZONE::BuildSmoothedPoly( SHAPE_POLY_SET& aSmoothedPoly, PCB_LAYER_ID aLayer
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Processing of arc shapes in zones is not yet supported because Clipper can't do boolean
|
// Processing of arc shapes in zones is not yet supported because Clipper can't do boolean
|
||||||
// operations on them. The poly outline must be flattened first.
|
// operations on them. The poly outline must be converted to segments first.
|
||||||
SHAPE_POLY_SET flattened = *m_Poly;
|
SHAPE_POLY_SET flattened = *m_Poly;
|
||||||
flattened.ClearArcs();
|
flattened.ClearArcs();
|
||||||
|
|
||||||
|
|
|
@ -1006,7 +1006,13 @@ void ZONE_FILLER::subtractHigherPriorityZones( const ZONE* aZone, PCB_LAYER_ID a
|
||||||
|
|
||||||
if( aKnockout->GetCachedBoundingBox().Intersects( aZone->GetCachedBoundingBox() ) )
|
if( aKnockout->GetCachedBoundingBox().Intersects( aZone->GetCachedBoundingBox() ) )
|
||||||
{
|
{
|
||||||
aRawFill.BooleanSubtract( *aKnockout->Outline(), SHAPE_POLY_SET::PM_FAST );
|
// Processing of arc shapes in zones is not yet supported because Clipper
|
||||||
|
// can't do boolean operations on them. The poly outline must be converted to
|
||||||
|
// segments first.
|
||||||
|
SHAPE_POLY_SET outline = *aKnockout->Outline();
|
||||||
|
outline.ClearArcs();
|
||||||
|
|
||||||
|
aRawFill.BooleanSubtract( outline, SHAPE_POLY_SET::PM_FAST );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue