for offset2() with clear meaning.
New ClipperUtils functions: expand(), shrink() as an alternative
for offset() with clear meaning.
All offset values for the new functions are positive.
Various offsetting ClipperUtils (offset, offset2, offset2_ex) working
over Polygons were marked as unsafe, sometimes producing invalid output
if called for more than one polygon. These functions were reworked
to offset polygons one by one. The new functions working over Polygons
shall work the same way as the old safe ones working over ExPolygons,
but working with Polygons shall be computationally more efficient.
Improvements in FDM support generator:
1) For both grid and snug supports: Don't filter out supports for which
the contacts are completely reduced by support / object XY separation.
2) Rounding / merging of supports using the closing radius parameter is
now smoother, it does not produce sharp corners.
3) Snug supports: When calculating support interfaces, expand the projected
support contact areas to produce wider, printable and more stable interfaces.
4) Don't reduce support interfaces for snug supports for steep overhangs,
that would normally not need them. Snug supports often produce very
narrow support interface regions and turning them off makes the support
interfaces disappear.
1) Changed the name of the variable "brim_offset" to "brim_separation"
for clarity.
2) Added legacy conversion after loading an old 3MF that does not define
then new "brim_separation" variable: The "brim_separation" is being
filled in with the "elefant_foot_compensation" value to produce
equal brim separation to the old PrusaSlicer that saved that 3MF file.
1) Removed the already commented-out scaling / unscaling when doing
"safe offsetting"
2) Removed some of the "safe offsetting" at calls where it never was used.
3) Reworked Clipper & ClipperUtils to pass Polygons / ExPolygons / Surfaces
as input parameters without conversion to ClipperLib::Paths. This
should save a lot of memory allocation and copying.
4) Reworked conversions from ClipperLib::Paths & PolyTree to Polygons /
ExPolygons to use the move operator to avoid many unnecessary allocations.
5) Reworked some "union with safe ofsetting" to "offset_ex", which should
be cheaper.
Squashed commit of the following:
commit 4e13a8fe19abcc9aae39a9bc4c7953a743196504
Merge: 6ae766409 6f89da1f3
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Fri Feb 5 11:19:35 2021 +0100
Merge remote-tracking branch 'remotes/origin/master' into vb_edgegrid_open_lines
commit 6ae76640942269993c942861f0444088843e3fa1
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Fri Feb 5 11:14:48 2021 +0100
EdgeGrid enhancement to accept both the open and closed lines.
commit 36a5efcd558bd5fd5f46b5f561387a2c73221553
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Fri Feb 5 10:52:14 2021 +0100
EdgeGrid improvements: Documentation, one bug fix after recent refactoring.
commit 6f89da1f394561c7338676a1c8e8e72faeb85aad
Author: tamasmeszaros <meszaros.q@gmail.com>
Date: Thu Feb 4 20:31:50 2021 +0100
Disable libicu for boost-regex
Should have been disabled from the beginning
commit ffc77b1a72a0be9b5622fd33defeebb24bf07b34
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Thu Feb 4 18:40:33 2021 +0100
EdgeGrid: Annotated those methods that do not work with open contours.
commit 8039a645b4bf0c46c99b90a9c34e7189d7442f86
Author: Vojtech Bubnik <bubnikv@gmail.com>
Date: Thu Feb 4 18:28:21 2021 +0100
Refactoring of EdgeGrid structure to support both closed and open lines.