Allow generating brims for objects inside other object's hole (#8914)

* Allow generating brims for objects inside other object's hole

* Make sure inner brim stays inside holes

(cherry picked from commit 4afbc5bf340835727344bae77572595a4aa2c7ba)

* Merge branch 'main' into bugfox/nested-brim
This commit is contained in:
Noisyfox 2025-03-16 20:07:41 +08:00 committed by GitHub
parent 9e2054278f
commit 69154652ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1010,16 +1010,14 @@ static ExPolygons outer_inner_brim_area(const Print& print,
}else {
outerExpoly = offset_ex(ex_poly_holes_reversed, -brim_offset);
}
append(brim_area_object, diff_ex(outerExpoly, innerExpoly));
append(brim_area_object, intersection_ex(diff_ex(outerExpoly, innerExpoly), ex_poly_holes_reversed));
}
if (!has_inner_brim) {
// BBS: brim should be apart from holes
append(no_brim_area_object, diff_ex(ex_poly_holes_reversed, offset_ex(ex_poly_holes_reversed, -scale_(5.))));
append(no_brim_area_object, diff_ex(ex_poly_holes_reversed, offset_ex(ex_poly_holes_reversed, -no_brim_offset)));
}
if (!has_outer_brim)
append(no_brim_area_object, diff_ex(offset(ex_poly.contour, no_brim_offset), ex_poly_holes_reversed));
if (!has_inner_brim && !has_outer_brim)
append(no_brim_area_object, offset_ex(ex_poly_holes_reversed, -no_brim_offset));
append(holes_object, ex_poly_holes_reversed);
}
}