CustomOperator.AddIOPort

導入

v4.0

詳細

カスタムオペレータにInputPortおよびOutputPortを追加します。CustomOperator.AddInputPortがあとに続くCustomOperator.AddOutputPortの呼び出しに相当します。

注:出力接続と入力接続の両方を設定することは、デフォーメーションオペレータおよびオブジェクトの既存のステートを修正する他のオペレータを正しく機能させるうえで非常に重要です。設定しないと、オペレータは互いのオペレータと正しく共存できなくなります。つまり、同じオブジェクトを表す2 つのポートが存在するようになりますが、それらのポートはそのオブジェクトの別のコピーをポイントする可能性があります。そのため、オペレータは入力からのみオブジェクト状態を読み取り、出力からオブジェクトを変更します。

C#構文

PortCollection CustomOperator.AddIOPort( Object in_PortTarget, String in_PortName, Int32 in_portgroup, Int32 in_InsertAt, Int32 in_flags );

スクリプト構文

oReturn = CustomOperator.AddIOPort( PortTarget, [PortName], [PortGroup], [InsertAt], [Flags] );

戻り値

PortCollection オブジェクトに新しく作成された入力ポートと出力ポート

パラメータ

パラメータ タイプ 説明
PortTarget Variant ポートに接続するオブジェクトを表すオブジェクトまたはエクスプレッションSoftimage はオブジェクトのフルネームを記憶しますが、別のオブジェクトに接続するときに上書きされます(Operator.ConnectおよびOperator.ConnectToGroupを参照)。
PortName String ポートの名前。名前を指定しなかった場合は、入力ポートおよび出力ポートの名前は自動的に作成されます。入力ポートの名前には"In"というプリフィックスと、ポートに接続するオブジェクトのParameter.ScriptNameが付きます。出力ポートも同じですが、プリフィックスは"Out"になります。

デフォルト値:""(空文字列)

PortGroup Long ポートグループのインデックス

デフォルト値:-1(ポートグループの最後に追加)

InsertAt Long 特定インデックスのポートのインデックス

デフォルト値:-1(ポートグループ内のポートの最後に追加)

Flags Long siPortFlags により記述されたポートグループフラグのマスク

デフォルト値: 0

JScript の例

/*

	This example illustrates how to use the AddIOPort method to define 

	an input/output port.

*/

NewScene( null, false );

var obj = CreatePrim( "Cube", "MeshSurface");

var sop = XSIFactory.CreateScriptedOp( "MyOperator", MyOperator_Update.toString(), "JScript" )

sop.AddIOPort( obj.ActivePrimitive );

sop.Connect();

// The operator's update function

function MyOperator_Update( ctx, out, in1 ) 

{

	Application.LogMessage( "MyOperator_Update: " + out.Value );

	var aPos = in1.Value.Geometry.Points.PositionArray.toArray();

	out.Value.Geometry.Points.PositionArray = aPos;

}

関連項目

CustomOperator.AddIOPortByClassID AddCustomOp