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)
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"]))