Kaydet (Commit) 437d5d30 authored tarafından Noel Grandin's avatar Noel Grandin

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: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 2a933f0b
...@@ -117,9 +117,20 @@ namespace basegfx ...@@ -117,9 +117,20 @@ namespace basegfx
B3DHomMatrix& B3DHomMatrix::operator*=(const B3DHomMatrix& rMat) 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); mpImpl->doMulMatrix(*rMat.mpImpl);
}
return *this; return *this;
} }
......
...@@ -404,14 +404,11 @@ namespace drawinglayer ...@@ -404,14 +404,11 @@ namespace drawinglayer
aUnitGradientToObject.rotate(atan2(aVector.getY(), aVector.getX())); aUnitGradientToObject.rotate(atan2(aVector.getY(), aVector.getX()));
aUnitGradientToObject.translate(getStart().getX(), getStart().getY()); aUnitGradientToObject.translate(getStart().getX(), getStart().getY());
if(!getGradientTransform().isIdentity()) aUnitGradientToObject *= getGradientTransform();
{
aUnitGradientToObject = getGradientTransform() * aUnitGradientToObject;
}
// create full transform from unit gradient coordinates to object coordinates // create full transform from unit gradient coordinates to object coordinates
// including the SvgGradient transformation // including the SvgGradient transformation
aUnitGradientToObject = aObjectTransform * aUnitGradientToObject; aUnitGradientToObject *= aObjectTransform;
} }
else else
{ {
...@@ -424,10 +421,7 @@ namespace drawinglayer ...@@ -424,10 +421,7 @@ namespace drawinglayer
aUnitGradientToObject.rotate(atan2(aVector.getY(), aVector.getX())); aUnitGradientToObject.rotate(atan2(aVector.getY(), aVector.getX()));
aUnitGradientToObject.translate(aStart.getX(), aStart.getY()); aUnitGradientToObject.translate(aStart.getX(), aStart.getY());
if(!getGradientTransform().isIdentity()) aUnitGradientToObject *= getGradientTransform();
{
aUnitGradientToObject = getGradientTransform() * aUnitGradientToObject;
}
} }
// create inverse from it // create inverse from it
...@@ -757,10 +751,7 @@ namespace drawinglayer ...@@ -757,10 +751,7 @@ namespace drawinglayer
aUnitGradientToObject.scale(fRadius, fRadius); aUnitGradientToObject.scale(fRadius, fRadius);
aUnitGradientToObject.translate(aStart.getX(), aStart.getY()); aUnitGradientToObject.translate(aStart.getX(), aStart.getY());
if(!getGradientTransform().isIdentity()) aUnitGradientToObject *= getGradientTransform();
{
aUnitGradientToObject = getGradientTransform() * aUnitGradientToObject;
}
} }
// create inverse from it // create inverse from it
......
...@@ -274,18 +274,8 @@ void TransformableSwFrame::restoreFrameAreas() ...@@ -274,18 +274,8 @@ void TransformableSwFrame::restoreFrameAreas()
// transform by given B2DHomMatrix // transform by given B2DHomMatrix
void TransformableSwFrame::transform(const basegfx::B2DHomMatrix aTransform) void TransformableSwFrame::transform(const basegfx::B2DHomMatrix aTransform)
{ {
if(!aTransform.isIdentity()) maFrameAreaTransformation *= aTransform;
{ maFramePrintAreaTransformation *= aTransform;
if(!maFrameAreaTransformation.isIdentity())
{
maFrameAreaTransformation *= aTransform;
}
if(!maFramePrintAreaTransformation.isIdentity())
{
maFramePrintAreaTransformation *= aTransform;
}
}
} }
SwFrame::SwFrame( SwModify *pMod, SwFrame* pSib ) SwFrame::SwFrame( SwModify *pMod, SwFrame* pSib )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment