Exemplo n.º 1
0
    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())
Exemplo n.º 2
0
def __colorManagerCreator(colorManagerName, nodeName):

    node = GafferArnold.ArnoldColorManager(nodeName)
    node.loadColorManager(colorManagerName)
    return node
Exemplo n.º 3
0
    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())