Exemple #1
0
    def testExpressions(self):

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

        s["e"] = Gaffer.Expression()
        s["e"].setExpression(
            inspect.cleandoc("""
			f = parent["n1"]["user"]["f"]
			b = f.getDisplayWindow()
			b.min -= IECore.V2i( 10 )
			b.max += IECore.V2i( 20 )
			f.setPixelAspect( 0.5 )
			f.setDisplayWindow( b )
			parent["n2"]["user"]["f"] = f
			"""))

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

        self.assertEqual(
            s["n2"]["user"]["f"].getValue(),
            GafferImage.Format(
                IECore.Box2i(IECore.V2i(10, 20), IECore.V2i(120, 130)), 0.5))
Exemple #2
0
    def testSerialiseWithPartialExpressionConnection(self):

        s = Gaffer.ScriptNode()

        s["r"] = GafferImage.ImageReader()
        s["r"]["fileName"].setValue("thisFileDoesNotExist")

        s["n"] = Gaffer.Node()
        s["n"]["user"]["f"] = GafferImage.FormatPlug(
            flags=Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)
        s["n"]["user"]["f"]["displayWindow"].setValue(
            imath.Box2i(imath.V2i(10, 11), imath.V2i(20, 21)))

        # This expression will throw because the ImageReader is referencing
        # an invalid file.
        s["e"] = Gaffer.Expression()
        s["e"].setExpression(
            """parent["n"]["user"]["f"]["pixelAspect"] = parent["r"]["out"]["format"].getPixelAspectRatio()"""
        )

        # Despite that, we should still be able to serialise the script
        # without triggering expression evaluation. This is particularly
        # useful when dispatching a script where the ImageReader is
        # set up to read an image which won't exist until one of the tasks
        # has been executed.

        s2 = Gaffer.ScriptNode()
        s2.execute(s.serialise())
        self.assertEqual(s2["n"]["user"]["f"]["displayWindow"].getValue(),
                         s["n"]["user"]["f"]["displayWindow"].getValue())
Exemple #3
0
    def testDefaultFormat(self):

        text = GafferImage.Text()
        with Gaffer.Context() as c:
            GafferImage.FormatPlug().setDefaultFormat(
                c, GafferImage.Format(100, 200, 2))
            self.assertEqual(text["out"]["format"].getValue(),
                             GafferImage.Format(100, 200, 2))
Exemple #4
0
    def testChildren(self):

        p = GafferImage.FormatPlug()
        self.assertEqual(p.keys(), ["displayWindow", "pixelAspect"])
        self.assertTrue(isinstance(p["displayWindow"], Gaffer.Box2iPlug))
        self.assertTrue(isinstance(p["pixelAspect"], Gaffer.FloatPlug))

        self.assertRaises(RuntimeError, p.addChild, Gaffer.IntPlug())
Exemple #5
0
    def testConstructor(self):

        p = GafferImage.FormatPlug()
        self.assertEqual(p.getName(), "FormatPlug")
        self.assertEqual(p.direction(), Gaffer.Plug.Direction.In)
        self.assertEqual(p.defaultValue(), GafferImage.Format())
        self.assertEqual(p.getValue(), GafferImage.Format())
        self.assertEqual(p.getFlags(), Gaffer.Plug.Flags.Default)

        p = GafferImage.FormatPlug(
            "p", Gaffer.Plug.Direction.Out, GafferImage.Format(100, 200, 2),
            Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)
        self.assertEqual(p.getName(), "p")
        self.assertEqual(p.direction(), Gaffer.Plug.Direction.Out)
        self.assertEqual(p.defaultValue(), GafferImage.Format(100, 200, 2))
        self.assertEqual(p.getValue(), GafferImage.Format(100, 200, 2))
        self.assertEqual(p.getFlags(),
                         Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)
Exemple #6
0
	def testValue( self ) :

		p = GafferImage.FormatPlug()
		v = GafferImage.Format( imath.Box2i( imath.V2i( 11, 12 ), imath.V2i( 100, 200 ) ), 2 )

		p.setValue( v )
		self.assertEqual( p.getValue(), v )
		self.assertEqual( p["displayWindow"].getValue(), v.getDisplayWindow() )
		self.assertEqual( p["pixelAspect"].getValue(), v.getPixelAspect() )
Exemple #7
0
	def testDefaultFormat( self ) :
	
		a = GafferImage.Constant()
		a["format"].setValue( GafferImage.Format( 100, 200 ) )
		
		m = GafferImage.Merge()
		m["in"][1].setInput( a["out"] )
		
		with Gaffer.Context() as c :
			GafferImage.FormatPlug().setDefaultFormat( c, GafferImage.Format( 1000, 2000 ) )
			self.assertEqual( m["out"]["format"].getValue(), GafferImage.Format( 1000, 2000 ) )
	def testSerialisation( self ) :

		s = Gaffer.ScriptNode()
		s["n"] = Gaffer.Node()
		s["n"]["f"] = GafferImage.FormatPlug( "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.FormatPlug.staticTypeId() ) )
	def testInputPlug( self ) :

		n = Gaffer.Node()
		f = GafferImage.FormatPlug("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() )
	def testOffsetSerialize( self ) :

		format = GafferImage.Format( IECore.Box2i( IECore.V2i( -5, -11 ), IECore.V2i( 13, 19 ) ), .5 )
		s = Gaffer.ScriptNode()
		s["n"] = Gaffer.Node()
		s["n"]["f"] = GafferImage.FormatPlug( "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 )
	def testReadOnlySerialisation( self ) :

		s = Gaffer.ScriptNode()
		s["n"] = Gaffer.Node()
		s["n"]["p"] = GafferImage.FormatPlug( 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 ) )
Exemple #12
0
	def testDefaultExpression( self ) :

		s = Gaffer.ScriptNode()
		s["n"] = Gaffer.Node()
		s["n"]["f"] = GafferImage.FormatPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic )

		f = GafferImage.Format( 100, 200, 1 )
		s["n"]["f"].setValue( f )

		s["e"] = Gaffer.Expression()
		s["e"].setExpression( s["e"].defaultExpression( s["n"]["f"], "python" ) )

		self.assertTrue( s["n"]["f"].getInput().node().isSame( s["e"] ) )
		self.assertEqual( s["n"]["f"].getValue(), f )
Exemple #13
0
    def testExpressions(self):

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

        s["e"] = Gaffer.Expression()
        s["e"]["engine"].setValue("python")
        s["e"]["expression"].setValue(
            'f = parent["n1"]["user"]["f"]; b = f.getDisplayWindow(); b.min -= IECore.V2i( 10 ); b.max += IECore.V2i( 20 ); f.setPixelAspect( 0.5 ); f.setDisplayWindow( b ); parent["n2"]["user"]["f"] = f'
        )

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

        self.assertEqual(
            s["n2"]["user"]["f"].getValue(),
            GafferImage.Format(
                IECore.Box2i(IECore.V2i(10, 20), IECore.V2i(120, 130)), 0.5))
Exemple #14
0
    def testDefaultValue(self):

        f1 = GafferImage.Format(2000, 1000, 2.0)
        f2 = GafferImage.Format(64, 128, 1.0)

        p = GafferImage.FormatPlug(defaultValue=f1)
        self.assertEqual(p.getValue(), f1)
        self.assertEqual(p.defaultValue(), f1)
        self.assertTrue(p.isSetToDefault())

        p.setValue(f2)
        self.assertEqual(p.getValue(), f2)
        self.assertEqual(p.defaultValue(), f1)
        self.assertFalse(p.isSetToDefault())

        p.resetDefault()
        self.assertEqual(p.getValue(), f2)
        self.assertEqual(p.defaultValue(), f2)
        self.assertTrue(p.isSetToDefault())