26 lines
541 B
JavaScript
26 lines
541 B
JavaScript
var clone = require('../clone');
|
|
var each = require('../each');
|
|
var mat3 = require('./mat3');
|
|
|
|
module.exports = function transform(m, ts) {
|
|
m = clone(m);
|
|
each(ts, function (t) {
|
|
switch (t[0]) {
|
|
case 't':
|
|
mat3.translate(m, m, [t[1], t[2]]);
|
|
break;
|
|
case 's':
|
|
mat3.scale(m, m, [t[1], t[2]]);
|
|
break;
|
|
case 'r':
|
|
mat3.rotate(m, m, t[1]);
|
|
break;
|
|
case 'm':
|
|
mat3.multiply(m, m, t[1]);
|
|
break;
|
|
default:
|
|
return false;
|
|
}
|
|
});
|
|
return m;
|
|
}; |