mat4-decompose

decomposes a 3D matrix

MIT License

Downloads
113K
Stars
24
Committers
1

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.

Package Rankings
Top 3.37% on Npmjs.org
Top 30.55% on Repo1.maven.org
Badges
Extracted from project README
stable