diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-11-14 09:11:35 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-12-22 06:44:08 +0000 |
commit | cc15806b527cc02c57bd92211fda259e33963106 (patch) | |
tree | 85aa90d0f1013ccef85cbfa2c0f064f905b0c464 /drawinglayer | |
parent | 41f7878ccbc457ef0431c999d38d9d77265d5dc7 (diff) |
convert BasePrimitive2D::get2DDecomposition to use a visitor
which lets us avoid constructing the decomposition when we are only
interesting in the bounding box, e.g. for hit testing
Change-Id: Icd8d430b75d207063f1db70e5a0822d5d82a7d00
Reviewed-on: https://gerrit.libreoffice.org/30835
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'drawinglayer')
19 files changed, 83 insertions, 57 deletions
diff --git a/drawinglayer/source/primitive2d/animatedprimitive2d.cxx b/drawinglayer/source/primitive2d/animatedprimitive2d.cxx index 13564af2bce5..63c25273e7aa 100644 --- a/drawinglayer/source/primitive2d/animatedprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/animatedprimitive2d.cxx @@ -64,7 +64,7 @@ namespace drawinglayer return false; } - void AnimatedSwitchPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void AnimatedSwitchPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { if(!getChildren().empty()) { @@ -78,7 +78,7 @@ namespace drawinglayer } const Primitive2DReference xRef(getChildren()[nIndex], uno::UNO_QUERY_THROW); - rContainer.push_back(xRef); + rVisitor.append(xRef); } } @@ -100,7 +100,7 @@ namespace drawinglayer { } - void AnimatedBlinkPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void AnimatedBlinkPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { if(!getChildren().empty()) { @@ -108,7 +108,7 @@ namespace drawinglayer if(fState < 0.5) { - getChildren(rContainer); + getChildren(rVisitor); } } } @@ -141,7 +141,7 @@ namespace drawinglayer } } - void AnimatedInterpolatePrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void AnimatedInterpolatePrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { const sal_uInt32 nSize(maMatrixStack.size()); @@ -188,11 +188,11 @@ namespace drawinglayer // create new transform primitive reference, return new sequence const Primitive2DReference xRef(new TransformPrimitive2D(aTargetTransform, getChildren())); - rContainer.push_back(xRef); + rVisitor.append(xRef); } else { - getChildren(rContainer); + getChildren(rVisitor); } } diff --git a/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx b/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx index 20afb0df0de8..00ef47ffd94d 100644 --- a/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx @@ -70,7 +70,7 @@ namespace drawinglayer return rViewInformation.getViewport(); } - void BackgroundColorPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void BackgroundColorPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -87,7 +87,7 @@ namespace drawinglayer } // use parent implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/baseprimitive2d.cxx b/drawinglayer/source/primitive2d/baseprimitive2d.cxx index bcc96c731b8e..31f495c22a3b 100644 --- a/drawinglayer/source/primitive2d/baseprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/baseprimitive2d.cxx @@ -36,6 +36,8 @@ namespace drawinglayer { namespace primitive2d { + Primitive2DDecompositionVisitor::~Primitive2DDecompositionVisitor() {} + BasePrimitive2D::BasePrimitive2D() : BasePrimitive2DImplBase(m_aMutex) { @@ -50,14 +52,31 @@ namespace drawinglayer return (getPrimitive2DID() == rPrimitive.getPrimitive2DID()); } + // Visitor class to get the B2D range from a tree of Primitive2DReference's + // + class B2DRangeVisitor : public Primitive2DDecompositionVisitor { + public: + const geometry::ViewInformation2D& mrViewInformation; + basegfx::B2DRange maRetval; + B2DRangeVisitor(const geometry::ViewInformation2D& rViewInformation) : mrViewInformation(rViewInformation) {} + virtual void append(const Primitive2DReference& r) override { + maRetval.expand(getB2DRangeFromPrimitive2DReference(r, mrViewInformation)); + } + virtual void append(const Primitive2DContainer& r) override { + maRetval.expand(r.getB2DRange(mrViewInformation)); + } + virtual void append(Primitive2DContainer&& r) override { + maRetval.expand(r.getB2DRange(mrViewInformation)); + } + }; basegfx::B2DRange BasePrimitive2D::getB2DRange(const geometry::ViewInformation2D& rViewInformation) const { - Primitive2DContainer aContainer; - get2DDecomposition(aContainer, rViewInformation); - return aContainer.getB2DRange(rViewInformation); + B2DRangeVisitor aVisitor(rViewInformation); + get2DDecomposition(aVisitor, rViewInformation); + return aVisitor.maRetval; } - void BasePrimitive2D::get2DDecomposition(Primitive2DContainer& /*rContainer*/, const geometry::ViewInformation2D& /*rViewInformation*/) const + void BasePrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& /*rVisitor*/, const geometry::ViewInformation2D& /*rViewInformation*/) const { } @@ -98,7 +117,7 @@ namespace drawinglayer { } - void BufferedDecompositionPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void BufferedDecompositionPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -109,7 +128,7 @@ namespace drawinglayer const_cast< BufferedDecompositionPrimitive2D* >(this)->setBuffered2DDecomposition(aNewSequence); } - rContainer.insert(rContainer.end(), getBuffered2DDecomposition().begin(), getBuffered2DDecomposition().end()); + rVisitor.append(getBuffered2DDecomposition()); } } // end of namespace primitive2d } // end of namespace drawinglayer @@ -248,6 +267,13 @@ namespace drawinglayer return true; } + Primitive2DContainer::~Primitive2DContainer() {} + + void Primitive2DContainer::append(const Primitive2DReference& rSource) + { + push_back(rSource); + } + void Primitive2DContainer::append(const Primitive2DContainer& rSource) { insert(end(), rSource.begin(), rSource.end()); diff --git a/drawinglayer/source/primitive2d/controlprimitive2d.cxx b/drawinglayer/source/primitive2d/controlprimitive2d.cxx index 846305510397..578637677055 100644 --- a/drawinglayer/source/primitive2d/controlprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/controlprimitive2d.cxx @@ -326,7 +326,7 @@ namespace drawinglayer return aRetval; } - void ControlPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void ControlPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { // this primitive is view-dependent related to the scaling. If scaling has changed, // destroy existing decomposition. To detect change, use size of unit size in view coordinates @@ -349,7 +349,7 @@ namespace drawinglayer } // use parent implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/cropprimitive2d.cxx b/drawinglayer/source/primitive2d/cropprimitive2d.cxx index c3644e269fd2..0088e2f349b2 100644 --- a/drawinglayer/source/primitive2d/cropprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/cropprimitive2d.cxx @@ -66,7 +66,7 @@ namespace drawinglayer return false; } - void CropPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const + void CropPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& /*rViewInformation*/) const { if(!getChildren().empty()) { @@ -126,7 +126,7 @@ namespace drawinglayer { // the new range is completely inside the old range (unit range), // so no masking is needed - rContainer.push_back(xTransformPrimitive); + rVisitor.append(xTransformPrimitive); } else { @@ -140,7 +140,7 @@ namespace drawinglayer aMaskPolyPolygon, Primitive2DContainer { xTransformPrimitive })); - rContainer.push_back(xMask); + rVisitor.append(xMask); } } } diff --git a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx index c5eb9139993a..464a4e12b722 100644 --- a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx @@ -176,7 +176,7 @@ namespace drawinglayer return getOutputRange(); } - void FillHatchPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void FillHatchPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); bool bAdaptDistance(0 != getFillHatch().getMinimalDiscreteDistance()); @@ -184,12 +184,12 @@ namespace drawinglayer if(bAdaptDistance) { // behave view-dependent - DiscreteMetricDependentPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + DiscreteMetricDependentPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } else { // behave view-independent - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } } diff --git a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx index 4c48cf70b815..0164e4b9df97 100644 --- a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx +++ b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx @@ -323,7 +323,7 @@ namespace drawinglayer virtual bool operator==(const BasePrimitive2D& rPrimitive) const override; /// override to deliver the correct expected frame dependent of timing - virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const override; }; AnimatedGraphicPrimitive2D::AnimatedGraphicPrimitive2D( @@ -392,7 +392,7 @@ namespace drawinglayer && getGraphic() == pCompare->getGraphic()); } - void AnimatedGraphicPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void AnimatedGraphicPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { if (isValidData()) { @@ -413,7 +413,7 @@ namespace drawinglayer if (aRetval.is()) { - rContainer.push_back(aRetval); + rVisitor.append(aRetval); return; } @@ -432,14 +432,14 @@ namespace drawinglayer if (aRetval.is()) { - rContainer.push_back(aRetval); + rVisitor.append(aRetval); return; } // did not work (not buffered and not 1st frame), create from buffer aRetval = createFromBuffer(); - rContainer.push_back(aRetval); + rVisitor.append(aRetval); } } diff --git a/drawinglayer/source/primitive2d/gridprimitive2d.cxx b/drawinglayer/source/primitive2d/gridprimitive2d.cxx index 49594f455426..cbc49ddd5669 100644 --- a/drawinglayer/source/primitive2d/gridprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/gridprimitive2d.cxx @@ -309,7 +309,7 @@ namespace drawinglayer return aUnitRange; } - void GridPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void GridPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -330,7 +330,7 @@ namespace drawinglayer } // use parent implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/groupprimitive2d.cxx b/drawinglayer/source/primitive2d/groupprimitive2d.cxx index fb3f6b9b794c..1b86f15caae0 100644 --- a/drawinglayer/source/primitive2d/groupprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/groupprimitive2d.cxx @@ -51,9 +51,9 @@ namespace drawinglayer } /// default: just return children, so all renderers not supporting group will use its content - void GroupPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const + void GroupPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& /*rViewInformation*/) const { - getChildren(rContainer); + getChildren(rVisitor); } sal_Int64 SAL_CALL GroupPrimitive2D::estimateUsage() diff --git a/drawinglayer/source/primitive2d/helplineprimitive2d.cxx b/drawinglayer/source/primitive2d/helplineprimitive2d.cxx index b8cc0df1eafe..85bd17146f59 100644 --- a/drawinglayer/source/primitive2d/helplineprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/helplineprimitive2d.cxx @@ -162,7 +162,7 @@ namespace drawinglayer return false; } - void HelplinePrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void HelplinePrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -183,7 +183,7 @@ namespace drawinglayer } // use parent implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/hiddengeometryprimitive2d.cxx b/drawinglayer/source/primitive2d/hiddengeometryprimitive2d.cxx index f437a3fa8a0c..12d7343ca9f8 100644 --- a/drawinglayer/source/primitive2d/hiddengeometryprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/hiddengeometryprimitive2d.cxx @@ -39,7 +39,7 @@ namespace drawinglayer return getChildren().getB2DRange(rViewInformation); } - void HiddenGeometryPrimitive2D::get2DDecomposition(Primitive2DContainer& /*rContainer*/, const geometry::ViewInformation2D& /*rViewInformation*/) const + void HiddenGeometryPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& /*rVisitor*/, const geometry::ViewInformation2D& /*rViewInformation*/) const { } diff --git a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx index f4ea85373e70..7484a1e00d32 100644 --- a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx @@ -251,7 +251,7 @@ namespace drawinglayer return getMask().getB2DRange(); } - void PatternFillPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void PatternFillPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { // The existing bufferd decomposition uses a buffer in the remembered // size or none if sizes are zero. Get new needed sizes which depend on @@ -307,7 +307,7 @@ namespace drawinglayer } // call parent - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } sal_Int64 SAL_CALL PatternFillPrimitive2D::estimateUsage() diff --git a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx index 2ebd32a4f5e0..8040594c87a6 100644 --- a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx @@ -168,7 +168,7 @@ namespace drawinglayer return aRetval; } - void PolygonMarkerPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void PolygonMarkerPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); bool bNeedNewDecomposition(false); @@ -195,7 +195,7 @@ namespace drawinglayer } // use parent implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/primitivetools2d.cxx b/drawinglayer/source/primitive2d/primitivetools2d.cxx index 494a8cd38f6f..e98daad763bf 100644 --- a/drawinglayer/source/primitive2d/primitivetools2d.cxx +++ b/drawinglayer/source/primitive2d/primitivetools2d.cxx @@ -26,7 +26,7 @@ namespace drawinglayer { namespace primitive2d { - void DiscreteMetricDependentPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void DiscreteMetricDependentPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -47,7 +47,7 @@ namespace drawinglayer } // call base implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } } // end of namespace primitive2d } // end of namespace drawinglayer @@ -57,7 +57,7 @@ namespace drawinglayer { namespace primitive2d { - void ViewportDependentPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void ViewportDependentPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -77,7 +77,7 @@ namespace drawinglayer } // call base implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } } // end of namespace primitive2d } // end of namespace drawinglayer @@ -87,7 +87,7 @@ namespace drawinglayer { namespace primitive2d { - void ViewTransformationDependentPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void ViewTransformationDependentPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -107,7 +107,7 @@ namespace drawinglayer } // call base implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } } // end of namespace primitive2d } // end of namespace drawinglayer @@ -117,7 +117,7 @@ namespace drawinglayer { namespace primitive2d { - void ObjectAndViewTransformationDependentPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void ObjectAndViewTransformationDependentPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -147,7 +147,7 @@ namespace drawinglayer } // call base implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx index 73fd8cbc4fae..bbf6774cf663 100644 --- a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx @@ -632,7 +632,7 @@ namespace drawinglayer return aRetval; } - void ScenePrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void ScenePrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -689,7 +689,7 @@ namespace drawinglayer } // use parent implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx index f1e4b9f03118..4375319e5453 100644 --- a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx @@ -64,7 +64,7 @@ namespace drawinglayer return aRetval; } - void ShadowPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const + void ShadowPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& /*rViewInformation*/) const { if(!getChildren().empty()) { @@ -79,7 +79,7 @@ namespace drawinglayer const Primitive2DContainer aSequenceB { xRefA }; // build transformed primitiveVector with shadow offset and add to target - rContainer.push_back(new TransformPrimitive2D(getShadowTransform(), aSequenceB)); + rVisitor.append(new TransformPrimitive2D(getShadowTransform(), aSequenceB)); } } diff --git a/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx b/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx index c0965a531444..858be59a4f89 100644 --- a/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx @@ -217,7 +217,7 @@ namespace drawinglayer return aRetval; } - void TextEffectPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void TextEffectPrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -237,7 +237,7 @@ namespace drawinglayer } // use parent implementation - BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx index cce531f5dac0..24f07733e81c 100644 --- a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx @@ -61,12 +61,12 @@ namespace drawinglayer return getChildren().getB2DRange( rViewInformation); } - void UnifiedTransparencePrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const + void UnifiedTransparencePrimitive2D::get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const { if(0.0 == getTransparence()) { // no transparence used, so just use the content - getChildren(rContainer); + getChildren(rVisitor); } else if(getTransparence() > 0.0 && getTransparence() < 1.0) { @@ -95,7 +95,7 @@ namespace drawinglayer aTransparenceContent[1] = Primitive2DReference(new PolygonHairlinePrimitive2D(aPolygon, aGray)); // create sub-transparence group with a gray-colored rectangular fill polygon - rContainer.push_back(new TransparencePrimitive2D(getChildren(), aTransparenceContent)); + rVisitor.append(new TransparencePrimitive2D(getChildren(), aTransparenceContent)); } else { diff --git a/drawinglayer/source/processor2d/hittestprocessor2d.cxx b/drawinglayer/source/processor2d/hittestprocessor2d.cxx index 214259cb04b0..6376156b8a37 100644 --- a/drawinglayer/source/processor2d/hittestprocessor2d.cxx +++ b/drawinglayer/source/processor2d/hittestprocessor2d.cxx @@ -429,7 +429,7 @@ namespace drawinglayer if(!getHitTextOnly()) { // The recently added BitmapEx::GetTransparency() makes it easy to extend - // the BitmapPrimitive2D HitTest to take the contained BotmapEx and it's + // the BitmapPrimitive2D HitTest to take the contained BitmapEx and it's // transparency into account const basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D())); |