v4.0
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.
Parameter CustomOperator.AddParameter( ParamDef in_ParamDef ); |
oReturn = CustomOperator.AddParameter( ParamDef ); |
The newly created Parameter object.
| Parameter | Type | Description |
|---|---|---|
| ParamDef | ParamDef | This argument specifies the parameter definition. |
/*
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;
}
|
CustomOperator.RemoveParameter XSIFactory.CreateParamDef Parameter ProjectItem.Parameters UpdateContext.Operator