SIGetPrimSpotLight

Description

Creates a spot light primitive.

Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you need to use the best workaround for your situation:

For scripting languages this command returns an ISIVTCollection which you can use to get the output arguments.

For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand packs the output arguments into a C# System.Object containing an Array of the output arguments (see Calling Commands from C#).

Scripting Syntax

SIGetPrimSpotLight( PresetObj, [Name], [InterestName], [Parent], [3DObjSpot], [3DObjSpotInterest], [PrimObjSpot], [PrimObjSpotInterest] )

Parameters

Parameter

Type

Description

PresetObj

String

A spot light preset (see Light Primitives).

Possible Values:

Spot: The spot preset

Name

String

Name of the light.

InterestName

String

Name of the interest.

Parent

String

Parent object for the light.

3DObjSpot [out]

Light

Returns the spot light object.

3DObjSpotInterest [out]

Null

Returns the spot interest.

PrimObjSpot [out]

Primitive

Returns the spot light primitive.

PrimObjSpotInterest [out]

Primitive

Returns the interest primitive.

Examples

JScript Example

/*
   This example demonstrates how to retrieve the output arguments through 
   the returned ISIVTCollection, by using their name with the Value property.
*/

NewScene( null, false );

// Get the output arguments via the ISIVTCollection
var rtn = SIGetPrimSpotLight( "Spot.Preset", "MySpotName", "MySpotInterestName" );

// With the ISIVTCollection, you can either get the items by index number using the Item
// property, or by output argument name by using the Value property, which is much clearer
// and faster to use
var o3DObjSpot = rtn.Value("3DObjSpot");
var o3DObjSpotInterest = rtn.Value("3DObjSpotInterest");
var oPrimObjSpot = rtn.Value("PrimObjSpot");
var oPrimObjSpotInterest = rtn.Value("PrimObjSpotInterest");

// For each object, find out its name and class, if possible
WhatAmI( o3DObjSpot ); //INFO : MySpotName is a Light
WhatAmI( o3DObjSpotInterest ); //INFO : MySpotInterestName is a Null
WhatAmI( oPrimObjSpot ); //INFO : MySpotName.light is a Primitive
WhatAmI( oPrimObjSpotInterest ); //INFO : MySpotInterestName.SpotInterest is a Primitive



// Convenience function
function WhatAmI( in_obj ) 
{
   // To prevent crashes, use the try...catch statement, because using ClassName 
   // on a simple data type (string, number, etc.) will throw an error
   try {
       LogMessage( in_obj + " is a " + ClassName(in_obj) );
   } catch (e) {
       LogMessage( "input object is a " + typeof(in_obj) );
   }
}

See Also

GetPrimLight

SIGetPrimLight



Autodesk Softimage v7.5