CustomOperator.AddParameter

Introduced

v4.0

Description

Adds a new custom Parameter to the custom operator.

The Parameters of a Custom Operator are a convenient way to configure the behavior of the Operator. The Parameters normally appear on the PPG of the operator, making it possible for users to control the operator by moving sliders and other controls. Any change to the Parameter value will "dirty" the operator so that it is re-evaluated the next time its outputs are evaluated.

During the evaluation of a Self-Installed Custom Operator the parameter values are available via OperatorContext.GetParameterValue. Other types of custom operators can read the Parameter values via the Parameters property of the Operator, which can be retrieved via UpdateContext.Operator as shown in the example below.

Scripting Syntax

oReturn = CustomOperator.AddParameter( ParamDef );

Return Value

The newly created Parameter object.

Parameters

Parameter Type Description
ParamDef ParamDef This argument specifies the parameter definition.

Examples

JScript Example

/*
        This example illustrates how to add parameters to a custom operator
*/
NewScene( null, false )
var null1 = GetPrim( "null" );
// Create the operator
var sop = XSIFactory.CreateScriptedOp( "MySOP", MySOP_Update.toString(), "JScript" );
// Add the ports
sop.AddOutputPort( null1.posx );
// Add the parameters
var param1 = sop.AddParameter( XSIFactory.CreateParamDef2("text", siString, "hello") );
var param2 = sop.AddParameter( XSIFactory.CreateParamDef2("bool", siBool, true) );
var param3 = sop.AddParameter( XSIFactory.CreateParamDef2("int", siInt4, 10, 0, 100) );
var param4 = sop.AddParameter( XSIFactory.CreateParamDef2("dbl", siDouble, 0.5, 0.0, 1.0) );
// List operator's parameters
var eParams = new Enumerator( sop.Parameters );
for ( ; !eParams.atEnd(); eParams.moveNext() )
{
        var param = eParams.item();
        Application.LogMessage( param.Name + " = " + param.Value );
}
// Connect the operator
sop.Connect();
// Show the PPG of the operator which includes the parameters
InspectObj( sop ) ;
// The operator's update function
function MySOP_Update( ctx, out )
{
        // Normally we would do something with the parameters
        // but for the purpose of the demo just print the values
        oParams = ctx.Operator.Parameters ;
        Application.LogMessage( "MySOP_Update" ) ;
        Application.LogMessage( "   Text parameter: " + oParams( "text" ).Value ) ;
        Application.LogMessage( "   Bool parameter: " + oParams( "bool" ).Value ) ;
        Application.LogMessage( "   int parameter: " + oParams( "int" ).Value ) ;
        Application.LogMessage( "   double parameter: " + oParams( "dbl" ).Value ) ;
        out.Value = ctx.CurrentFrame;   
}

See Also

CustomOperator.RemoveParameter XSIFactory.CreateParamDef Parameter ProjectItem.Parameters UpdateContext.Operator