API ガイド > API で選択する >

# 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 のあるサーフェスのみで繰り返されます。