MFnSet Class Reference

#include <MFnSet.h>

Class Description

Function Set for Sets of Objects.

MFnSet is the function set that is used for manipulating sets of objects. Sets in Maya are dependency nodes, so it is possible for one set to contain others.

A set is a list of dependency nodes and dag nodes. Sets are useful for keeping track of lists of objects for many purposes such as selection or applying common rendering parameters. Sets in Maya are also dependency nodes, so it is possible for one set to contain others.

+ Examples:
+ Inheritance diagram for MFnSet:

Public Types

enum  Restriction {
  kNone, kVerticesOnly, kEdgesOnly, kFacetsOnly,
  kEditPointsOnly, kRenderableOnly
}
 Set membership restrictions. More...
 
- Public Types inherited from MFnDependencyNode
enum  MAttrClass { kLocalDynamicAttr = 1, kNormalAttr, kExtensionAttr, kInvalidAttr }
 Specifies the scope of the attribute. More...
 
enum  MdgTimerState { kTimerOff, kTimerOn, kTimerUninitialized, kTimerInvalidState }
 Possible states for the node's timer. More...
 
enum  MdgTimerMetric {
  kTimerMetric_callback, kTimerMetric_compute, kTimerMetric_dirty, kTimerMetric_draw,
  kTimerMetric_fetch, kTimerMetric_callbackViaAPI, kTimerMetric_callbackNotViaAPI, kTimerMetric_computeDuringCallback,
  kTimerMetric_computeNotDuringCallback, kTimerMetrics
}
 The different timer metrics which can be queried. More...
 
enum  MdgTimerType { kTimerType_self, kTimerType_inclusive, kTimerType_count, kTimerTypes }
 The types of timers which can be queried. More...
 

Public Member Functions

virtual MFn::Type type () const
 Function set type. More...
 
virtual ~MFnSet ()
 Destructor.
 
 MFnSet ()
 Default constructor.
 
 MFnSet (MObject &object, MStatus *ReturnStatus=NULL)
 Constructor. More...
 
MObject create (const MSelectionList &members, Restriction restriction=kNone, MStatus *ReturnStatus=NULL)
 Creates a new set dependency node and puts it in the dependency graph. More...
 
MStatus getUnion (const MObject &withSet, MSelectionList &result)
 This method calculates the union of two sets. More...
 
MStatus getUnion (const MObjectArray &setList, MSelectionList &result)
 This method calculates the union of a list of sets. More...
 
MStatus getIntersection (const MObject &withSet, MSelectionList &result)
 This method calculates the intersection of two sets. More...
 
MStatus getIntersection (const MObjectArray &setList, MSelectionList &result)
 This method calculates the intersection of a list of sets. More...
 
MStatus clear ()
 Removes all elements from this set. More...
 
MStatus getMembers (MSelectionList &members, bool flatten) const
 Get the members of this set as a selection list. More...
 
MStatus addMember (const MObject &obj)
 Add a new object (dependency node) to the set. More...
 
MStatus addMember (const MDagPath &obj, const MObject &component=MObject::kNullObj)
 Add a new object (DAG node) to the set. More...
 
MStatus addMember (const MPlug &plug)
 Add a new plug to the set. More...
 
MStatus addMembers (const MSelectionList &list)
 Add a list of new objects to the set. More...
 
MStatus removeMember (const MObject &obj)
 Remove an object (dependency node) from the set. More...
 
MStatus removeMember (const MDagPath &obj, const MObject &component)
 Remove an object (DAG node) from the set. More...
 
MStatus removeMember (const MPlug &plug)
 Remove an plug from the set. More...
 
MStatus removeMembers (const MSelectionList &list)
 Remove items of the selection list from the set. More...
 
bool isMember (const MObject &object, MStatus *ReturnStatus=NULL) const
 Returns true if the given object (dependency node) is a member of this set. More...
 
bool isMember (const MDagPath &object, const MObject &component=MObject::kNullObj, MStatus *ReturnStatus=NULL) const
 Returns true if the given object (DAG node) is a member of this set. More...
 
bool isMember (const MPlug &plug, MStatus *ReturnStatus=NULL) const
 Returns true if the given plug is a member of this set. More...
 
bool intersectsWith (const MObject &otherSet, MStatus *ReturnStatus=NULL) const
 Returns true if this set intersects with the given set. More...
 
bool hasRestrictions (MStatus *ReturnStatus=NULL) const
 Returns true if this function set has restrictions on the type of objects that it may contain. More...
 
Restriction restriction (MStatus *ReturnStatus=NULL) const
 Returns the type of membership restriction that this set has. More...
 
MString annotation (MStatus *ReturnStatus=NULL) const
 Returns the annotation string for this set. More...
 
MStatus setAnnotation (const MString &annotation)
 Sets the annotation string for this set. More...
 
 MFnSet (const MObject &object, MStatus *ReturnStatus=NULL)
 Constructor. More...
 
- Public Member Functions inherited from MFnDependencyNode
virtual ~MFnDependencyNode ()
 Destructor.
 
 MFnDependencyNode ()
 Default constructor.
 
 MFnDependencyNode (MObject &object, MStatus *ReturnStatus=NULL)
 Constructor. More...
 
MObject create (const MTypeId &typeId, MStatus *ReturnStatus=NULL)
 Creates a new dependency node with the given type tag. More...
 
MObject create (const MTypeId &typeId, const MString &name, MStatus *ReturnStatus=NULL)
 Creates a new dependency node with the given type tag. More...
 
MObject create (const MString &type, MStatus *ReturnStatus=NULL)
 Creates a new dependency node with the given type. More...
 
MObject create (const MString &type, const MString &name, MStatus *ReturnStatus=NULL)
 Creates a new dependency node with the given type. More...
 
MTypeId typeId (MStatus *ReturnStatus=NULL) const
 Returns the type id of this node. More...
 
MString typeName (MStatus *ReturnStatus=NULL) const
 Returns the type name of this node. More...
 
MString name (MStatus *ReturnStatus=NULL) const
 Returns the name of this node. More...
 
MString absoluteName (MStatus *ReturnStatus=NULL) const
 Returns the absolute name of this node. More...
 
MString pluginName (MStatus *ReturnStatus=NULL) const
 Returns the name of the plug-in this MFnDependendencyNode was defined in. More...
 
MString setName (const MString &name, bool createNamespace=false, MStatus *ReturnStatus=NULL)
 Sets the name of this node. More...
 
MUuid uuid (MStatus *ReturnStatus=NULL) const
 Returns the node's UUID. More...
 
void setUuid (const MUuid &uuid, MStatus *ReturnStatus=NULL)
 Sets the node's UUID. More...
 
MStatus getConnections (MPlugArray &array) const
 Get all of the current connections to this node as an array of plugs. More...
 
unsigned int attributeCount (MStatus *ReturnStatus=NULL) const
 Returns the number of attributes that this node has. More...
 
MObject attribute (unsigned int index, MStatus *ReturnStatus=NULL) const
 Finds the attribute of this node at the given index. More...
 
MObject reorderedAttribute (unsigned int index, MStatus *ReturnStatus=NULL) const
 Some nodes, such as the various animCurve nodes, require that their attributes be set in a specific order for proper operation. More...
 
MObject attribute (const MString &attrName, MStatus *ReturnStatus=NULL) const
 Finds the attribute of this node that has the given name. More...
 
MAttrClass attributeClass (const MObject &attr, MStatus *ReturnStatus=NULL) const
 Returns the class (normal, dynamic, extension) of the specified attribute. More...
 
MStatus getAffectedAttributes (const MObject &attr, MObjectArray &affectedAttributes) const
 Returns an array of attributes that are affected by the attribute passed in. More...
 
MStatus getAffectedByAttributes (const MObject &attr, MObjectArray &affectedByAttributes) const
 Returns an array of attributes that affect the attribute passed in, attr. More...
 
MPlug findPlug (const MObject &attr, bool wantNetworkedPlug, MStatus *ReturnStatus=NULL) const
 Attempt to find a plug for the given attribute. More...
 
MPlug findPlug (const MString &attrName, bool wantNetworkedPlug, MStatus *ReturnStatus=NULL) const
 Attempt to find a plug for the given attribute. More...
 
MPlug findPlug (const MObject &attr, MStatus *ReturnStatus=NULL) const
 This method is obsolete. More...
 
MPlug findPlug (const MString &attrName, MStatus *ReturnStatus=NULL) const
 This method is obsolete. More...
 
MStatus addAttribute (const MObject &attr)
 Add a new dynamic attibute to this node. More...
 
MStatus removeAttribute (const MObject &attr)
 Remove a dynamic attribute from a node. More...
 
MPxNodeuserNode (MStatus *ReturnStatus=NULL) const
 If the function set's node is a plug-in node, then this method will extract the MPxNode pointer from it. More...
 
bool isFromReferencedFile (MStatus *ReturnStatus=NULL) const
 Indicates whether or not this node came from a referenced file. More...
 
bool isShared (MStatus *ReturnStatus=NULL) const
 Indicates whether or not this node is shared. More...
 
bool isTrackingEdits (MStatus *ReturnStatus=NULL) const
 Returns whether or not edits on the given node are being tracked by the generalized edit system. More...
 
bool hasUniqueName (MStatus *ReturnStatus=NULL) const
 Indicates whether or not this node's name is unique within the scene. More...
 
MString parentNamespace (MStatus *ReturnStatus=NULL) const
 Returns the name of the namespace in which this node resides. More...
 
bool isLocked (MStatus *ReturnStatus=NULL) const
 Indicates whether or not this node is locked. More...
 
MStatus setLocked (bool locked)
 Locks or unlocks this node. More...
 
bool isNewAttribute (const MObject &attr, MStatus *ReturnStatus=NULL) const
 Indicates whether or not the specified attribute was added to this node within the current scene. More...
 
MStatus setFlag (unsigned int flag, bool state)
 Sets the state of the specified flag for the node. More...
 
bool isFlagSet (unsigned int flag, MStatus *ReturnStatus=NULL) const
 Retrieves the current state of the specified flag for a node. More...
 
bool isDefaultNode (MStatus *ReturnStatus=NULL) const
 Returns true if the node is a default node. More...
 
MStatus setDoNotWrite (bool flag)
 Use this method to mark the "do not write" state of this node. More...
 
bool canBeWritten (MStatus *ReturnStatus=NULL) const
 Returns the do not write state of the node. More...
 
bool hasAttribute (const MString &name, MStatus *ReturnStatus=NULL) const
 Returns true if the node already has an attribute with the given name. More...
 
MObject getAliasAttr (bool force, MStatus *ReturnStatus=NULL)
 Returns the node's alias attribute, which is a special attribute used to store information about the node's attribute aliases. More...
 
bool setAlias (const MString &alias, const MString &name, const MPlug &plug, bool add=true, MStatus *ReturnStatus=NULL)
 Sets or removes an alias (i.e. More...
 
bool findAlias (const MString &alias, MObject &attrObj, MStatus *ReturnStatus=NULL) const
 Retrieves the attribute with the given alias. More...
 
bool getAliasList (MStringArray &strArray, MStatus *ReturnStatus=NULL)
 Returns a list of all attribute aliases for this node. More...
 
MString plugsAlias (const MPlug &plug, MStatus *ReturnStatus=NULL)
 Returns the alias for the plug's attribute or the empty string if that attribute has no alias. More...
 
MStatus setIcon (const MString &filename)
 Associates a custom icon with the node for display in the Maya UI. More...
 
MString icon (MStatus *ReturnStatus=NULL) const
 Returns the custom icon filename associated with the node. More...
 
MStatus getExternalContent (MExternalContentInfoTable &table) const
 Returns the external content (files) that this node depends on. More...
 
MStatus addExternalContentForFileAttr (MExternalContentInfoTable &table, const MObject &attr) const
 Adds content info to the specified table from a file path attribute. More...
 
MStatus setExternalContentForFileAttr (const MObject &attr, const MExternalContentLocationTable &table)
 Sets content info in the specified attribute from the table. More...
 
MStatus setExternalContent (const MExternalContentLocationTable &table)
 Changes the location of external content. More...
 
MString setName (const MString &name, MStatus *ReturnStatus)
 OBSOLETE FUNCTION, NO SCRIPT SUPPORT. More...
 
 MFnDependencyNode (const MObject &object, MStatus *ReturnStatus=NULL)
 NO SCRIPT SUPPORT. More...
 
bool getPlugsAlias (const MPlug &plug, MString &aliasName, MStatus *ReturnStatus=NULL)
 NO SCRIPT SUPPORT. More...
 
virtual const adsk::Data::Associationsmetadata (MStatus *ReturnStatus=NULL) const
 This method is not available in Python. More...
 
virtual MStatus setMetadata (const adsk::Data::Associations &)
 This method is not available in Python. More...
 
virtual MStatus deleteMetadata ()
 This method is not available in Python. More...
 
virtual MStatus validateMetadata (MString &errors) const
 This method is not available in Python. More...
 
MStatus dgTimerOn ()
 Indicates that this node should collect DG timing data whenever DG timing is enabled. More...
 
MStatus dgTimerOff ()
 Indicates that this node should no longer collect DG timing data when DG timing is enabled. More...
 
MdgTimerState dgTimerQueryState (MStatus *ReturnStatus=NULL)
 The function returns the current on/off state of the node's timer. More...
 
MStatus dgTimerReset ()
 The function resets the dependency graph timers and counters for this node to zero. More...
 
double dgTimer (const MdgTimerMetric timerMetric, const MdgTimerType timerType, MStatus *ReturnStatus=NULL) const
 The function returns the specified timer value for the current node. More...
 
MStatus dgCallbacks (const MdgTimerType type, MStringArray &callbackName, MDoubleArray &value)
 Node callbacks that occur when timing is enabled get logged with the node and can be queried via this method. More...
 
MStatus dgCallbackIds (const MdgTimerType type, const MString &callbackName, MCallbackIdArray &callbackId, MDoubleArray &value)
 This method provides a further breakdown of the per-callback time returned via dgCallbacks() by returning the data on a per-callbackId basis. More...
 
MStatus addAttribute (const MObject &attr, MAttrClass type)
 This method is obsolete. More...
 
MStatus removeAttribute (const MObject &attr, MAttrClass type)
 This method is obsolete. More...
 
- Public Member Functions inherited from MFnBase
virtual ~MFnBase ()
 Class Destructor. More...
 
bool hasObj (MFn::Type) const
 Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system. More...
 
bool hasObj (const MObject &) const
 Determines whether or not the Function Set is compatible with the specified Maya Object within the API RTTI system. More...
 
MObject object (MStatus *ReturnStatus=NULL) const
 Returns the MObject that is attached to the Function Set. More...
 
virtual MStatus setObject (MObject &object)
 Attaches the Function Set to the specified Maya Object. More...
 
virtual MStatus setObject (const MObject &object)
 NO SCRIPT SUPPORT. More...
 

Protected Member Functions

virtual const char * className () const
 Class name. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from MFnDependencyNode
static MString classification (const MString &nodeTypeName)
 Retrieves the classification string for a node type. More...
 
static unsigned int allocateFlag (const MString pluginName, MStatus *ReturnStatus=NULL)
 Allocates a node flag for sole use by the caller. More...
 
static MStatus deallocateFlag (const MString pluginName, unsigned int flag)
 Deallocates a node flag which was previously allocated by a call to allocateFlag. More...
 
static MStatus deallocateAllFlags (const MString pluginName)
 Deallocates all of the node flags which are currently allocated to the specified plugin. More...
 
static void enableDGTiming (bool enable)
 Globally enables or disables the DG node timing mechanism. More...
 
- Static Public Member Functions inherited from MFnBase
static const char * className ()
 Returns the name of this class. More...
 

Member Enumeration Documentation

Set membership restrictions.

Enumerator
kNone 

 

kVerticesOnly 

 

kEdgesOnly 

 

kFacetsOnly 

 

kEditPointsOnly 

 

kRenderableOnly 

 

Constructor & Destructor Documentation

MFnSet ( MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters
[in]objectThe MObject to attach the function set to
[out]ReturnStatusthe return status
Status Codes:
MFnSet ( const MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters
[in]objectThe MObject to attach the function set to
[out]ReturnStatusthe return status
Status Codes:

Member Function Documentation

MFn::Type type ( ) const
virtual

Function set type.

Return the class type : MFn::kSet.

Reimplemented from MFnDependencyNode.

Reimplemented in MFnCharacter.

const char * className ( ) const
protectedvirtual

Class name.

Return the class name : "MFnSet".

Reimplemented from MFnDependencyNode.

Reimplemented in MFnCharacter.

MObject create ( const MSelectionList members,
Restriction  restriction = kNone,
MStatus ReturnStatus = NULL 
)

Creates a new set dependency node and puts it in the dependency graph.

Parameters
[in]memberslist of members for new set
[in]restrictionrestriction applied to members
[out]ReturnStatusreturn status
Returns
A handle for the new set object
Status Codes:
+ Examples:
MStatus getUnion ( const MObject withSet,
MSelectionList result 
)

This method calculates the union of two sets.

The result will be the union of this set and the set passed into the method.

Parameters
[in]withSetset to find union of with this set
[out]resultstorage for the result of the union operation
Returns
Return status
Status Codes:
MStatus getUnion ( const MObjectArray setList,
MSelectionList result 
)

This method calculates the union of a list of sets.

The result will be the union of this set and the sets passed into the method.

Parameters
[in]setListsets to find union of with this set
[out]resultstorage for the result of the union operation
Returns
Return status
Status Codes:
MStatus getIntersection ( const MObject withSet,
MSelectionList result 
)

This method calculates the intersection of two sets.

The result will be the intersection of this set and the set passed into the method.

Parameters
[in]withSetset to find intersection of with this set
[out]resultstorage for the result of the intersection operation
Returns
Return status
Status Codes:
MStatus getIntersection ( const MObjectArray setList,
MSelectionList result 
)

This method calculates the intersection of a list of sets.

The result will be the intersection of this set and the sets passed into the method.

Parameters
[in]setListsets to find intersection of with this set
[out]resultstorage for the result of the intersection operation
Returns
Return status
Status Codes:
MStatus clear ( )

Removes all elements from this set.

Returns
Return status
Status Codes:
MStatus getMembers ( MSelectionList members,
bool  flatten 
) const

Get the members of this set as a selection list.

This information is provided as a selection list so that all of the path information is retained for DAG nodes.

It is possible to ask for the returned list to be flattened. This means that all sets that exist inside this set will be expanded into a list of their contents.

Typically set members are updated using callbacks. When members are added/removed, the set members ar marked as dirty. The set members are only updated on request such as invoking getMembers(). This method can be useful in scenarios where callbacks are temporarily suspended (eg. during file IO operations).

Parameters
[out]membersstorage for the returned list of members
[in]flattenwhether to flatten the returned list.
Returns
Return status
Status Codes:
+ Examples:
MStatus addMember ( const MObject obj)

Add a new object (dependency node) to the set.

Parameters
[in]objthe object to add
Returns
Return status
Status Codes:
+ Examples:
MStatus addMember ( const MDagPath obj,
const MObject component = MObject::kNullObj 
)

Add a new object (DAG node) to the set.

Parameters
[in]objthe object to add
[in]componentthe selection component
Returns
Return status
Status Codes:
MStatus addMember ( const MPlug plug)

Add a new plug to the set.

Parameters
[in]plugthe plug to add
Returns
Return status
Status Codes:
MStatus addMembers ( const MSelectionList list)

Add a list of new objects to the set.

Parameters
[in]listthe list of objects as a selection list
Returns
Return status
Status Codes:
MStatus removeMember ( const MObject obj)

Remove an object (dependency node) from the set.

Parameters
[in]objthe object to remove
Returns
Return status
Status Codes:
+ Examples:
MStatus removeMember ( const MDagPath obj,
const MObject component 
)

Remove an object (DAG node) from the set.

Parameters
[in]objthe object to remove
[in]componentthe selection component
Returns
Return status
Status Codes:
MStatus removeMember ( const MPlug plug)

Remove an plug from the set.

Parameters
[in]plugthe plug to remove
Returns
Return status
Status Codes:
MStatus removeMembers ( const MSelectionList list)

Remove items of the selection list from the set.

Parameters
[in]listthe selection list of items to remove
Returns
Return status
Status Codes:
+ Examples:
bool isMember ( const MObject object,
MStatus ReturnStatus = NULL 
) const

Returns true if the given object (dependency node) is a member of this set.

Parameters
[in]objectobject to test for membership
[out]ReturnStatusreturn status
Returns
A boolean value indicating whether the object is a member
Status Codes:
bool isMember ( const MDagPath object,
const MObject component = MObject::kNullObj,
MStatus ReturnStatus = NULL 
) const

Returns true if the given object (DAG node) is a member of this set.

Parameters
[in]objectobject to test for membership
[in]componentselection component (optional)
[out]ReturnStatusreturn status
Returns
A boolean value indicating whether the object is a member
Status Codes:
bool isMember ( const MPlug plug,
MStatus ReturnStatus = NULL 
) const

Returns true if the given plug is a member of this set.

Parameters
[in]plugplug to test for membership
[out]ReturnStatusreturn status
Returns
A boolean value indicating whether the plug is a member
Status Codes:
bool intersectsWith ( const MObject otherSet,
MStatus ReturnStatus = NULL 
) const

Returns true if this set intersects with the given set.

An intersection occurs if there are any common members between the two sets.

Parameters
[in]otherSetset to test for intersection with
[out]ReturnStatusreturn status
Returns
Boolean value indicating whether there was an intersection
Status Codes:
bool hasRestrictions ( MStatus ReturnStatus = NULL) const

Returns true if this function set has restrictions on the type of objects that it may contain.

Parameters
[out]ReturnStatusreturn status
Returns
A boolean value indicating whether this set has restriction
Status Codes:
MFnSet::Restriction restriction ( MStatus ReturnStatus = NULL) const

Returns the type of membership restriction that this set has.

Parameters
[out]ReturnStatusreturn status
Returns
The type of restriction
Status Codes:
MString annotation ( MStatus ReturnStatus = NULL) const

Returns the annotation string for this set.

This allows a description of the set to be stored with it.

Parameters
[out]ReturnStatusreturn status
Returns
The annotation string
Status Codes:
MStatus setAnnotation ( const MString annotation)

Sets the annotation string for this set.

This allows a description of the set to be stored with it.

Parameters
[in]annotationnew annotation string
Returns
Return status
Status Codes:

The documentation for this class was generated from the following files:
  • MFnSet.h
  • MFnSet.cpp