v4.0
新しいスクリプトオペレータを作成し、その出力をこのオブジェクトに接続します。スクリプトコードが指定されていない場合には、デフォルトの実装が使用されます。スクリプト言語は省略できます。指定しない場合には、現在のスクリプト言語のユーザプリファレンスが使用されます。
oReturn = ProjectItem.AddScriptedOp( [Code], Inputs, [Name], [Language], [ConstructionMode] ); |
パラメータ | タイプ | 詳細 |
---|---|---|
コード | String | スクリプトオペレータの実装を含むスクリプトコード |
入力 | List | 入力ポートに接続するオブジェクトまたはパラメータのリスト |
Name | String | 新しいオペレータの名前
デフォルト値: ScriptedOp |
Language | String | 新しいスクリプトオペレータのスクリプト言語
デフォルト値:application.preferences.scripting.languageから取得した設定値 |
ConstructionMode | siConstructionMode | オペレータが作成されるコンストラクションスタックの位置。これは、Geometryオブジェクトに対して作成された出力接続にのみ適用されます。その他のすべての接続タイプではモードは無視されます。
デフォルト値:siConstructionModeDefault |
/* This example creates a simple expression-like runtime scripted operator which constrains the rotation of one object to another */ NewScene( null, false ); var obj1 = GetPrim( "null" ); var obj2 = GetPrim( "null" ); var col = XSIFactory.CreateActiveXObject( "XSI.Collection" ); col.Add( obj1.Kinematics.Global ); col.Add( obj2.Kinematics.Global ); obj1.Kinematics.Global.AddScriptedOp( myexpr_Update.toString(), col, "myexpr", "JScript" ); function myexpr_Update( ctx, out, inglobal1, inglobal2 ) { var transfo = inglobal1.Value.Transform; var rot = XSIMath.CreateRotation(); inglobal2.Value.Transform.GetRotation(rot); transfo.SetRotation( rot ); out.Value.Transform = transfo; } |