( type, value )
| 467 | } |
| 468 | |
| 469 | function parseFunction( type, value ) { |
| 470 | var |
| 471 | // default value is 1 for scale, 0 otherwise |
| 472 | defaultValue = +(!type.indexOf(_scale)), |
| 473 | scaleX, |
| 474 | // remove X/Y from scaleX/Y & translateX/Y, not from skew |
| 475 | cat = type.replace( /e[XY]/, "e" ); |
| 476 | |
| 477 | switch ( type ) { |
| 478 | case _translate+"Y": |
| 479 | case _scale+"Y": |
| 480 | |
| 481 | value = [ |
| 482 | defaultValue, |
| 483 | value ? |
| 484 | parseFloat( value ): |
| 485 | defaultValue |
| 486 | ]; |
| 487 | break; |
| 488 | |
| 489 | case _translate+"X": |
| 490 | case _translate: |
| 491 | case _scale+"X": |
| 492 | scaleX = 1; |
| 493 | case _scale: |
| 494 | |
| 495 | value = value ? |
| 496 | ( value = value.split(",") ) && [ |
| 497 | parseFloat( value[0] ), |
| 498 | parseFloat( value.length>1 ? value[1] : type == _scale ? scaleX || value[0] : defaultValue+"" ) |
| 499 | ]: |
| 500 | [defaultValue, defaultValue]; |
| 501 | break; |
| 502 | |
| 503 | case _skew+"X": |
| 504 | case _skew+"Y": |
| 505 | case _rotate: |
| 506 | value = value ? toRadian( value ) : 0; |
| 507 | break; |
| 508 | |
| 509 | case _matrix: |
| 510 | return unmatrix( value ? toArray(value) : [1,0,0,1,0,0] ); |
| 511 | break; |
| 512 | } |
| 513 | |
| 514 | return [[ cat, value ]]; |
| 515 | } |
| 516 | |
| 517 | function isAffine( matrix ) { |
| 518 | return rAffine.test(matrix); |
no test coverage detected
searching dependent graphs…