Inflate with linked holes needs to account for fractured polygons,
otherwise inflating with positive value will create rounded divots where
overlapping fracture lines meet and inflating with negative value will
create spaces between fracture lines.

Calling Simplify before Inflate takes an inordinate amount of time as
the Clipper healing routine is rather slow.  Our own Unfracture is meant
to heal the results of our Fracture routine and works much more quickly.
After healing, we still call the Simplify routine

(cherry picked from commit 9ca35cbcee)
This commit is contained in:
Seth Hillbrand 2022-03-10 09:10:48 -08:00
parent 507d7916ee
commit e278e77314
1 changed files with 1 additions and 1 deletions

View File

@ -717,8 +717,8 @@ void SHAPE_POLY_SET::BooleanIntersection( const SHAPE_POLY_SET& a, const SHAPE_P
void SHAPE_POLY_SET::InflateWithLinkedHoles( int aFactor, int aCircleSegmentsCount,
POLYGON_MODE aFastMode )
{
Unfracture( aFastMode );
Inflate( aFactor, aCircleSegmentsCount );
Simplify( aFastMode );
Fracture( aFastMode );
}