def testCoordinateSystem( self ) : coordinateSystem = GafferScene.CoordinateSystem() renderer = GafferScene.Private.IECoreScenePreview.CapturingRenderer() controller = GafferScene.RenderController( coordinateSystem["out"], Gaffer.Context(), renderer ) controller.update() capturedObject = renderer.capturedObject( "/coordinateSystem" ) self.assertEqual( capturedObject.capturedSamples(), [ coordinateSystem["out"].object( "/coordinateSystem" ) ] )
def testDirtyPropagation(self): c = GafferScene.CoordinateSystem() dirtied = GafferTest.CapturingSlot(c.plugDirtiedSignal()) c["transform"]["translate"]["x"].setValue(10) self.failUnless(c["out"]["transform"] in [p[0] for p in dirtied]) dirtied = GafferTest.CapturingSlot(c.plugDirtiedSignal()) c["name"].setValue("yupyup") self.failUnless(c["out"]["childNames"] in [p[0] for p in dirtied]) self.failUnless(c["out"]["globals"] in [p[0] for p in dirtied])
def testHiddenCoordinateSystem(self): s = Gaffer.ScriptNode() s["fileName"].setValue(self.temporaryDirectory() + "/test.gfr") s["c"] = GafferScene.CoordinateSystem() s["c"]["name"].setValue("myCoordSys") s["g"] = GafferScene.Group() s["g"]["in"][0].setInput(s["c"]["out"]) s["f1"] = GafferScene.PathFilter() s["f2"] = GafferScene.PathFilter() s["a1"] = GafferScene.StandardAttributes() s["a1"]["attributes"]["visibility"]["enabled"].setValue(True) s["a1"]["attributes"]["visibility"]["value"].setValue(False) s["a1"]["in"].setInput(s["g"]["out"]) s["a1"]["filter"].setInput(s["f1"]["out"]) s["a2"] = GafferScene.StandardAttributes() s["a2"]["attributes"]["visibility"]["enabled"].setValue(True) s["a2"]["attributes"]["visibility"]["value"].setValue(True) s["a2"]["in"].setInput(s["a1"]["out"]) s["a2"]["filter"].setInput(s["f2"]["out"]) s["r"] = GafferRenderMan.RenderManRender() s["r"]["mode"].setValue("generate") s["r"]["ribFileName"].setValue(self.temporaryDirectory() + "/test.rib") s["r"]["in"].setInput(s["a2"]["out"]) s["r"].execute() rib = "\n".join( file(self.temporaryDirectory() + "/test.rib").readlines()) self.assertTrue("CoordinateSystem \"/group/myCoordSys\"" in rib) s["f1"]["paths"].setValue(IECore.StringVectorData(["/group" ])) # hide group s["r"].execute() rib = "\n".join( file(self.temporaryDirectory() + "/test.rib").readlines()) self.assertTrue("CoordinateSystem" not in rib) s["f2"]["paths"].setValue( IECore.StringVectorData([ "/group/myCoordSys" ])) # show coordsys (but parent still hidden) s["r"].execute() rib = "\n".join( file(self.temporaryDirectory() + "/test.rib").readlines()) self.assertTrue("CoordinateSystem" not in rib)
def testCoordinateSystemSamples(self): coordinateSystem = GafferScene.CoordinateSystem() with Gaffer.Context() as c: c["scene:path"] = IECore.InternedStringVectorData( ["coordinateSystem"]) samples = GafferScene.Private.RendererAlgo.objectSamples( coordinateSystem["out"]["object"], [0.75, 1.25]) self.assertEqual(len(samples), 1) self.assertEqual( samples[0], coordinateSystem["out"].object("/coordinateSystem"))
def test(self): c = GafferScene.CoordinateSystem() self.assertSceneValid(c["out"]) self.assertEqual(c["out"].bound("/coordinateSystem"), IECore.Box3f(IECore.V3f(0), IECore.V3f(1))) o = c["out"].object("/coordinateSystem") self.assertTrue(isinstance(o, IECoreScene.CoordinateSystem)) s = c["out"].set("__coordinateSystems") self.assertEqual(s.value.paths(), ["/coordinateSystem"])
def testCoordinateSystem(self): s = Gaffer.ScriptNode() s["fileName"].setValue("/tmp/test.gfr") s["c"] = GafferScene.CoordinateSystem() s["c"]["name"].setValue("myCoordSys") s["r"] = GafferRenderMan.RenderManRender() s["r"]["mode"].setValue("generate") s["r"]["ribFileName"].setValue("/tmp/test.rib") s["r"]["in"].setInput(s["c"]["out"]) s["r"].execute() rib = "\n".join(file("/tmp/test.rib").readlines()) self.assertTrue("CoordinateSystem \"/myCoordSys\"" in rib)
def testMoveCoordinateSystem(self): shader = self.compileShader( os.path.dirname(__file__) + "/shaders/coordSysDot.sl") s = Gaffer.ScriptNode() s["plane"] = GafferScene.Plane() s["shader"] = GafferRenderMan.RenderManShader() s["shader"].loadShader(shader) s["shader"]["parameters"]["coordSys"].setValue( "/group/coordinateSystem") s["shaderAssignment"] = GafferScene.ShaderAssignment() s["shaderAssignment"]["in"].setInput(s["plane"]["out"]) s["shaderAssignment"]["shader"].setInput(s["shader"]["out"]) s["camera"] = GafferScene.Camera() s["camera"]["transform"]["translate"]["z"].setValue(1) s["coordSys"] = GafferScene.CoordinateSystem() s["g"] = GafferScene.Group() s["g"]["in"].setInput(s["shaderAssignment"]["out"]) s["g"]["in1"].setInput(s["camera"]["out"]) s["g"]["in2"].setInput(s["coordSys"]["out"]) s["d"] = GafferScene.Outputs() s["d"].addOutput( "beauty", IECore.Display( "test", "ieDisplay", "rgba", { "quantize": IECore.FloatVectorData([0, 0, 0, 0]), "driverType": "ImageDisplayDriver", "handle": "myLovelyPlane", })) s["d"]["in"].setInput(s["g"]["out"]) s["o"] = GafferScene.StandardOptions() s["o"]["options"]["renderCamera"]["value"].setValue("/group/camera") s["o"]["options"]["renderCamera"]["enabled"].setValue(True) s["o"]["in"].setInput(s["d"]["out"]) s["r"] = GafferRenderMan.InteractiveRenderManRender() s["r"]["in"].setInput(s["o"]["out"]) # start a render, give it time to finish, and check the output s["r"]["state"].setValue(s["r"].State.Running) time.sleep(2) c = self.__colorAtUV( IECore.ImageDisplayDriver.storedImage("myLovelyPlane"), IECore.V2f(0.5), ) self.assertAlmostEqual(c[1], 1, delta=0.001) # move the coordinate system, and check the output s["coordSys"]["transform"]["translate"]["x"].setValue(0.1) time.sleep(2) c = self.__colorAtUV( IECore.ImageDisplayDriver.storedImage("myLovelyPlane"), IECore.V2f(0.6, 0.5), ) self.assertAlmostEqual(c[0], 1) c = self.__colorAtUV( IECore.ImageDisplayDriver.storedImage("myLovelyPlane"), IECore.V2f(0.6, 0.7), ) self.assertAlmostEqual(c[0], 0) # scale the coordinate system to cover everything, and check again s["coordSys"]["transform"]["scale"].setValue(IECore.V3f(100)) time.sleep(2) for p in [ IECore.V2f(0.5), IECore.V2f(0.1), IECore.V2f(0.9), ]: c = self.__colorAtUV( IECore.ImageDisplayDriver.storedImage("myLovelyPlane"), p, ) self.assertAlmostEqual(c[0], 1, delta=0.001)