MItSelectionList

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

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

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

MItSelectionList listIter( list, MFn::kNurbsSurface )

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

MItSelectionList listIter( list, MFn::kSurfaceCVComponent )

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