mat4-decompose
Decomposes a 3D matrix, useful for animations. Code ported from W3 CSS Spec. PRs for more tests/robustness/optimizations welcome.
Order:
- first isolates perspective
- then determines translation
- then determines X scale, XY shear, Y scale, XZ and YZ shear, and Z scale
- then determines quaternion rotation
You may also be interested in mat4-interpolate, mat4-recompose, and css-mat4.
Usage
valid = decompose(matrix[, translation, scale, skew, perspective, quaternion])
Decomposes the given matrix
(an array of 16 floats, like those gl-matrix operates on), storing the results into the specified optional vectors.
translation
[x, y, z]
scale
[x, y, z]
skew
[xy, xz, yz] skew factors
perspective
[x, y, z, w]
quaternion
[x, y, z, w]
Returns false
is this matrix cannot be decomposed, true
otherwise.
License
MIT, see LICENSE.md for details.