Hi all,
I'm trying without success to read an input matrix attribute of my custom 
node. Here an example of the method I'm using to read a matrix attribute 
(this also prints the matrix contents and outputs the sum of its elements).

import maya.api.OpenMaya as om

def maya_useNewAPI():
    pass

class Node(om.MPxNode):
    nodeName = 'test'
    nodeClass = 'general'
    nodeId = om.MTypeId(0xeff)

    aMatrix = om.MObject()
    aOut = om.MObject()

    def __init__(self):
        om.MPxNode.__init__(self)

    @staticmethod
    def create():
        return Node()

    @staticmethod
    def initialize():
        tAttr = om.MFnTypedAttribute()
        nAttr = om.MFnNumericAttribute()

        Node.aMatrix = tAttr.create(
            'matrix', 'mat', om.MFnMatrixData.kMatrix)
        tAttr.readable = False
        Node.addAttribute(Node.aMatrix)

        Node.aOut = nAttr.create(
            'out', 'o', om.MFnNumericData.kFloat, 0.0)
        nAttr.writable = False
        Node.addAttribute(Node.aOut)

        Node.attributeAffects(Node.aMatrix, Node.aOut)

    def compute(self, plug, data):

        if plug == Node.aOut:

            mat = data.inputValue(Node.aMatrix).asMatrix()
            print mat

            s = 0
            for i in range(15):
                print mat[i]
                s += mat[i]

            outHandle = data.outputValue(Node.aOut)
            outHandle.setFloat(s)

            data.setClean(plug)

# Plug-in initialization omitted

To me, this seems ok, but Maya does not appear to like it. In fact if I 
connect the matrix attribute to a transform at the origin with zero 
rotation, scale and shear, the matrix values are completely wrong:
(((6.92524e-310, 1.39063e-309, 2.3342e-312, 0), (3.95253e-322, 1.66006e-321, 
3.32254e-316, 3.32813e-316), (2.52962e-321, 0, 1.39063e-309, 0), (
6.92524e-310, 1.39065e-309, 0, 1)))

6.92524378327e-310
1.39062872165e-309
2.33419537006e-312
0.0
3.95252516673e-322
1.66006057003e-321
3.32253771394e-316
3.32813251331e-316
2.52961610671e-321
0.0
1.39062872165e-309
0.0
6.92523883349e-310
1.39064994161e-309
0.0

What am I missing?

Thanks in advance,
Giulio

-- 
You received this message because you are subscribed to the Google Groups 
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/python_inside_maya/b333a5fd-494d-47ea-8e55-a610c2547bcc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to