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.
with perimeters:
1) Increased accuracy of the contour length parametrization from
float to double, as double should capture the difference of
32bit coord_t with full accuracy (or at least very close).
2) The algorithm to insert the T-joint points into the infill perimeter
contour was improved to avoid inserting duplicate points.
Relies to:
Concentric Fill Start Point - New Feature Request #4948
Feature Request: Archimedean Chords - Option to define direction of travel (Inside-Out or Outside-In) #5214
Fixed some issues in internal anchors of the Adaptive Cubic infill.
The ugly and dangerous implicit casting operators in Line, MultiPoint,
Polyline and Polygon were made explicit.
1) New algorithm for connecting along the perimeters is now applied
to Honeycomb, Hilbert and similar planar filling curves.
2) The old expensive path chaining is not applied if the new algorithm
to connect along the perimeter lines is called afterwards.
1) More accurate trimming of an anchor with another infill line
or by another anchor line.
2) Trimming of very short infill lines, which are not anchored,
by another infill lines.
1) Shortening the anchor lines when touching another infill line
to avoid over extrusion.
2) Reduction of the Intersection structure complexity by referencing
the source lines.
1) Merging of collinear infill lines separated by a thin gap created
by trimming with the boundary polygon.
2) Sorting of the T-joints separately to the left / right of the common
line.
3) Trimming self intersections of the anchor lines.
4) Dropping of very short segments, not anchoring short segments.
limited anchors, while before a full perimeter segment was always
taken if possible.
2) Adapted the line infills (grid, stars, triangles, cubic) to 1).
This also solves a long standing issue of these infills producing
anchors for each sweep direction independently, thus possibly
overlapping and overextruding, which was quite detrimental
in narrow areas.
3) Refactored cubic adaptive infill anchroing algorithm
for performance and clarity.
Hooks are preferably generated in the direction of printed perimeters.
Small refactoring of the algorithm. Some parts of the algorithm are better documented.