summaryrefslogtreecommitdiff
path: root/svx/source/sdr
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2021-01-03 21:44:19 +0900
committerTomaž Vajngerl <quikee@gmail.com>2021-01-09 01:09:30 +0100
commit767f408c64d067e3a70604938b0e050a69e3d563 (patch)
tree6211bf635062df66764c389d3b541e226cae6f7d /svx/source/sdr
parent900573fbd77993a48f012b074f498913befbeb26 (diff)
remove sdrgrafprimitive2d.{cxx,hxx} from excludelist
Change-Id: I9533fe0bb082f6688d6f8030e5bc0d6960abf359 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108844 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'svx/source/sdr')
-rw-r--r--svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx263
1 files changed, 124 insertions, 139 deletions
diff --git a/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx
index 2f934d0cbf1d..36f34106e1fd 100644
--- a/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx
@@ -26,154 +26,139 @@
namespace drawinglayer::primitive2d
{
- void SdrGrafPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const
+void SdrGrafPrimitive2D::create2DDecomposition(
+ Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const
+{
+ Primitive2DContainer aRetval;
+
+ // create unit outline polygon
+ const basegfx::B2DPolygon& aUnitOutline(basegfx::utils::createUnitPolygon());
+
+ // add fill, but only when graphic is transparent
+ if (!getSdrLFSTAttribute().getFill().isDefault() && isTransparent())
+ {
+ basegfx::B2DPolyPolygon aTransformed(aUnitOutline);
+
+ aTransformed.transform(getTransform());
+ aRetval.push_back(
+ createPolyPolygonFillPrimitive(aTransformed, getSdrLFSTAttribute().getFill(),
+ getSdrLFSTAttribute().getFillFloatTransGradient()));
+ }
+
+ // add graphic content
+ if (255 != getGraphicAttr().GetTransparency())
+ {
+ // standard graphic fill
+ const Primitive2DReference xGraphicContentPrimitive(
+ new GraphicPrimitive2D(getTransform(), getGraphicObject(), getGraphicAttr()));
+ aRetval.push_back(xGraphicContentPrimitive);
+ }
+
+ // add line
+ if (!getSdrLFSTAttribute().getLine().isDefault())
+ {
+ // if line width is given, polygon needs to be grown by half of it to make the
+ // outline to be outside of the bitmap
+ if (0.0 != getSdrLFSTAttribute().getLine().getWidth())
{
- Primitive2DContainer aRetval;
-
- // create unit outline polygon
- const basegfx::B2DPolygon& aUnitOutline(basegfx::utils::createUnitPolygon());
-
- // add fill, but only when graphic is transparent
- if(!getSdrLFSTAttribute().getFill().isDefault() && isTransparent())
- {
- basegfx::B2DPolyPolygon aTransformed(aUnitOutline);
-
- aTransformed.transform(getTransform());
- aRetval.push_back(
- createPolyPolygonFillPrimitive(
- aTransformed,
- getSdrLFSTAttribute().getFill(),
- getSdrLFSTAttribute().getFillFloatTransGradient()));
- }
-
- // add graphic content
- if(255 != getGraphicAttr().GetTransparency())
- {
- // standard graphic fill
- const Primitive2DReference xGraphicContentPrimitive(
- new GraphicPrimitive2D(
- getTransform(),
- getGraphicObject(),
- getGraphicAttr()));
- aRetval.push_back(xGraphicContentPrimitive);
- }
-
- // add line
- if(!getSdrLFSTAttribute().getLine().isDefault())
- {
- // if line width is given, polygon needs to be grown by half of it to make the
- // outline to be outside of the bitmap
- if(0.0 != getSdrLFSTAttribute().getLine().getWidth())
- {
- // decompose to get scale
- basegfx::B2DVector aScale, aTranslate;
- double fRotate, fShearX;
- getTransform().decompose(aScale, aTranslate, fRotate, fShearX);
-
- // create expanded range (add relative half line width to unit rectangle)
- double fHalfLineWidth(getSdrLFSTAttribute().getLine().getWidth() * 0.5);
- double fScaleX(0.0 != aScale.getX() ? fHalfLineWidth / fabs(aScale.getX()) : 1.0);
- double fScaleY(0.0 != aScale.getY() ? fHalfLineWidth / fabs(aScale.getY()) : 1.0);
- const basegfx::B2DRange aExpandedRange(-fScaleX, -fScaleY, 1.0 + fScaleX, 1.0 + fScaleY);
- basegfx::B2DPolygon aExpandedUnitOutline(basegfx::utils::createPolygonFromRect(aExpandedRange));
-
- aExpandedUnitOutline.transform(getTransform());
- aRetval.push_back(
- createPolygonLinePrimitive(
- aExpandedUnitOutline,
- getSdrLFSTAttribute().getLine(),
- attribute::SdrLineStartEndAttribute()));
- }
- else
- {
- basegfx::B2DPolygon aTransformed(aUnitOutline);
-
- aTransformed.transform(getTransform());
- aRetval.push_back(
- createPolygonLinePrimitive(
- aTransformed,
- getSdrLFSTAttribute().getLine(),
- attribute::SdrLineStartEndAttribute()));
- }
- }
-
- // Soft edges should be before text, since text is not affected by soft edges
- if (!aRetval.empty() && getSdrLFSTAttribute().getSoftEdgeRadius())
- {
- aRetval = createEmbeddedSoftEdgePrimitive(
- aRetval, getSdrLFSTAttribute().getSoftEdgeRadius());
- }
-
- // add text
- if(!getSdrLFSTAttribute().getText().isDefault())
- {
- aRetval.push_back(
- createTextPrimitive(
- basegfx::B2DPolyPolygon(aUnitOutline),
- getTransform(),
- getSdrLFSTAttribute().getText(),
- getSdrLFSTAttribute().getLine(),
- false,
- false));
- }
-
- // tdf#132199: put glow before shadow, to have shadow of the glow, not the opposite
- if (!aRetval.empty() && !getSdrLFSTAttribute().getGlow().isDefault())
- {
- // glow
- aRetval = createEmbeddedGlowPrimitive(aRetval, getSdrLFSTAttribute().getGlow());
- }
-
- // add shadow
- if(!getSdrLFSTAttribute().getShadow().isDefault())
- {
- aRetval = createEmbeddedShadowPrimitive(
- aRetval,
- getSdrLFSTAttribute().getShadow(),
- getTransform());
- }
-
- rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end());
+ // decompose to get scale
+ basegfx::B2DVector aScale, aTranslate;
+ double fRotate, fShearX;
+ getTransform().decompose(aScale, aTranslate, fRotate, fShearX);
+
+ // create expanded range (add relative half line width to unit rectangle)
+ double fHalfLineWidth(getSdrLFSTAttribute().getLine().getWidth() * 0.5);
+ double fScaleX(0.0 != aScale.getX() ? fHalfLineWidth / fabs(aScale.getX()) : 1.0);
+ double fScaleY(0.0 != aScale.getY() ? fHalfLineWidth / fabs(aScale.getY()) : 1.0);
+ const basegfx::B2DRange aExpandedRange(-fScaleX, -fScaleY, 1.0 + fScaleX,
+ 1.0 + fScaleY);
+ basegfx::B2DPolygon aExpandedUnitOutline(
+ basegfx::utils::createPolygonFromRect(aExpandedRange));
+
+ aExpandedUnitOutline.transform(getTransform());
+ aRetval.push_back(createPolygonLinePrimitive(aExpandedUnitOutline,
+ getSdrLFSTAttribute().getLine(),
+ attribute::SdrLineStartEndAttribute()));
}
-
- SdrGrafPrimitive2D::SdrGrafPrimitive2D(
- const basegfx::B2DHomMatrix& rTransform,
- const attribute::SdrLineFillEffectsTextAttribute& rSdrLFSTAttribute,
- const GraphicObject& rGraphicObject,
- const GraphicAttr& rGraphicAttr)
- : BufferedDecompositionPrimitive2D(),
- maTransform(rTransform),
- maSdrLFSTAttribute(rSdrLFSTAttribute),
- maGraphicObject(rGraphicObject),
- maGraphicAttr(rGraphicAttr)
+ else
{
- // reset some values from GraphicAttr which are part of transformation already
- maGraphicAttr.SetRotation(0_deg10);
+ basegfx::B2DPolygon aTransformed(aUnitOutline);
+
+ aTransformed.transform(getTransform());
+ aRetval.push_back(createPolygonLinePrimitive(aTransformed,
+ getSdrLFSTAttribute().getLine(),
+ attribute::SdrLineStartEndAttribute()));
}
+ }
+
+ // Soft edges should be before text, since text is not affected by soft edges
+ if (!aRetval.empty() && getSdrLFSTAttribute().getSoftEdgeRadius())
+ {
+ aRetval
+ = createEmbeddedSoftEdgePrimitive(aRetval, getSdrLFSTAttribute().getSoftEdgeRadius());
+ }
+
+ // add text
+ if (!getSdrLFSTAttribute().getText().isDefault())
+ {
+ aRetval.push_back(createTextPrimitive(basegfx::B2DPolyPolygon(aUnitOutline), getTransform(),
+ getSdrLFSTAttribute().getText(),
+ getSdrLFSTAttribute().getLine(), false, false));
+ }
+
+ // tdf#132199: put glow before shadow, to have shadow of the glow, not the opposite
+ if (!aRetval.empty() && !getSdrLFSTAttribute().getGlow().isDefault())
+ {
+ // glow
+ aRetval = createEmbeddedGlowPrimitive(aRetval, getSdrLFSTAttribute().getGlow());
+ }
+
+ // add shadow
+ if (!getSdrLFSTAttribute().getShadow().isDefault())
+ {
+ aRetval = createEmbeddedShadowPrimitive(aRetval, getSdrLFSTAttribute().getShadow(),
+ getTransform());
+ }
+
+ rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end());
+}
+
+SdrGrafPrimitive2D::SdrGrafPrimitive2D(
+ const basegfx::B2DHomMatrix& rTransform,
+ const attribute::SdrLineFillEffectsTextAttribute& rSdrLFSTAttribute,
+ const GraphicObject& rGraphicObject, const GraphicAttr& rGraphicAttr)
+ : BufferedDecompositionPrimitive2D()
+ , maTransform(rTransform)
+ , maSdrLFSTAttribute(rSdrLFSTAttribute)
+ , maGraphicObject(rGraphicObject)
+ , maGraphicAttr(rGraphicAttr)
+{
+ // reset some values from GraphicAttr which are part of transformation already
+ maGraphicAttr.SetRotation(0_deg10);
+}
- bool SdrGrafPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
- {
- if(BufferedDecompositionPrimitive2D::operator==(rPrimitive))
- {
- const SdrGrafPrimitive2D& rCompare = static_cast<const SdrGrafPrimitive2D&>(rPrimitive);
+bool SdrGrafPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
+{
+ if (BufferedDecompositionPrimitive2D::operator==(rPrimitive))
+ {
+ const SdrGrafPrimitive2D& rCompare = static_cast<const SdrGrafPrimitive2D&>(rPrimitive);
- return (getTransform() == rCompare.getTransform()
- && getSdrLFSTAttribute() == rCompare.getSdrLFSTAttribute()
- && getGraphicObject() == rCompare.getGraphicObject()
- && getGraphicAttr() == rCompare.getGraphicAttr());
- }
+ return (getTransform() == rCompare.getTransform()
+ && getSdrLFSTAttribute() == rCompare.getSdrLFSTAttribute()
+ && getGraphicObject() == rCompare.getGraphicObject()
+ && getGraphicAttr() == rCompare.getGraphicAttr());
+ }
- return false;
- }
+ return false;
+}
- bool SdrGrafPrimitive2D::isTransparent() const
- {
- return ((0 != getGraphicAttr().GetTransparency())
- || (getGraphicObject().IsTransparent()));
- }
+bool SdrGrafPrimitive2D::isTransparent() const
+{
+ return ((0 != getGraphicAttr().GetTransparency()) || (getGraphicObject().IsTransparent()));
+}
- // provide unique ID
- ImplPrimitive2DIDBlock(SdrGrafPrimitive2D, PRIMITIVE2D_ID_SDRGRAFPRIMITIVE2D)
+// provide unique ID
+ImplPrimitive2DIDBlock(SdrGrafPrimitive2D, PRIMITIVE2D_ID_SDRGRAFPRIMITIVE2D)
} // end of namespace