Ejemplo n.º 1
0
    def __init__(self, name="SystemCommand"):

        Gaffer.ExecutableNode.__init__(self, name)

        self["command"] = Gaffer.StringPlug()
        self["substitutions"] = Gaffer.CompoundDataPlug()
        self["environmentVariables"] = Gaffer.CompoundDataPlug()
    def _setupPlugs(parent_plug):

        if "deadline" in parent_plug:
            return

        parent_plug["deadline"] = Gaffer.Plug()
        parent_plug["deadline"]["comment"] = Gaffer.StringPlug()
        parent_plug["deadline"]["department"] = Gaffer.StringPlug()
        parent_plug["deadline"]["pool"] = Gaffer.StringPlug()
        parent_plug["deadline"]["secondaryPool"] = Gaffer.StringPlug()
        parent_plug["deadline"]["group"] = Gaffer.StringPlug()
        parent_plug["deadline"]["priority"] = Gaffer.IntPlug(defaultValue=50, minValue=0, maxValue=100)
        parent_plug["deadline"]["taskTimeout"] = Gaffer.IntPlug(defaultValue=0, minValue=0)
        parent_plug["deadline"]["enableAutoTimeout"] = Gaffer.BoolPlug(defaultValue=False)
        parent_plug["deadline"]["concurrentTasks"] = Gaffer.IntPlug(defaultValue=1, minValue=1, maxValue=16)
        parent_plug["deadline"]["machineLimit"] = Gaffer.IntPlug(defaultValue=0, minValue=0)
        parent_plug["deadline"]["machineList"] = Gaffer.StringPlug()
        parent_plug["deadline"]["isBlackList"] = Gaffer.BoolPlug(defaultValue=False)
        parent_plug["deadline"]["limits"] = Gaffer.StringPlug()
        parent_plug["deadline"]["onJobComplete"] = Gaffer.StringPlug()
        parent_plug["deadline"]["onJobComplete"].setValue("Nothing")
        parent_plug["deadline"]["submitSuspended"] = Gaffer.BoolPlug(defaultValue=False)
        parent_plug["deadline"]["dependencyMode"] = Gaffer.StringPlug()
        parent_plug["deadline"]["dependencyMode"].setValue("Auto")
        parent_plug["deadline"]["auxFiles"] = Gaffer.StringVectorDataPlug(defaultValue=IECore.StringVectorData())
        parent_plug["deadline"]["deadlineSettings"] = Gaffer.CompoundDataPlug()
        parent_plug["deadline"]["environmentVariables"] = Gaffer.CompoundDataPlug()
Ejemplo n.º 3
0
	def __init__( self, name = "SystemCommand" ) :

		GafferDispatch.TaskNode.__init__( self, name )

		self["command"] = Gaffer.StringPlug()
		self["shell"] = Gaffer.BoolPlug( defaultValue = True )
		self["substitutions"] = Gaffer.CompoundDataPlug()
		self["environmentVariables"] = Gaffer.CompoundDataPlug()
Ejemplo n.º 4
0
    def testTransformPlugData(self):

        p = Gaffer.CompoundDataPlug()

        m1 = p.addMember("a", Gaffer.TransformPlug())
        m1["value"]["translate"].setValue(IECore.V3f(1, 2, 3))
        self.failUnless(isinstance(m1, Gaffer.ValuePlug))

        d, n = p.memberDataAndName(m1)
        self.assertEqual(
            d,
            IECore.M44fData(
                IECore.M44f([
                    1,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0,
                    1,
                    2,
                    3,
                    1,
                ])))
        self.assertEqual(n, "a")
Ejemplo n.º 5
0
    def testSetPlug(self):

        n = Gaffer.Node()
        n["user"]["p1"] = Gaffer.CompoundDataPlug()
        n["user"]["p2"] = Gaffer.CompoundDataPlug()

        m1 = n["user"]["p1"].addMember("test", 10)
        m2 = n["user"]["p2"].addMember("test", 10)

        w = GafferUI.CompoundDataPlugValueWidget(n["user"]["p1"])
        w1 = w.childPlugValueWidget(m1, lazy=False)
        self.assertTrue(w1.getPlug().isSame(m1))

        w.setPlug(n["user"]["p2"])
        w2 = w.childPlugValueWidget(m2, lazy=False)
        self.assertTrue(w2.getPlug().isSame(m2))
Ejemplo n.º 6
0
    def testCreateWithValuePlug(self):

        p = Gaffer.CompoundDataPlug()

        v = Gaffer.IntPlug(minValue=-10, maxValue=10)
        m1 = Gaffer.NameValuePlug("a",
                                  v,
                                  flags=Gaffer.Plug.Flags.Default
                                  | Gaffer.Plug.Flags.Dynamic)
        p.addChild(m1)
        self.assertTrue(v.parent().isSame(m1))
        self.assertEqual(m1["value"].getName(), "value")
        self.assertEqual(m1.getFlags(),
                         Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)

        self.assertEqual(p.memberDataAndName(m1), (IECore.IntData(0), "a"))

        v2 = Gaffer.IntPlug(defaultValue=5, minValue=-10, maxValue=10)
        m2 = Gaffer.NameValuePlug("b", v2, True, name="blah")
        p.addChild(m2)
        self.assertTrue(v2.parent().isSame(m2))
        self.assertEqual(m2["value"].getName(), "value")
        self.assertEqual(m2.getFlags(), Gaffer.Plug.Flags.Default)

        self.assertEqual(p.memberDataAndName(m2), (IECore.IntData(5), "b"))
Ejemplo n.º 7
0
    def __init__(self, name="PythonCommand"):

        GafferDispatch.ExecutableNode.__init__(self, name)

        self["command"] = Gaffer.StringPlug()
        self["variables"] = Gaffer.CompoundDataPlug()
        self["sequence"] = Gaffer.BoolPlug()
Ejemplo n.º 8
0
			def __init__( self, name = "SectionedTestNode" ) :
			
				Gaffer.Node.__init__( self, name )
			
				self["p"] = Gaffer.CompoundDataPlug()
				self["p"].addMember( "test1", IECore.IntData( 10 ), "test1", Gaffer.Plug.Flags.Default )
				self["p"].addOptionalMember( "test2", IECore.IntData( 20 ), "test2", Gaffer.Plug.Flags.Default )
Ejemplo n.º 9
0
    def testTransformPlugData(self):

        p = Gaffer.CompoundDataPlug()

        m1 = Gaffer.NameValuePlug("a", Gaffer.TransformPlug())
        p.addChild(m1)
        m1["value"]["translate"].setValue(imath.V3f(1, 2, 3))
        self.assertIsInstance(m1, Gaffer.ValuePlug)

        d, n = p.memberDataAndName(m1)
        self.assertEqual(
            d,
            IECore.M44fData(
                imath.M44f(
                    1,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0,
                    1,
                    2,
                    3,
                    1,
                )))
        self.assertEqual(n, "a")
Ejemplo n.º 10
0
    def testBoxPromotion(self):

        s = Gaffer.ScriptNode()

        s["b"] = Gaffer.Box()
        s["b"]["n"] = Gaffer.Node()
        s["b"]["n"]["p"] = Gaffer.CompoundDataPlug(
            flags=Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic)

        p = s["b"].promotePlug(s["b"]["n"]["p"], asUserPlug=False)
        p.setName("p")

        def assertPreconditions(script):

            self.assertEqual(script["b"]["n"]["p"].keys(), [])
            self.assertEqual(script["b"]["p"].keys(), [])
            self.assertTrue(script["b"]["n"]["p"].getInput().isSame(
                script["b"]["p"]))

        def assertPostconditions(script):

            self.assertEqual(script["b"]["p"].keys(), ["test"])
            self.assertEqual(script["b"]["n"]["p"].keys(), ["test"])

            self.assertEqual(script["b"]["p"]["test"].keys(),
                             ["name", "value"])
            self.assertEqual(script["b"]["n"]["p"]["test"].keys(),
                             ["name", "value"])

            self.assertTrue(script["b"]["n"]["p"].getInput().isSame(
                script["b"]["p"]))
            self.assertTrue(script["b"]["n"]["p"]["test"].getInput().isSame(
                script["b"]["p"]["test"]))
            self.assertTrue(
                script["b"]["n"]["p"]["test"]["name"].getInput().isSame(
                    script["b"]["p"]["test"]["name"]))
            self.assertTrue(
                script["b"]["n"]["p"]["test"]["value"].getInput().isSame(
                    script["b"]["p"]["test"]["value"]))

        assertPreconditions(s)

        with Gaffer.UndoContext(s):

            p.addMember("test", 10, "test")

        assertPostconditions(s)

        s.undo()
        assertPreconditions(s)

        s.redo()
        assertPostconditions(s)

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

        assertPostconditions(s2)
Ejemplo n.º 11
0
    def __init__(self, name="HierarchyTask"):
        super(HierarchyTask, self).__init__(name)

        Gaffer.Metadata.registerValue(self.__class__, "nodeGadget:color", _HIERARCHY_TASK_COLOR)
        Gaffer.Metadata.registerValue(self.__class__, "icon", "hierarchy.png")

        title_plug = Gaffer.StringPlug("title", Gaffer.Plug.Direction.In, defaultValue="No title set.")
        Gaffer.Metadata.registerPlugValue(title_plug, "nodule:type", "")
        self.addChild(title_plug)

        description_plug = Gaffer.StringPlug("description", Gaffer.Plug.Direction.In, defaultValue="No description")
        Gaffer.Metadata.registerPlugValue(description_plug, "plugValueWidget:type", "GafferUI.MultiLineStringPlugValueWidget")
        Gaffer.Metadata.registerPlugValue(description_plug, "multiLineStringPlugValueWidget:continuousUpdate", True)
        Gaffer.Metadata.registerPlugValue(description_plug, "nodule:type", "")
        self.addChild(description_plug)

        argument_defaults_plug = Gaffer.CompoundDataPlug("argument_defaults", Gaffer.Plug.Direction.In)

        Gaffer.Metadata.registerPlugValue(argument_defaults_plug, "nodule:type", "")
        Gaffer.Metadata.registerValue(
            argument_defaults_plug, "layout:section", "Settings.Argument_Defaults"
        )
        Gaffer.Metadata.registerValue(
            argument_defaults_plug,
            "layout:section:Settings.ArgumentDefaults:summary",
            "The default values for arguments the task requires."
        )
        self.addChild(argument_defaults_plug)

        elements_id_plug = Gaffer.StringPlug("elements_id", Gaffer.Plug.Direction.In, defaultValue="")
        Gaffer.Metadata.registerPlugValue(elements_id_plug, "nodule:type", "")
        self.addChild(elements_id_plug)

        per_element_plug = Gaffer.BoolPlug("per_element", Gaffer.Plug.Direction.In, defaultValue=False)
        Gaffer.Metadata.registerPlugValue(per_element_plug, "nodule:type", "")
        self.addChild(per_element_plug)

        in_plug = GafferDispatch.TaskNode.TaskPlug("in", Gaffer.Plug.Direction.In)
        Gaffer.Metadata.registerPlugValue(in_plug, "nodule:type", "GafferUI::StandardNodule")
        Gaffer.Metadata.registerPlugValue(in_plug, "nodule:color", _TASK_IN_OUT_COLOR)
        Gaffer.Metadata.registerPlugValue(in_plug, "noduleLayout:section", "top")
        Gaffer.Metadata.registerPlugValue(in_plug, "plugValueWidget:type", "")
        self.addChild(in_plug)

        out_plug = GafferDispatch.TaskNode.TaskPlug("out", Gaffer.Plug.Direction.Out)
        Gaffer.Metadata.registerPlugValue(out_plug, "nodule:type", "GafferUI::StandardNodule")
        Gaffer.Metadata.registerPlugValue(out_plug, "nodule:color", _TASK_IN_OUT_COLOR )
        Gaffer.Metadata.registerPlugValue(out_plug, "noduleLayout:section", "bottom")
        Gaffer.Metadata.registerPlugValue(out_plug, "plugValueWidget:type", "")
        self.addChild(out_plug)
        
        processor_plug = ProcessorPlug("processor", Gaffer.Plug.Direction.In)
        Gaffer.Metadata.registerPlugValue(processor_plug, "nodule:type", "GafferUI::StandardNodule")
        Gaffer.Metadata.registerPlugValue(processor_plug, "nodule:color", _PROCESSOR_IN_OUT_COLOR)
        Gaffer.Metadata.registerPlugValue(processor_plug, "noduleLayout:section", "right")
        Gaffer.Metadata.registerPlugValue(processor_plug, "plugValueWidget:type", "")
        self.addChild(processor_plug)
    def testSetPlug(self):

        n = Gaffer.Node()
        n["user"]["p1"] = Gaffer.CompoundDataPlug()
        n["user"]["p2"] = Gaffer.CompoundDataPlug()

        m1 = Gaffer.NameValuePlug("test", 10)
        n["user"]["p1"].addChild(m1)
        m2 = Gaffer.NameValuePlug("test", 10)
        n["user"]["p2"].addChild(m2)

        w = GafferUI.CompoundDataPlugValueWidget(n["user"]["p1"])
        w1 = w.childPlugValueWidget(m1)
        self.assertTrue(w1.getPlug().isSame(m1))

        w.setPlug(n["user"]["p2"])
        w2 = w.childPlugValueWidget(m2)
        self.assertTrue(w2.getPlug().isSame(m2))
Ejemplo n.º 13
0
	def test( self ) :

		p = Gaffer.CompoundDataPlug()

		m1 = Gaffer.NameValuePlug( "a", IECore.IntData( 10 ), "member1" )
		p.addChild( m1 )
		self.assertIsInstance( m1, Gaffer.ValuePlug )
		self.assertEqual( m1.getName(), "member1" )
		self.assertEqual( m1["name"].getValue(), "a" )
		self.assertEqual( m1["value"].getValue(), 10 )
		self.assertFalse( "enabled" in m1 )

		d, n = p.memberDataAndName( m1 )
		self.assertEqual( d, IECore.IntData( 10 ) )
		self.assertEqual( n, "a" )

		m1["name"].setValue( "b" )
		d, n = p.memberDataAndName( m1 )
		self.assertEqual( d, IECore.IntData( 10 ) )
		self.assertEqual( n, "b" )

		m2 = Gaffer.NameValuePlug( "c", IECore.FloatData( .5 ), "member1" )
		p.addChild( m2 )
		self.assertIsInstance( m2, Gaffer.ValuePlug )
		self.assertEqual( m2.getName(), "member2" )
		self.assertEqual( m2["name"].getValue(), "c" )
		self.assertEqual( m2["value"].getValue(), .5 )
		self.assertNotIn( "enabled", m2 )

		d, n = p.memberDataAndName( m2 )
		self.assertEqual( d, IECore.FloatData( .5 ) )
		self.assertEqual( n, "c" )

		m3 = Gaffer.NameValuePlug( "o", IECore.StringData( "--" ), True, name = "m" )
		p.addChild( m3 )
		self.assertIsInstance( m3, Gaffer.ValuePlug )
		self.assertEqual( m3.getName(), "m" )
		self.assertEqual( m3["name"].getValue(), "o" )
		self.assertEqual( m3["value"].getValue(), "--" )
		self.assertIn( "enabled", m3 )
		self.assertEqual( m3["enabled"].getValue(), True )

		d, n = p.memberDataAndName( m3 )
		self.assertEqual( d, IECore.StringData( "--" ) )
		self.assertEqual( n, "o" )

		m3["enabled"].setValue( False )
		d, n = p.memberDataAndName( m3 )
		self.assertEqual( d, None )
		self.assertEqual( n, "" )

		# test if creating a plug from data that has a geometric
		# interpretation specified transfers that interpretation to the plug
		m4 = Gaffer.NameValuePlug( "vector", IECore.V3fData( imath.V3f( 0 ), IECore.GeometricData.Interpretation.Vector ), True, name = "vector" )
		p.addChild( m4 )
		self.assertEqual( m4["value"].interpretation(), IECore.GeometricData.Interpretation.Vector )
Ejemplo n.º 14
0
	def __init__( self, name = "PythonCommand" ) :

		GafferDispatch.TaskNode.__init__( self, name )

		# Turn off automatic substitutions for the command, since it's a pain
		# to have to manually escape things, and the context is available
		# directly anyway.
		self["command"] = Gaffer.StringPlug( substitutions = Gaffer.Context.Substitutions.NoSubstitutions )
		self["variables"] = Gaffer.CompoundDataPlug()
		self["sequence"] = Gaffer.BoolPlug()
Ejemplo n.º 15
0
	def testImathMatrixData( self ) :

		p = Gaffer.CompoundDataPlug()

		m1 = p.addMember( "a", IECore.M44fData( IECore.M44f( *range(16) ) ) )
		self.failUnless( isinstance( m1, Gaffer.ValuePlug ) )

		d, n = p.memberDataAndName( m1 )
		self.assertEqual( d, IECore.M44fData( IECore.M44f( *range(16) ) ) )
		self.assertEqual( n, "a" )
Ejemplo n.º 16
0
    def testImathMatrixData(self):

        p = Gaffer.CompoundDataPlug()

        m1 = Gaffer.NameValuePlug("a", IECore.M44fData(imath.M44f(*range(16))))
        p.addChild(m1)
        self.assertIsInstance(m1, Gaffer.ValuePlug)

        d, n = p.memberDataAndName(m1)
        self.assertEqual(d, IECore.M44fData(imath.M44f(*range(16))))
        self.assertEqual(n, "a")
Ejemplo n.º 17
0
    def testNonValuePlugs(self):

        p = Gaffer.CompoundDataPlug()
        p["test"] = Gaffer.NameValuePlug("name", Gaffer.Plug())

        with six.assertRaisesRegex(self, RuntimeError, "Not a ValuePlug"):
            p.hash()

        d = IECore.CompoundData()
        with six.assertRaisesRegex(self, RuntimeError, "Not a ValuePlug"):
            p.fillCompoundData(d)
Ejemplo n.º 18
0
    def testVectorData(self):

        p = Gaffer.CompoundDataPlug()

        m1 = p.addMember("a", IECore.FloatVectorData([1, 2, 3]))
        self.failUnless(isinstance(m1, Gaffer.ValuePlug))

        d, n = p.memberDataAndName(m1)
        self.assertEqual(d, IECore.FloatVectorData([1, 2, 3]))
        self.assertEqual(n, "a")

        m2 = p.addMember("b", IECore.IntVectorData([1, 2, 3]))
        self.failUnless(isinstance(m2, Gaffer.ValuePlug))

        d, n = p.memberDataAndName(m2)
        self.assertEqual(d, IECore.IntVectorData([1, 2, 3]))
        self.assertEqual(n, "b")

        m3 = p.addMember("c", IECore.StringVectorData(["1", "2", "3"]))
        self.failUnless(isinstance(m3, Gaffer.ValuePlug))

        d, n = p.memberDataAndName(m3)
        self.assertEqual(d, IECore.StringVectorData(["1", "2", "3"]))
        self.assertEqual(n, "c")

        m4 = p.addMember(
            "d", IECore.V3fVectorData([IECore.V3f(x) for x in range(1, 5)]))
        self.failUnless(isinstance(m4, Gaffer.ValuePlug))

        d, n = p.memberDataAndName(m4)
        self.assertEqual(
            d, IECore.V3fVectorData([IECore.V3f(x) for x in range(1, 5)]))
        self.assertEqual(n, "d")

        m5 = p.addMember(
            "e",
            IECore.Color3fVectorData([IECore.Color3f(x) for x in range(1, 5)]))
        self.failUnless(isinstance(m5, Gaffer.ValuePlug))

        d, n = p.memberDataAndName(m5)
        self.assertEqual(
            d,
            IECore.Color3fVectorData([IECore.Color3f(x) for x in range(1, 5)]))
        self.assertEqual(n, "e")

        m6 = p.addMember(
            "f",
            IECore.M44fVectorData([IECore.M44f() * x for x in range(1, 5)]))
        self.failUnless(isinstance(m6, Gaffer.ValuePlug))

        d, n = p.memberDataAndName(m6)
        self.assertEqual(
            d, IECore.M44fVectorData([IECore.M44f() * x for x in range(1, 5)]))
        self.assertEqual(n, "f")
Ejemplo n.º 19
0
    def testAddMembersWithSpecificNames(self):

        p = Gaffer.CompoundDataPlug()
        p.addMembers(IECore.CompoundData({"one": 1}), useNameAsPlugName=True)

        self.assertEqual(len(p), 1)
        self.assertEqual(p[0].getName(), "one")

        o = IECore.CompoundObject()
        p.fillCompoundObject(o)
        self.assertEqual(o, IECore.CompoundObject({"one": IECore.IntData(1)}))
Ejemplo n.º 20
0
	def testBoxTypes( self ) :

		p = Gaffer.CompoundDataPlug()

		for name, value in [
			( "b2f", IECore.Box2fData( imath.Box2f( imath.V2f( 0, 1 ), imath.V2f( 1, 2 ) ) ) ),
			( "b2i", IECore.Box2iData( imath.Box2i( imath.V2i( -1, 10 ), imath.V2i( 11, 20 ) ) ) ),
			( "b3f", IECore.Box3fData( imath.Box3f( imath.V3f( 0, 1, 2 ), imath.V3f( 3, 4, 5 ) ) ) ),
			( "b3i", IECore.Box3iData( imath.Box3i( imath.V3i( 0, 1, 2 ), imath.V3i( 3, 4, 5 ) ) ) ),
		] :
			p.addChild( Gaffer.NameValuePlug( name, value ) )
			self.assertEqual( p.memberDataAndName( p[-1] ), ( value, name ) )
Ejemplo n.º 21
0
	def testBoxTypes( self ) :

		p = Gaffer.CompoundDataPlug()

		for name, value in [
			( "b2f", IECore.Box2fData( IECore.Box2f( IECore.V2f( 0, 1 ), IECore.V2f( 1, 2 ) ) ) ),
			( "b2i", IECore.Box2iData( IECore.Box2i( IECore.V2i( -1, 10 ), IECore.V2i( 11, 20 ) ) ) ),
			( "b3f", IECore.Box3fData( IECore.Box3f( IECore.V3f( 0, 1, 2 ), IECore.V3f( 3, 4, 5 ) ) ) ),
			( "b3i", IECore.Box3iData( IECore.Box3i( IECore.V3i( 0, 1, 2 ), IECore.V3i( 3, 4, 5 ) ) ) ),
		] :
			m = p.addMember( name, value )
			self.assertEqual( p.memberDataAndName( m ), ( value, name ) )
Ejemplo n.º 22
0
    def testAddMembers(self):

        p = Gaffer.CompoundDataPlug()

        p.addMembers(IECore.CompoundData({"one": 1, "two": 2}))
        self.assertEqual(len(p), 2)
        self.assertEqual(p[0].getName(), "member1")
        self.assertEqual(p[1].getName(), "member2")

        c = IECore.CompoundData()
        p.fillCompoundData(c)
        self.assertEqual(c, IECore.CompoundData({"one": 1, "two": 2}))
Ejemplo n.º 23
0
    def testAdditionalChildrenRejected(self):

        p = Gaffer.CompoundDataPlug()

        self.assertRaises(RuntimeError, p.addChild, Gaffer.IntPlug())
        self.assertRaises(RuntimeError, p.addChild, Gaffer.CompoundPlug())

        m = p.addMember("a", IECore.IntData(10))
        self.assertRaises(RuntimeError, m.addChild, Gaffer.IntPlug())
        self.assertRaises(RuntimeError, m.addChild, Gaffer.StringPlug("name"))
        self.assertRaises(RuntimeError, m.addChild, Gaffer.IntPlug("name"))
        self.assertRaises(RuntimeError, m.addChild, Gaffer.IntPlug("value"))
Ejemplo n.º 24
0
	def testInternedStringVectorData( self ) :

		d = IECore.InternedStringVectorData( [ "a", "b" ] )
		p = Gaffer.CompoundDataPlug()
		m = p.addMember( "test", d )
		self.assertTrue( isinstance( m["value"], Gaffer.InternedStringVectorDataPlug ) )
		self.assertEqual( m["value"].defaultValue(), d )
		self.assertEqual( m["value"].getValue(), d )

		v, n = p.memberDataAndName( m )
		self.assertEqual( v, d )
		self.assertEqual( n, "test" )
Ejemplo n.º 25
0
	def testBoxPromotion( self ) :

		s = Gaffer.ScriptNode()

		s["b"] = Gaffer.Box()
		s["b"]["n"] = Gaffer.Node()
		s["b"]["n"]["p"] = Gaffer.CompoundDataPlug( flags = Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic )

		p = Gaffer.PlugAlgo.promote( s["b"]["n"]["p"] )
		p.setName( "p" )

		def assertPreconditions( script ) :

			self.assertEqual( script["b"]["n"]["p"].keys(), [] )
			self.assertEqual( script["b"]["p"].keys(), [] )
			self.assertTrue( script["b"]["n"]["p"].getInput().isSame( script["b"]["p"] ) )

		def assertPostconditions( script ) :

			self.assertEqual( script["b"]["p"].keys(), [ "test" ] )
			self.assertEqual( script["b"]["n"]["p"].keys(), [ "test" ] )

			self.assertEqual( script["b"]["p"]["test"].keys(), [ "name", "value" ]  )
			self.assertEqual( script["b"]["n"]["p"]["test"].keys(), [ "name", "value" ]  )

			self.assertTrue( script["b"]["n"]["p"].getInput().isSame( script["b"]["p"] ) )
			self.assertTrue( script["b"]["n"]["p"]["test"].getInput().isSame( script["b"]["p"]["test"] ) )
			self.assertTrue( script["b"]["n"]["p"]["test"]["name"].getInput().isSame( script["b"]["p"]["test"]["name"] ) )
			self.assertTrue( script["b"]["n"]["p"]["test"]["value"].getInput().isSame( script["b"]["p"]["test"]["value"] ) )

		assertPreconditions( s )

		with Gaffer.UndoScope( s ) :

			p.addChild(
				Gaffer.NameValuePlug( "test", 10, "test",
					Gaffer.Plug.Direction.In, Gaffer.Plug.Flags.Default | Gaffer.Plug.Flags.Dynamic
				)
			)

		assertPostconditions( s )

		s.undo()
		assertPreconditions( s )

		s.redo()
		assertPostconditions( s )

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

		assertPostconditions( s2 )
Ejemplo n.º 26
0
	def test( self ) :

		p = Gaffer.CompoundDataPlug()

		m1 = p.addMember( "a", IECore.IntData( 10 ) )
		self.failUnless( isinstance( m1, Gaffer.ValuePlug ) )
		self.assertEqual( m1.getName(), "member1" )
		self.assertEqual( m1["name"].getValue(), "a" )
		self.assertEqual( m1["value"].getValue(), 10 )
		self.failIf( "enabled" in m1 )

		d, n = p.memberDataAndName( m1 )
		self.assertEqual( d, IECore.IntData( 10 ) )
		self.assertEqual( n, "a" )

		m1["name"].setValue( "b" )
		d, n = p.memberDataAndName( m1 )
		self.assertEqual( d, IECore.IntData( 10 ) )
		self.assertEqual( n, "b" )

		m2 = p.addMember( "c", IECore.FloatData( .5 ) )
		self.failUnless( isinstance( m2, Gaffer.ValuePlug ) )
		self.assertEqual( m2.getName(), "member2" )
		self.assertEqual( m2["name"].getValue(), "c" )
		self.assertEqual( m2["value"].getValue(), .5 )
		self.failIf( "enabled" in m2 )

		d, n = p.memberDataAndName( m2 )
		self.assertEqual( d, IECore.FloatData( .5 ) )
		self.assertEqual( n, "c" )

		m3 = p.addOptionalMember( "o", IECore.StringData( "--" ), plugName = "m", enabled = True )
		self.failUnless( isinstance( m3, Gaffer.ValuePlug ) )
		self.assertEqual( m3.getName(), "m" )
		self.assertEqual( m3["name"].getValue(), "o" )
		self.assertEqual( m3["value"].getValue(), "--" )
		self.failUnless( "enabled" in m3 )
		self.assertEqual( m3["enabled"].getValue(), True )

		d, n = p.memberDataAndName( m3 )
		self.assertEqual( d, IECore.StringData( "--" ) )
		self.assertEqual( n, "o" )

		m3["enabled"].setValue( False )
		d, n = p.memberDataAndName( m3 )
		self.assertEqual( d, None )
		self.assertEqual( n, "" )

		# test if creating a plug from data that has a geometric
		# interpretation specified transfers that interpretation to the plug
		m4 = p.addOptionalMember( "vector", IECore.V3fData( IECore.V3f( 0 ), IECore.GeometricData.Interpretation.Vector ), plugName = "vector", enabled = True )
		self.assertEqual( m4["value"].interpretation(), IECore.GeometricData.Interpretation.Vector )
Ejemplo n.º 27
0
	def testPlugFlags( self ) :
	
		p = Gaffer.CompoundDataPlug()
		m1 = p.addMember( "a", IECore.V3fData( IECore.V3f( 1, 2, 3 ) ), plugFlags = Gaffer.Plug.Flags.Default )
		self.assertEqual( m1.getFlags(), Gaffer.Plug.Flags.Default )
		self.assertEqual( m1["name"].getFlags(), Gaffer.Plug.Flags.Default)
		self.assertEqual( m1["value"].getFlags(), Gaffer.Plug.Flags.Default )
		
		m2 = p.addOptionalMember( "a", IECore.V3fData( IECore.V3f( 1, 2, 3 ) ), plugFlags = Gaffer.Plug.Flags.Default )
		self.assertEqual( m2.getFlags(), Gaffer.Plug.Flags.Default )
		self.assertEqual( m2["name"].getFlags(), Gaffer.Plug.Flags.Default )
		self.assertEqual( m2["value"].getFlags(), Gaffer.Plug.Flags.Default )
		self.assertEqual( m2["enabled"].getFlags(), Gaffer.Plug.Flags.Default )
Ejemplo n.º 28
0
    def test(self):

        p = Gaffer.CompoundDataPlug()

        m1 = p.addMember("a", IECore.IntData(10))
        self.failUnless(isinstance(m1, Gaffer.CompoundPlug))
        self.assertEqual(m1.getName(), "member1")
        self.assertEqual(m1["name"].getValue(), "a")
        self.assertEqual(m1["value"].getValue(), 10)
        self.failIf("enabled" in m1)

        d, n = p.memberDataAndName(m1)
        self.assertEqual(d, IECore.IntData(10))
        self.assertEqual(n, "a")

        m1["name"].setValue("b")
        d, n = p.memberDataAndName(m1)
        self.assertEqual(d, IECore.IntData(10))
        self.assertEqual(n, "b")

        m2 = p.addMember("c", IECore.FloatData(.5))
        self.failUnless(isinstance(m2, Gaffer.CompoundPlug))
        self.assertEqual(m2.getName(), "member2")
        self.assertEqual(m2["name"].getValue(), "c")
        self.assertEqual(m2["value"].getValue(), .5)
        self.failIf("enabled" in m2)

        d, n = p.memberDataAndName(m2)
        self.assertEqual(d, IECore.FloatData(.5))
        self.assertEqual(n, "c")

        m3 = p.addOptionalMember("o",
                                 IECore.StringData("--"),
                                 plugName="m",
                                 enabled=True)
        self.failUnless(isinstance(m3, Gaffer.CompoundPlug))
        self.assertEqual(m3.getName(), "m")
        self.assertEqual(m3["name"].getValue(), "o")
        self.assertEqual(m3["value"].getValue(), "--")
        self.failUnless("enabled" in m3)
        self.assertEqual(m3["enabled"].getValue(), True)

        d, n = p.memberDataAndName(m3)
        self.assertEqual(d, IECore.StringData("--"))
        self.assertEqual(n, "o")

        m3["enabled"].setValue(False)
        d, n = p.memberDataAndName(m3)
        self.assertEqual(d, None)
        self.assertEqual(n, "")
Ejemplo n.º 29
0
    def testNonAlphanumericNames(self):

        p = Gaffer.CompoundDataPlug()
        p.addMembers(
            IECore.CompoundData({
                "test:A": 10,
                "@j": 20
            }),
            useNameAsPlugName=True,
        )

        self.assertEqual(set(p.keys()), {"test_A", "_j"})
        self.assertEqual(p["test_A"]["value"].getValue(), 10)
        self.assertEqual(p["_j"]["value"].getValue(), 20)
Ejemplo n.º 30
0
    def testDefaultValues(self):

        p = Gaffer.CompoundDataPlug()

        m = p.addMember("a", IECore.IntData(10))
        self.assertTrue(m["value"].defaultValue(), 10)
        self.assertTrue(m["value"].getValue(), 10)

        m = p.addMember("b", IECore.FloatData(20))
        self.assertTrue(m["value"].defaultValue(), 20)
        self.assertTrue(m["value"].getValue(), 20)

        m = p.addMember("c", IECore.StringData("abc"))
        self.assertTrue(m["value"].defaultValue(), "abc")
        self.assertTrue(m["value"].getValue(), "abc")