On Thu, Oct 16, 2008 at 6:14 AM, David Corral <[EMAIL PROTECTED]> wrote:
>
> Im wondering if its possible to create 2 nodeas at the same scripted
> plugin.
> I have to initialize both? how?, has someone an example of that?
Yes. Just give each node's initialize() and creator() functions a
different name:
~~~~~~~~~~~~~
class node1(maya.OpenMayaMPx.MPxNode):
id = maya.OpenMaya.MTypeId(123456)
<usual stuff>
def node1_creator():
return maya.OpenMayaMPx.asMPxPtr(node1())
def node1_initialize():
<initialization for node1>
class node2(maya.OpenMaya.MPxNode):
id = maya.OpenMaya.MTypeId(123457)
<usual stuff>
def node2_creator():
return maya.OpenMayaMPx.asMPxPtr(node2())
def node2_initialize():
<initialization for node2>
def initializePlugin(pluginObj):
pluginFn = maya.OpenMayaMPx.MFnPlugin(pluginObj)
pluginFn.registerNode('node1', node1.id, node1_creator, node1_initialize)
pluginFn.registerNode('node2', node2.id, node2_creator, node2_initialize)
~~~~~~~~~~~~~~~
To make things cleaner you can move the creator() and initialize()
methods into their respective classes and make them static class
methods:
~~~~~~~~~~~~~~~
class node1(maya.OpenMayaMPx.MPxNode):
id = maya.OpenMaya.MTypeId(123456)
def creator():
return maya.OpenMayaMPx.asMPxPtr(node1())
creator = staticmethod(creator)
def initialize():
<initialization for node1>
initialize = staticmethod(initialize)
<usual stuff>
class node2(maya.OpenMaya.MPxNode):
id = maya.OpenMaya.MTypeId(123457)
def creator():
return maya.OpenMayaMPx.asMPxPtr(node2())
creator = staticmethod(creator)
def initialize():
<initialization for node2>
initialize = staticmethod(initialize)
<usual stuff>
def initializePlugin(pluginObj):
pluginFn = maya.OpenMayaMPx.MFnPlugin(pluginObj)
pluginFn.registerNode('node1', node1.id, node1.creator, node1.initialize)
pluginFn.registerNode('node2', node2.id, node2.creator, node2.initialize)
--
-deane
--~--~---------~--~----~------------~-------~--~----~
Yours,
Maya-Python Club Team.
-~----------~----~----~----~------~----~------~--~---