Compound Parameters

 
 
 

Compound parameters represent bundles of parameters in Softimage. These bundles are like an intermediate node between parameters and their property owners. The most common compound parameter is the local or global kinematics or local or global kinematics.

For the SDK, compound parameters usually implement their own class ID which derive from an internal class called CompoundParameter. Since this class implements no methods or properties and serves only as an intermediate class for more specific classes, the only time you will encounter the class is if you SIObject.IsClassOf or CBase::IsA against the siCompoundParameterID) class ID. Compound parameters also identify themselves as being of type CompoundParameter when you SIObject.Type or SIObject::GetType.

VBScript Example: Testing for Property, Simple and Compound Parameters

NewScene , false
set oTorus = Application.ActiveSceneRoot.AddGeometry( "Torus", "MeshSurface" )

' Test a property and its simple parameter
LogInfo oTorus.Properties( "Visibility" )
LogInfo oTorus.Properties( "Visibility" ).Parameters( "viewvis" )

' Test property, its compound and simple parameters
LogInfo oTorus.Kinematics
LogInfo oTorus.Kinematics.Local
LogInfo oTorus.Kinematics.Local.Parameters( "PosX" )

' Ouput:
' INFO : ----------------------
' INFO : Name: torus.visibility
' INFO : Type: visibility
' INFO : Class: Property
' INFO : IsClassOf(siParameterID): False
' INFO : IsClassOf(siCompoundParameterID): False
' INFO : IsClassOf(siPropertyID): True
' INFO : ----------------------
' INFO : Name: torus.visibility.viewvis
' INFO : Type: Parameter
' INFO : Class: Parameter
' INFO : IsClassOf(siParameterID): True
' INFO : IsClassOf(siCompoundParameterID): False
' INFO : IsClassOf(siPropertyID): False
' INFO : ----------------------
' INFO : Name: torus.kine
' INFO : Type: kine
' INFO : Class: Kinematics
' INFO : IsClassOf(siParameterID): False
' INFO : IsClassOf(siCompoundParameterID): False
' INFO : IsClassOf(siPropertyID): True
' INFO : ----------------------
' INFO : Name: torus.kine.local
' INFO : Type: CompoundParameter
' INFO : Class: KinematicState
' INFO : IsClassOf(siParameterID): True
' INFO : IsClassOf(siCompoundParameterID): True
' INFO : IsClassOf(siPropertyID): False
' INFO : ----------------------
' INFO : Name: torus.kine.local.posx
' INFO : Type: Parameter
' INFO : Class: Parameter
' INFO : IsClassOf(siParameterID): True
' INFO : IsClassOf(siCompoundParameterID): False
' INFO : IsClassOf(siPropertyID): False



' Convenience method to print info easily
sub LogInfo( in_obj )
	Application.LogMessage "----------------------"
	Application.LogMessage "Name: " & in_obj.FullName
	Application.LogMessage "Type: " & in_obj.Type
	Application.LogMessage "Class: " & TypeName(in_obj)
	Application.LogMessage "IsClassOf(siParameterID): " & in_obj.IsClassOf(siParameterID)
	Application.LogMessage "IsClassOf(siCompoundParameterID): " & in_obj.IsClassOf(siCompoundParameterID)
	Application.LogMessage "IsClassOf(siPropertyID): " & in_obj.IsClassOf(siPropertyID)
end sub