src/data_packer.py [117:131]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    entries = 3

    def __init__(self, idx=0, ref_idx=0):
        super().__init__(idx)
        self.ref_idx = ref_idx

    def extract(self, keyframe, **kwargs):
        raise NotImplementedError()

    def extract_batch(self, keyframes, **kwargs):
        rot_around_y = math_helper.deg2rad(keyframes[:, self.ref_idx, 6:9]).copy()
        rot_around_y[:] *= np.array([0.0, 1.0, 0.0])
        rot_around_y = quaternion.euler_to_quaternion(rot_around_y)
        q = quaternion.euler_to_quaternion(math_helper.deg2rad(keyframes[:, self.idx, 3:6]))
        q = quaternion.qmul_np(quaternion.inverse_np(rot_around_y), q)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/data_packer.py [137:151]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    entries = 3

    def __init__(self, idx=0, ref_idx=0):
        super().__init__(idx)
        self.ref_idx = ref_idx

    def extract(self, keyframe, **kwargs):
        raise NotImplementedError()

    def extract_batch(self, keyframes, **kwargs):
        rot_around_y = math_helper.deg2rad(keyframes[:, self.ref_idx, 6:9]).copy()
        rot_around_y[:] *= np.array([0.0, 1.0, 0.0])
        rot_around_y = quaternion.euler_to_quaternion(rot_around_y)
        q = quaternion.euler_to_quaternion(math_helper.deg2rad(keyframes[:, self.idx, 3:6]))
        q = quaternion.qmul_np(quaternion.inverse_np(rot_around_y), q)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



