During layer change, instead of generating the gcode, generate a placeholder tag. Then at the end of layer processing replace this tag with a ramping travel move.
This solves the issue, that one does not know the starting point of the current layer where the layer change gcode would be originally generate.
The ramping layer changes uses smoothing of the ramping travel. Also it is adjusted in such a way that it increases the ramp angle when the travel is too short, to always reach the next layer.
The warning was there because std::string_view::data() returns a pointer to a buffer that is not necessarily null-terminated. So, strncpy shouldn't be used on non-null-terminated buffers, but we always relied only on the buffer length, so it couldn't cause any issues.
The temporary variable used for reordering ExPolygons wasn't cleared, and it contained empty ExPolygons from previous reordering. This caused those empty ExPolygons replaced actual ExPolygons for infill.
Another issue was that m_fill_expolygons was reordered, but m_fill_expolygons_bboxes were left untouched.
Split Integrals constructor to accept polygon and polygons.
Add operator+(Integrals, Integrals).
Make sure extrusion extraction for integral calculation throws in invalid case.
In SupportSpotsGenerator there is a need to compute integral over
extrusions.
The mentioned function is slow for this use case. As it solves a harder
problem.
It is better to iterate the extrusion lines directly.
"filament_vendor" parameter isn't used neither by the UI nor by the slicing core,
therefore erase it from config apply to avoid redundant "dirty" parameter in loaded preset.
Description of bug:
During fixing of SPE-1845 there was made changes with 7280b2a0 commit.
But those changes destroyed a initial behavior. All presets are selected correctly now,
but user doesn't receive a notification about temporary installed presets, if any was.
Bug description: If all new presets are actualized from current update
but some of them isn't installed (doesn't selected in ConfigWizard),
and user try to load 3mf with those non-installed presets, than first visible preset is selected
instead of temporary installed preset.
+ Update dirty state for edited preset only it's needed.
Wipe tower with "no_sparse_layers" enabled was completely broken.
This commit introduces necessary changes to WipeTowerIntegration.cpp
for it to work properly.