This function is named as if it could later include other printed pieces, but it is meant to only include pieces that have normal bed adhesion, so not the prime locations.
Contributes to issue CURA-2625.
It's much easier to create, more obvious code, and better approximates the area that we seek to use for our prime location.
Contributes to issue CURA-2625.
The check for collisions is only at the end, and after that it adds the polygon itself. We should keep the code closer together to make it more readable.
Contributes to issue CURA-2625.
Because we have 'areas', 'disallowed_areas', 'self._disallowed_areas', 'disallowed_polygons', and so on. This should reduce the confusion a bit.
Contributes to issue CURA-2625.
This is not used, unless you take multi-threading into account. In that case though, the actual disallowed areas are only updated at the end of this function, and the _has_errors variable is updated right before then as well, so this way the variable is in an invalid state for a smaller amount of time.
Contributes to issue CURA-2625.
These disallowed areas will have to move or get duplicated according to which nozzles are used. Eventually we'll want to compute these with their Minkowski additions only when needed (the skirt size changes), not when the used extruders change. This is also part of an effort to make this disallowed area computation a bit better structured. The behaviour should be the same.
Contributes to issue CURA-2625.
Platform adhesion and shields all go around the support, the expanded support. Support expansion is almost like an expansion of the mesh itself, except that infill wipe distance and such don't apply to it.
Contributes to issue CURA-2407.
This makes it much more clear which settings contribute to the border in what way.
Also fixes the border size definitely.
Contributes to issue CURA-2407.
This fails explicitly when the bed adhesion is unknown, so that any programmer who adds bed adhesion or changes existing bed adhesion enum values will get notified as quickly as possible that this build volume calculation should be updated as well.
Contributes to issue CURA-2407.
It is the size of the border around the build volume that is disallowed, which is more generic than just the size of the bed adhesion. This edge is not only for bed adhesion.
Contributes to issue CURA-2407.
This function is not only about the bed adhesion, but also about the other things that require space around meshes but are not part of the collision box.
Contributes to issue CURA-2407.