scripted/multiPlugInfoCmd.py
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)