[Libreoffice-commits] core.git: drawinglayer/source include/drawinglayer

Noel Grandin noel at peralex.com
Mon Jun 27 05:21:08 UTC 2016


 drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx  |   65 ++++--------
 drawinglayer/source/processor2d/hittestprocessor2d.cxx      |    6 -
 drawinglayer/source/processor3d/cutfindprocessor3d.cxx      |   20 ---
 include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx |    5 
 include/drawinglayer/processor2d/hittestprocessor2d.hxx     |    9 -
 include/drawinglayer/processor3d/cutfindprocessor3d.hxx     |    6 -
 6 files changed, 29 insertions(+), 82 deletions(-)

New commits:
commit db39c653e5de92bc371040a3f81cc5c4ea6dedf3
Author: Noel Grandin <noel at peralex.com>
Date:   Sat Jun 25 14:55:09 2016 +0200

    loplugin:singlevalfields in drawinglayer
    
    Change-Id: I19f50b0afa624391bd0d8ada7afca822298e10cc
    Reviewed-on: https://gerrit.libreoffice.org/26655
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noelgrandin at gmail.com>

diff --git a/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx b/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx
index 3c2db2f..5cb7232 100644
--- a/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx
@@ -66,48 +66,37 @@ namespace drawinglayer
                     // create a mapping from content to object.
                     basegfx::B2DHomMatrix aPageTrans;
 
-                    if(getKeepAspectRatio())
+                    // #i101075# when keeping the aspect ratio is wanted, it is necessary to calculate
+                    // an equidistant scaling in X and Y and a corresponding translation to
+                    // center the output. Calculate needed scale factors
+                    const double fScaleX(aScale.getX() / getContentWidth());
+                    const double fScaleY(aScale.getY() / getContentHeight());
+
+                    // to keep the aspect, use the smaller scale and adapt missing size by translation
+                    if(fScaleX < fScaleY)
                     {
-                        // #i101075# when keeping the aspect ratio is wanted, it is necessary to calculate
-                        // an equidistant scaling in X and Y and a corresponding translation to
-                        // center the output. Calculate needed scale factors
-                        const double fScaleX(aScale.getX() / getContentWidth());
-                        const double fScaleY(aScale.getY() / getContentHeight());
-
-                        // to keep the aspect, use the smaller scale and adapt missing size by translation
-                        if(fScaleX < fScaleY)
-                        {
-                            // height needs to be adapted
-                            const double fNeededHeight(aScale.getY() / fScaleX);
-                            const double fSpaceToAdd(fNeededHeight - getContentHeight());
-
-                            aPageTrans.translate(0.0, fSpaceToAdd * 0.5);
-                            aPageTrans.scale(fScaleX, aScale.getY() / fNeededHeight);
-                        }
-                        else
-                        {
-                            // width needs to be adapted
-                            const double fNeededWidth(aScale.getX() / fScaleY);
-                            const double fSpaceToAdd(fNeededWidth - getContentWidth());
-
-                            aPageTrans.translate(fSpaceToAdd * 0.5, 0.0);
-                            aPageTrans.scale(aScale.getX() / fNeededWidth, fScaleY);
-                        }
-
-                        // add the missing object transformation aspects
-                        const basegfx::B2DHomMatrix aCombined(basegfx::tools::createShearXRotateTranslateB2DHomMatrix(
-                            fShearX, fRotate, aTranslate.getX(), aTranslate.getY()));
-                        aPageTrans = aCombined * aPageTrans;
+                        // height needs to be adapted
+                        const double fNeededHeight(aScale.getY() / fScaleX);
+                        const double fSpaceToAdd(fNeededHeight - getContentHeight());
+
+                        aPageTrans.translate(0.0, fSpaceToAdd * 0.5);
+                        aPageTrans.scale(fScaleX, aScale.getY() / fNeededHeight);
                     }
                     else
                     {
-                        // completely scale to PageObject size. Scale to unit size.
-                        aPageTrans.scale(1.0/ getContentWidth(), 1.0 / getContentHeight());
+                        // width needs to be adapted
+                        const double fNeededWidth(aScale.getX() / fScaleY);
+                        const double fSpaceToAdd(fNeededWidth - getContentWidth());
 
-                        // apply object matrix
-                        aPageTrans *= getTransform();
+                        aPageTrans.translate(fSpaceToAdd * 0.5, 0.0);
+                        aPageTrans.scale(aScale.getX() / fNeededWidth, fScaleY);
                     }
 
+                    // add the missing object transformation aspects
+                    const basegfx::B2DHomMatrix aCombined(basegfx::tools::createShearXRotateTranslateB2DHomMatrix(
+                            fShearX, fRotate, aTranslate.getX(), aTranslate.getY()));
+                    aPageTrans = aCombined * aPageTrans;
+
                     // embed in necessary transformation to map from SdrPage to SdrPageObject
                     const Primitive2DReference xReferenceB(new TransformPrimitive2D(aPageTrans, aContent));
                     xRetval = Primitive2DContainer { xReferenceB };
@@ -128,8 +117,7 @@ namespace drawinglayer
             maPageContent(rPageContent),
             maTransform(rTransform),
             mfContentWidth(fContentWidth),
-            mfContentHeight(fContentHeight),
-            mbKeepAspectRatio(true)
+            mfContentHeight(fContentHeight)
         {
         }
 
@@ -143,8 +131,7 @@ namespace drawinglayer
                     && getPageContent() == rCompare.getPageContent()
                     && getTransform() == rCompare.getTransform()
                     && getContentWidth() == rCompare.getContentWidth()
-                    && getContentHeight() == rCompare.getContentHeight()
-                    && getKeepAspectRatio() == rCompare.getKeepAspectRatio());
+                    && getContentHeight() == rCompare.getContentHeight());
             }
 
             return false;
diff --git a/drawinglayer/source/processor2d/hittestprocessor2d.cxx b/drawinglayer/source/processor2d/hittestprocessor2d.cxx
index 4853a28..fc20f0a 100644
--- a/drawinglayer/source/processor2d/hittestprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/hittestprocessor2d.cxx
@@ -47,7 +47,6 @@ namespace drawinglayer
             mfDiscreteHitTolerance(0.0),
             mbHit(false),
             mbHitToleranceUsed(false),
-            mbUseInvisiblePrimitiveContent(true),
             mbHitTextOnly(bHitTextOnly)
         {
             // init hit tolerance
@@ -506,10 +505,7 @@ namespace drawinglayer
 
                     if(!rChildren.empty())
                     {
-                        if(getUseInvisiblePrimitiveContent())
-                        {
-                            process(rChildren);
-                        }
+                        process(rChildren);
                     }
 
                     break;
diff --git a/drawinglayer/source/processor3d/cutfindprocessor3d.cxx b/drawinglayer/source/processor3d/cutfindprocessor3d.cxx
index b54f6de..2321437 100644
--- a/drawinglayer/source/processor3d/cutfindprocessor3d.cxx
+++ b/drawinglayer/source/processor3d/cutfindprocessor3d.cxx
@@ -41,8 +41,7 @@ namespace drawinglayer
             maBack(rBack),
             maResult(),
             maCombinedTransform(),
-            mbAnyHit(bAnyHit),
-            mbUseInvisiblePrimitiveContent(true)
+            mbAnyHit(bAnyHit)
         {
         }
 
@@ -123,10 +122,7 @@ namespace drawinglayer
 
                     if(!rChildren.empty())
                     {
-                        if(getUseInvisiblePrimitiveContent())
-                        {
                             process(rChildren);
-                        }
                     }
 
                     break;
@@ -138,19 +134,7 @@ namespace drawinglayer
 
                     if(rChildren.size())
                     {
-                        if(1.0 <= rPrimitive.getTransparence())
-                        {
-                            // not visible, but use for HitTest
-                            if(getUseInvisiblePrimitiveContent())
-                            {
-                                   process(rChildren);
-                            }
-                        }
-                        else if(rPrimitive.getTransparence() >= 0.0 && rPrimitive.getTransparence() < 1.0)
-                        {
-                            // visible; use content
-                            process(rChildren);
-                        }
+                        process(rChildren);
                     }
 
                     break;
diff --git a/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx b/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx
index 43c092d..f4fe7c2 100644
--- a/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx
@@ -58,10 +58,6 @@ namespace drawinglayer
             double                                      mfContentWidth;
             double                                      mfContentHeight;
 
-            /// bitfield
-            /// flag to allow keeping the aspect ratio
-            bool                                        mbKeepAspectRatio : 1;
-
         protected:
             /// local decomposition. Implementation will just return children
             virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override;
@@ -81,7 +77,6 @@ namespace drawinglayer
             const basegfx::B2DHomMatrix& getTransform() const { return maTransform; }
             double getContentWidth() const { return mfContentWidth; }
             double getContentHeight() const { return mfContentHeight; }
-            bool getKeepAspectRatio() const { return mbKeepAspectRatio; }
 
             /// compare operator
             virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
diff --git a/include/drawinglayer/processor2d/hittestprocessor2d.hxx b/include/drawinglayer/processor2d/hittestprocessor2d.hxx
index 9f78f44..d7d3eba 100644
--- a/include/drawinglayer/processor2d/hittestprocessor2d.hxx
+++ b/include/drawinglayer/processor2d/hittestprocessor2d.hxx
@@ -50,14 +50,6 @@ namespace drawinglayer
             bool                        mbHit : 1;
             bool                        mbHitToleranceUsed : 1;
 
-            /*  this flag decides if primitives which are embedded to an
-                UnifiedTransparencePrimitive2D and are invisible will be taken into account for
-                HitTesting or not. Those primitives are created for objects which are else
-                completely invisible and normally their content exists of hairline
-                primitives describing the object's contour
-             */
-            bool                        mbUseInvisiblePrimitiveContent : 1;
-
             /// flag to concentrate on text hits only
             bool                        mbHitTextOnly : 1;
 
@@ -83,7 +75,6 @@ namespace drawinglayer
             const basegfx::B2DPoint& getDiscreteHitPosition() const { return maDiscreteHitPosition; }
             double getDiscreteHitTolerance() const { return mfDiscreteHitTolerance; }
             bool getHit() const { return mbHit; }
-            bool getUseInvisiblePrimitiveContent() const { return mbUseInvisiblePrimitiveContent;}
             bool getHitTextOnly() const { return mbHitTextOnly; }
         };
     } // end of namespace processor2d
diff --git a/include/drawinglayer/processor3d/cutfindprocessor3d.hxx b/include/drawinglayer/processor3d/cutfindprocessor3d.hxx
index e70f552..c5e93b6 100644
--- a/include/drawinglayer/processor3d/cutfindprocessor3d.hxx
+++ b/include/drawinglayer/processor3d/cutfindprocessor3d.hxx
@@ -53,11 +53,6 @@ namespace drawinglayer
             /// bitfield
             bool                                    mbAnyHit : 1;
 
-            /*  this flag decides if primitives which are invisible will be taken into account for
-                HitTesting or not.
-             */
-            bool                                    mbUseInvisiblePrimitiveContent : 1;
-
             /*  as tooling, the process() implementation takes over API handling and calls this
                 virtual render method when the primitive implementation is BasePrimitive3D-based.
              */
@@ -72,7 +67,6 @@ namespace drawinglayer
             /// data read access
             const ::std::vector< basegfx::B3DPoint >& getCutPoints() const { return maResult; }
             bool getAnyHit() const { return mbAnyHit; }
-            bool getUseInvisiblePrimitiveContent() const { return mbUseInvisiblePrimitiveContent;}
         };
     } // end of namespace processor3d
 } // end of namespace drawinglayer


More information about the Libreoffice-commits mailing list