1 define(['app/ovsdb/lib/sylvester'], function() {
2 function Transform(a, b, c, d , e, f) {
10 this.transform = Matrix.I(3);
13 Transform.fromString = function(string) {
15 return new Transform();
17 var g = document.createElementNS("http://www.w3.org/2000/svg", 'g');
18 g.setAttribute('transform', string);
19 var t = g.transform.baseVal.consolidate();
21 return new Transform(m.a, m.b, m.c, m.d, m.e, m.f);
24 Transform.combine = function(ma, mb) {
25 var t = new Transform();
26 t.transform = ma.transform.x(mb.transform);
30 Transform.prototype.translate = function(tx, ty) {
31 this.transform = $M([[1, 0, tx], [0, 1, ty], [0, 0, 1]]).x(this.transform);
35 Transform.prototype.rotate = function(deg) {
36 var rad = parseFloat(deg) * (Math.PI/180),
40 this.transform = $M([[cos, -sin, 0], [sin, cos, 0], [0, 0, 1]]).x(this.transform);
44 Transform.prototype.scale = function(x, y) {
48 this.transform = $M([[x, 0, 0], [0, y, 0], [0, 0, 1]]).x(this.transform);
52 Transform.prototype.skew = function(x, y) {
53 var alpha = Math.tan(parseFloat(x) * (Math.PI/180)),
54 betha = Math.tan(parseFloat(y) * (Math.PI/180));
56 this.transform = $M([[1, alpha, 0], [betha, 1, 0], [0, 0, 1]]).x(this.transform);
60 Transform.prototype.transformPoint = function(x, y) {
61 var v = $V([x, y, 1]);
62 return this.transform.x(v);
65 Transform.prototype.toString = function() {
66 return this.transform.inspect();
70 Matrix: Transform // Matrix function name already used by Sylvester