(path, m)
| 15085 | var mathAtan2 = Math.atan2; |
| 15086 | |
| 15087 | var transformPath = function (path, m) { |
| 15088 | var data = path.data; |
| 15089 | var cmd; |
| 15090 | var nPoint; |
| 15091 | var i; |
| 15092 | var j; |
| 15093 | var k; |
| 15094 | var p; |
| 15095 | |
| 15096 | var M = CMD$2.M; |
| 15097 | var C = CMD$2.C; |
| 15098 | var L = CMD$2.L; |
| 15099 | var R = CMD$2.R; |
| 15100 | var A = CMD$2.A; |
| 15101 | var Q = CMD$2.Q; |
| 15102 | |
| 15103 | for (i = 0, j = 0; i < data.length;) { |
| 15104 | cmd = data[i++]; |
| 15105 | j = i; |
| 15106 | nPoint = 0; |
| 15107 | |
| 15108 | switch (cmd) { |
| 15109 | case M: |
| 15110 | nPoint = 1; |
| 15111 | break; |
| 15112 | case L: |
| 15113 | nPoint = 1; |
| 15114 | break; |
| 15115 | case C: |
| 15116 | nPoint = 3; |
| 15117 | break; |
| 15118 | case Q: |
| 15119 | nPoint = 2; |
| 15120 | break; |
| 15121 | case A: |
| 15122 | var x = m[4]; |
| 15123 | var y = m[5]; |
| 15124 | var sx = mathSqrt$3(m[0] * m[0] + m[1] * m[1]); |
| 15125 | var sy = mathSqrt$3(m[2] * m[2] + m[3] * m[3]); |
| 15126 | var angle = mathAtan2(-m[1] / sy, m[0] / sx); |
| 15127 | // cx |
| 15128 | data[i] *= sx; |
| 15129 | data[i++] += x; |
| 15130 | // cy |
| 15131 | data[i] *= sy; |
| 15132 | data[i++] += y; |
| 15133 | // Scale rx and ry |
| 15134 | // FIXME Assume psi is 0 here |
| 15135 | data[i++] *= sx; |
| 15136 | data[i++] *= sy; |
| 15137 | |
| 15138 | // Start angle |
| 15139 | data[i++] += angle; |
| 15140 | // end angle |
| 15141 | data[i++] += angle; |
| 15142 | // FIXME psi |
| 15143 | i += 2; |
| 15144 | j = i; |
no test coverage detected