Trying to fix a small issue with SVG transforms when initial rotations/scale/skews aren't 0 (zero)

This commit is contained in:
thednp 2016-12-14 16:37:50 +02:00
parent 842f12bcf1
commit 0e917b933b
3 changed files with 10 additions and 10 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -400,14 +400,14 @@
}
// now try to determine the REAL translation
var parentSVG = this.element.ownerSVGElement, newMatrix = parentSVG.createSVGMatrix(), newTransform,
isComplex = 'skewX' in valuesStart || 'skewY' in valuesStart || 'scale' in valuesStart || 'rotate' in valuesStart;
isComplex && newMatrix.translate(-valuesStart.origin[0],-valuesStart.origin[1]); // - origin
'translate' in valuesStart && newMatrix.translate( valuesStart.translate[0], valuesStart.translate[1] ); // the current translate
newMatrix.rotate(valuesStart.rotate||0).skewX(valuesStart.skewX||0).skewY(valuesStart.skewY||0).scale(valuesStart.scale||1); // the other functions
isComplex && newMatrix.translate(+valuesStart.origin[0],+valuesStart.origin[1]); // + origin
newTransform = parentSVG.createSVGTransformFromMatrix(newMatrix);
var parentSVG = this.element.ownerSVGElement,
newTransform = parentSVG.createSVGTransformFromMatrix(
parentSVG.createSVGMatrix()
.translate(-valuesStart.origin[0],-valuesStart.origin[1]) // - origin
.translate('translate' in valuesStart ? valuesStart.translate[0] : 0,'translate' in valuesStart ? valuesStart.translate[1] : 0) // the current translate
.rotate(valuesStart.rotate||0).skewX(valuesStart.skewX||0).skewY(valuesStart.skewY||0).scale(valuesStart.scale||1)// the other functions
.translate(+valuesStart.origin[0],+valuesStart.origin[1]) // + origin
);
valuesStart.translate = [newTransform.matrix.e,newTransform.matrix.f]; // finally the translate we're looking for