transform.js 541 B

1234567891011121314151617181920212223242526
  1. var clone = require('../clone');
  2. var each = require('../each');
  3. var mat3 = require('./mat3');
  4. module.exports = function transform(m, ts) {
  5. m = clone(m);
  6. each(ts, function (t) {
  7. switch (t[0]) {
  8. case 't':
  9. mat3.translate(m, m, [t[1], t[2]]);
  10. break;
  11. case 's':
  12. mat3.scale(m, m, [t[1], t[2]]);
  13. break;
  14. case 'r':
  15. mat3.rotate(m, m, t[1]);
  16. break;
  17. case 'm':
  18. mat3.multiply(m, m, t[1]);
  19. break;
  20. default:
  21. return false;
  22. }
  23. });
  24. return m;
  25. };