blob: da6d6bfa12b4281751754061b7308284fd03cfee [file] [log] [blame]
function matrixManagerFunction(){
var mat = new Matrix('2d');
var mat3d = new Matrix('3d');
var returnMatrix3D = function(rX, rY, rZ, scaleX, scaleY, scaleZ, tX, tY, tZ,aX, aY, aZ) {
//return mat3d.reset().translate(-aX,-aY,-aZ).rotateX(rX).rotateY(-rY).rotateZ(-rZ).scale(scaleX,scaleY,scaleZ).translate(tX,tY,-tZ).toCSS();
var tocs = mat3d.reset().translate(tX,tY,tZ).rotateX(rX).rotateY(rY).rotateZ(rZ).scale(scaleX,scaleY,scaleZ).toCSS();
return tocs;
};
var returnMatrixAnchored3D = function(rX, rY, rZ, scaleX, scaleY, scaleZ, tX, tY, tZ,aX, aY, aZ) {
//return mat3d.reset().translate(-aX,-aY,-aZ).rotateX(rX).rotateY(-rY).rotateZ(-rZ).scale(scaleX,scaleY,scaleZ).translate(tX,tY,-tZ).toCSS();
var tocs = mat3d.reset().translate(-aX,-aY,-aZ).rotateZ(-rZ).rotateY(rY).rotateX(rX).scale(scaleX,scaleY,scaleZ).translate(tX,tY,-tZ).toCSS();
return tocs;
};
/*var returnMatrix2D = function(rX, scaleX, scaleY, tX, tY){
var rotationMatrix, s, scaleMatrix, transformationMatrix, translationMatrix;
//cos(X), sin(X), -sin(X), cos(X)
rotationMatrix = $M([
[Math.cos(-rX), Math.sin(-rX), 0],
[Math.sin(rX), Math.cos(-rX), 0],
[0, 0, 1]
]);
scaleMatrix = $M([[scaleX, 0, 0], [0, scaleY, 0], [0, 0, 1]]);
transformationMatrix = rotationMatrix.x(scaleMatrix);
transformationMatrix = transformationMatrix.transpose();
translationMatrix = $M([[1, 0, 0], [0, 1, 0], [tX, tY, 1]]);
transformationMatrix = transformationMatrix.x(translationMatrix);
s = "matrix(";
s += transformationMatrix.e(1, 1).toFixed(5) + "," + transformationMatrix.e(1, 2).toFixed(5) + ",";
s += transformationMatrix.e(2, 1).toFixed(5) + "," + transformationMatrix.e(2, 2).toFixed(5) + ",";
s += transformationMatrix.e(3, 1).toFixed(5) + "," + transformationMatrix.e(3, 2).toFixed(5);
s += ")";
return s;
};*/
var returnMatrix2D = function(rX, scaleX, scaleY, tX, tY){
return mat.reset().translate(tX,tY).rotate(rX).scale(scaleX,scaleY).toCSS();
};
/*var returnMatrix2DArray = function(rX, scaleX, scaleY, tX, tY){
var rotationMatrix, scaleMatrix, transformationMatrix, translationMatrix;
//cos(X), sin(X), -sin(X), cos(X)
rotationMatrix = $M([
[Math.cos(-rX), Math.sin(-rX), 0],
[Math.sin(rX), Math.cos(-rX), 0],
[0, 0, 1]
]);
scaleMatrix = $M([[scaleX, 0, 0], [0, scaleY, 0], [0, 0, 1]]);
transformationMatrix = rotationMatrix.x(scaleMatrix);
transformationMatrix = transformationMatrix.transpose();
translationMatrix = $M([[1, 0, 0], [0, 1, 0], [tX, tY, 1]]);
transformationMatrix = transformationMatrix.x(translationMatrix);
return [transformationMatrix.e(1, 1).toFixed(5),transformationMatrix.e(1, 2).toFixed(5)
,transformationMatrix.e(2, 1).toFixed(5),transformationMatrix.e(2, 2).toFixed(5)
,transformationMatrix.e(3, 1).toFixed(5),transformationMatrix.e(3, 2).toFixed(5)];
};*/
var returnMatrix2DArray = function(rX, scaleX, scaleY, tX, tY){
return mat.reset().translate(tX,tY).rotate(rX).scale(scaleX,scaleY).toArray();
};
var get2DMatrix = function(animData){
return returnMatrix2D(animData.r
,animData.s[0],animData.s[1]
,animData.p[0],animData.p[1]);
};
var getMatrix = function(animData, isThreeD){
if(!isThreeD){
return returnMatrix2D(animData.tr.r[2]
,animData.tr.s[0],animData.tr.s[1]
,animData.tr.p[0],animData.tr.p[1]);
}
return returnMatrix3D(-animData.tr.r[0],animData.tr.r[1],animData.tr.r[2]
,animData.tr.s[0],animData.tr.s[1],animData.tr.s[2]
,animData.tr.p[0],animData.tr.p[1],animData.tr.p[2])
};
var getMatrix2 = function(animData, isThreeD){
if(!isThreeD){
return returnMatrix2D(animData.r[2]
,animData.s[0],animData.s[1]
,animData.p[0],animData.p[1]);
}
return returnMatrix3D(-animData.rx[0],animData.ry[1],animData.rz[2]
,animData.s[0],animData.s[1],animData.s[2]
,animData.p[0],animData.p[1],animData.p[2]
,animData.a[0],animData.a[1],animData.a[2])
};
var getMatrixArray = function(animData, isThreeD){
if(!isThreeD){
return returnMatrix2DArray(animData.r[2]
,animData.s[0],animData.s[1]
,animData.p[0],animData.p[1]);
}
return null;
};
return {
get2DMatrix : get2DMatrix,
getMatrix : getMatrix,
getMatrix2 : getMatrix2,
getMatrixArray : getMatrixArray,
getMatrixArrayFromParams : returnMatrix2DArray,
getMatrix2FromParams : returnMatrix2D,
getMatrix3FromParams : returnMatrix3D,
getAnchoredMatrix3FromParams : returnMatrixAnchored3D
}
};
var MatrixManager = matrixManagerFunction;