summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2014-03-05 09:33:59 +0200
committerNoel Grandin <noel@peralex.com>2014-03-05 09:34:36 +0200
commit1f6cce7e52c5007457d1a39263efe54ee87e9fab (patch)
tree21b5cf13e0e08a7d6f81694f4c06896d2d5963c8
parent8c443f5c03d5202a7ef0c2738a21c74c36ef06a2 (diff)
Revert "remove unused code in basegfx"
Some of this code is used by Windows. This reverts commit b96724560f119b1b9ab8b5e1ee1759fd9b2db203.
-rw-r--r--basegfx/source/polygon/b2dpolygontools.cxx43
-rw-r--r--basegfx/source/polygon/b2dpolypolygontools.cxx18
-rw-r--r--basegfx/source/polygon/b3dpolypolygontools.cxx7
-rw-r--r--include/basegfx/polygon/b2dpolypolygontools.hxx5
-rw-r--r--unusedcode.easy3
5 files changed, 76 insertions, 0 deletions
diff --git a/basegfx/source/polygon/b2dpolygontools.cxx b/basegfx/source/polygon/b2dpolygontools.cxx
index dc511b957122..5a3dfcd4c076 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 91fb9bde477b..d7b2b5fb236d 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 45bcddc0c753..33c0c67f0768 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 c21489ae2053..e92fe5a2f01a 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 28cf374a75f1..d6e4ae4bb4b1 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