[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