scripted/blindDoubleDataCmd.py
70 import maya.OpenMaya
as OpenMaya
71 import maya.OpenMayaMPx
as OpenMayaMPx
73 kPluginName =
"spBlindDoubleData"
82 stream=OpenMaya.MStreamUtils.stdOutStream()
83 OpenMaya.MStreamUtils.writeCharBuffer(stream,msg)
86 class blindDoubleData(OpenMayaMPx.MPxData):
88 OpenMayaMPx.MPxData.__init__(self)
90 fValueDictionary[OpenMayaMPx.asHashable(self)]=self.__fValue
92 def readASCII(self, args, lastParsedElement):
95 parsedIndex = OpenMaya.MScriptUtil.getUint(lastParsedElement)
96 self.__fValue = args.asDouble( parsedIndex )
98 OpenMaya.MScriptUtil.setUint(lastParsedElement,parsedIndex)
99 fValueDictionary[OpenMayaMPx.asHashable(self)]=self.__fValue
101 sys.stderr.write(
"Failed to read ASCII value.")
104 def readBinary(self, inStream, length):
105 readParam = OpenMaya.MScriptUtil(0.0)
106 readPtr = readParam.asDoublePtr()
107 OpenMaya.MStreamUtils.readDouble(inStream, readPtr,
True )
108 self.__fValue = readParam.getDouble(readPtr)
110 def writeASCII(self, out):
112 OpenMaya.MStreamUtils.writeDouble(out, self.__fValue,
False)
114 sys.stderr.write(
"Failed to write ASCII value.")
117 def writeBinary(self, out):
119 OpenMaya.MStreamUtils.writeDouble(out, self.__fValue,
True)
121 sys.stderr.write(
"Failed to write binary value.")
124 def copy(self, other):
127 self.__fValue = fValueDictionary[OpenMayaMPx.asHashable(other)]
138 def setValue(self, newVal):
139 self.__fValue = newVal
142 class blindDoubleDataCmd(OpenMayaMPx.MPxCommand):
144 OpenMayaMPx.MPxCommand.__init__(self)
147 def doIt(self, args):
157 sys.stderr.write(err)
162 while not self.__iter.isDone():
167 self.__iter.getDependNode(dependNode)
169 error(
"Error getting the dependency node")
175 error(
"Error creating MFnDependencyNode")
181 newAttr = fnAttr.create(
"blindDoubleData",
"BDD", kPluginDataId)
185 fnDN.addAttribute(newAttr, OpenMaya.MFnDependencyNode.kLocalDynamicAttr)
193 newData = OpenMayaMPx.asMPxPtr(blindDoubleData())
194 newData.setValue(3.2)
198 plug.setMPxData(newData)
203 sData = plug.asMObject()
205 error(
"Error getting value off plug")
211 data = pdFn.constData()
216 error(
"Error: failed to retrieve data.")
224 def isUndoable(self):
233 return OpenMayaMPx.asMPxPtr(blindDoubleDataCmd())
236 return OpenMayaMPx.asMPxPtr(blindDoubleData())
239 def initializePlugin(mobject):
240 mplugin = OpenMayaMPx.MFnPlugin(mobject,
"Autodesk",
"1.0",
"Any")
242 mplugin.registerData(kPluginName, kPluginDataId, dataCreator)
244 sys.stderr.write(
"Failed to register new data type: %s\n" % kPluginName)
248 mplugin.registerCommand(kPluginName, cmdCreator)
250 sys.stderr.write(
"Failed to register command: %s\n" % kPluginName)
255 def uninitializePlugin(mobject):
256 mplugin = OpenMayaMPx.MFnPlugin(mobject)
258 mplugin.deregisterCommand(kPluginName)
260 sys.stderr.write(
"Failed to unregister command: %s\n" % kPluginName)
264 mplugin.deregisterData(kPluginDataId)
266 sys.stderr.write(
"Failed to unregister data type: %s\n" % kPluginName)