フィルタの登録

 
 
 

Softimage でフィルタを使えるようにするには、目的のフィルタを XSILoadPlugin で登録します。この XSILoadPlugin は、Softimage で自己インストール プラグインがロードされると呼び出されます。 XSILoadPlugin は、PluginRegistrar オブジェクトを Softimage から取得し、PluginRegistrar.RegisterFilter メソッドを使用してカスタム フィルタを登録します。

function XSILoadPlugin( oPluginRegistrar )
{
	// Give the plug-in a name
	oPluginRegistrar.Name = "MyFilters";

	// Register a filter named "My3DObjectFilter" for 3D objects
	var oPluginItem = oPluginRegistrar.RegisterFilter( "My3DObjectFilter", siFilter3DObject );
	oPluginItem.Categories = "Custom,Filter,3D Objects";

	// Register another filter
	oPluginRegistrar.RegisterFilter( "MyPointFilter", siFilterSubComponentPoint );
}

フィルタ名

RegisterFilter の第 1 パラメータは、フィルタ名です。 これは Softimage ユーザ インタフェースに表示される名前であり、スクリプティング内または C++ コード内でフィルタの参照に使われる名前でもあります。 また、この名前は、フィルタ コールバック関数の名前付けにも使用されます(たとえば、"My3DObjectFilter_Match" は、"My3DObjectFilter" という名前のフィルタ用の Match コールバックです)。

フィルタ名の先頭文字には英字を使用します。 先頭文字以外には、英字、数字、アンダースコア(_)、またはスペースを指定できます。 "My 3D Object Filter" のようにフィルタ名にスペースが含まれている場合は、コールバック関数名に含まれるスペースを除去して、"My3DObjectFilter_Match" や "MyFilter_Subset" のようにしてください。

フィルタ名にスペースが含まれている場合は、スペースをアンダースコアで置換してからでないと、スクリプティング コマンドまたはオブジェクト モデルにフィルタを使用できません。

var cloList = SIFilter(Application.Selection, "My_3D_Object_Filter", true, true);
var oFilter = Application.Filters.Item( "My_3D_Object_Filter" );

フィルタ タイプ

2 番目のパラメータには、フィルタ タイプを指定します。 上記の例で、定数 siFilter3DObject は、ユーザが 3D オブジェクト フィルタを登録するという指定です。 使用可能なフィルタ タイプ定数は、次のとおりです。

  • siFilter3DObject

  • siFilterSubComponentEdge

  • siFilterSubComponentPoint

  • siFilterSubComponentPolygon

  • siFilterProperty

  • siFilterObject