[Libreoffice-commits] core.git: Branch 'feature/perfwork4' - svx/source

Kohei Yoshida kohei.yoshida at collabora.com
Fri Oct 31 13:03:37 PDT 2014


 svx/source/sdr/contact/viewobjectcontact.cxx |  659 +++++++++++++--------------
 1 file changed, 328 insertions(+), 331 deletions(-)

New commits:
commit ec934468a979e2801b82fb7393afa657aec826ca
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Fri Oct 31 16:01:52 2014 -0400

    Unindent.
    
    Change-Id: I875bdf1eb6df37b07dd19c6a7ff5ba5eb3b8a096

diff --git a/svx/source/sdr/contact/viewobjectcontact.cxx b/svx/source/sdr/contact/viewobjectcontact.cxx
index 3491cfdf..140c5c8 100644
--- a/svx/source/sdr/contact/viewobjectcontact.cxx
+++ b/svx/source/sdr/contact/viewobjectcontact.cxx
@@ -41,409 +41,406 @@
 
 using namespace com::sun::star;
 
-namespace
+namespace {
+
+// animated extractor
+
+// Necessary to filter a sequence of animated primitives from
+// a sequence of primitives to find out if animated or not. The decision for
+// what to decompose is hard-coded and only done for knowingly animated primitives
+// to not decompose too deeply and unnecessarily. This implies that the list
+// which is view-specific needs to be expanded by hand when new animated objects
+// are added. This may eventually be changed to a dynamically configurable approach
+// if necessary.
+class AnimatedExtractingProcessor2D : public drawinglayer::processor2d::BaseProcessor2D
 {
-    // animated extractor
-
-    // Necessary to filter a sequence of animated primitives from
-    // a sequence of primitives to find out if animated or not. The decision for
-    // what to decompose is hard-coded and only done for knowingly animated primitives
-    // to not decompose too deeply and unnecessarily. This implies that the list
-    // which is view-specific needs to be expanded by hand when new animated objects
-    // are added. This may eventually be changed to a dynamically configurable approach
-    // if necessary.
-    class AnimatedExtractingProcessor2D : public drawinglayer::processor2d::BaseProcessor2D
-    {
-    protected:
-        // the found animated primitives
-        drawinglayer::primitive2d::Primitive2DSequence  maPrimitive2DSequence;
-
-        // bitfield
-        // text animation allowed?
-        bool                                            mbTextAnimationAllowed : 1;
-
-        // graphic animation allowed?
-        bool                                            mbGraphicAnimationAllowed : 1;
-
-        // as tooling, the process() implementation takes over API handling and calls this
-        // virtual render method when the primitive implementation is BasePrimitive2D-based.
-        virtual void processBasePrimitive2D(const drawinglayer::primitive2d::BasePrimitive2D& rCandidate) SAL_OVERRIDE;
-
-    public:
-        AnimatedExtractingProcessor2D(
-            const drawinglayer::geometry::ViewInformation2D& rViewInformation,
-            bool bTextAnimationAllowed,
-            bool bGraphicAnimationAllowed);
-        virtual ~AnimatedExtractingProcessor2D();
-
-        // data access
-        const drawinglayer::primitive2d::Primitive2DSequence& getPrimitive2DSequence() const { return maPrimitive2DSequence; }
-        bool isTextAnimationAllowed() const { return mbTextAnimationAllowed; }
-        bool isGraphicAnimationAllowed() const { return mbGraphicAnimationAllowed; }
-    };
-
-    AnimatedExtractingProcessor2D::AnimatedExtractingProcessor2D(
+protected:
+    // the found animated primitives
+    drawinglayer::primitive2d::Primitive2DSequence  maPrimitive2DSequence;
+
+    // bitfield
+    // text animation allowed?
+    bool                                            mbTextAnimationAllowed : 1;
+
+    // graphic animation allowed?
+    bool                                            mbGraphicAnimationAllowed : 1;
+
+    // as tooling, the process() implementation takes over API handling and calls this
+    // virtual render method when the primitive implementation is BasePrimitive2D-based.
+    virtual void processBasePrimitive2D(const drawinglayer::primitive2d::BasePrimitive2D& rCandidate) SAL_OVERRIDE;
+
+public:
+    AnimatedExtractingProcessor2D(
         const drawinglayer::geometry::ViewInformation2D& rViewInformation,
         bool bTextAnimationAllowed,
-        bool bGraphicAnimationAllowed)
-    :   drawinglayer::processor2d::BaseProcessor2D(rViewInformation),
-        maPrimitive2DSequence(),
-        mbTextAnimationAllowed(bTextAnimationAllowed),
-        mbGraphicAnimationAllowed(bGraphicAnimationAllowed)
-    {
-    }
+        bool bGraphicAnimationAllowed);
+    virtual ~AnimatedExtractingProcessor2D();
+
+    // data access
+    const drawinglayer::primitive2d::Primitive2DSequence& getPrimitive2DSequence() const { return maPrimitive2DSequence; }
+    bool isTextAnimationAllowed() const { return mbTextAnimationAllowed; }
+    bool isGraphicAnimationAllowed() const { return mbGraphicAnimationAllowed; }
+};
+
+AnimatedExtractingProcessor2D::AnimatedExtractingProcessor2D(
+    const drawinglayer::geometry::ViewInformation2D& rViewInformation,
+    bool bTextAnimationAllowed,
+    bool bGraphicAnimationAllowed)
+:   drawinglayer::processor2d::BaseProcessor2D(rViewInformation),
+    maPrimitive2DSequence(),
+    mbTextAnimationAllowed(bTextAnimationAllowed),
+    mbGraphicAnimationAllowed(bGraphicAnimationAllowed)
+{
+}
 
-    AnimatedExtractingProcessor2D::~AnimatedExtractingProcessor2D()
-    {
-    }
+AnimatedExtractingProcessor2D::~AnimatedExtractingProcessor2D()
+{
+}
 
-    void AnimatedExtractingProcessor2D::processBasePrimitive2D(const drawinglayer::primitive2d::BasePrimitive2D& rCandidate)
+void AnimatedExtractingProcessor2D::processBasePrimitive2D(const drawinglayer::primitive2d::BasePrimitive2D& rCandidate)
+{
+    // known implementation, access directly
+    switch(rCandidate.getPrimitive2DID())
     {
-        // known implementation, access directly
-        switch(rCandidate.getPrimitive2DID())
+        // add and accept animated primitives directly, no need to decompose
+        case PRIMITIVE2D_ID_ANIMATEDSWITCHPRIMITIVE2D :
+        case PRIMITIVE2D_ID_ANIMATEDBLINKPRIMITIVE2D :
+        case PRIMITIVE2D_ID_ANIMATEDINTERPOLATEPRIMITIVE2D :
         {
-            // add and accept animated primitives directly, no need to decompose
-            case PRIMITIVE2D_ID_ANIMATEDSWITCHPRIMITIVE2D :
-            case PRIMITIVE2D_ID_ANIMATEDBLINKPRIMITIVE2D :
-            case PRIMITIVE2D_ID_ANIMATEDINTERPOLATEPRIMITIVE2D :
-            {
-                const drawinglayer::primitive2d::AnimatedSwitchPrimitive2D& rSwitchPrimitive = static_cast< const drawinglayer::primitive2d::AnimatedSwitchPrimitive2D& >(rCandidate);
-
-                if((rSwitchPrimitive.isTextAnimation() && isTextAnimationAllowed())
-                    || (rSwitchPrimitive.isGraphicAnimation() && isGraphicAnimationAllowed()))
-                {
-                    const drawinglayer::primitive2d::Primitive2DReference xReference(const_cast< drawinglayer::primitive2d::BasePrimitive2D* >(&rCandidate));
-                    drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(maPrimitive2DSequence, xReference);
-                }
-                break;
-            }
+            const drawinglayer::primitive2d::AnimatedSwitchPrimitive2D& rSwitchPrimitive = static_cast< const drawinglayer::primitive2d::AnimatedSwitchPrimitive2D& >(rCandidate);
 
-            // decompose animated gifs where SdrGrafPrimitive2D produces a GraphicPrimitive2D
-            // which then produces the animation infos (all when used/needed)
-            case PRIMITIVE2D_ID_SDRGRAFPRIMITIVE2D :
-            case PRIMITIVE2D_ID_GRAPHICPRIMITIVE2D :
-
-            // decompose SdrObjects with evtl. animated text
-            case PRIMITIVE2D_ID_SDRCAPTIONPRIMITIVE2D :
-            case PRIMITIVE2D_ID_SDRCONNECTORPRIMITIVE2D :
-            case PRIMITIVE2D_ID_SDRCUSTOMSHAPEPRIMITIVE2D :
-            case PRIMITIVE2D_ID_SDRELLIPSEPRIMITIVE2D :
-            case PRIMITIVE2D_ID_SDRELLIPSESEGMENTPRIMITIVE2D :
-            case PRIMITIVE2D_ID_SDRMEASUREPRIMITIVE2D :
-            case PRIMITIVE2D_ID_SDRPATHPRIMITIVE2D :
-            case PRIMITIVE2D_ID_SDRRECTANGLEPRIMITIVE2D :
-
-            // #121194# With Graphic as Bitmap FillStyle, also check
-            // for primitives filled with animated graphics
-            case PRIMITIVE2D_ID_POLYPOLYGONGRAPHICPRIMITIVE2D:
-            case PRIMITIVE2D_ID_FILLGRAPHICPRIMITIVE2D:
-            case PRIMITIVE2D_ID_TRANSFORMPRIMITIVE2D:
-
-            // decompose evtl. animated text contained in MaskPrimitive2D
-            // or group rimitives
-            case PRIMITIVE2D_ID_MASKPRIMITIVE2D :
-            case PRIMITIVE2D_ID_GROUPPRIMITIVE2D :
+            if((rSwitchPrimitive.isTextAnimation() && isTextAnimationAllowed())
+                || (rSwitchPrimitive.isGraphicAnimation() && isGraphicAnimationAllowed()))
             {
-                process(rCandidate.get2DDecomposition(getViewInformation2D()));
-                break;
+                const drawinglayer::primitive2d::Primitive2DReference xReference(const_cast< drawinglayer::primitive2d::BasePrimitive2D* >(&rCandidate));
+                drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(maPrimitive2DSequence, xReference);
             }
+            break;
+        }
 
-            default :
-            {
-                // nothing to do for the rest
-                break;
-            }
+        // decompose animated gifs where SdrGrafPrimitive2D produces a GraphicPrimitive2D
+        // which then produces the animation infos (all when used/needed)
+        case PRIMITIVE2D_ID_SDRGRAFPRIMITIVE2D :
+        case PRIMITIVE2D_ID_GRAPHICPRIMITIVE2D :
+
+        // decompose SdrObjects with evtl. animated text
+        case PRIMITIVE2D_ID_SDRCAPTIONPRIMITIVE2D :
+        case PRIMITIVE2D_ID_SDRCONNECTORPRIMITIVE2D :
+        case PRIMITIVE2D_ID_SDRCUSTOMSHAPEPRIMITIVE2D :
+        case PRIMITIVE2D_ID_SDRELLIPSEPRIMITIVE2D :
+        case PRIMITIVE2D_ID_SDRELLIPSESEGMENTPRIMITIVE2D :
+        case PRIMITIVE2D_ID_SDRMEASUREPRIMITIVE2D :
+        case PRIMITIVE2D_ID_SDRPATHPRIMITIVE2D :
+        case PRIMITIVE2D_ID_SDRRECTANGLEPRIMITIVE2D :
+
+        // #121194# With Graphic as Bitmap FillStyle, also check
+        // for primitives filled with animated graphics
+        case PRIMITIVE2D_ID_POLYPOLYGONGRAPHICPRIMITIVE2D:
+        case PRIMITIVE2D_ID_FILLGRAPHICPRIMITIVE2D:
+        case PRIMITIVE2D_ID_TRANSFORMPRIMITIVE2D:
+
+        // decompose evtl. animated text contained in MaskPrimitive2D
+        // or group rimitives
+        case PRIMITIVE2D_ID_MASKPRIMITIVE2D :
+        case PRIMITIVE2D_ID_GROUPPRIMITIVE2D :
+        {
+            process(rCandidate.get2DDecomposition(getViewInformation2D()));
+            break;
+        }
+
+        default :
+        {
+            // nothing to do for the rest
+            break;
         }
     }
+}
+
 } // end of anonymous namespace
 
+namespace sdr { namespace contact {
+
+ViewObjectContact::ViewObjectContact(ObjectContact& rObjectContact, ViewContact& rViewContact)
+:   mrObjectContact(rObjectContact),
+    mrViewContact(rViewContact),
+    maObjectRange(),
+    mxPrimitive2DSequence(),
+    mpPrimitiveAnimation(0),
+    mbLazyInvalidate(false)
+{
+    // make the ViewContact remember me
+    mrViewContact.AddViewObjectContact(*this);
 
+    // make the ObjectContact remember me
+    mrObjectContact.AddViewObjectContact(*this);
+}
 
-namespace sdr
+ViewObjectContact::~ViewObjectContact()
 {
-    namespace contact
+    // invalidate in view
+    if(!maObjectRange.isEmpty())
     {
-        ViewObjectContact::ViewObjectContact(ObjectContact& rObjectContact, ViewContact& rViewContact)
-        :   mrObjectContact(rObjectContact),
-            mrViewContact(rViewContact),
-            maObjectRange(),
-            mxPrimitive2DSequence(),
-            mpPrimitiveAnimation(0),
-            mbLazyInvalidate(false)
-        {
-            // make the ViewContact remember me
-            mrViewContact.AddViewObjectContact(*this);
-
-            // make the ObjectContact remember me
-            mrObjectContact.AddViewObjectContact(*this);
-        }
+        GetObjectContact().InvalidatePartOfView(maObjectRange);
+    }
 
-        ViewObjectContact::~ViewObjectContact()
-        {
-            // invalidate in view
-            if(!maObjectRange.isEmpty())
-            {
-                GetObjectContact().InvalidatePartOfView(maObjectRange);
-            }
+    // delete PrimitiveAnimation
+    if(mpPrimitiveAnimation)
+    {
+        delete mpPrimitiveAnimation;
+        mpPrimitiveAnimation = 0;
+    }
 
-            // delete PrimitiveAnimation
-            if(mpPrimitiveAnimation)
-            {
-                delete mpPrimitiveAnimation;
-                mpPrimitiveAnimation = 0;
-            }
+    // take care of remembered ObjectContact. Remove from
+    // OC first. The VC removal (below) CAN trigger a StopGettingViewed()
+    // which (depending of it's implementation) may destroy other OCs. This
+    // can trigger the deletion of the helper OC of a page visualising object
+    // which IS the OC of this object. Eventually StopGettingViewed() needs
+    // to get asynchron later
+    GetObjectContact().RemoveViewObjectContact(*this);
 
-            // take care of remembered ObjectContact. Remove from
-            // OC first. The VC removal (below) CAN trigger a StopGettingViewed()
-            // which (depending of it's implementation) may destroy other OCs. This
-            // can trigger the deletion of the helper OC of a page visualising object
-            // which IS the OC of this object. Eventually StopGettingViewed() needs
-            // to get asynchron later
-            GetObjectContact().RemoveViewObjectContact(*this);
+    // take care of remembered ViewContact
+    GetViewContact().RemoveViewObjectContact(*this);
+}
 
-            // take care of remembered ViewContact
-            GetViewContact().RemoveViewObjectContact(*this);
-        }
+const basegfx::B2DRange& ViewObjectContact::getObjectRange() const
+{
+    if(maObjectRange.isEmpty())
+    {
+        // if range is not computed (new or LazyInvalidate objects), force it
+        const DisplayInfo aDisplayInfo;
+        const drawinglayer::primitive2d::Primitive2DSequence xSequence(getPrimitive2DSequence(aDisplayInfo));
 
-        const basegfx::B2DRange& ViewObjectContact::getObjectRange() const
+        if(xSequence.hasElements())
         {
-            if(maObjectRange.isEmpty())
-            {
-                // if range is not computed (new or LazyInvalidate objects), force it
-                const DisplayInfo aDisplayInfo;
-                const drawinglayer::primitive2d::Primitive2DSequence xSequence(getPrimitive2DSequence(aDisplayInfo));
-
-                if(xSequence.hasElements())
-                {
-                    const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D());
-                    const_cast< ViewObjectContact* >(this)->maObjectRange =
-                        drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(xSequence, rViewInformation2D);
-                }
-            }
-
-            return maObjectRange;
+            const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D());
+            const_cast< ViewObjectContact* >(this)->maObjectRange =
+                drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(xSequence, rViewInformation2D);
         }
+    }
 
-        void ViewObjectContact::ActionChanged()
-        {
-            if(!mbLazyInvalidate)
-            {
-                // set local flag
-                mbLazyInvalidate = true;
+    return maObjectRange;
+}
 
-                // force ObjectRange
-                getObjectRange();
+void ViewObjectContact::ActionChanged()
+{
+    if(!mbLazyInvalidate)
+    {
+        // set local flag
+        mbLazyInvalidate = true;
 
-                if(!maObjectRange.isEmpty())
-                {
-                    // invalidate current valid range
-                    GetObjectContact().InvalidatePartOfView(maObjectRange);
+        // force ObjectRange
+        getObjectRange();
 
-                    // reset ObjectRange, it needs to be recalculated
-                    maObjectRange.reset();
-                }
+        if(!maObjectRange.isEmpty())
+        {
+            // invalidate current valid range
+            GetObjectContact().InvalidatePartOfView(maObjectRange);
 
-                // register at OC for lazy invalidate
-                GetObjectContact().setLazyInvalidate(*this);
-            }
+            // reset ObjectRange, it needs to be recalculated
+            maObjectRange.reset();
         }
 
-        void ViewObjectContact::triggerLazyInvalidate()
-        {
-            if(mbLazyInvalidate)
-            {
-                // reset flag
-                mbLazyInvalidate = false;
+        // register at OC for lazy invalidate
+        GetObjectContact().setLazyInvalidate(*this);
+    }
+}
+
+void ViewObjectContact::triggerLazyInvalidate()
+{
+    if(mbLazyInvalidate)
+    {
+        // reset flag
+        mbLazyInvalidate = false;
 
 #if HAVE_FEATURE_DESKTOP
-                // 3D charts need to be notified separately, they are not to be
-                // drawn by the drawinglayer
-                ViewContactOfSdrOle2Obj* pViewContact = dynamic_cast<ViewContactOfSdrOle2Obj*>(&GetViewContact());
-                if (pViewContact && pViewContact->GetOle2Obj().IsReal3DChart())
-                    ChartHelper::updateChart(pViewContact->GetOle2Obj().getXModel());
+        // 3D charts need to be notified separately, they are not to be
+        // drawn by the drawinglayer
+        ViewContactOfSdrOle2Obj* pViewContact = dynamic_cast<ViewContactOfSdrOle2Obj*>(&GetViewContact());
+        if (pViewContact && pViewContact->GetOle2Obj().IsReal3DChart())
+            ChartHelper::updateChart(pViewContact->GetOle2Obj().getXModel());
 #endif
 
-                // force ObjectRange
-                getObjectRange();
+        // force ObjectRange
+        getObjectRange();
 
-                if(!maObjectRange.isEmpty())
-                {
-                    // invalidate current valid range
-                    GetObjectContact().InvalidatePartOfView(maObjectRange);
-                }
-            }
+        if(!maObjectRange.isEmpty())
+        {
+            // invalidate current valid range
+            GetObjectContact().InvalidatePartOfView(maObjectRange);
         }
+    }
+}
 
-        // Take some action when new objects are inserted
-        void ViewObjectContact::ActionChildInserted(ViewContact& rChild)
-        {
-            // force creation of the new VOC and trigger it's refresh, so it
-            // will take part in LazyInvalidate immediately
-            rChild.GetViewObjectContact(GetObjectContact()).ActionChanged();
+// Take some action when new objects are inserted
+void ViewObjectContact::ActionChildInserted(ViewContact& rChild)
+{
+    // force creation of the new VOC and trigger it's refresh, so it
+    // will take part in LazyInvalidate immediately
+    rChild.GetViewObjectContact(GetObjectContact()).ActionChanged();
 
-            // forward action to ObjectContact
-            // const ViewObjectContact& rChildVOC = rChild.GetViewObjectContact(GetObjectContact());
-            // GetObjectContact().InvalidatePartOfView(rChildVOC.getObjectRange());
-        }
+    // forward action to ObjectContact
+    // const ViewObjectContact& rChildVOC = rChild.GetViewObjectContact(GetObjectContact());
+    // GetObjectContact().InvalidatePartOfView(rChildVOC.getObjectRange());
+}
+
+void ViewObjectContact::checkForPrimitive2DAnimations()
+{
+    // remove old one
+    if(mpPrimitiveAnimation)
+    {
+        delete mpPrimitiveAnimation;
+        mpPrimitiveAnimation = 0;
+    }
+
+    // check for animated primitives
+    if(mxPrimitive2DSequence.hasElements())
+    {
+        const bool bTextAnimationAllowed(GetObjectContact().IsTextAnimationAllowed());
+        const bool bGraphicAnimationAllowed(GetObjectContact().IsGraphicAnimationAllowed());
 
-        void ViewObjectContact::checkForPrimitive2DAnimations()
+        if(bTextAnimationAllowed || bGraphicAnimationAllowed)
         {
-            // remove old one
-            if(mpPrimitiveAnimation)
-            {
-                delete mpPrimitiveAnimation;
-                mpPrimitiveAnimation = 0;
-            }
+            AnimatedExtractingProcessor2D aAnimatedExtractor(GetObjectContact().getViewInformation2D(),
+                bTextAnimationAllowed, bGraphicAnimationAllowed);
+            aAnimatedExtractor.process(mxPrimitive2DSequence);
 
-            // check for animated primitives
-            if(mxPrimitive2DSequence.hasElements())
+            if(aAnimatedExtractor.getPrimitive2DSequence().hasElements())
             {
-                const bool bTextAnimationAllowed(GetObjectContact().IsTextAnimationAllowed());
-                const bool bGraphicAnimationAllowed(GetObjectContact().IsGraphicAnimationAllowed());
-
-                if(bTextAnimationAllowed || bGraphicAnimationAllowed)
-                {
-                    AnimatedExtractingProcessor2D aAnimatedExtractor(GetObjectContact().getViewInformation2D(),
-                        bTextAnimationAllowed, bGraphicAnimationAllowed);
-                    aAnimatedExtractor.process(mxPrimitive2DSequence);
-
-                    if(aAnimatedExtractor.getPrimitive2DSequence().hasElements())
-                    {
-                        // dervied primitiveList is animated, setup new PrimitiveAnimation
-                        mpPrimitiveAnimation =  new sdr::animation::PrimitiveAnimation(*this, aAnimatedExtractor.getPrimitive2DSequence());
-                    }
-                }
+                // dervied primitiveList is animated, setup new PrimitiveAnimation
+                mpPrimitiveAnimation =  new sdr::animation::PrimitiveAnimation(*this, aAnimatedExtractor.getPrimitive2DSequence());
             }
         }
+    }
+}
+
+drawinglayer::primitive2d::Primitive2DSequence ViewObjectContact::createPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const
+{
+    // get the view-independent Primitive from the viewContact
+    drawinglayer::primitive2d::Primitive2DSequence xRetval(GetViewContact().getViewIndependentPrimitive2DSequence());
 
-        drawinglayer::primitive2d::Primitive2DSequence ViewObjectContact::createPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const
+    if(xRetval.hasElements())
+    {
+        // handle GluePoint
+        if(!GetObjectContact().isOutputToPrinter() && GetObjectContact().AreGluePointsVisible())
         {
-            // get the view-independent Primitive from the viewContact
-            drawinglayer::primitive2d::Primitive2DSequence xRetval(GetViewContact().getViewIndependentPrimitive2DSequence());
+            const drawinglayer::primitive2d::Primitive2DSequence xGlue(GetViewContact().createGluePointPrimitive2DSequence());
 
-            if(xRetval.hasElements())
+            if(xGlue.hasElements())
             {
-                // handle GluePoint
-                if(!GetObjectContact().isOutputToPrinter() && GetObjectContact().AreGluePointsVisible())
-                {
-                    const drawinglayer::primitive2d::Primitive2DSequence xGlue(GetViewContact().createGluePointPrimitive2DSequence());
-
-                    if(xGlue.hasElements())
-                    {
-                        drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(xRetval, xGlue);
-                    }
-                }
-
-                // handle ghosted
-                if(isPrimitiveGhosted(rDisplayInfo))
-                {
-                    const basegfx::BColor aRGBWhite(1.0, 1.0, 1.0);
-                    const basegfx::BColorModifierSharedPtr aBColorModifier(
-                        new basegfx::BColorModifier_interpolate(
-                            aRGBWhite,
-                            0.5));
-                    const drawinglayer::primitive2d::Primitive2DReference xReference(
-                        new drawinglayer::primitive2d::ModifiedColorPrimitive2D(
-                            xRetval,
-                            aBColorModifier));
-
-                    xRetval = drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
-                }
+                drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(xRetval, xGlue);
             }
-
-            return xRetval;
         }
 
-        drawinglayer::primitive2d::Primitive2DSequence ViewObjectContact::getPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const
+        // handle ghosted
+        if(isPrimitiveGhosted(rDisplayInfo))
         {
-            drawinglayer::primitive2d::Primitive2DSequence xNewPrimitiveSequence;
+            const basegfx::BColor aRGBWhite(1.0, 1.0, 1.0);
+            const basegfx::BColorModifierSharedPtr aBColorModifier(
+                new basegfx::BColorModifier_interpolate(
+                    aRGBWhite,
+                    0.5));
+            const drawinglayer::primitive2d::Primitive2DReference xReference(
+                new drawinglayer::primitive2d::ModifiedColorPrimitive2D(
+                    xRetval,
+                    aBColorModifier));
+
+            xRetval = drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
+        }
+    }
 
-            // take care of redirectors and create new list
-            ViewObjectContactRedirector* pRedirector = GetObjectContact().GetViewObjectContactRedirector();
+    return xRetval;
+}
 
-            if(pRedirector)
-            {
-                xNewPrimitiveSequence = pRedirector->createRedirectedPrimitive2DSequence(*this, rDisplayInfo);
-            }
-            else
-            {
-                xNewPrimitiveSequence = createPrimitive2DSequence(rDisplayInfo);
-            }
+drawinglayer::primitive2d::Primitive2DSequence ViewObjectContact::getPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const
+{
+    drawinglayer::primitive2d::Primitive2DSequence xNewPrimitiveSequence;
 
-            // local up-to-date checks. New list different from local one?
-            if(!drawinglayer::primitive2d::arePrimitive2DSequencesEqual(mxPrimitive2DSequence, xNewPrimitiveSequence))
-            {
-                // has changed, copy content
-                const_cast< ViewObjectContact* >(this)->mxPrimitive2DSequence = xNewPrimitiveSequence;
+    // take care of redirectors and create new list
+    ViewObjectContactRedirector* pRedirector = GetObjectContact().GetViewObjectContactRedirector();
+
+    if(pRedirector)
+    {
+        xNewPrimitiveSequence = pRedirector->createRedirectedPrimitive2DSequence(*this, rDisplayInfo);
+    }
+    else
+    {
+        xNewPrimitiveSequence = createPrimitive2DSequence(rDisplayInfo);
+    }
 
-                // check for animated stuff
-                const_cast< ViewObjectContact* >(this)->checkForPrimitive2DAnimations();
+    // local up-to-date checks. New list different from local one?
+    if(!drawinglayer::primitive2d::arePrimitive2DSequencesEqual(mxPrimitive2DSequence, xNewPrimitiveSequence))
+    {
+        // has changed, copy content
+        const_cast< ViewObjectContact* >(this)->mxPrimitive2DSequence = xNewPrimitiveSequence;
 
-                // always update object range when PrimitiveSequence changes
-                const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D());
-                const_cast< ViewObjectContact* >(this)->maObjectRange =
-                    drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(mxPrimitive2DSequence, rViewInformation2D);
-            }
+        // check for animated stuff
+        const_cast< ViewObjectContact* >(this)->checkForPrimitive2DAnimations();
 
-            // return current Primitive2DSequence
-            return mxPrimitive2DSequence;
-        }
+        // always update object range when PrimitiveSequence changes
+        const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D());
+        const_cast< ViewObjectContact* >(this)->maObjectRange =
+            drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(mxPrimitive2DSequence, rViewInformation2D);
+    }
 
-        bool ViewObjectContact::isPrimitiveVisible(const DisplayInfo& /*rDisplayInfo*/) const
-        {
-            // default: always visible
-            return true;
-        }
+    // return current Primitive2DSequence
+    return mxPrimitive2DSequence;
+}
 
-        bool ViewObjectContact::isPrimitiveGhosted(const DisplayInfo& rDisplayInfo) const
-        {
-            // default: standard check
-            return (GetObjectContact().DoVisualizeEnteredGroup() && !GetObjectContact().isOutputToPrinter() && rDisplayInfo.IsGhostedDrawModeActive());
-        }
+bool ViewObjectContact::isPrimitiveVisible(const DisplayInfo& /*rDisplayInfo*/) const
+{
+    // default: always visible
+    return true;
+}
+
+bool ViewObjectContact::isPrimitiveGhosted(const DisplayInfo& rDisplayInfo) const
+{
+    // default: standard check
+    return (GetObjectContact().DoVisualizeEnteredGroup() && !GetObjectContact().isOutputToPrinter() && rDisplayInfo.IsGhostedDrawModeActive());
+}
+
+drawinglayer::primitive2d::Primitive2DSequence ViewObjectContact::getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo) const
+{
+    drawinglayer::primitive2d::Primitive2DSequence xRetval;
+
+    // check model-view visibility
+    if(isPrimitiveVisible(rDisplayInfo))
+    {
+        xRetval = getPrimitive2DSequence(rDisplayInfo);
 
-        drawinglayer::primitive2d::Primitive2DSequence ViewObjectContact::getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo) const
+        if(xRetval.hasElements())
         {
-            drawinglayer::primitive2d::Primitive2DSequence xRetval;
+            // get ranges
+            const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D());
+            const basegfx::B2DRange aObjectRange(drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(xRetval, rViewInformation2D));
+            const basegfx::B2DRange aViewRange(rViewInformation2D.getViewport());
 
-            // check model-view visibility
-            if(isPrimitiveVisible(rDisplayInfo))
+            // check geometrical visibility
+            if(!aViewRange.isEmpty() && !aViewRange.overlaps(aObjectRange))
             {
-                xRetval = getPrimitive2DSequence(rDisplayInfo);
-
-                if(xRetval.hasElements())
-                {
-                    // get ranges
-                    const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D());
-                    const basegfx::B2DRange aObjectRange(drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(xRetval, rViewInformation2D));
-                    const basegfx::B2DRange aViewRange(rViewInformation2D.getViewport());
-
-                    // check geometrical visibility
-                    if(!aViewRange.isEmpty() && !aViewRange.overlaps(aObjectRange))
-                    {
-                        // not visible, release
-                        xRetval.realloc(0);
-                    }
-                }
+                // not visible, release
+                xRetval.realloc(0);
             }
-
-            return xRetval;
         }
+    }
 
-        drawinglayer::primitive2d::Primitive2DSequence ViewObjectContact::getPrimitive2DSequenceSubHierarchy(DisplayInfo& rDisplayInfo) const
-        {
-            const sal_uInt32 nSubHierarchyCount(GetViewContact().GetObjectCount());
-            drawinglayer::primitive2d::Primitive2DSequence xSeqRetval;
+    return xRetval;
+}
 
-            for(sal_uInt32 a(0); a < nSubHierarchyCount; a++)
-            {
-                const ViewObjectContact& rCandidate(GetViewContact().GetViewContact(a).GetViewObjectContact(GetObjectContact()));
+drawinglayer::primitive2d::Primitive2DSequence ViewObjectContact::getPrimitive2DSequenceSubHierarchy(DisplayInfo& rDisplayInfo) const
+{
+    const sal_uInt32 nSubHierarchyCount(GetViewContact().GetObjectCount());
+    drawinglayer::primitive2d::Primitive2DSequence xSeqRetval;
 
-                drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(xSeqRetval, rCandidate.getPrimitive2DSequenceHierarchy(rDisplayInfo));
-            }
+    for(sal_uInt32 a(0); a < nSubHierarchyCount; a++)
+    {
+        const ViewObjectContact& rCandidate(GetViewContact().GetViewContact(a).GetViewObjectContact(GetObjectContact()));
 
-            return xSeqRetval;
-        }
-    } // end of namespace contact
-} // end of namespace sdr
+        drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(xSeqRetval, rCandidate.getPrimitive2DSequenceHierarchy(rDisplayInfo));
+    }
+
+    return xSeqRetval;
+}
+
+}}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list