'Adjust the rotation of this transform'

def rotate(self, angle, axis=(0, 0, 1)):

    origAxis = self._state['axis']
    if ((axis[0] == origAxis[0]) and (axis[1] == origAxis[1]) and (axis[2] == origAxis[2])):
        self.setRotate((self._state['angle'] + angle))
    else:
        m = QtGui.QMatrix4x4()
        m.translate(*self._state['pos'])
        m.rotate(self._state['angle'], *self._state['axis'])
        m.rotate(angle, *axis)
        m.scale(*self._state['scale'])
        self.setFromMatrix(m)
