Maya API How-To #02 | ||
| ||
How can I get a MObjectArray of a particular type of DAG/DG node?Here's an example of how I've extend the MObjectArray class to populate itself with DAG/DG nodes matching a specified type. //------------------------------------------------------------ // MObjectArrayHelper declaration //------------------------------------------------------------ class MObjectArrayHelper: public MObjectArray { public: MObjectArrayHelper(void); virtual ~MObjectArrayHelper(void); MStatus getDGOfType( MFn::Type ); MStatus getDAGOfType( MFn::Type ); }; //------------------------------------------------------------ // getDGOfType // // Fills MObjectArray with array of nodes matching given type. // // * My findings suggested that the MGlobal::getSelection* functions // could ONLY for DAG nodes and not DG nodes. Thus, I've created // this function as a member of a MObjectArray-derived class. //------------------------------------------------------------ MStatus MObjectArrayHelper::getDGOfType( MFn::Type type ) { for ( MItDependencyNodes listIter( type ); !listIter.isDone(); listIter.next() ) { if ( MS::kSuccess != append( listIter.item() ) ) return MS::kFailure; } return MS::kSuccess; } //------------------------------------------------------------ // getDAGOfType // // Fills MObjectArray with array of DAG nodes matching given type. //------------------------------------------------------------ MStatus MObjectArrayHelper::getDAGOfType( MFn::Type type ) { for ( MItDag listIter( MItDag::kDepthFirst, type ); !listIter.isDone(); listIter.next() ) { if ( MS::kSuccess != append( listIter.item() ) ) return MS::kFailure; } return MS::kSuccess; } Related How-To's | ||
Copyright ©2005 by Bryan Ewert, maya@ewertb.com Maya is a Registered Trademark of Alias |