How do I set and get values from a multi attribute? I can't find any examples. I know how to read/write to simple floats, but once you turn it into an array (multi) with setArray(1), I hit a dead-end on knowing what to do, or even where to look up how I would do such a thing. Here's a simplified chunk of code:
import sys import maya.OpenMaya as om import maya.OpenMayaMPx as omMPx kPluginNodeTypeName = "pyNode" pyNodeId = om.MTypeId(0x87000) class pyNode( omMPx.MPxNode ): inputs = om.MObject() output = om.MObject() def __init__( self ): omMPx.MPxNode.__init__( self ) def compute( self, plug, dataBlock ): if ( plug == pyNode.output ): ####Not doin' what I wish it would dataHandle = dataBlock.inputValue( pyNode.inputs ) inputFloat = dataHandle.asFloatArray() result = inputFloat[0] ### or [1], or [2], I just want to be able to pull specific ones outputHandle = dataBlock.outputValue( pyNode.output ) outputHandle.setFloat[0]( result ) ### or [1], or [2], I just want to be able to set specific ones ####End wishiness dataBlock.setClean( plug ) return om.kUnknownParameter def nodeCreator(): return omMPx.asMPxPtr( pyNode() ) def nodeInitializer(): ####I'm guessing this is wrong, too nAttr = om.MFnNumericAttribute() pyNode.inputs = nAttr.create ( "inputs", "in", om.MFnNumericData.kFloat, 0.0 ) nAttr.setArray(1) nAttr.setStorable(1) pyNode.addAttribute ( pyNode.inputs ) nAttr = om.MFnNumericAttribute() pyNode.output = nAttr.create( "output", "out", om.MFnNumericData.kFloat, 0.0 ) nAttr.setArray(1) nAttr.setStorable(1) nAttr.setWritable(1) pyNode.addAttribute( pyNode.output ) ####End likely wronginess pyNode.attributeAffects( pyNode.inputs, pyNode.output ) def initializePlugin(mobject): mplugin = omMPx.MFnPlugin(mobject) try: mplugin.registerNode( kPluginNodeTypeName, pyNodeId, nodeCreator, nodeInitializer ) except: sys.stderr.write( "Failed to register node: %s" % kPluginNodeTypeName ) raise def uninitializePlugin(mobject): mplugin = omMPx.MFnPlugin(mobject) try: mplugin.deregisterNode( pyNodeId ) except: sys.stderr.write( "Failed to deregister node: %s" % kPluginNodeTypeName ) raise An answer to the problem is much appreciated, the answer to where you looked/referenced would be even more appreciated. --~--~---------~--~----~------------~-------~--~----~ Yours, Maya-Python Club Team. -~----------~----~----~----~------~----~------~--~---