ImageEngine/gaffer — pull request #256 by johnhaddon (2013-05-07 18:38:42+00:00)
Title: RenderManShader parameter enablers

This implements the enabling/disabling of renderman shader parameters in the UI, based on python expressions evaluated according to the values of other parameters. Expressions are defined via shader annotations.

An activator is defined by a global annotation of this form :

pragma annotation "activator.name.expression" "pythonExpression"

The python expression may reference current parameter values by name, and also use the connected( "parameterName" ) function to query whether or not a parameter is connected.

Activators are then assigned to specific parameters using annotations of this form :

pragma annotation "parameterName.activator" "name"

Also included in this request are the following :

- Added NodeUI.plugValueWidget() method. This allows node uis to be introspected to find widgets associated with specific plugs. This was necessary for this particular feature, but should have plenty of general usefulness too.
- Reused current RenderManShaderUI functionality to provide improved uis for RenderManLight.