diff --git a/plugins/convertTransform.js b/plugins/convertTransform.js index af84b5cd..572263d3 100644 --- a/plugins/convertTransform.js +++ b/plugins/convertTransform.js @@ -80,8 +80,13 @@ function convertTransform(item, attrName, params) { if ( params.collapseIntoOne && - (data.length >= 3 || - data.some(function(i) { return i.name === 'matrix'; }) + ( + data.length >= 3 || + data.length == 2 && + ( + data[0].name === 'matrix' || data[1].name === 'matrix' || + data[0].name == data[1].name + ) ) ) { data = [transformsMultiply(data, params)]; @@ -89,6 +94,10 @@ function convertTransform(item, attrName, params) { if (params.matrixToTransform) { data = [matrixToTransform(data[0], params)]; } + + if (params.removeUseless) { + data = removeUseless(data); + } } item.attr(attrName).value = js2transform(data, params); @@ -192,8 +201,11 @@ function removeUseless(transforms) { // translate(0), rotate(0), skewX(0), skewY(0) if ( ['translate', 'rotate', 'skewX', 'skewY'].indexOf(transform.name) > -1 && - transform.data.length === 1 && - transform.data[0] === 0 + (transform.data.length === 1 || transform.name === 'rotate') && + transform.data[0] === 0 || + transform.name === 'translate' && + transform.data[0] === 0 && + transform.data[1] === 0 ) { return false; // scale(1) diff --git a/test/plugins/convertTransform.04.svg b/test/plugins/convertTransform.04.svg index 844844ca..d0926a16 100644 --- a/test/plugins/convertTransform.04.svg +++ b/test/plugins/convertTransform.04.svg @@ -1,16 +1,20 @@ + + + @@@ + @@ -18,4 +22,6 @@ + +