Switch runtime over to Transform2D library

This commit is contained in:
Evan Czaplicki 2013-08-19 15:40:03 -07:00
parent 9e08189960
commit 8d09047b76

View file

@ -3,7 +3,7 @@ ElmRuntime.Render.Collage = function() {
'use strict'; 'use strict';
var Render = ElmRuntime.use(ElmRuntime.Render.Element); var Render = ElmRuntime.use(ElmRuntime.Render.Element);
var Matrix = Elm.Matrix2D({}); var Transform = Elm.Transform2D({});
var Utils = ElmRuntime.use(ElmRuntime.Render.Utils); var Utils = ElmRuntime.use(ElmRuntime.Render.Utils);
var newElement = Utils.newElement, var newElement = Utils.newElement,
extract = Utils.extract, fromList = Utils.fromList, extract = Utils.extract, fromList = Utils.fromList,
@ -158,23 +158,23 @@ function renderForm(redo, ctx, form) {
function formToMatrix(form) { function formToMatrix(form) {
var scale = form.scale; var scale = form.scale;
var matrix = A6( Matrix.matrix, scale, 0, 0, scale, form.x, form.y ); var matrix = A6( Transform.matrix, scale, 0, 0, scale, form.x, form.y );
var theta = form.theta var theta = form.theta
if (theta !== 0) if (theta !== 0)
matrix = A2( Matrix.multiply, matrix, Matrix.rotation(theta) ); matrix = A2( Transform.multiply, matrix, Transform.rotation(theta) );
return matrix; return matrix;
} }
function makeTransform(w, h, form, matrices) { function makeTransform(w, h, form, matrices) {
var props = form.form._0.props; var props = form.form._0.props;
var m = A6( Matrix.matrix, 1, 0, 0, 1, var m = A6( Transform.matrix, 1, 0, 0, 1,
(w - props.width)/2, (w - props.width)/2,
(h - props.height)/2 ); (h - props.height)/2 );
var len = matrices.length; var len = matrices.length;
for (var i = 0; i < len; ++i) { m = A2( Matrix.multiply, m, matrices[i] ); } for (var i = 0; i < len; ++i) { m = A2( Transform.multiply, m, matrices[i] ); }
m = A2( Matrix.multiply, m, formToMatrix(form) ); m = A2( Transform.multiply, m, formToMatrix(form) );
return 'matrix(' + m[0] + ',' + m[3] + ',' + return 'matrix(' + m[0] + ',' + m[3] + ',' +
(-m[1]) + ',' + (-m[4]) + ',' + (-m[1]) + ',' + (-m[4]) + ',' +
@ -220,7 +220,7 @@ function stepper(forms) {
var f = out.form; var f = out.form;
if (f.ctor === 'FGroup') { if (f.ctor === 'FGroup') {
ps.unshift(stepperHelp(f._1)); ps.unshift(stepperHelp(f._1));
var m = A2(Matrix.multiply, f._0, formToMatrix(out)); var m = A2(Transform.multiply, f._0, formToMatrix(out));
ctx.save(); ctx.save();
ctx.transform(m[0], m[3], m[1], m[4], m[2], m[5]); ctx.transform(m[0], m[3], m[1], m[4], m[2], m[5]);
matrices.push(m); matrices.push(m);