These groups were not considered because they are not sliceable. Their children are sliceable, so I could just use a DepthFirstIterator. However their group computes the AABB correctly also, so taking the AABB of the group is more efficient.
Contributes to issue CURA-7118.
The convex hulls for groups are already constructed from the convex hull of the convex hulls of all of their children. Since the children's convex hulls are already scaled, we don't want to scale it again for the group.
Contributes to issue CURA-7118.
This comes at some performance cost, sadly. This is necessary because the convex hull of every node may change if the transformation of any other node changes, since that transformation may adjust the total bounding box of the mesh group.
Contributes to issue CURA-7118.
This is either the centre of the bounding box around all printable nodes in the scene, or the centre of the bounding box of the most-ancestral node that is not yet the scene root itself in one-at-a-time mode.
Contributes to issue CURA-7118.
A small positive (>100) value is correct. It needs to compensate by increasing the size, usually. If you need to compensate by making it smaller, that means that the material would expand when cooling, which is very rare.
Contributes to issue CURA-7118.
We have a change now that requires a version upgrade. This triggers all profiles to update for the user, and we must update accordingly in the built-in profiles.
Contributes to issue CURA-7118.
We're changing the unit of one of our settings, so we need to implement a version upgrade to change that for our users in case they changed this setting themselves.
Contributes to issue CURA-7118.
So now if the model is grown due to shrinkage compensation, its collision area will also grow. This prevents objects adjacent to each other from hitting each other.
Contributes to issue CURA-7118.
We'll now actually compensate for the shrinkage. That means that the setting needs to become user-visible. We need to make that experience a bit more user-friendly.
The setting is now also global, with a resolve function. That means that the user can't change this per extruder any more, because the scale factor applied in the engine can only be global. The resolve function means that profiles can still apply a per-extruder value but this value gets resolved with other extruders' values.
Contributes to issue CURA-7118.
This will now result in a job being put in the queue but not automatically printing, but there is at least a workaround for that.
Fixes Sentry issue CURA-14A.