Optimized applyITRS for testing

This commit is contained in:
Richard Davey 2017-07-12 12:58:09 +01:00
parent 8d89c421b3
commit 3206e1bf5e

View file

@ -204,7 +204,7 @@ var TransformMatrix = new Class({
}, },
/* identity + translate + rotate + scale */ /* identity + translate + rotate + scale */
applyITRS: function (x, y, rotation, scaleX, scaleY) applyITRSold: function (x, y, rotation, scaleX, scaleY)
{ {
var matrix = this.matrix; var matrix = this.matrix;
@ -222,6 +222,13 @@ var TransformMatrix = new Class({
matrix[4] = a * x + c * y + tx; matrix[4] = a * x + c * y + tx;
matrix[5] = b * x + d * y + ty; matrix[5] = b * x + d * y + ty;
matrix[4] = 1 * x + 0 * y + 0;
matrix[5] = 0 * x + 1 * y + 0;
matrix[4] = x;
matrix[5] = y;
// Rotate // Rotate
matrix[0] = cr * a + -sr * c; matrix[0] = cr * a + -sr * c;
matrix[1] = cr * b + -sr * d; matrix[1] = cr * b + -sr * d;
@ -234,6 +241,27 @@ var TransformMatrix = new Class({
matrix[2] = matrix[2] * scaleY; matrix[2] = matrix[2] * scaleY;
matrix[3] = matrix[3] * scaleY; matrix[3] = matrix[3] * scaleY;
return this;
},
/* identity + translate + rotate + scale */
applyITRS: function (x, y, rotation, scaleX, scaleY)
{
var matrix = this.matrix;
var sr = Math.sin(rotation);
var cr = Math.cos(rotation);
// Translate
matrix[4] = x;
matrix[5] = y;
// Rotate and Scale
matrix[0] = cr * scaleX;
matrix[1] = -sr * scaleX;
matrix[2] = sr * scaleY;
matrix[3] = cr * scaleY;
return this; return this;
} }