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.
A line distancer over previous layer is constructed. It is then queried
during travel planing. If an obstacle is found in the travel path,
the travel algorithm ensures minimal elevation before the obstacle.