Modified BackendPlugin.py and StartSliceJob.py to allow plugins to decide when they should be used. The 'usePlugin'
method was added to enable a plugin to return a boolean indicating if it should be used or not, e.q.: start up and
connect to the services.
Contributes to CURA-11031
ConvexHullDecorator is setup at node creation, so I can't see a way that this part of code is called. Moreover, it would add a decorator for a layer plan node, which actually leads to a crash.
CURA-10004
Issue before was the following: when placing objects within a grid cell there is a margin around the object. This margin comes from both the integer rounding of the cell and the defined min distance between objects. When trying to place object near the buildplate border we marked any cell that is not fully within the buildplate area as an invalid cell to place objects in. This was however too strict; there is the aforementioned margin around the object, and if only this margin would be outside the buildplate it is perfectly fine to place object in that cell.
CURA-7951
So instead of always falling back to generic brand and generic color,
we first try to fall back to generic color with the same brand for qualities
CURA-10953
Issue before was the following: when placing objects within a grid cell there is a margin around the object. This margin comes from both the integer rounding of the cell and the defined min distance between objects. When trying to place object near the buildplate border we marked any cell that is not fully within the buildplate area as an invalid cell to place objects in. This was however too strict; there is the aforementioned margin around the object, and if only this margin would be outside the buildplate it is perfectly fine to place object in that cell.
CURA-7951
Refactor object reload to better handling of 3mf files
Make a single file read for all objects from that file, and then
replace the objects in scene to the new ones, matching by name.
This is also required for an Uranium update to handle the automatic
file reload when a file change is detected.
3mf Files can have multiple objects in them. When that is the case,
and the file is updated, all objects from that file where being
replaced by the first object in the file.
Cura lowers the available build volume height when more than 1 model is loaded. This count should include grouped nodes as one (since they will be slice as one and thus not affect the gantry), and should not include modifier meshes or support meshes (since support-meshes are always printed with the first model anyway).
Fixes https://github.com/Ultimaker/Cura/issues/16566