Move (ArrayParameter)
Description
Moves the specified array parameter up or down within the array. Using negative values for the UpOrDown parameter moves the parameter down (towards the beginning of the array) and specifying positive values moves it up (towards the end of the array). The parameters cannot be moved beyond the array boundaries.
Scripting Syntax
ArrayParameter.Move( Parameter, UpOrDown )
C# Syntax
ArrayParameter.Move( Object& in_Param, Int32 in_upDown );Parameters
|
Parameter |
Type |
Description |
|
Parameter |
The array parameter to remove. You can use either a zero-based index in the array or as a parameter object that's already a member of the array. Any other type generates an Invalid Argument error. |
|
|
UpOrDown |
Number of indices and direction to move the parameter. The new index of the parameter will be its current index plus this value. A parameter cannot moved beyond the array's boundaries. |
Examples
1. VBScript Example
NewScene ,false GetPrimLight "Point.Preset", "Point" SIApplyShaderToCnxPoint "Volume\Fast_volume_effects.Preset", "Passes.Default_Pass.VolumeShaderStack", , False AddObjectsToShader "light", "Passes.Default_Pass.Fast_volume_effects.Lights" AddObjectsToShader "Point", "Passes.Default_Pass.Fast_volume_effects.Lights" Set oShader = GetValue( "Passes.Default_Pass.Fast_volume_effects" ) Set oLights = oShader.Lights LogMessage oLights.type LogMessage "No Light: " & oLights.Count For i = 0 To oLights.Count - 1 Set oLight = oLights.Parameters( i ).NestedObjects(0) LogMessage "Light " & i & " : " & oLight.FullName Next
2. JScript Example
/*
This example demonstrates how to move elements
up and down in a parameter array.
*/
NewScene( null, false );
var oCube = ActiveSceneRoot.AddGeometry( "Cube", "MeshSurface" );
var oMat = oCube.AddMaterial( "Phong" );
var oMixer = oMat.surface.ConnectFromProgid( "Softimage.XSIColorMixer.1" );
var oLayers = oMixer.layers;
var aLayers = new Array();
for( i = 0; i < 4; i++ )
{
aLayers[ i ] = oLayers.Add();
aLayers[ i ].parameters("layer_mixmode").value = i;
}
var strMsg = "Before : ";
for( i = 0; i < oLayers.Count; i++ )
strMsg += oLayers.Parameters( i ).parameters("layer_mixmode").value + " ";
LogMessage( strMsg );
// Move element by index, ten indices down. The move will be
// clamped to the beginning of the array.
oLayers.Move( 3, -10 );
strMsg = "After 1: ";
for( i = 0; i < oLayers.Count; i++ )
strMsg += oLayers.Parameters( i ).parameters("layer_mixmode").value + " ";
LogMessage( strMsg );
// Move the element by reference, three indices up. The move will
// again be clamped, this time to the end of the array.
oLayers.Move( aLayers[ 1 ], 3 );
// Move element by reference
strMsg = "After 2: ";
for( i = 0; i < oLayers.Count; i++ )
strMsg += oLayers.Parameters( i ).parameters("layer_mixmode").value + " ";
LogMessage( strMsg );
// Output of above script is:
// --------------------------
// INFO : "Before : 0 1 2 3"
// INFO : "After 1: 3 0 1 2"
// INFO : "After 2: 3 0 2 1"See Also
Autodesk Softimage v7.5