basegfx/source/matrix/b3dhommatrix.cxx | 15 +--
drawinglayer/source/primitive2d/svggradientprimitive2d.cxx | 17 +++--
sc/source/filter/inc/lotattr.hxx |2 -
sc/source/filter/lotus/lotattr.cxx |6 ++--
sc/source/ui/attrdlg/scdlgfact.cxx |2 -
sc/source/ui/attrdlg/scdlgfact.hxx |4 +--
sw/source/core/layout/wsfrm.cxx| 14 +-
7 files changed, 26 insertions(+), 34 deletions(-)
New commits:
commit 437d5d30422014c0a6def06e432a41e3f2e5c4c5
Author: Noel Grandin
AuthorDate: Fri Aug 31 16:49:22 2018 +0200
Commit: Noel Grandin
CommitDate: Mon Sep 3 12:41:46 2018 +0200
move identity checks into B3DHomMatrix::operator*=
and consequently simplify some call-sites
Change-Id: I301fc4c88fdfb8af75a348a41593a27f4c6567c5
Reviewed-on: https://gerrit.libreoffice.org/59916
Tested-by: Jenkins
Reviewed-by: Noel Grandin
diff --git a/basegfx/source/matrix/b3dhommatrix.cxx
b/basegfx/source/matrix/b3dhommatrix.cxx
index d23aed896120..e3f3d3d28475 100644
--- a/basegfx/source/matrix/b3dhommatrix.cxx
+++ b/basegfx/source/matrix/b3dhommatrix.cxx
@@ -117,9 +117,20 @@ namespace basegfx
B3DHomMatrix& B3DHomMatrix::operator*=(const B3DHomMatrix& rMat)
{
-if(!rMat.isIdentity())
+if(rMat.isIdentity())
+{
+// multiply with identity, no change -> nothing to do
+}
+else if(isIdentity())
+{
+// we are identity, result will be rMat -> assign
+*this = rMat;
+}
+else
+{
+// multiply
mpImpl->doMulMatrix(*rMat.mpImpl);
-
+}
return *this;
}
diff --git a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
index 12eef36c16ac..6e2ab2e16b3e 100644
--- a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
@@ -404,14 +404,11 @@ namespace drawinglayer
aUnitGradientToObject.rotate(atan2(aVector.getY(),
aVector.getX()));
aUnitGradientToObject.translate(getStart().getX(),
getStart().getY());
-if(!getGradientTransform().isIdentity())
-{
-aUnitGradientToObject = getGradientTransform() *
aUnitGradientToObject;
-}
+aUnitGradientToObject *= getGradientTransform();
// create full transform from unit gradient coordinates to
object coordinates
// including the SvgGradient transformation
-aUnitGradientToObject = aObjectTransform *
aUnitGradientToObject;
+aUnitGradientToObject *= aObjectTransform;
}
else
{
@@ -424,10 +421,7 @@ namespace drawinglayer
aUnitGradientToObject.rotate(atan2(aVector.getY(),
aVector.getX()));
aUnitGradientToObject.translate(aStart.getX(),
aStart.getY());
-if(!getGradientTransform().isIdentity())
-{
-aUnitGradientToObject = getGradientTransform() *
aUnitGradientToObject;
-}
+aUnitGradientToObject *= getGradientTransform();
}
// create inverse from it
@@ -757,10 +751,7 @@ namespace drawinglayer
aUnitGradientToObject.scale(fRadius, fRadius);
aUnitGradientToObject.translate(aStart.getX(),
aStart.getY());
-if(!getGradientTransform().isIdentity())
-{
-aUnitGradientToObject = getGradientTransform() *
aUnitGradientToObject;
-}
+aUnitGradientToObject *= getGradientTransform();
}
// create inverse from it
diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx
index cdce7870a536..bc41904eea2c 100644
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@ -274,18 +274,8 @@ void TransformableSwFrame::restoreFrameAreas()
// transform by given B2DHomMatrix
void TransformableSwFrame::transform(const basegfx::B2DHomMatrix aTransform)
{
-if(!aTransform.isIdentity())
-{
-if(!maFrameAreaTransformation.isIdentity())
-{
-maFrameAreaTransformation *= aTransform;
-}
-
-if(!maFramePrintAreaTransformation.isIdentity())
-{
-maFramePrintAreaTransformation *= aTransform;
-}
-}
+maFrameAreaTransformation *= aTransform;
+maFramePrintAreaTransformation *= aTransform;
}
SwFrame::SwFrame( SwModify *pMod, SwFrame* pSib )
commit