filter/source/svg/parserfragments.cxx | 8 ++++---- filter/source/svg/svgreader.cxx | 9 +++++---- 2 files changed, 9 insertions(+), 8 deletions(-)
New commits: commit 6a763c4bcd1100ff14625cb924e7672866708c3d Author: Christina Rossmanith <chrrossman...@web.de> Date: Sun Apr 1 21:14:10 2012 +0200 SVG: treat skewX and skewY correct Signed-off-by: Thorsten Behrens <tbehr...@suse.com> diff --git a/filter/source/svg/parserfragments.cxx b/filter/source/svg/parserfragments.cxx index 4edd90f..d4b31f2 100644 --- a/filter/source/svg/parserfragments.cxx +++ b/filter/source/svg/parserfragments.cxx @@ -93,16 +93,16 @@ void calcRotation(std::vector<geometry::AffineMatrix2D>& rTransforms, void calcSkewX(std::vector<geometry::AffineMatrix2D>& rTransforms, double fSkewAngle) { - geometry::AffineMatrix2D aMat(1.0,0.0,0.0, - tan(fSkewAngle*M_PI/180),1.0,0.0); + geometry::AffineMatrix2D aMat(1.0,tan(fSkewAngle*M_PI/180),0.0, + 0.0,1.0,0.0); rTransforms.push_back(aMat); } void calcSkewY(std::vector<geometry::AffineMatrix2D>& rTransforms, double fSkewAngle) { - geometry::AffineMatrix2D aMat(1.0,tan(fSkewAngle*M_PI/180),0.0, - 0.0,1.0,0.0); + geometry::AffineMatrix2D aMat(1.0,0.0,0.0, + tan(fSkewAngle*M_PI/180),1.0,0.0); rTransforms.push_back(aMat); } commit 4567e9cd0126e6a718fa5b09a96df160538cbe2a Author: Christina Rossmanith <chrrossman...@web.de> Date: Sat Mar 17 22:06:22 2012 +0100 SVG import: keep aspect ratio when transforming viewbox to viewport Signed-off-by: Thorsten Behrens <tbehr...@suse.com> diff --git a/filter/source/svg/svgreader.cxx b/filter/source/svg/svgreader.cxx index 796bea9..c25d183 100644 --- a/filter/source/svg/svgreader.cxx +++ b/filter/source/svg/svgreader.cxx @@ -293,12 +293,13 @@ struct AnnotatingVisitor maCurrState.maViewBox.getWidth() != 0.0 && maCurrState.maViewBox.getHeight() != 0.0 ) { - // transform aViewBox into viewport, such that they - // coincide + // transform aViewBox into viewport, keep aspect ratio aLocalTransform.translate(-maCurrState.maViewBox.getMinX(), -maCurrState.maViewBox.getMinY()); - aLocalTransform.scale(maCurrState.maViewport.getWidth()/maCurrState.maViewBox.getWidth(), - maCurrState.maViewport.getHeight()/maCurrState.maViewBox.getHeight()); + double scaleW = maCurrState.maViewport.getWidth()/maCurrState.maViewBox.getWidth(); + double scaleH = maCurrState.maViewport.getHeight()/maCurrState.maViewBox.getHeight(); + double scale = (scaleW < scaleH) ? scaleW : scaleH; + aLocalTransform.scale(scale,scale); } maCurrState.maCTM = maCurrState.maCTM*maCurrState.maTransform*aLocalTransform; _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits