def toList(m): ''' Convert a PyMEL Matrix or [4][4] list into a flat 16-element list ''' if isinstance(m, pm.datatypes.Matrix): m = [m.a00, m.a01, m.a02, m.a03, m.a10, m.a11, m.a12, m.a13, m.a20, m.a21, m.a22, m.a23, m.a30, m.a31, m.a32, m.a33] elif PyUtils.isIterable(m[0]): m = [m[0][0], m[0][1], m[0][2], m[0][3], m[1][0], m[1][1], m[1][2], m[1][3], m[2][0], m[2][1], m[2][2], m[2][3], m[3][0], m[3][1], m[3][2], m[3][3]] return m
def to4x4(l): ''' Convert a PyMEL Matrix or flat list into a 4x4 element list ''' if isinstance(l, pm.datatypes.Matrix): l = toList(l) elif PyUtils.isIterable(l[0]): l = [l[0][0], l[0][1], l[0][2], l[0][3], l[1][0], l[1][1], l[1][2], l[1][3], l[2][0], l[2][1], l[2][2], l[2][3], l[3][0], l[3][1], l[3][2], l[3][3]] return [[l[0], l[1], l[2], l[3]], [l[4], l[5], l[6], l[7]], [l[8], l[9], l[10], l[11]], [l[12], l[13], l[14], l[15]]]