22 import maya.OpenMaya 
as OpenMaya
 
   23 import maya.OpenMayaMPx 
as OpenMayaMPx
 
   25 kPluginCmdName  = 
"multiPlugInfo" 
   27 kIndexFlagLong  = 
"-index" 
   30 def advance(arrayHdl):
 
   40 class multiPlugInfo(OpenMayaMPx.MPxCommand):
 
   42         OpenMayaMPx.MPxCommand.__init__(self)
 
   44         self.__isIndex = 
False 
   48         This method is called from script when this command is called. 
   49         It should set up any class data necessary for redo/undo, 
   50         parse any given arguments, and then call redoIt. 
   54         if argData.isFlagSet(kIndexFlag):
 
   59         argData.getObjects(slist)
 
   60         if slist.length() == 0:
 
   61             print "Must specify an array plug in the form <nodeName>.<multiPlugName>." 
   65         slist.getPlug(0, plug)
 
   67             print "Must specify an array plug in the form <nodeName>.<multiPlugName>." 
   71         dh = plug.asMDataHandle()
 
   76             print "Could not create the array data handle." 
   77             plug.destructHandle(dh)
 
   82         for i 
in range(adh.elementCount()):
 
   84                 indx = adh.elementIndex()
 
   90                 self.appendToResult(indx)
 
   94                     if h.numericType() == OpenMaya.MFnNumericData.kBoolean:
 
   95                         self.appendToResult(h.asBool())
 
   96                     elif h.numericType() == OpenMaya.MFnNumericData.kShort:
 
   97                         self.appendToResult(h.asShort())
 
   98                     elif h.numericType() == OpenMaya.MFnNumericData.kInt:
 
   99                         self.appendToResult(h.asInt())
 
  100                     elif h.numericType() == OpenMaya.MFnNumericData.kFloat:
 
  101                         self.appendToResult(h.asFloat())
 
  102                     elif h.numericType() == OpenMaya.MFnNumericData.kDouble:
 
  103                         self.appendToResult(h.asDouble())
 
  105                         print "This sample command only supports boolean, integer, and floating point values." 
  108         plug.destructHandle(dh)
 
  112     return OpenMayaMPx.asMPxPtr(multiPlugInfo())
 
  118     syntax.addFlag(kIndexFlag, kIndexFlagLong, OpenMaya.MSyntax.kNoArg)
 
  119     syntax.setObjectType(OpenMaya.MSyntax.kSelectionList, 1, 1)
 
  123 def initializePlugin(mobject):
 
  124     mplugin = OpenMayaMPx.MFnPlugin(mobject, 
"Autodesk", 
"1.0", 
"Any")
 
  126         mplugin.registerCommand(kPluginCmdName, cmdCreator, syntaxCreator)
 
  128         sys.stderr.write( 
"Failed to register command: %s\n" % kPluginCmdName)
 
  131 def uninitializePlugin(mobject):
 
  132     mplugin = OpenMayaMPx.MFnPlugin(mobject)
 
  134         mplugin.deregisterCommand(kPluginCmdName)
 
  136         sys.stderr.write(
"Failed to unregister command: %s\n" % kPluginCmdName)