Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here is a test case (in Python, sorry) that proves that glm.decompose() has a bug.
It builds a simple transformation that contains a rotation built from a known quaternion, and prints the output quaternion: it's wrong.
If I use quat_cast instead, I get the right result.
sample output:
Looking at the source code, it seems to take inspiration from several sources:
Except that when the code was copied: the following trick was ommited:
so that index 0 in apfQuat is actually index 1 in m_afTuple. In the code, i j and k refer to some ordering of x,y and z, which have indices 1 2 and 3 in the quaternion.
A simple fix is to add 1 to i, j and k:
A better fix would be to replace this duplicated functionality with a call to quad_cast which does the job without a bug.