- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Examples

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Static Public Member Functions

# MItSelectionList Class Reference
OpenMaya - API module for common classes

This reference page is linked to from the following overview topics: Querying the Scene Graph, MItSelectionList, Using the Maya Python API, Example C++ plug-in descriptions, Appendix C: Frequently asked questions, Appendix D: API and Devkit limitations.

Search for all occurrences

## Detailed Description

Iterate over the items in the selection list.

Class for iterating over the items in an MSelection list. A filter can be specified so that only those items of interest on a selection list can be obtained.

If a filter is specified then the children of DAG selection items will be searched if the selection item does not match the filter. For example, if filter = MFn::kNurbsCurve and a transform is selected then the underlying shape for the transform will be in the iteration if it is a nurbs curve.

Example: (of a simple traversal)

        MSelectionList activeList;
        MGlobal::activeSelectionList(activeList);
        MItSelectionList iter( activeList );

        for ( ; !iter.isDone(); iter.next() )
        {
            MDagPath item;
            MObject component;
            iter.getDagPath( item, component );

            // do something with it
        }

Example: (of a traversal to find all active cameras)

        MSelectionList activeList;
        MGlobal::activeSelectionList(activeList);
        MItSelectionList iter( activeList, MFn::kCamera );

        for ( ; !iter.isDone(); iter.next() )
        {
            MDagPath camera;
            iter.getDagPath( camera );

            MFnCamera cameraFn( camera );

            // ...
       }

Examples:

  animExportUtil.cpp, blindComplexDataCmd.cpp, blindDoubleDataCmd.cpp, blindShortDataCmd.cpp, cleanPerFaceAssignmentCmd.cpp, closestPointCmd.cpp, componentScaleManip.cpp, convertEdgesToFacesCmd.cpp, convertVerticesToEdgesCmd.cpp, convertVerticesToFacesCmd.cpp, createClipCmd.cpp, customAttrManip.cpp, cvExpandCmd.cpp, cvPosCmd.cpp, dagPoseInfoCmd.cpp, findFileTexturesCmd.cpp, getAttrAffectsCmd.cpp, helix2Cmd.cpp, instancerListCmd.cpp, intersectCmd.cpp, lassoTool.cpp, latticeNoiseCmd.cpp, lepTranslator.cpp, lineManip.cpp, lineManipContainer.cpp, lockEvent.cpp, meshOpCmd.cpp, meshRemapCmd.cpp, meshRemapTool.cpp, meshReorderCmd.cpp, meshReorderTool.cpp, motionPathCmd.cpp, motionTraceCmd.cpp, moveCurveCVsCmd.cpp, moveManip.cpp, moveTool.cpp, narrowPolyViewer.cpp, nodeInfoCmd.cpp, objExport.cpp, polyExporter.cpp, rotateManip.cpp, spiralAnimCurveCmd.cpp, splitUVCmd.cpp, squareScaleManip.cpp, surfaceBumpManip.cpp, surfaceTwistCmd.cpp, translateCmd.cpp, and whatisCmd.cpp.

`#include <MItSelectionList.h>`

List of all members.

## Public Types
enum | selItemType { , kDagSelectionItem, kAnimSelectionItem, kDNselectionItem, kPlugSelectionItem }
| Types of items which can appear on a selection list. More...
## Public Member Functions
bool | isDone (MStatus *ReturnStatus=NULL)
| Specifies whether or not there is anything more to iterator over.
MStatus | next ()
| Advance to the next item.
MStatus | reset ()
| Reset the iterator.
MStatus | getDependNode (MObject &depNode)
| This method retrieves the dependency node of the current selection item.
MStatus | getDagPath (MDagPath &dagPath, MObject &component)
| This method retrieves the dag path and the components of the current selection item.
MStatus | getDagPath (MDagPath &dagPath)
| This method retrieves the dag path of the current selection item.
MStatus | getPlug (MPlug &plug)
| This method retrieves the plug of the current selection item.
MStatus | getStrings (MStringArray &array)
| Get the string representation of the current item in the selection list.
selItemType | itemType (MStatus *ReturnStatus=NULL)
| Returns the current selection item type.
MStatus | setFilter (MFn::Type filter)
| Apply a filter to the iteration.
bool | hasComponents (MStatus *ReturnStatus=NULL) const
| Returns whether or not the current selection item has components.
| MItSelectionList (const MSelectionList &list, MFn::Type=MFn::kInvalid, MStatus *ReturnStatus=NULL)
| Class constructor.
virtual | ~MItSelectionList ()
| Class destructor.
## Static Public Member Functions
static const char * | className ()
| Returns the name of this class.

## Member Enumeration Documentation

enum selItemType

Search for all occurrences

Types of items which can appear on a selection list.

Enumerator:

  kDagSelectionItem | DAG node or component. Search for all occurrences
  kAnimSelectionItem | keyset Search for all occurrences
  kDNselectionItem | dependency node Search for all occurrences
  kPlugSelectionItem | plug Search for all occurrences

## Constructor & Destructor Documentation

MItSelectionList | ( | const MSelectionList & | list,
|  | MFn::Type | filter = `MFn::kInvalid`,
|  | MStatus * | ReturnStatus = `NULL`
| ) |  |

Class constructor.

Creates a iterator for the given selection list.

NOTE: this class iterates on a copy of the given list and so any changes to the original list will not be reflected upon in this iterator.

Parameters:

  [in] | list | The selection list to iterate over
  [in] | filter | Type filter
  [out] | ReturnStatus | Status code

Status Codes:
  - MS::kSuccess An iterator was successfully set up
  - MS::kInsufficientMemory No memory
  - MS::kFailure Error constructing iterator

~MItSelectionList | ( |  | ) | `[virtual]`

Class destructor.

Removes internal iterator data.

## Member Function Documentation

bool isDone | ( | MStatus * | ReturnStatus = `NULL` | ) |

Search for all occurrences

Specifies whether or not there is anything more to iterator over.

Parameters:

  [out] | ReturnStatus | Status code

Returns:
  - true if there is nothing else to iterate over
  - false if there are more items left to iterate over

Status Codes:
  - MS::kSuccess Method successfully returned a result
  - MS::kFailure Error, iterator not set up correctly

Examples:
  cleanPerFaceAssignmentCmd.cpp, convertEdgesToFacesCmd.cpp, convertVerticesToEdgesCmd.cpp, convertVerticesToFacesCmd.cpp, cvExpandCmd.cpp, findFileTexturesCmd.cpp, latticeNoiseCmd.cpp, lineManip.cpp, lineManipContainer.cpp, lockEvent.cpp, moveCurveCVsCmd.cpp, squareScaleManip.cpp, and whatisCmd.cpp.

MStatus next | ( |  | ) |

Search for all occurrences

Advance to the next item.

If components are selected then advance to next component.

If a filter is specified then the next item will be one that matches the filter.

Returns:
  Status code

Status Codes:
  - MS::kSuccess Advance was successfull
  - MS::kFailure Advance was not successfull

Examples:
  cleanPerFaceAssignmentCmd.cpp, lockEvent.cpp, and moveCurveCVsCmd.cpp.

MStatus reset | ( |  | ) |

Search for all occurrences

Reset the iterator.

If a filter has been specified then the current item will be the first selected item that matches the filter.

Returns:
  Status code

Status Codes:
  - MS::kSuccess The iterator was successfully reset
  - MS::kFailure Error resetting iterator

Examples:
  cleanPerFaceAssignmentCmd.cpp.

MStatus getDependNode | ( | MObject & | depNode | ) |

Search for all occurrences

This method retrieves the dependency node of the current selection item.

Parameters:

  [out] | depNode | a pointer the the dependency node to be retrieved

Returns:
  Status code

Status Codes:
  - MS::kSuccess The dependency node was retrieved
  - MS::kFailure Current item does not match filter

Examples:
  lockEvent.cpp.

MStatus getDagPath | ( | MDagPath & | dagPath,
|  | MObject & | component
| ) |  |

Search for all occurrences

This method retrieves the dag path and the components of the current selection item.

If components are not selected then NULL is assigned to the component pointer.

Parameters:

  [out] | dagPath | The dag path of the current selection item.
  [out] | component | A pointer to the selected components of the current selection item.

Returns:
  Status code

Status Codes:
  - MS::kSuccess The dag path and component was retrieved
  - MS::kFailure Current item does not match filter

Examples:
  cleanPerFaceAssignmentCmd.cpp, lockEvent.cpp, and moveCurveCVsCmd.cpp.

MStatus getDagPath | ( | MDagPath & | dagPath | ) |

Search for all occurrences

This method retrieves the dag path of the current selection item.

Parameters:

  [out] | dagPath | The dag path of the current selection item.

Returns:
  Status code

Status Codes:
  - MS::kSuccess The dag path was retrieved
  - MS::kFailure Current item does not match filter

MStatus getPlug | ( | MPlug & | plug | ) |

Search for all occurrences

This method retrieves the plug of the current selection item.

Parameters:

  [out] | plug | The plug of the current selection item.

Returns:
  Status code

Status Codes:
  - MS::kSuccess The plug was retrieved
  - MS::kFailure Current item does not match filter, or there is no current element

MStatus getStrings | ( | MStringArray & | array | ) |

Search for all occurrences

Get the string representation of the current item in the selection list.

It is possible that it will require more than one string to represent the item (the item may contain groups of CVs for example), so a string array is used to pass back the results.

Parameters:

  [out] | array | Storage for the returned array.

Returns:
  Status code

Status Codes:
  - MS::kSuccess operation successful
  - MS::kFailure there is no current element

Examples:
  lockEvent.cpp.

MItSelectionList::selItemType itemType | ( | MStatus * | ReturnStatus = `NULL` | ) |

Search for all occurrences

Returns the current selection item type.

Parameters:

  [out] | ReturnStatus | Status code

Returns:
  - kDagSelectionItem - selection item is in the DAG
  - kAnimSelectionItem - selection item is a keyset
  - kDNselectionItem - selection item is a dependency node

Status Codes:
  - MS::kSuccess The selection item type was successfully returned
  - MS::kFailure Iterator error

MStatus setFilter | ( | MFn::Type | filter | ) |

Search for all occurrences

Apply a filter to the iteration.

Selection items not matching the filter type will be excluded from the iteration.

Parameters:

  [in] | filter | The MFn::Type that you will be included in the iteration. See MFn.h for possible types.

Returns:
  Status code

Status Codes:
  - MS::kSuccess The filter was successfully set
  - MS::kFailure The was an error setting the filter

bool hasComponents | ( | MStatus * | ReturnStatus = `NULL` | ) | const

Search for all occurrences

Returns whether or not the current selection item has components.

Parameters:

  [out] | ReturnStatus | Status code

Returns:
  - true the current selection item has components
  - false the current selection item does not have components

Status Codes:
  - MS::kSuccess hasComponents successfully returned a result
  - MS::kFailure operation failed

const char * className | ( |  | ) | `[static]`

Search for all occurrences

Returns the name of this class.

Returns:
  The name of this class.

MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList
MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList MItSelectionList