MCPcopy
hub / github.com/razorjack/quicksand / matrix

Function matrix

jquery.transform2d.js:275–366  ·  view source on GitHub ↗
( transform )

Source from the content-addressed store, hash-verified

273
274// turns a transform string into its "matrix(A,B,C,D,X,Y)" form (as an array, though)
275function matrix( transform ) {
276 transform = transform.split(")");
277 var
278 trim = $.trim
279 , i = -1
280 // last element of the array is an empty string, get rid of it
281 , l = transform.length -1
282 , split, prop, val
283 , prev = supportFloat32Array ? new Float32Array(6) : []
284 , curr = supportFloat32Array ? new Float32Array(6) : []
285 , rslt = supportFloat32Array ? new Float32Array(6) : [1,0,0,1,0,0]
286 ;
287
288 prev[0] = prev[3] = rslt[0] = rslt[3] = 1;
289 prev[1] = prev[2] = prev[4] = prev[5] = 0;
290
291 // Loop through the transform properties, parse and multiply them
292 while ( ++i < l ) {
293 split = transform[i].split("(");
294 prop = trim(split[0]);
295 val = split[1];
296 curr[0] = curr[3] = 1;
297 curr[1] = curr[2] = curr[4] = curr[5] = 0;
298
299 switch (prop) {
300 case _translate+"X":
301 curr[4] = parseInt(val, 10);
302 break;
303
304 case _translate+"Y":
305 curr[5] = parseInt(val, 10);
306 break;
307
308 case _translate:
309 val = val.split(",");
310 curr[4] = parseInt(val[0], 10);
311 curr[5] = parseInt(val[1] || 0, 10);
312 break;
313
314 case _rotate:
315 val = toRadian(val);
316 curr[0] = Math.cos(val);
317 curr[1] = Math.sin(val);
318 curr[2] = -Math.sin(val);
319 curr[3] = Math.cos(val);
320 break;
321
322 case _scale+"X":
323 curr[0] = +val;
324 break;
325
326 case _scale+"Y":
327 curr[3] = val;
328 break;
329
330 case _scale:
331 val = val.split(",");
332 curr[0] = val[0];

Callers 2

interpolationListFunction · 0.85

Calls 1

toRadianFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…