Commit Graph

141 Commits

Author SHA1 Message Date
96014b3bb4 Fix of the previous commit (fixing warnings) 2021-02-09 19:46:09 +01:00
e40485fc8a Fixed some clang warnings 2021-02-09 19:23:58 +01:00
1d13fca90e Finishing the "Iron all surfaces" feature.
Fixes Ironing all solid surface does not seem to work #5703
2021-02-09 18:49:33 +01:00
301ac20fa1 Fixing Clang warnings 2 2021-02-08 17:52:29 +01:00
0e014bc4ca EdgeGrid refactoring to support both open and closed contours.
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 6f89da1f39
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.
2021-02-05 11:21:04 +01:00
a6d023429d Fixed some more GCC warnings 2021-01-29 15:17:03 +01:00
f7e26b5655 Fixing GCC warnings 2 2021-01-29 10:46:52 +01:00
c870aeb578 Fixing GCC warnings 1 2021-01-29 10:46:33 +01:00
de7b15c3b0 Slight improvement in Hilbert infill by using constexpr 2021-01-15 09:34:50 +01:00
f79054580f Fixed numerical issue with the new algorithm to connect infill 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.
2021-01-06 12:18:05 +01:00
9d187c06e6 Fixing the infill order for concentric infill to outside-in.
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
2021-01-06 11:05:32 +01:00
5525455bfd Fix of Adaptive cubic infill weird behavior #5633
Enabling reordering of infill paths for Support Cubic and Adaptive Cubic
infill types.
2021-01-04 15:42:23 +01:00
6c459418d6 Fixed wrong generation of Adaptive Cubic and Support Cubic infill when infill extrusion width is set in percent. 2020-12-21 14:14:06 +01:00
4a7269bd0c Merge of Fix proposal for crash on rectilinear #5399 2020-12-08 08:45:16 +01:00
82d69e44cf Gyroid infill: Lowered the threshold to drop infill line segments. 2020-11-25 14:56:11 +01:00
6a8f8c37c7 Fix of Monotonic infill leaves gaps in top infill where rectilinear does not #5259
and Chyba nebo vlastnost výplně Monotonic? #5225
2020-11-25 14:56:11 +01:00
db97a97116 Fix of [2.3.0-alpha4] Crash - several models cause crash when slicing #5208
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.
2020-11-24 16:01:08 +01:00
e611ca1460 Merge of https://github.com/prusa3d/PrusaSlicer/pull/2856
Add aligned rectilinear infill functionality by @m-schubert
Implements [Feature Request] Aligned rectilinear infill #1938
2020-11-21 14:10:17 +01:00
c32a2c0dab Fixed crash in reworked infill anchoring due to numeric issues.
Added some more asserts to EdgeGrid.
2020-11-20 18:47:06 +01:00
b8e02ec498 Added missing includes to fix build on gcc 9 2020-11-20 15:19:49 +01:00
a0b1680f4c Anchoring of sparse infills can now be disabled. 2020-11-20 13:36:58 +01:00
73c10c6ddb fix of OSX build: workaround of non-standard std::optional 2020-11-16 13:44:15 +01:00
68bd7159a6 Fillers: Renamed Rectilinear2 to Rectilinear. 2020-11-16 13:24:57 +01:00
ce42c420b2 Renamed FillRectilinear.cpp,h to FillLine.cpp,h 2020-11-16 13:17:18 +01:00
6ac40c470b Fixing compilation issues. 2020-11-16 13:11:58 +01:00
9c07db8ee0 Fills:
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.
2020-11-16 12:51:51 +01:00
d0c6e25f2f Fillers: Removal of old FillRectilinear, using of "override" instead
of "virtual" where applicable.
2020-11-16 11:16:44 +01:00
dc25f3900f Reworked connection of infill lines to perimeter lines.
Added a new "infill_anchor" parameter.
2020-11-16 10:54:00 +01:00
7d7620353e FillAdaptive:
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.
2020-11-11 16:49:11 +01:00
be37aaf95b FillAdaptive: Handling of a special case when the infill lines
touch at their ends.
2020-11-11 11:51:26 +01:00
d4bd54c416 AdaptiveInfill:
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.
2020-11-10 15:54:32 +01:00
4aba12499c Improvement of AdaptiveFill:
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.
2020-11-10 13:56:12 +01:00
4976ef1194 Fix of the previous Adaptive Cubic infill refactoring
plus couple of fixes of the old logic.
2020-11-06 16:24:15 +01:00
66601320b8 Adaptive Cubic infill with anchors: Trimming anchors with not only
with a neighbor T-joint line, but also with other crossing lines.
2020-11-06 08:56:53 +01:00
e87e859baa 1) Implemented anchoring of infill lines to perimeters with length
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.
2020-11-05 17:32:40 +01:00
9ec5a13381 Merge remote-tracking branch 'remotes/origin/master' into lh_adaptive_infill_hooks 2020-11-03 15:07:38 +01:00
c1d72c89c6 Optimized for reduced memory allocation and clarity. 2020-10-29 11:37:28 +01:00
e771eeee83 Removed FillRectilinear3, it was a dead end. 2020-10-28 13:33:22 +01:00
6e25c2db9d Fixed crash in monotonous infill due to some unexpected pinching
of the inner contour at a single vertical infill line without
pinching the outer contour.
2020-10-27 09:38:51 +01:00
3252f3cdc6 Renamed Line::offset to extend
Don't use unscaled constants! What if the scaling constant changes
in the future?
2020-10-20 09:17:26 +02:00
5b3d1139e2 Fix another compiler warnings 2020-10-12 00:17:17 +02:00
9f83aa4dac Fix compiler warning and fix a bug in connecting infill using hooks 2020-10-11 23:31:59 +02:00
d9ba05fc51 Small rework of connecting infill with perimeters using hooks
Hooks are preferably generated in the direction of printed perimeters.
Small refactoring of the algorithm. Some parts of the algorithm are better documented.
2020-10-11 15:45:50 +02:00
a84ce15326 Refactoring of the adaptive infill using hooks 2020-10-11 03:46:11 +02:00
d1355d0f8d Orient hooks in the direction of the adjacent extrusion line 2020-10-10 22:38:22 +02:00
caecc9283e Rework of hooks adding 2020-10-10 22:25:51 +02:00
fe181fef03 The length of the hook is derived from spacing 2020-10-10 21:34:04 +02:00
05d388483c Renamed monotonous infill to monotonic. 2020-10-05 16:38:28 +02:00
bc857cbc76 Connect infill with perimeters using hooks 2020-10-02 11:15:55 +02:00
6394055ace Connect lines in the adaptive infill using hooks 2020-10-02 04:18:44 +02:00