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.
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)
Ulocking the "anisotropic" scaling checkbox will bake the transformation
into meshes to allow for scaling in world axes.
Optimized and templated the stl_transform functions, now also available for 3x3 matrices.
The Canvas3D::reload_scene() now maintains selection even if all volumes of an instance changed their IDs.
* to build the tests on windows, you need vs2015 or 2017 with "CRT SDK"
so you have to also build all deps & slic3r against this compiler.
* I didn't tried to build the tests on linux/osx, maybe some cmkae changes are needed.
* I added a slic3r_lib project to be able to link statically the test against all the slic3r project.
* tests will need many changes to be able to use the new codebase. only the ones in the cmakelists are done right now.
* some test may be in error, because the behavior of the test vs slic3r isn't defined well enough to make a decision of which one is wrong.
- reworked thin_variable_width (discretization into segments of constant width)
- bugfix taper_ends
- add setting thin_walls_overlap to control the perimeter/thin wall overlap
Reworked command line processing for the GUI slic3r. Now the config is loaded first, then the model files (also the configs from AMF/3MF are applied), and lastly the free standing parameters are applied.
Fixed unescaping for command line parameters. The string parameters are now not unescaped, string vector parameters are unescaped only if enquoted.
Tab::load_current_preset() - disabled CallAfter for predictability. With CallAfter, it was difficult to call the method in sequence with other methods.
Fixed some missing ->Destroy() calls on dialogs created from MainFrame
Fixed some compiler warnings.
Changes in SupportMaterial.cpp, TriangleMesh.cpp and 01_trianglemesh.t
are yet to be merged.
WIP: Refactoring of layer height editing.
Removed layer_height_ranges from PrintObject, as the Print/PrintObject
now hold their copies of Model/ModelObject.