scripted/motionTraceCmd.py
78 import maya.OpenMaya
as OpenMaya
79 import maya.OpenMayaMPx
as OpenMayaMPx
82 kPluginCmdName=
"spMotionTrace"
85 kStartLongFlag =
"-startFrame"
87 kEndLongFlag =
"-endFrame"
89 kByLongFlag =
"-byFrame"
92 class motionTrace(OpenMayaMPx.MPxCommand):
94 OpenMayaMPx.MPxCommand.__init__(self)
101 def doIt(self, args):
103 This method is called from script when this command is called.
104 It should set up any class data necessary for redo/undo,
105 parse any given arguments, and then call redoIt.
109 if argData.isFlagSet(kStartFlag):
110 self.__start = argData.flagArgumentInt(kStartFlag, 0)
111 if argData.isFlagSet(kEndFlag):
112 self.__end = argData.flagArgumentInt(kEndFlag, 0)
113 if argData.isFlagSet(kByFlag):
114 self.__by = argData.flagArgumentInt(kByFlag, 0)
121 This method performs the action of the command.
122 This method iterates over all selected items and
123 prints out connected plug and dependency node type
136 while not iter.isDone():
138 iter.getDependNode(dependNode)
139 picked.append(dependNode)
146 while (time <= self.__end):
151 for i
in range(picked.length()):
153 dependNode = picked[i]
159 txAttr = fnDependNode.attribute(
"translateX")
161 tx = txPlug.asDouble()
163 tyAttr = fnDependNode.attribute(
"translateY")
165 ty = tyPlug.asDouble()
167 tzAttr = fnDependNode.attribute(
"translateZ")
169 tz = tzPlug.asDouble()
171 print "adding", tx, ty, tz,
"\n"
177 for i
in range(picked.length()):
178 self.__jMakeCurve(pointArrays[i])
181 def __jMakeCurve(self, cvs):
183 Make a degree 1 curve from the given CVs.
185 Note that in Python, a double underscore in front of a member name
186 make the method "private" to the class through name-mangling
191 for i
in range(cvs.length()):
197 curveFn.create(cvs, knots, deg, OpenMaya.MFnNurbsCurve.kOpen,
False,
False, nullObj)
202 return OpenMayaMPx.asMPxPtr(motionTrace())
208 syntax.addFlag(kStartFlag, kStartLongFlag, OpenMaya.MSyntax.kLong)
209 syntax.addFlag(kEndFlag, kEndLongFlag, OpenMaya.MSyntax.kLong)
210 syntax.addFlag(kByFlag, kByLongFlag, OpenMaya.MSyntax.kLong)
215 def initializePlugin(mobject):
216 mplugin = OpenMayaMPx.MFnPlugin(mobject,
"Autodesk",
"1.0",
"Any")
218 mplugin.registerCommand(kPluginCmdName, cmdCreator, syntaxCreator)
220 sys.stderr.write(
"Failed to register command: %s\n" % kPluginCmdName)
225 def uninitializePlugin(mobject):
226 mplugin = OpenMayaMPx.MFnPlugin(mobject)
228 mplugin.deregisterCommand(kPluginCmdName)
230 sys.stderr.write(
"Failed to unregister command: %s\n" % kPluginCmdName)