[Libreoffice-commits] core.git: basegfx/source include/basegfx unusedcode.easy

Noel Grandin noel at peralex.com
Tue Mar 4 23:35:02 PST 2014


 basegfx/source/polygon/b2dpolygontools.cxx      |   43 ++++++++++++++++++++++++
 basegfx/source/polygon/b2dpolypolygontools.cxx  |   18 ++++++++++
 basegfx/source/polygon/b3dpolypolygontools.cxx  |    7 +++
 include/basegfx/polygon/b2dpolypolygontools.hxx |    5 ++
 unusedcode.easy                                 |    3 +
 5 files changed, 76 insertions(+)

New commits:
commit 1f6cce7e52c5007457d1a39263efe54ee87e9fab
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Mar 5 09:33:59 2014 +0200

    Revert "remove unused code in basegfx"
    
    Some of this code is used by Windows.
    
    This reverts commit b96724560f119b1b9ab8b5e1ee1759fd9b2db203.

diff --git a/basegfx/source/polygon/b2dpolygontools.cxx b/basegfx/source/polygon/b2dpolygontools.cxx
index dc511b9..5a3dfcd 100644
--- a/basegfx/source/polygon/b2dpolygontools.cxx
+++ b/basegfx/source/polygon/b2dpolygontools.cxx
@@ -3134,6 +3134,49 @@ namespace basegfx
         }
 
 
+        // comparators with tolerance for 2D Polygons
+
+        bool equal(const B2DPolygon& rCandidateA, const B2DPolygon& rCandidateB, const double& rfSmallValue)
+        {
+            const sal_uInt32 nPointCount(rCandidateA.count());
+
+            if(nPointCount != rCandidateB.count())
+                return false;
+
+            const bool bClosed(rCandidateA.isClosed());
+
+            if(bClosed != rCandidateB.isClosed())
+                return false;
+
+            const bool bAreControlPointsUsed(rCandidateA.areControlPointsUsed());
+
+            if(bAreControlPointsUsed != rCandidateB.areControlPointsUsed())
+                return false;
+
+            for(sal_uInt32 a(0); a < nPointCount; a++)
+            {
+                const B2DPoint aPoint(rCandidateA.getB2DPoint(a));
+
+                if(!aPoint.equal(rCandidateB.getB2DPoint(a), rfSmallValue))
+                    return false;
+
+                if(bAreControlPointsUsed)
+                {
+                    const basegfx::B2DPoint aPrev(rCandidateA.getPrevControlPoint(a));
+
+                    if(!aPrev.equal(rCandidateB.getPrevControlPoint(a), rfSmallValue))
+                        return false;
+
+                    const basegfx::B2DPoint aNext(rCandidateA.getNextControlPoint(a));
+
+                    if(!aNext.equal(rCandidateB.getNextControlPoint(a), rfSmallValue))
+                        return false;
+                }
+            }
+
+            return true;
+        }
+
         // snap points of horizontal or vertical edges to discrete values
         B2DPolygon snapPointsOfHorizontalOrVerticalEdges(const B2DPolygon& rCandidate)
         {
diff --git a/basegfx/source/polygon/b2dpolypolygontools.cxx b/basegfx/source/polygon/b2dpolypolygontools.cxx
index 91fb9bd..d7b2b5f 100644
--- a/basegfx/source/polygon/b2dpolypolygontools.cxx
+++ b/basegfx/source/polygon/b2dpolypolygontools.cxx
@@ -497,6 +497,24 @@ namespace basegfx
             return aRetval;
         }
 
+        bool containsOnlyHorizontalAndVerticalEdges(const B2DPolyPolygon& rCandidate)
+        {
+            if(rCandidate.areControlPointsUsed())
+            {
+                return false;
+            }
+
+            for(sal_uInt32 a(0); a < rCandidate.count(); a++)
+            {
+                if(!containsOnlyHorizontalAndVerticalEdges(rCandidate.getB2DPolygon(a)))
+                {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+
         B2DPolyPolygon createSevenSegmentPolyPolygon(sal_Char nNumber, bool bLitSegments)
         {
             // config here
diff --git a/basegfx/source/polygon/b3dpolypolygontools.cxx b/basegfx/source/polygon/b3dpolypolygontools.cxx
index 45bcddc..33c0c67 100644
--- a/basegfx/source/polygon/b3dpolypolygontools.cxx
+++ b/basegfx/source/polygon/b3dpolypolygontools.cxx
@@ -505,6 +505,13 @@ namespace basegfx
             return true;
         }
 
+        bool equal(const B3DPolyPolygon& rCandidateA, const B3DPolyPolygon& rCandidateB)
+        {
+            const double fSmallValue(fTools::getSmallValue());
+
+            return equal(rCandidateA, rCandidateB, fSmallValue);
+        }
+
 /// converters for com::sun::star::drawing::PolyPolygonShape3D
         B3DPolyPolygon UnoPolyPolygonShape3DToB3DPolyPolygon(
             const com::sun::star::drawing::PolyPolygonShape3D& rPolyPolygonShape3DSource,
diff --git a/include/basegfx/polygon/b2dpolypolygontools.hxx b/include/basegfx/polygon/b2dpolypolygontools.hxx
index c21489a..e92fe5a 100644
--- a/include/basegfx/polygon/b2dpolypolygontools.hxx
+++ b/include/basegfx/polygon/b2dpolypolygontools.hxx
@@ -287,6 +287,11 @@ namespace basegfx
         */
         BASEGFX_DLLPUBLIC B2DPolyPolygon snapPointsOfHorizontalOrVerticalEdges(const B2DPolyPolygon& rCandidate);
 
+        /** returns true if the Polygon only contains horizontal or vertical edges
+            so that it could be represented by RegionBands
+        */
+        BASEGFX_DLLPUBLIC bool containsOnlyHorizontalAndVerticalEdges(const B2DPolyPolygon& rCandidate);
+
         /// converters for com::sun::star::drawing::PointSequence
         BASEGFX_DLLPUBLIC B2DPolyPolygon UnoPointSequenceSequenceToB2DPolyPolygon(
             const com::sun::star::drawing::PointSequenceSequence& rPointSequenceSequenceSource,
diff --git a/unusedcode.easy b/unusedcode.easy
index 28cf374..d6e4ae4 100644
--- a/unusedcode.easy
+++ b/unusedcode.easy
@@ -163,6 +163,9 @@ apitest::XText::testInsertRemoveTextContent()
 apitest::XTextContent::testAttach()
 apitest::XTextContent::testGetAnchor()
 apitest::XTextField::testGetPresentation()
+basegfx::tools::containsOnlyHorizontalAndVerticalEdges(basegfx::B2DPolyPolygon const&)
+basegfx::tools::equal(basegfx::B2DPolygon const&, basegfx::B2DPolygon const&, double const&)
+basegfx::tools::equal(basegfx::B3DPolyPolygon const&, basegfx::B3DPolyPolygon const&)
 canvas::createSurfaceProxyManager(boost::shared_ptr<canvas::IRenderModule> const&)
 comphelper::detail::ConfigurationWrapper::getGroupReadWrite(boost::shared_ptr<comphelper::ConfigurationChanges> const&, rtl::OUString const&) const
 comphelper::detail::ConfigurationWrapper::getLocalizedPropertyValue(rtl::OUString const&) const


More information about the Libreoffice-commits mailing list