diff --git a/navipy/maths/euler.py b/navipy/maths/euler.py index 3b6b242ba149bb9bbe17ae9de2c17ff26bc1e3db..bcfaf62703de019b4156cff3a058338e9083b589 100644 --- a/navipy/maths/euler.py +++ b/navipy/maths/euler.py @@ -135,50 +135,54 @@ def from_matrix(matrix, axes='sxyz'): u = [np.arctan2(matrix[1, 0], matrix[2, 0]), np.arccos(matrix[0, 0]), np.arctan2(matrix[0, 1], -matrix[0, 2])] - if axes == 'sxyz': + elif axes == 'sxyz': u = [np.arctan2(matrix[1, 2], matrix[2, 2]), -np.arcsin(matrix[0, 2]), np.arctan2(matrix[0, 1], matrix[0, 0])] - if axes == 'sxzx': + elif axes == 'sxzx': u = [np.arctan2(matrix[2, 1], -matrix[1, 0]), np.arccos(matrix[0, 0]), np.arctan2(matrix[0, 2], matrix[0, 1])] - if axes == 'sxzy': + elif axes == 'sxzy': u = [np.arctan2(-matrix[2, 1], matrix[1, 1]), np.arcsin(matrix[0, 0]), np.arctan2(-matrix[0, 2], matrix[0, 0])] - if axes == 'syxy': + elif axes == 'syxy': u = [np.arctan2(matrix[0, 1], -matrix[2, 1]), np.arccos(matrix[1, 1]), np.arctan2(-matrix[1, 0], matrix[1, 2])] - if axes == 'syxz': + elif axes == 'syxz': u = [np.arctan2(-matrix[0, 2], matrix[2, 2]), np.arcsin(matrix[1, 2]), np.arctan2(-matrix[1, 0], matrix[1, 1])] - if axes == 'syzx': + elif axes == 'syzx': u = [np.arctan2(matrix[2, 0], matrix[0, 0]), -np.arcsin(matrix[1, 0]), np.arctan2(matrix[1, 2], matrix[1, 1])] - if axes == 'syzy': + elif axes == 'syzy': u = [np.arctan2(matrix[2, 1], matrix[0, 1]), np.arccos(matrix[1, 1]), np.arctan2(matrix[1, 2], -matrix[1, 0])] - if axes == 'szxy': + elif axes == 'szxy': u = [np.arctan2(matrix[0, 1], matrix[1, 1]), -np.arcsin(matrix[2, 1]), np.arctan2(matrix[2, 0], matrix[2, 2])] - if axes == 'szxz': + elif axes == 'szxz': u = [np.arctan2(matrix[0, 2], matrix[1, 2]), np.arccos(matrix[2, 2]), np.arctan2(matrix[2, 0], -matrix[2, 1])] - if axes == 'szyx': + elif axes == 'szyx': u = [np.arctan2(-matrix[1, 0], matrix[0, 0]), np.arcsin(matrix[2, 0]), np.arctan2(-matrix[2, 1], matrix[2, 2])] - if axes == 'szyz': + elif axes == 'szyz': u = [np.arctan2(matrix[1, 2], -matrix[0, 2]), np.arccos(matrix[2, 2]), np.arctan2(matrix[2, 1], matrix[2, 0])] + else: + print("conv", axes, matrix) + raise KeyError('convention not in {}', _AXES2TUPLE.keys()) + return u