points for projects with instances.
3mf does not support a concept of instances, therefore all the instances
of all objects are indexed in a linear fashion. However, the 3mf files
index the layer height profiles and the SLA support points with
the object ID. The loading was fixed to take the different indexing
into account.
For some reason, showing an error message box from inside the right panel
in place editor handler lealds to crashes at least on Windows.
Postpoing the dialog with a CallAfter cures that crash.
There was a bug in unit tests that led to generating the wipe tower with non-normalized preset.
This caused out-of-bounds access into max_layer_height vector in fill_wipe_tower_partitions.
The problem surfaced in https://github.com/prusa3d/PrusaSlicer/issues/2288.
I quickly patched additional normalization of the preset to prevent this from happening.
Also, an assert in the same function turned out to trip on one of the tests.
This one was commented out for now and will (hopefully) be looked into later.
Function Print::apply_config was renamed to apply_config_perl_tests_only so everyone
sees its current purpose and does not mistake it for the more important Print::apply.
If a 3mf or amf file does not contain slicer's profile, and if it
looks like a multi-part object, slicer shall ask for loading it
as a multi-part object.
Export of the names of the SLA profiles was performed into the config bundle
for SLA profiles, which were nop set. A safe method is now used,
which stores an empty string in such a case.
Currently the qhull includes are referenced absolutely, but the compiler
is always called with the src directory in the include path and so it
should be safe to specify a more generic path.
expat.h is (in most Linux distributions, at least) located directly in
/usr/include. Because the compiler is called with the src directory in
the include path, the include of <expat/expat.h> happens to work but
results in the bundled version of the header being used instead of the
system version.