v4.0
Creates a new custom parameter definition (ParamDef object).
ParamDef objects contain the definition of a parameter from which you can create new
parameters on the fly for one or more property sets or operators. For example, you may want
to use a double with the same min/max range and use it on multiple property sets or you
may simply want a quick way to add parameters to a runtime scripted operator via scripting.
You can create New ParamDef objects from the XSIFactory object.
Note: If you need to specify capabilities, classification, or suggested minimum and maximum
values, use XSIFactory.CreateParamDef instead.
ParamDef XSIFactory.CreateParamDef2( String in_ScriptName, siVariantType in_Type, Object in_default, Object in_Min, Object in_Max ); |
oReturn = XSIFactory.CreateParamDef2( ScriptName, Type, [DefaultValue], [Min], [Max] ); |
The newly created ParamDef object.
| Parameter | Type | Description |
|---|---|---|
| ScriptName | String | This argument specifies the ScriptName of a parameter (see Parameter.ScriptName). If the short name or long name arguments are not specified then this name is also used as the short name and description. |
| Type | siVariantType | Type of the custom parameter. The recommended types are: siString, siBool, siInt4, siUByte, and siDouble. The supported types are: siString, siBool, siDouble, siFloat, siInt4, siInt2, siUInt4, siUInt2, siByte, siUByte (see Parameter.ValueType). |
| DefaultValue | Variant | Default value of the custom parameter. A default value for numerical values (including boolean) is 0; the string default is "" (see Parameter.Default). |
| Min | Variant | Minimum value of the custom parameter. The types siString and siBool do not require a Min value. For all other numerical types the default is the minimum value possible for the type. For example, all unsigned values have a minimum value of 0 (see Parameter.Min). |
| Max | Variant | Maximum value of the custom parameter. The types siString and siBool do not require a Max value. For all other numerical types the default is the minimum value possible for the type. For example, the maximum value for siUByte is 255 (see Parameter.Max) |
// 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();
// Operator's update function
function MySOP_Update( ctx, out )
{
out.Value = ctx.CurrentFrame;
} |