User guide

181
Clients
In order to view the scene graph locations and attributes generated as a result of evaluating Ops, such as to walk the
scene graph to declare data to a renderer, or to inspect the values in the Attributes tab, we use Clients. A Client is
connected to a specific Op in the OpTree and, in this context, we refer to it as a Terminal Op. We can control the
scene graph locations we are interested in receiving updates for using the Client API.
To ensure the Runtime re-computes scene graph locations for every commit, set these locations as active. To ensure
the Runtime re-computes a scene graph location’s children whenever it is cooked, set the location as open. As an
extension to the open state, you can set a location to recursive open, which also also sets the child locations
produced as a result of evaluating that location to open in a recursive manner. This provides behavior the same as
the existing forceExpand option. To conduct a one-shot computation of a scene graph location, you can instruct the
Runtime to ready it.
Once you have created a Client, connected to a specific Op, you can then declare locations in the scene graph that
you are interested in getting data from. The client then receives events from the Geolib3 Runtime when the
requested data is ready.
Examples of Clients include:
The Attributes tab - sets a single location in the Scene Graph tab as active. When anything at that location is
changed the Attributes tab is notified of the updates.
The Scene Graph tab - sets /root as active. As you open locations in the UI, these locations are set to open on the
Client. On subsequent updates to the OpTree, open portions of the scene graph are automatically recomputed.
Renderers - typically make repeated calls to the Client to ready a location, read the required attributes, declare
them to the renderer’s API, then immediately discard the data.
For more information on how to attach a Client to a Terminal Op, how to maintain the active and open locations,
and how to ready locations, refer to Client Configuration on page194.
The Op API Explained
This section covers the following elements of the Op API:
The cook interface, what it is, and how it fits into Geolib3.
Op arguments and modifying arguments that are passed down to children.
Scene graph creation and hierarchy topology management, including how to create and delete scene graph
locations, and controlling where an Op is executed.
Reading scene graph input from potentially many inputs, and the associated issues.
CEL and other utility functions that are available to you, as an Op writer, to accomplish common tasks.
Integrating your Op with the node graph.
24 OP API | THE OP API EXPLAINED