de-boostization: Fixed incorrect zone fill clearance when overlapped with another zone of higher priority.

This commit is contained in:
Jean-Pierre Charras 2015-07-27 21:47:49 +02:00 committed by Maciej Suminski
parent 1d7e49a45c
commit 1d26647a60
1 changed files with 6 additions and 4 deletions

View File

@ -49,8 +49,9 @@
void ZONE_CONTAINER::TransformOutlinesShapeWithClearanceToPolygon( void ZONE_CONTAINER::TransformOutlinesShapeWithClearanceToPolygon(
SHAPE_POLY_SET& aCornerBuffer, int aMinClearanceValue, bool aUseNetClearance ) SHAPE_POLY_SET& aCornerBuffer, int aMinClearanceValue, bool aUseNetClearance )
{ {
// Creates the zone outline polygon (with linked holes if any) // Creates the zone outline polygon (with holes if any)
BuildFilledSolidAreasPolygons( NULL, &aCornerBuffer ); SHAPE_POLY_SET polybuffer;
BuildFilledSolidAreasPolygons( NULL, &polybuffer );
// add clearance to outline // add clearance to outline
int clearance = aMinClearanceValue; int clearance = aMinClearanceValue;
@ -65,9 +66,10 @@ void ZONE_CONTAINER::TransformOutlinesShapeWithClearanceToPolygon(
// Calculate the polygon with clearance // Calculate the polygon with clearance
// holes are linked to the main outline, so only one polygon is created. // holes are linked to the main outline, so only one polygon is created.
if( clearance ) if( clearance )
aCornerBuffer.Inflate( clearance, 16 ); polybuffer.Inflate( clearance, 16 );
aCornerBuffer.Fracture( ); polybuffer.Fracture();
aCornerBuffer.Append( polybuffer );
} }