def testSerialisation(self): s = Gaffer.ScriptNode() s["m"] = GafferArnold.ArnoldColorManager() s["m"].loadColorManager("color_manager_ocio") s["m"]["parameters"]["color_space_narrow"].setValue("narrow") s["m"]["parameters"]["color_space_linear"].setValue("linear") s2 = Gaffer.ScriptNode() s2.execute(s.serialise()) self.assertIn("m", s2) self.assertIsInstance(s2["m"], GafferArnold.ArnoldColorManager) self.assertEqual(s2["m"]["parameters"].keys(), s["m"]["parameters"].keys()) self.assertEqual( s2["m"]["parameters"]["color_space_narrow"].getValue(), "narrow") self.assertEqual( s2["m"]["parameters"]["color_space_linear"].getValue(), "linear") self.assertEqual(s2["m"]["out"].globals(), s["m"]["out"].globals())
def __colorManagerCreator(colorManagerName, nodeName): node = GafferArnold.ArnoldColorManager(nodeName) node.loadColorManager(colorManagerName) return node
def test(self): # Loading colorManager = GafferArnold.ArnoldColorManager() colorManager.loadColorManager("color_manager_ocio") for name, plugType, defaultValue in [ ("config", Gaffer.StringPlug, ""), ("color_space_narrow", Gaffer.StringPlug, ""), ("color_space_linear", Gaffer.StringPlug, ""), ]: self.assertIn("config", colorManager["parameters"]) self.assertIsInstance(colorManager["parameters"][name], plugType) self.assertEqual(colorManager["parameters"][name].getValue(), defaultValue) self.assertEqual(colorManager["parameters"][name].defaultValue(), defaultValue) # Affects options = GafferScene.StandardOptions() colorManager["in"].setInput(options["out"]) cs = GafferTest.CapturingSlot(colorManager.plugDirtiedSignal()) options["enabled"].setValue(False) self.assertEqual( {x[0] for x in cs if not x[0].getName().startswith("__")}, { colorManager["in"]["globals"], colorManager["in"], colorManager["out"]["globals"], colorManager["out"] }) del cs[:] colorManager["parameters"]["color_space_linear"].setValue("linear") self.assertEqual( {x[0] for x in cs if not x[0].getName().startswith("__")}, { colorManager["parameters"]["color_space_linear"], colorManager["parameters"], colorManager["out"]["globals"], colorManager["out"] }) # Compute g = colorManager["out"].globals() self.assertIn("option:ai:color_manager", g) cm = g["option:ai:color_manager"] self.assertIsInstance(cm, IECoreScene.ShaderNetwork) self.assertEqual(cm.outputShader().name, "color_manager_ocio") self.assertEqual(cm.outputShader().type, "ai:color_manager") self.assertEqual( cm.outputShader().parameters, IECore.CompoundData({ "color_space_linear": "linear", "color_space_narrow": "", "config": "", })) colorManager["enabled"].setValue(False) self.assertNotIn("ai:color_manager", colorManager["out"].globals())