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 |
A spot light preset (see Light Primitives). Possible Values: • Spot: The spot preset |
|
|
Name |
Name of the light. |
|
|
InterestName |
Name of the interest. |
|
|
Parent |
Parent object for the light. |
|
|
3DObjSpot [out] |
Returns the spot light object. |
|
|
3DObjSpotInterest [out] |
Returns the spot interest. |
|
|
PrimObjSpot [out] |
Returns the spot light primitive. |
|
|
PrimObjSpotInterest [out] |
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
Autodesk Softimage v7.5