コンパウンド パラメータ

 
 
 

コンパウンド パラメータは、Softimage のパラメータを 1 つにまとめたものです。 これらのまとまりは、パラメータとプロパティ オーナーの中間ノードのように機能します。 代表的なコンパウンド パラメータは、ローカルまたはグローバル キネマティクス、またはローカルまたはグローバル キネマティクスです。

SDK の場合、コンパウンド パラメータは通常、CompoundParameter と呼ばれる内部クラスから派生する独自のクラス ID を実装します。このクラスは、メソッドやプロパティを実装せず、より限定的なクラスの中間クラスとしてのみ機能するので、実際にこのクラスに遭遇するのは、siCompoundParameterID クラス ID に対して、SIObject.IsClassOf または CBase::IsA を実行する場合のみです。コンパウンド パラメータは、SIObject.Type または SIObject::GetType を実行したときに、自身の型を CompoundParameter と識別します。

VBScript の例:プロパティ、シンプルパラメータ、およびコンパウンドパラメータのテスト

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