Example #1
0
    def testHashRepeatability(self):

        p = GafferImage.AtomicFormatPlug()
        p.setValue(GafferImage.Format(1920, 1080))

        allHashes = set()
        for i in range(0, 1000):
            allHashes.add(p.hash().toString())

        self.assertEqual(len(allHashes), 1)
Example #2
0
    def testExpressions(self):

        s = Gaffer.ScriptNode()
        s["n1"] = Gaffer.Node()
        s["n2"] = Gaffer.Node()
        s["n1"]["user"]["f"] = GafferImage.AtomicFormatPlug(
            flags=Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)
        s["n2"]["user"]["f"] = GafferImage.AtomicFormatPlug(
            flags=Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)

        s["e"] = Gaffer.Expression()
        s["e"].setExpression(
            'f = parent["n1"]["user"]["f"]; b = f.getDisplayWindow(); b.setMin( b.min() - imath.V2i( 10 ) ); b.setMax( b.max() + imath.V2i( 20 ) ); f.setPixelAspect( 0.5 ); f.setDisplayWindow( b ); parent["n2"]["user"]["f"] = f'
        )

        s["n1"]["user"]["f"].setValue(
            GafferImage.Format(
                imath.Box2i(imath.V2i(20, 30), imath.V2i(100, 110)), 1))

        self.assertEqual(
            s["n2"]["user"]["f"].getValue(),
            GafferImage.Format(
                imath.Box2i(imath.V2i(10, 20), imath.V2i(120, 130)), 0.5))
Example #3
0
    def testInputPlug(self):

        n = Gaffer.Node()
        f = GafferImage.AtomicFormatPlug("f",
                                         direction=Gaffer.Plug.Direction.In,
                                         flags=Gaffer.Plug.Flags.Default)
        n.addChild(f)
        s = Gaffer.ScriptNode()
        s.addChild(n)

        with s.context():
            f1 = n["f"].getValue()

        # The default value of any input plug should be it's real value regardless of whether it is empty or not.
        self.assertEqual(f1, GafferImage.Format())
Example #4
0
    def testSerialisation(self):

        s = Gaffer.ScriptNode()
        s["n"] = Gaffer.Node()
        s["n"]["f"] = GafferImage.AtomicFormatPlug(
            "testPlug",
            defaultValue=GafferImage.Format(10, 5, .5),
            flags=Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)

        se = s.serialise()

        s2 = Gaffer.ScriptNode()
        s2.execute(se)

        self.failUnless(s2["n"]["f"].isInstanceOf(
            GafferImage.AtomicFormatPlug.staticTypeId()))
Example #5
0
    def testOffsetSerialize(self):

        format = GafferImage.Format(
            imath.Box2i(imath.V2i(-5, -11), imath.V2i(13, 19)), .5)
        s = Gaffer.ScriptNode()
        s["n"] = Gaffer.Node()
        s["n"]["f"] = GafferImage.AtomicFormatPlug(
            "testPlug",
            defaultValue=format,
            flags=Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)

        se = s.serialise()

        s2 = Gaffer.ScriptNode()
        s2.execute(se)

        self.assertEqual(s2["n"]["f"].getValue(), format)
Example #6
0
    def testReadOnlySerialisation(self):

        s = Gaffer.ScriptNode()
        s["n"] = Gaffer.Node()
        s["n"]["p"] = GafferImage.AtomicFormatPlug(
            flags=Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)
        s["n"]["p"].setValue(
            GafferImage.Format(IECore.Box2i(IECore.V2i(0), IECore.V2i(10)),
                               2.0))
        s["n"]["p"].setFlags(Gaffer.Plug.Flags.ReadOnly, True)

        s2 = Gaffer.ScriptNode()
        s2.execute(s.serialise())

        self.assertEqual(
            s2["n"]["p"].getValue(),
            GafferImage.Format(IECore.Box2i(IECore.V2i(0), IECore.V2i(10)),
                               2.0))
        self.assertTrue(s2["n"]["p"].getFlags(Gaffer.Plug.Flags.ReadOnly))
Example #7
0
    def testGetAndSetEmptyFormat(self):

        p = GafferImage.AtomicFormatPlug()
        p.setValue(GafferImage.Format())
        self.assertEqual(p.getValue(), GafferImage.Format())