Hi all,
I just stumbled across a bug.
Here's a minimal description:
when calling inverseRotate() on Euler types, I observe the following.
Minimal example:
kindr::EulerAnglesXyz<SCALAR> euler1; euler1.setRandom();
kindr::EulerAnglesXyz<SCALAR> euler2; euler2.setRandom();
kindr::EulerAnglesXyz<SCALAR> euler3 = euler1.inverseRotate(euler2);
Desired behaviour:
- inverse rotate should implement
euler1.inverted() * euler2;
Current behaviour:
- it simply returns
euler3 = euler2;
I am not too much familiar with the details of the kindr implementation, but probably inverseRotate() does not get overloaded correctly. Alternatively, inverseRotate() should probably throw a compiler error, if called on wrong types.
Hi all,
I just stumbled across a bug.
Here's a minimal description:
when calling
inverseRotate()on Euler types, I observe the following.Minimal example:
kindr::EulerAnglesXyz<SCALAR> euler1; euler1.setRandom();kindr::EulerAnglesXyz<SCALAR> euler2; euler2.setRandom();kindr::EulerAnglesXyz<SCALAR> euler3 = euler1.inverseRotate(euler2);Desired behaviour:
euler1.inverted() * euler2;Current behaviour:
euler3 = euler2;I am not too much familiar with the details of the kindr implementation, but probably inverseRotate() does not get overloaded correctly. Alternatively, inverseRotate() should probably throw a compiler error, if called on wrong types.