Multi Material prints & soluble supports.
Disabled assert testing for the existence of "printer_technology" fields
as it triggers on loading of legacy AMF/3MF files.
Added a new validation into Print::validation() to verify, that
the non-soluble supports need to be printed with "current" extruder.
This check was already there, though for the global parameters only.
Now the check is performed inside the Print class for the object
override parameters as well.
Improved the Print::validate() handling. The Print::validate() is only
called if the Print::apply() indicates a change, or if the slicing
was executed by the user explicitely (with the "Slice now" button,
with the "Send to octoprint" button, or by switching to the print
path preview).
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.
template.
Reworked naming of the plater exports to not use the output file name
template, but to derive the file name from the first printable object's name.
Fixed error handling: Reimpemented the Perl's "eval" blocks
as try / catch blocks.
Deleted unsafe default copy constructors / operators in Model / ModelObject / ModelInstance / ModelVolume
Fixed some issues with copying the Model / ModelObject / ModelInstance / ModelVolume inside Print::apply()
Fixed some invalidation issues in Print::apply()
Temporarily renamed the Slic3rPE profile directory to Slic3rPE-alpha.
added unique IDs to the Model / ModelObject / ModelVolume objects,
added a copy of Model hierarchy at the Print,
WIP: new Print::apply() method to update the Print's copy of Model,
to update the Print's PrintObjects, to update status of the Print and
PrintObjects, and to possibly stop the background processing.