scripted/customNodeFileTranslator.py
44 import maya.OpenMaya
as OpenMaya
45 import maya.OpenMayaMPx
as OpenMayaMPx
47 kPluginTranslatorTypeName =
"spCustomNodeTranslator"
50 class customNodeTranslator(OpenMayaMPx.MPxFileTranslator):
52 OpenMayaMPx.MPxFileTranslator.__init__(self)
53 def haveWriteMethod(self):
55 def haveReadMethod(self):
59 def defaultExtension(self):
61 def writer( self, fileObject, optionString, accessMode ):
64 fullName = fileObject.fullName()
65 fileHandle = open(fullName,
"w")
66 fileHandle.write(
"# Simple text file of custom node information\n")
68 iterator=OpenMaya.MItDependencyNodes()
69 while not iterator.isDone():
70 object = iterator.thisNode()
73 dnFn = OpenMaya.MFnDependencyNode( object )
74 userNode = dnFn.userNode()
75 if ( not( userNode ==
None ) ):
76 line =
"# custom node: " + dnFn.name() +
"\n"
77 fileHandle.write(line)
83 sys.stderr.write(
"Failed to write file information\n")
85 def processLine( self, lineStr ):
88 print "read <%s>" % lineStr
89 def reader( self, fileObject, optionString, accessMode ):
92 fullName = fileObject.fullName()
93 fileHandle = open(fullName,
"r")
94 for line
in fileHandle:
96 self.processLine( line )
100 sys.stderr.write(
"Failed to read file information\n")
105 def translatorCreator():
106 return OpenMayaMPx.asMPxPtr( customNodeTranslator() )
109 def initializePlugin(mobject):
110 mplugin = OpenMayaMPx.MFnPlugin(mobject)
112 mplugin.registerFileTranslator( kPluginTranslatorTypeName,
None, translatorCreator )
114 sys.stderr.write(
"Failed to register translator: %s" % kPluginTranslatorTypeName )
118 def uninitializePlugin(mobject):
119 mplugin = OpenMayaMPx.MFnPlugin(mobject)
121 mplugin.deregisterFileTranslator( kPluginTranslatorTypeName )
123 sys.stderr.write(
"Failed to deregister translator: %s" % kPluginTranslatorTypeName )