Exemple #1
0
    def testEnableBehaviour(self):

        n = Gaffer.DependencyNode()
        self.assertEqual(n.enabledPlug(), None)

        m = GafferTest.MultiplyNode()
        self.assertEqual(m.enabledPlug(), None)
        self.assertEqual(m.correspondingInput(m["product"]), None)

        class EnableAbleNode(Gaffer.DependencyNode):
            def __init__(self, name="EnableAbleNode"):

                Gaffer.DependencyNode.__init__(self, name)

                self.addChild(
                    Gaffer.BoolPlug("enabled", Gaffer.Plug.Direction.In, True))
                self.addChild(Gaffer.IntPlug("aIn"))
                self.addChild(Gaffer.IntPlug("bIn"))
                self.addChild(Gaffer.IntPlug("aOut",
                                             Gaffer.Plug.Direction.Out))
                self.addChild(Gaffer.IntPlug("bOut",
                                             Gaffer.Plug.Direction.Out))
                self.addChild(Gaffer.IntPlug("cOut",
                                             Gaffer.Plug.Direction.Out))

            def enabledPlug(self):

                return self["enabled"]

            def correspondingInput(self, output):

                if output.isSame(self["aOut"]):

                    return self["aIn"]

                elif output.isSame(self["bOut"]):

                    return self["bIn"]

                return None

        e = EnableAbleNode()
        self.assertTrue(e.enabledPlug().isSame(e["enabled"]))
        self.assertTrue(e.correspondingInput(e["aOut"]).isSame(e["aIn"]))
        self.assertTrue(e.correspondingInput(e["bOut"]).isSame(e["bIn"]))
        self.assertEqual(e.correspondingInput(e["enabled"]), None)
        self.assertEqual(e.correspondingInput(e["aIn"]), None)
        self.assertEqual(e.correspondingInput(e["bIn"]), None)
        self.assertEqual(e.correspondingInput(e["cOut"]), None)
Exemple #2
0
    def testParentDirtinessSignalledAfterAllChildren(self):

        n = Gaffer.DependencyNode()
        n["i"] = Gaffer.FloatPlug()
        n["o"] = Gaffer.V3fPlug(direction=Gaffer.Plug.Direction.Out)

        for c in n["o"].children():
            c.setInput(n["i"])

        cs = GafferTest.CapturingSlot(n.plugDirtiedSignal())
        n["i"].setValue(10)

        self.assertEqual(len(cs), 5)
        self.assertTrue(cs[0][0].isSame(n["i"]))
        self.assertTrue(cs[1][0].isSame(n["o"]["x"]))
        self.assertTrue(cs[2][0].isSame(n["o"]["y"]))
        self.assertTrue(cs[3][0].isSame(n["o"]["z"]))
        self.assertTrue(cs[4][0].isSame(n["o"]))