Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # import pymel
- import math
- import pymel.api.plugins as plugins
- import maya.OpenMaya as om
- class PymelTestNode(plugins.LocatorNode):
- '''Test plugin node
- '''
- _typeId = om.MTypeId(0x9000F)
- _name = 'PymelTestNode'
- @classmethod
- def initialize(cls):
- nAttr = om.MFnNumericAttribute()
- mAttr = om.MFnMatrixAttribute()
- cAttr = om.MFnCompoundAttribute()
- cls.input = nAttr.create( "input", "in", om.MFnNumericData.kFloat, 0.0 )
- nAttr.setStorable(1)
- nAttr.setWritable(1)
- nAttr.setKeyable(1)
- cls.addAttribute( cls.input )
- # outputFloat
- cls.outputFloat = nAttr.create( "outputFloat", "of", om.MFnNumericData.kFloat, 0.0 )
- nAttr.setStorable(0)
- nAttr.setWritable(0)
- cls.addAttribute( cls.outputFloat )
- # outputInt
- cls.outputInt = nAttr.create( "outputInt", "oi", om.MFnNumericData.kInt, 0.0 )
- nAttr.setStorable(0)
- nAttr.setWritable(0)
- cls.addAttribute( cls.outputInt )
- # output
- cls.output = cAttr.create( "output", "out")
- cAttr.addChild(cls.outputFloat)
- cAttr.addChild(cls.outputInt)
- nAttr.setStorable(0)
- nAttr.setWritable(0)
- nAttr.setArray(True)
- cls.addAttribute( cls.output )
- # worldFloat
- #cls.worldFloat = nAttr.create("worldFloat", "wf", om.MFnNumericData.kFloat, 0.0 )
- #nAttr.setStorable(False)
- #nAttr.setWritable(False)
- #nAttr.setArray(True)
- #nAttr.setWorldSpace(1)
- #cls.addAttribute( cls.worldFloat )
- # dummyWorldDest
- #cls.dummyWorldDest = nAttr.create("dummyWorldDest", "d", om.MFnNumericData.kFloat, 0.0 )
- #nAttr.setStorable(False)
- #nAttr.setWritable(True)
- #nAttr.setReadable(True)
- #nAttr.setHidden(True)
- #nAttr.setArray(True)
- #nAttr.setIndexMatters(False)
- #cls.addAttribute( cls.dummyWorldDest )
- # worldIn
- cls.worldIn = mAttr.create("worldIn", "wi")
- mAttr.setStorable(True)
- nAttr.setWritable(True)
- nAttr.setReadable(True)
- nAttr.setArray(False)
- cls.addAttribute( cls.worldIn )
- # set attribute affects
- cls.attributeAffects( cls.worldMatrix, cls.output )
- #cls.attributeAffects( cls.dummyWorldDest, cls.output )
- cls.attributeAffects( cls.parentmatrix, cls.output )
- def compute(self, plug, dataBlock):
- print "compute called for:", plug.name()
- if ( plug == self.output ):
- return True
- return False
- ## initialize the script plug-in
- def initializePlugin(mobject):
- PymelTestNode.register(mobject)
- # uninitialize the script plug-in
- def uninitializePlugin(mobject):
- PymelTestNode.deregister(mobject)
Advertisement
Add Comment
Please, Sign In to add comment