diff options
Diffstat (limited to 'basegfx/inc')
-rw-r--r-- | basegfx/inc/basegfx/curve/b2dcubicbezier.hxx | 34 | ||||
-rw-r--r-- | basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx | 28 | ||||
-rw-r--r-- | basegfx/inc/basegfx/point/b2dhompoint.hxx | 6 | ||||
-rw-r--r-- | basegfx/inc/basegfx/point/b2dpoint.hxx | 14 | ||||
-rw-r--r-- | basegfx/inc/basegfx/point/b3dhompoint.hxx | 6 | ||||
-rw-r--r-- | basegfx/inc/basegfx/point/b3dpoint.hxx | 12 | ||||
-rw-r--r-- | basegfx/inc/basegfx/polygon/b2dpolygon.hxx | 31 | ||||
-rw-r--r-- | basegfx/inc/basegfx/polygon/b2dpolygontools.hxx | 62 | ||||
-rw-r--r-- | basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx | 12 | ||||
-rw-r--r-- | basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx | 21 | ||||
-rw-r--r-- | basegfx/inc/basegfx/range/b1drange.hxx | 9 | ||||
-rw-r--r-- | basegfx/inc/basegfx/range/b2drange.hxx | 12 | ||||
-rw-r--r-- | basegfx/inc/basegfx/range/b3drange.hxx | 13 | ||||
-rw-r--r-- | basegfx/inc/basegfx/vector/b2dvector.hxx | 10 | ||||
-rw-r--r-- | basegfx/inc/basegfx/vector/b3dvector.hxx | 12 |
15 files changed, 181 insertions, 101 deletions
diff --git a/basegfx/inc/basegfx/curve/b2dcubicbezier.hxx b/basegfx/inc/basegfx/curve/b2dcubicbezier.hxx index 66f70223a14f..9761367bdd1b 100644 --- a/basegfx/inc/basegfx/curve/b2dcubicbezier.hxx +++ b/basegfx/inc/basegfx/curve/b2dcubicbezier.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2dcubicbezier.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:35 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -74,17 +74,17 @@ namespace basegfx { class B2DCubicBezier { - point::B2DPoint maStartPoint; - point::B2DPoint maEndPoint; - point::B2DPoint maControlPointA; - point::B2DPoint maControlPointB; + ::basegfx::point::B2DPoint maStartPoint; + ::basegfx::point::B2DPoint maEndPoint; + ::basegfx::point::B2DPoint maControlPointA; + ::basegfx::point::B2DPoint maControlPointB; public: B2DCubicBezier(); B2DCubicBezier(const B2DCubicBezier& rBezier); - B2DCubicBezier(const point::B2DPoint& rStart, const point::B2DPoint& rEnd); - B2DCubicBezier(const point::B2DPoint& rStart, const point::B2DPoint& rControlPointA, - const point::B2DPoint& rControlPointB, const point::B2DPoint& rEnd); + B2DCubicBezier(const ::basegfx::point::B2DPoint& rStart, const ::basegfx::point::B2DPoint& rEnd); + B2DCubicBezier(const ::basegfx::point::B2DPoint& rStart, const ::basegfx::point::B2DPoint& rControlPointA, + const ::basegfx::point::B2DPoint& rControlPointB, const ::basegfx::point::B2DPoint& rEnd); ~B2DCubicBezier(); // assignment operator @@ -101,17 +101,17 @@ namespace basegfx void testAndSolveTrivialBezier(); // data interface - point::B2DPoint getStartPoint() const { return maStartPoint; } - void setStartPoint(const point::B2DPoint& rValue) { maStartPoint = rValue; } + ::basegfx::point::B2DPoint getStartPoint() const { return maStartPoint; } + void setStartPoint(const ::basegfx::point::B2DPoint& rValue) { maStartPoint = rValue; } - point::B2DPoint getEndPoint() const { return maEndPoint; } - void setEndPoint(const point::B2DPoint& rValue) { maEndPoint = rValue; } + ::basegfx::point::B2DPoint getEndPoint() const { return maEndPoint; } + void setEndPoint(const ::basegfx::point::B2DPoint& rValue) { maEndPoint = rValue; } - point::B2DPoint getControlPointA() const { return maControlPointA; } - void setControlPointA(const point::B2DPoint& rValue) { maControlPointA = rValue; } + ::basegfx::point::B2DPoint getControlPointA() const { return maControlPointA; } + void setControlPointA(const ::basegfx::point::B2DPoint& rValue) { maControlPointA = rValue; } - point::B2DPoint getControlPointB() const { return maControlPointB; } - void setControlPointB(const point::B2DPoint& rValue) { maControlPointB = rValue; } + ::basegfx::point::B2DPoint getControlPointB() const { return maControlPointB; } + void setControlPointB(const ::basegfx::point::B2DPoint& rValue) { maControlPointB = rValue; } }; } // end of namespace curve } // end of namespace basegfx diff --git a/basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx b/basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx index 72c4df358c74..95f7eeda845a 100644 --- a/basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx +++ b/basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2dquadraticbezier.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:35 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -74,16 +74,16 @@ namespace basegfx { class B2DQuadraticBezier { - point::B2DPoint maStartPoint; - point::B2DPoint maEndPoint; - point::B2DPoint maControlPoint; + ::basegfx::point::B2DPoint maStartPoint; + ::basegfx::point::B2DPoint maEndPoint; + ::basegfx::point::B2DPoint maControlPoint; public: B2DQuadraticBezier(); B2DQuadraticBezier(const B2DQuadraticBezier& rBezier); - B2DQuadraticBezier(const point::B2DPoint& rStart, const point::B2DPoint& rEnd); - B2DQuadraticBezier(const point::B2DPoint& rStart, - const point::B2DPoint& rControlPoint, const point::B2DPoint& rEnd); + B2DQuadraticBezier(const ::basegfx::point::B2DPoint& rStart, const ::basegfx::point::B2DPoint& rEnd); + B2DQuadraticBezier(const ::basegfx::point::B2DPoint& rStart, + const ::basegfx::point::B2DPoint& rControlPoint, const ::basegfx::point::B2DPoint& rEnd); ~B2DQuadraticBezier(); // assignment operator @@ -97,14 +97,14 @@ namespace basegfx sal_Bool isBezier() const; // data interface - point::B2DPoint getStartPoint() const { return maStartPoint; } - void setStartPoint(const point::B2DPoint& rValue) { maStartPoint = rValue; } + ::basegfx::point::B2DPoint getStartPoint() const { return maStartPoint; } + void setStartPoint(const ::basegfx::point::B2DPoint& rValue) { maStartPoint = rValue; } - point::B2DPoint getEndPoint() const { return maEndPoint; } - void setEndPoint(const point::B2DPoint& rValue) { maEndPoint = rValue; } + ::basegfx::point::B2DPoint getEndPoint() const { return maEndPoint; } + void setEndPoint(const ::basegfx::point::B2DPoint& rValue) { maEndPoint = rValue; } - point::B2DPoint getControlPoint() const { return maControlPoint; } - void setControlPoint(const point::B2DPoint& rValue) { maControlPoint = rValue; } + ::basegfx::point::B2DPoint getControlPoint() const { return maControlPoint; } + void setControlPoint(const ::basegfx::point::B2DPoint& rValue) { maControlPoint = rValue; } }; } // end of namespace curve } // end of namespace basegfx diff --git a/basegfx/inc/basegfx/point/b2dhompoint.hxx b/basegfx/inc/basegfx/point/b2dhompoint.hxx index 5407b2653029..3b145bf4e444 100644 --- a/basegfx/inc/basegfx/point/b2dhompoint.hxx +++ b/basegfx/inc/basegfx/point/b2dhompoint.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2dhompoint.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:38 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -87,7 +87,7 @@ namespace basegfx { protected: /// This member contains the coordinate part of the point - tuple::B2DTuple maTuple; + ::basegfx::tuple::B2DTuple maTuple; /// This Member holds the homogenous part of the point double mfW; diff --git a/basegfx/inc/basegfx/point/b2dpoint.hxx b/basegfx/inc/basegfx/point/b2dpoint.hxx index 723e734abce9..297bada3ba56 100644 --- a/basegfx/inc/basegfx/point/b2dpoint.hxx +++ b/basegfx/inc/basegfx/point/b2dpoint.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2dpoint.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: aw $ $Date: 2003-10-31 10:12:49 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -84,7 +84,7 @@ namespace basegfx @see B2DTuple */ - class B2DPoint : public tuple::B2DTuple + class B2DPoint : public ::basegfx::tuple::B2DTuple { public: /** Create a 2D Point @@ -123,7 +123,7 @@ namespace basegfx /** constructor with tuple to allow copy-constructing from B2DTuple-based classes */ - B2DPoint(const B2DTuple& rTuple) + B2DPoint(const ::basegfx::tuple::B2DTuple& rTuple) : B2DTuple(rTuple) {} @@ -133,18 +133,18 @@ namespace basegfx /** assignment operator to allow assigning the results of B2DTuple calculations */ - B2DPoint& operator=( const B2DTuple& rPoint ); + B2DPoint& operator=( const ::basegfx::tuple::B2DTuple& rPoint ); /** Transform point by given transformation matrix. The translational components of the matrix are, in contrast to B2DVector, applied. */ - B2DPoint& operator*=( const matrix::B2DHomMatrix& rMat ); + B2DPoint& operator*=( const ::basegfx::matrix::B2DHomMatrix& rMat ); static const B2DPoint& getEmptyPoint() { - return (const B2DPoint&) tuple::B2DTuple::getEmptyTuple(); + return (const B2DPoint&) ::basegfx::tuple::B2DTuple::getEmptyTuple(); } }; } // end of namespace point diff --git a/basegfx/inc/basegfx/point/b3dhompoint.hxx b/basegfx/inc/basegfx/point/b3dhompoint.hxx index dc470d1c7ebd..d661d2f500dc 100644 --- a/basegfx/inc/basegfx/point/b3dhompoint.hxx +++ b/basegfx/inc/basegfx/point/b3dhompoint.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b3dhompoint.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:38 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:24 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -87,7 +87,7 @@ namespace basegfx { protected: /// This member contains the coordinate part of the point - tuple::B3DTuple maTuple; + ::basegfx::tuple::B3DTuple maTuple; /// This Member holds the homogenous part of the point double mfW; diff --git a/basegfx/inc/basegfx/point/b3dpoint.hxx b/basegfx/inc/basegfx/point/b3dpoint.hxx index d142b0bfe726..65047e6c26cf 100644 --- a/basegfx/inc/basegfx/point/b3dpoint.hxx +++ b/basegfx/inc/basegfx/point/b3dpoint.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b3dpoint.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: aw $ $Date: 2003-10-31 10:12:50 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:24 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -78,7 +78,7 @@ namespace basegfx @see B3DTuple */ - class B3DPoint : public tuple::B3DTuple + class B3DPoint : public ::basegfx::tuple::B3DTuple { public: /** Create a 3D Point @@ -121,7 +121,7 @@ namespace basegfx /** constructor with tuple to allow copy-constructing from B3DTuple-based classes */ - B3DPoint(const B3DTuple& rTuple) + B3DPoint(const ::basegfx::tuple::B3DTuple& rTuple) : B3DTuple(rTuple) {} @@ -131,7 +131,7 @@ namespace basegfx /** assignment operator to allow assigning the results of B3DTuple calculations */ - B3DPoint& operator=( const B3DTuple& rVec ) + B3DPoint& operator=( const ::basegfx::tuple::B3DTuple& rVec ) { mfX = rVec.getX(); mfY = rVec.getY(); @@ -141,7 +141,7 @@ namespace basegfx static const B3DPoint& getEmptyPoint() { - return (const B3DPoint&) tuple::B3DTuple::getEmptyTuple(); + return (const B3DPoint&) ::basegfx::tuple::B3DTuple::getEmptyTuple(); } }; } // end of namespace point diff --git a/basegfx/inc/basegfx/polygon/b2dpolygon.hxx b/basegfx/inc/basegfx/polygon/b2dpolygon.hxx index 60d1219d431a..40a45c800a4f 100644 --- a/basegfx/inc/basegfx/polygon/b2dpolygon.hxx +++ b/basegfx/inc/basegfx/polygon/b2dpolygon.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2dpolygon.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:39 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:24 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -81,6 +81,11 @@ namespace basegfx { class B2DPoint; } // end of namespace point + + namespace vector + { + class B2DVector; + } // end of namespace vector } // end of namespace basegfx ////////////////////////////////////////////////////////////////////////////// @@ -116,18 +121,18 @@ namespace basegfx sal_uInt32 count() const; // Coordinate interface - point::B2DPoint getB2DPoint(sal_uInt32 nIndex) const; - void setB2DPoint(sal_uInt32 nIndex, const point::B2DPoint& rValue); + ::basegfx::point::B2DPoint getB2DPoint(sal_uInt32 nIndex) const; + void setB2DPoint(sal_uInt32 nIndex, const ::basegfx::point::B2DPoint& rValue); // Coordinate insert/append - void insert(sal_uInt32 nIndex, const point::B2DPoint& rPoint, sal_uInt32 nCount = 1); - void append(const point::B2DPoint& rPoint, sal_uInt32 nCount = 1); - - // ControlPoint interface - point::B2DPoint getControlPointA(sal_uInt32 nIndex) const; - void setControlPointA(sal_uInt32 nIndex, const point::B2DPoint& rValue); - point::B2DPoint getControlPointB(sal_uInt32 nIndex) const; - void setControlPointB(sal_uInt32 nIndex, const point::B2DPoint& rValue); + void insert(sal_uInt32 nIndex, const ::basegfx::point::B2DPoint& rPoint, sal_uInt32 nCount = 1); + void append(const ::basegfx::point::B2DPoint& rPoint, sal_uInt32 nCount = 1); + + // ControlVector interface + ::basegfx::vector::B2DVector getControlVectorA(sal_uInt32 nIndex) const; + void setControlVectorA(sal_uInt32 nIndex, const ::basegfx::vector::B2DVector& rValue); + ::basegfx::vector::B2DVector getControlVectorB(sal_uInt32 nIndex) const; + void setControlVectorB(sal_uInt32 nIndex, const ::basegfx::vector::B2DVector& rValue); sal_Bool areControlPointsUsed() const; // insert/append other 2D polygons @@ -154,7 +159,7 @@ namespace basegfx void removeDoublePoints(); // isInside tests for B2dPoint and other B2dPolygon. On border is not inside. - sal_Bool isInside(const point::B2DPoint& rPoint); + sal_Bool isInside(const ::basegfx::point::B2DPoint& rPoint); sal_Bool isInside(const B2DPolygon& rPolygon); }; } // end of namespace polygon diff --git a/basegfx/inc/basegfx/polygon/b2dpolygontools.hxx b/basegfx/inc/basegfx/polygon/b2dpolygontools.hxx index f3a7601f0f78..740d82060283 100644 --- a/basegfx/inc/basegfx/polygon/b2dpolygontools.hxx +++ b/basegfx/inc/basegfx/polygon/b2dpolygontools.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2dpolygontools.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:40 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:24 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -105,17 +105,17 @@ namespace basegfx void checkClosed(polygon::B2DPolygon& rCandidate); // Get index of outmost point (e.g. biggest X and biggest Y) - sal_uInt32 getIndexOfOutmostPoint(const polygon::B2DPolygon& rCandidate); + sal_uInt32 getIndexOfOutmostPoint(const ::basegfx::polygon::B2DPolygon& rCandidate); // Get successor and predecessor indices. Returning the same index means there // is none. Same for successor. - sal_uInt32 getIndexOfPredecessor(sal_uInt32 nIndex, const polygon::B2DPolygon& rCandidate); - sal_uInt32 getIndexOfSuccessor(sal_uInt32 nIndex, const polygon::B2DPolygon& rCandidate); + sal_uInt32 getIndexOfPredecessor(sal_uInt32 nIndex, const ::basegfx::polygon::B2DPolygon& rCandidate); + sal_uInt32 getIndexOfSuccessor(sal_uInt32 nIndex, const ::basegfx::polygon::B2DPolygon& rCandidate); // Get index of first different predecessor. Returning the same index means there // is none. Same for successor. - sal_uInt32 getIndexOfDifferentPredecessor(sal_uInt32 nIndex, const polygon::B2DPolygon& rCandidate); - sal_uInt32 getIndexOfDifferentSuccessor(sal_uInt32 nIndex, const polygon::B2DPolygon& rCandidate); + sal_uInt32 getIndexOfDifferentPredecessor(sal_uInt32 nIndex, const ::basegfx::polygon::B2DPolygon& rCandidate); + sal_uInt32 getIndexOfDifferentSuccessor(sal_uInt32 nIndex, const ::basegfx::polygon::B2DPolygon& rCandidate); // Get orientation of Polygon ::basegfx::vector::B2DVectorOrientation getOrientation(const ::basegfx::polygon::B2DPolygon& rCandidate); @@ -149,6 +149,54 @@ namespace basegfx // get orientation at given polygon point ::basegfx::vector::B2DVectorOrientation getPointOrientation(const ::basegfx::polygon::B2DPolygon& rCandidate, sal_uInt32 nIndex); + // Definitions for the cut flags used from the findCut methods + typedef sal_uInt16 CutFlagValue; + + #define CUTFLAG_NONE (0x0000) + #define CUTFLAG_LINE (0x0001) + #define CUTFLAG_START1 (0x0002) + #define CUTFLAG_START2 (0x0004) + #define CUTFLAG_END1 (0x0008) + #define CUTFLAG_END2 (0x0010) + #define CUTFLAG_ALL (CUTFLAG_LINE|CUTFLAG_START1|CUTFLAG_START2|CUTFLAG_END1|CUTFLAG_END2) + #define CUTFLAG_DEFAULT (CUTFLAG_LINE|CUTFLAG_START2|CUTFLAG_END2) + + // Calculate cut between the points given by the two indices. pCut1 + // and pCut2 will contain the cut coordinate on each edge in ]0.0, 1.0] + // (if given) and the return value will contain a cut description. + CutFlagValue findCut( + const ::basegfx::polygon::B2DPolygon& rCandidate, + sal_uInt32 nIndex1, sal_uInt32 nIndex2, + CutFlagValue aCutFlags = CUTFLAG_DEFAULT, + double* pCut1 = 0L, double* pCut2 = 0L); + + // This version is working with two indexed edges from different + // polygons. + CutFlagValue findCut( + const ::basegfx::polygon::B2DPolygon& rCandidate1, sal_uInt32 nIndex1, + const ::basegfx::polygon::B2DPolygon& rCandidate2, sal_uInt32 nIndex2, + CutFlagValue aCutFlags = CUTFLAG_DEFAULT, + double* pCut1 = 0L, double* pCut2 = 0L); + + // This version works with two points and vectors to define the + // edges for the cut test. + CutFlagValue findCut( + const ::basegfx::point::B2DPoint& rEdge1Start, const ::basegfx::vector::B2DVector& rEdge1Delta, + const ::basegfx::point::B2DPoint& rEdge2Start, const ::basegfx::vector::B2DVector& rEdge2Delta, + CutFlagValue aCutFlags = CUTFLAG_DEFAULT, + double* pCut1 = 0L, double* pCut2 = 0L); + + // test if point is on the given edge in range ]0.0..1.0[ without + // the start/end points. If so, return sal_True and put the parameter + // value in pCut (if provided) + sal_Bool isPointOnEdge( + const ::basegfx::point::B2DPoint& rPoint, + const ::basegfx::point::B2DPoint& rEdgeStart, + const ::basegfx::vector::B2DVector& rEdgeDelta, + double* pCut = 0L); + + + /* Still missing: void transform(const Matrix4D& rTfMatrix); Polygon3D getExpandedPolygon(sal_uInt32 nNum); diff --git a/basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx b/basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx index b54d067ec78c..658f9b33d6b3 100644 --- a/basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx +++ b/basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2dpolypolygon.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:41 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:25 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -75,11 +75,6 @@ namespace basegfx { class B2DPolygon; } // end of namespace polygon - - namespace vector - { - enum B2DVectorOrientation; - } // end of namespace vector } // end of namespace basegfx ////////////////////////////////////////////////////////////////////////////// @@ -133,9 +128,6 @@ namespace basegfx sal_Bool isClosed() const; void setClosed(sal_Bool bNew); - // Check and evtl. correct orientations of contained Polygons - ::basegfx::vector::B2DVectorOrientation checkOrientations(); - // flip polygon direction void flip(); diff --git a/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx b/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx index e6c6793186a2..e640dbb9f295 100644 --- a/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx +++ b/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2dpolypolygontools.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:24:04 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:25 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -90,9 +90,22 @@ namespace basegfx { // B2DPolyPolygon tools - // Check and evtl. correct orientations of contained Polygons - ::basegfx::vector::B2DVectorOrientation checkOrientations(::basegfx::polygon::B2DPolyPolygon& rCandidate); + // Check and evtl. correct orientations of all contained Polygons so that + // the orientations of contained polygons will variate to express areas and + // holes + void correctOrientations(::basegfx::polygon::B2DPolyPolygon& rCandidate); + // Remove all intersections, the self intersections and the in-between + // polygon intersections. After this operation there are no more intersections + // in the given PolyPolygon. Only closed polygons are handled. The non-closed + // polygons or the ones with less than 3 points are preserved, but not + // computed. + // bForceOrientation: If sal_True, the orientations of all contained polygons + // is changed to ORIENTATION_POSITIVE before computing. + // bInvertRemove: if sal_True, created polygons which are inside others and + // have the same orientation are removed (cleanup). + void removeIntersections(::basegfx::polygon::B2DPolyPolygon& rCandidate, + sal_Bool bForceOrientation = sal_True, sal_Bool bInvertRemove = sal_False); } // end of namespace tools } // end of namespace polygon diff --git a/basegfx/inc/basegfx/range/b1drange.hxx b/basegfx/inc/basegfx/range/b1drange.hxx index eedb4bc5911b..3acab7da4a20 100644 --- a/basegfx/inc/basegfx/range/b1drange.hxx +++ b/basegfx/inc/basegfx/range/b1drange.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b1drange.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:43 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:25 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -129,6 +129,11 @@ namespace basegfx return maRange.isInside(rRange.maRange); } + sal_Bool overlaps(const B1DRange& rRange) const + { + return maRange.overlaps(rRange.maRange); + } + void expand(double fValue) { maRange.expand(fValue); diff --git a/basegfx/inc/basegfx/range/b2drange.hxx b/basegfx/inc/basegfx/range/b2drange.hxx index f3a8ac8bbba2..85002f6c8956 100644 --- a/basegfx/inc/basegfx/range/b2drange.hxx +++ b/basegfx/inc/basegfx/range/b2drange.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2drange.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:43 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:26 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -156,6 +156,14 @@ namespace basegfx ); } + sal_Bool overlaps(const B2DRange& rRange) const + { + return ( + maRangeX.overlaps(rRange.maRangeX) + && maRangeY.overlaps(rRange.maRangeY) + ); + } + void expand(const tuple::B2DTuple& rTuple) { maRangeX.expand(rTuple.getX()); diff --git a/basegfx/inc/basegfx/range/b3drange.hxx b/basegfx/inc/basegfx/range/b3drange.hxx index a62f61208b5d..2da5e2c3e1af 100644 --- a/basegfx/inc/basegfx/range/b3drange.hxx +++ b/basegfx/inc/basegfx/range/b3drange.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b3drange.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:43 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:26 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -167,6 +167,15 @@ namespace basegfx ); } + sal_Bool overlaps(const B3DRange& rRange) const + { + return ( + maRangeX.overlaps(rRange.maRangeX) + && maRangeY.overlaps(rRange.maRangeY) + && maRangeZ.overlaps(rRange.maRangeZ) + ); + } + void expand(const tuple::B3DTuple& rTuple) { maRangeX.expand(rTuple.getX()); diff --git a/basegfx/inc/basegfx/vector/b2dvector.hxx b/basegfx/inc/basegfx/vector/b2dvector.hxx index 1766a3d4ca0e..8a7127d42ab3 100644 --- a/basegfx/inc/basegfx/vector/b2dvector.hxx +++ b/basegfx/inc/basegfx/vector/b2dvector.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b2dvector.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:46 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:26 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -98,7 +98,7 @@ namespace basegfx @see B2DTuple */ - class B2DVector : public tuple::B2DTuple + class B2DVector : public ::basegfx::tuple::B2DTuple { public: /** Create a 2D Vector @@ -137,7 +137,7 @@ namespace basegfx /** constructor with tuple to allow copy-constructing from B2DTuple-based classes */ - B2DVector(const B2DTuple& rTuple) + B2DVector(const ::basegfx::tuple::B2DTuple& rTuple) : B2DTuple(rTuple) {} @@ -147,7 +147,7 @@ namespace basegfx /** assignment operator to allow assigning the results of B2DTuple calculations */ - B2DVector& operator=( const B2DTuple& rVec ); + B2DVector& operator=( const ::basegfx::tuple::B2DTuple& rVec ); /** Calculate the length of this 2D Vector diff --git a/basegfx/inc/basegfx/vector/b3dvector.hxx b/basegfx/inc/basegfx/vector/b3dvector.hxx index ec153104981e..bd118592ec96 100644 --- a/basegfx/inc/basegfx/vector/b3dvector.hxx +++ b/basegfx/inc/basegfx/vector/b3dvector.hxx @@ -2,9 +2,9 @@ * * $RCSfile: b3dvector.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: aw $ $Date: 2003-11-05 12:25:47 $ + * last change: $Author: aw $ $Date: 2003-11-06 16:30:26 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -78,7 +78,7 @@ namespace basegfx @see B3DTuple */ - class B3DVector : public tuple::B3DTuple + class B3DVector : public ::basegfx::tuple::B3DTuple { public: /** Create a 3D Vector @@ -121,7 +121,7 @@ namespace basegfx /** constructor with tuple to allow copy-constructing from B3DTuple-based classes */ - B3DVector(const B3DTuple& rTuple) + B3DVector(const ::basegfx::tuple::B3DTuple& rTuple) : B3DTuple(rTuple) {} @@ -131,7 +131,7 @@ namespace basegfx /** assignment operator to allow assigning the results of B3DTuple calculations */ - B3DVector& operator=( const B3DTuple& rVec ) + B3DVector& operator=( const ::basegfx::tuple::B3DTuple& rVec ) { mfX = rVec.getX(); mfY = rVec.getY(); @@ -277,7 +277,7 @@ namespace basegfx static const B3DVector& getEmptyVector() { - return (const B3DVector&) B3DTuple::getEmptyTuple(); + return (const B3DVector&) ::basegfx::tuple::B3DTuple::getEmptyTuple(); } }; |