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.
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; } |