Welcome to mirror list, hosted at ThFree Co, Russian Federation.

BuildPlateDecorator.py « Scene « cura - github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 9dd9d3dc24b7d5fe92abe451323a9496c91916a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from UM.Scene.SceneNodeDecorator import SceneNodeDecorator
from cura.Scene.CuraSceneNode import CuraSceneNode


class BuildPlateDecorator(SceneNodeDecorator):
    """Make a SceneNode build plate aware CuraSceneNode objects all have this decorator."""

    def __init__(self, build_plate_number: int = -1) -> None:
        super().__init__()
        self._build_plate_number = build_plate_number
        self.setBuildPlateNumber(build_plate_number)

    def setBuildPlateNumber(self, nr: int) -> None:
        # Make sure that groups are set correctly
        # setBuildPlateForSelection in CuraActions makes sure that no single childs are set.
        self._build_plate_number = nr
        if isinstance(self._node, CuraSceneNode):
            self._node.transformChanged()  # trigger refresh node without introducing a new signal
        if self._node:
            for child in self._node.getChildren():
                child.callDecoration("setBuildPlateNumber", nr)

    def getBuildPlateNumber(self) -> int:
        return self._build_plate_number

    def __deepcopy__(self, memo):
        return BuildPlateDecorator()