import Gaffer import GafferUI # Create a new GraphEditor with a default Gaffer graph graphEditor = GafferUI.GraphEditor( Gaffer.ScriptNode() ) # Add two simple nodes to the graph node1 = Gaffer.Node() node2 = Gaffer.Node() graphEditor.graphGadget().getRoot().addChild( node1 ) graphEditor.graphGadget().getRoot().addChild( node2 ) # Connect the nodes with a simple connection plug1 = node1["out"] plug2 = node2["in"] connection = Gaffer.PlugAlgo.makeConnection( plug1, plug2 ) graphEditor.graphGadget().getLayout().connect( connection )
import Gaffer import GafferUI # Define a custom node type class MultiplyNode( Gaffer.Node ) : def __init__( self, name="MultiplyNode" ) : Gaffer.Node.__init__( self, name ) self.addChild( Gaffer.IntPlug( "a", defaultValue=1 ) ) self.addChild( Gaffer.IntPlug( "b", defaultValue=2 ) ) self.addChild( Gaffer.IntPlug( "out", direction=Gaffer.Plug.Direction.Out ) ) def compute( self, plug ) : if plug.isSame( self["out"] ) : a = self["a"].getValue() b = self["b"].getValue() plug.setValue( a * b ) # Create a new GraphEditor with a default Gaffer graph graphEditor = GafferUI.GraphEditor( Gaffer.ScriptNode() ) # Create a new MultiplyNode and add it to the graph multiplyNode = MultiplyNode() graphEditor.graphGadget().getRoot().addChild( multiplyNode ) # Add other nodes to the graph node1 = Gaffer.Node() node2 = Gaffer.Node() graphEditor.graphGadget().getRoot().addChild( node1 ) graphEditor.graphGadget().getRoot().addChild( node2 ) # Connect the MultiplyNode to the other nodes plug1 = node1["out"] plug2 = multiplyNode["a"] connection1 = Gaffer.PlugAlgo.makeConnection( plug1, plug2 ) graphEditor.graphGadget().getLayout().connect( connection1 ) plug3 = node2["out"] plug4 = multiplyNode["b"] connection2 = Gaffer.PlugAlgo.makeConnection( plug3, plug4 ) graphEditor.graphGadget().getLayout().connect( connection2 )This code defines a custom node type called MultiplyNode that performs a multiplication operation on two integer values. It then creates a new GraphEditor window with a default Gaffer graph, adds a MultiplyNode and other nodes to the graph, and connects them together.