BlueQuartzSoftware / BlueQuartzSoftware/DREAM3D
getFZQuat is incorrect for boundary cases in cubic high symmetry
- Dominant language
- C++
- Stars
- 189
- Forks
- 78
- PR merge metrics
- No merged PRs in 30d
Description
getFZQuat calles _calcQuatNearestOrigin for cubic high. _calcQuatNearestOrigin tracks only the w component of quaternions but should consider their x, y, and z components in some cases. For example [-0.29756, -0.27070, 0.29756, 0.86582] rotated by [0.5, 0.5, -0.5, 0.5] is [0.29756, 0.29756, -0.27070, 0.86582]. Both the original and rotated quat should return the same value for getFZQuat but instead both return themselves since the identity quat is first on the symmetry operator list. To correct this the axis components should be checked when 2 quats have the same w component. The same applies to _calcRodNearestOrigin.
Contributor guide
Assessment
This issue has not been assessed yet.