MItSelectionList
 
 
 

MltSelectionList は、選択されたオブジェクトを含むラッパ(wrapper)クラスです。これは、グローバルなアクティブ セレクション リストのコピー、または自分で構築したリストを使用することができます。

MItSelectionList を使用してセレクション リストにあるオブジェクトをフィルタ処理すると、ある特定のタイプのオブジェクトを表示できます(MSelectionList では、選択したオブジェクトをフィルタ処理することはできません)。

MGlobal::getActiveSelectionList( list );
for ( MItSelectionList listIter( list ); !listIter.isDone(); listIter.next() )
{
	listIter.getDagPath( node, component );
	nodeFn.setObject( node );
	cout << nodeFn.name().asChar() << “%s is selected” << endl;
}

このコードによって MSelectionListのサンプルを変更し、MSelectionList の代わりに MltSelectionList を使用してセレクション リストを繰り返し処理することができます。オブジェクトを選択してこれを行うと、前のサンプルとまったく同じ結果になります。

特定のタイプのオブジェクトのみを検索するようにコードを変更することは簡単です。たとえば、セレクション リストのイテレータのコンストラクタを以下のように変更します。

MItSelectionList listIter( list, MFn::kNurbsSurface )

このように変更すると、選択された NURBS サーフェスのみでループが繰り返され、サーフェス CV は無視されます。選択されたサーフェス CV のみで繰り返す場合は、イテレータを以下のように変更します。

MItSelectionList listIter( list, MFn::kSurfaceCVComponent )

このように変更すると、選択された CV のあるサーフェスのみで繰り返されます。