find Euler angles (312 convention) for the matrix.
        See http://www.atacolorado.com/eulersequences.doc

def to_euler312(self):
        '''find Euler angles (312 convention) for the matrix.
        See http://www.atacolorado.com/eulersequences.doc
        '''
        T21 = self.a.y
        T22 = self.b.y
        T23 = self.c.y
        T13 = self.c.x
        T33 = self.c.z
        yaw = atan2(-T21, T22)
        roll = asin(T23)
        pitch = atan2(-T13, T33)
        return (roll, pitch, yaw)