AddParameter (CustomOperator)
Introduced
4.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
CustomOperator.AddParameter( ParamDef )
C# Syntax
Parameter CustomOperator.AddParameter( ParamDef in_ParamDef );
Parameters
|
Parameter |
Type |
Description |
|
ParamDef |
This argument specifies the parameter definition. |
Return Value
The newly created Parameter object.
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
|
|
|
|
SOFTIMAGE|XSI v6.01