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.
1) Fixed a wrong offset when extracting infill lines from the octree.
2) Added a variant for testing triangle in a bounding sphere
when buildind the octree. Currently not used as the box test
is more tight.
3) "Bridging infill" regions are now triangulated and used to densify
the octree as well to support the bridging infill correctly.
1) Octree is built directly from the triangle mesh by checking
overlap of a triangle with an octree cell. This shall produce
a tighter octree with less dense cells.
2) The same method is used for both the adaptive / support cubic infill,
where for the support cubic infill the non-overhang triangles are
ignored.
The AABB tree is no more used.
3) Optimized extraction of continuous infill lines in O(1) instead of O(n^2)