46 import maya.OpenMaya
as OpenMaya
47 import maya.OpenMayaMPx
as OpenMayaMPx
49 kPluginNodeTypeName =
"spSineNode"
51 sineNodeId = OpenMaya.MTypeId(0x87000)
54 class sineNode(OpenMayaMPx.MPxNode):
56 input = OpenMaya.MObject()
57 output = OpenMaya.MObject()
59 OpenMayaMPx.MPxNode.__init__(self)
60 def compute(self,plug,dataBlock):
61 if ( plug == sineNode.output ):
62 dataHandle = dataBlock.inputValue( sineNode.input )
64 inputFloat = dataHandle.asFloat()
65 result = math.sin( inputFloat ) * 10.0
66 outputHandle = dataBlock.outputValue( sineNode.output )
67 outputHandle.setFloat( result )
68 dataBlock.setClean( plug )
70 return OpenMaya.kUnknownParameter
74 return OpenMayaMPx.asMPxPtr( sineNode() )
77 def nodeInitializer():
79 nAttr = OpenMaya.MFnNumericAttribute()
80 sineNode.input = nAttr.create(
"input",
"in", OpenMaya.MFnNumericData.kFloat, 0.0 )
83 nAttr = OpenMaya.MFnNumericAttribute()
84 sineNode.output = nAttr.create(
"output",
"out", OpenMaya.MFnNumericData.kFloat, 0.0 )
88 sineNode.addAttribute( sineNode.input )
89 sineNode.addAttribute( sineNode.output )
90 sineNode.attributeAffects( sineNode.input, sineNode.output )
93 def initializePlugin(mobject):
94 mplugin = OpenMayaMPx.MFnPlugin(mobject)
96 mplugin.registerNode( kPluginNodeTypeName, sineNodeId, nodeCreator, nodeInitializer )
98 sys.stderr.write(
"Failed to register node: %s" % kPluginNodeTypeName )
102 def uninitializePlugin(mobject):
103 mplugin = OpenMayaMPx.MFnPlugin(mobject)
105 mplugin.deregisterNode( sineNodeId )
107 sys.stderr.write(
"Failed to deregister node: %s" % kPluginNodeTypeName )