fixes#7341
CGAL upstream CMake config will lock in the major version if installed as a distro package and will not provide any version info if compiled and installed from upstream. As of this commit, PrusaSlicer can be built with CGAL 4.13.2, and 5.0 but there is no universal way to specify the minimum version that would work with static dependencies and linux packages.
sorry #4912
Fixed no way of leaving the "export G-code" dialog loop.
Improved the error message by explaining that some characters
are not allowed by a FAT file system.
Now that libcurl is used for URL host substitution,
we want to make sure that the new code compiles on Windows only
because that is where we need to do the URL host substitution
due to Windows 10/11 mDNS resolve issues and
because we have a control on the libcurl version statically linked
on Windows, so we are sure the URL API is available.
1) Areas inside modifier meshes were ironed multiple times.
2) Ironing areas were not properly merged.
Layer::lslices were not always properly merged with modifier meshes
applied, which lead to the ironed surface being split and not fully
ironed, as there were artificial gaps created between regions as if
they were covered by perimeters (we don't iron over perimeters).
Fixes Fan starts at first layer, even though disabled for first layer. #7232
This is a regression due to cooling refactoring, which cooled
support layers independently from object layers. The bug here was that
all the raft layers were cooled together with the first object layer.
Previously, the Cursor (Sphere or Circle) was repeatedly applied between two mouse positions, creating brushstrokes with ripples on the edges between those mouse positions.
Now, a single capsule (3D or 2D) is applied between those mouse positions, which creates brushstrokes without these ripples.
reload_scene() call were followed by update(). It synchronizes back-end with front-end and then it calls reload_scene() again.
However in SLA mode reload_scene() expects the back-end to be synchronized with front-end, thus we get asserts that we all have ignored for a long time.
So, we call ObjectList::update_info_items() after the call of update() where reload_scene() is already called and GLCanvas3D::is_object_sinking() will return correct value