JSPM

css-mat4

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q20294F
  • License MIT

makes a mat4 from translation, rotation, scale, skew

Package Exports

  • css-mat4

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (css-mat4) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

css-mat4

stable

Build a 4x4 matrix from 3D rotation, translation, scale and 2D skew according to the CSS3 transforms spec.

var compose = require('css-mat4')
var matrix = compose([], {
    translate: [25, 15, 25],
    rotate: [0, Math.PI/2, -Math.PI],
    scale: [0.25, 0.4, 1.0],
    skewX: Math.PI/2,
    skewY: Math.PI/2
})

//now you can do something with the 16-float matrix array...

Components default to zero (or one in the case of scale) to allow for 2D vectors:

compose(out, {
    translate: [50, 15],
    scale: [0.25, 0.4]
})

Usage

NPM

matrix = compose(out[, opt])

Composes a matrix from the given components, storing the result in out and returning it. If opt is not specified, an identity matrix is returned.

The options:

  • translate an array of [x, y] or [x, y, z] in pixels
  • rotate an array of [x, y, z] in radians
  • scale an array of [x, y] or [x, y, z] (z component defaults to 1)
  • quaternion can be specified if rotate is undefined; it's an array of [x, y, z, w] components
  • skew an array of [x, y] in radians, akin to the CSS skew(x,y) operation, which applies the skew together
  • skewX, skewY numbers in radians, allowing the skews to be applied independently

The order of operations:

Builds a translation matrix, then applies the quaternion rotation. The matrix is then multiplied a 2D skew(x,y) matrix, and then multiplied by the independent X and Y skew matrices. Finally multiplied by scale to get the resulting recomposed matrix.

License

MIT, see LICENSE.md for details.