dlwpt-code
dlwpt-code copied to clipboard
xyz2irc() is not inverse of irc2xyz()
In this line, the inverse rotation needs to be left-multiplied rather than right-multiplied.
The correctness can be verified by the following code snippet:
import numpy as np
from util.util import irc2xyz, xyz2irc
origin_xyz = np.array([-100, -200, -300])
vxSize_xyz = np.array([1, 1, 2])
theta = np.radians(30)
c, s = np.cos(theta), np.sin(theta)
direction_a = np.array(((c, -s, 0), (s, c, 0), (0, 0, 1)))
xyz2irc([*irc2xyz([1, 2, 3], origin_xyz, vxSize_xyz, direction_a)], origin_xyz, vxSize_xyz, direction_a)
# Expect to return [1, 2, 3]