svx/source/customshapes/EnhancedCustomShape2d.cxx | 6 +++--- tools/inc/tools/poly.hxx | 3 ++- tools/source/generic/poly.cxx | 5 ++++- 3 files changed, 9 insertions(+), 5 deletions(-)
New commits: commit 1ceb8e1878be513f260c6d7fbe7066627fca0693 Author: Radek Doulik <r...@novell.com> Date: Thu Jan 12 11:07:51 2012 +0100 fix ooxml custom shapes with 360 degree arcs diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx index 948fff5..ee8a365 100644 --- a/svx/source/customshapes/EnhancedCustomShape2d.cxx +++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx @@ -1407,7 +1407,7 @@ void EnhancedCustomShape2d::SwapStartAndEndArrow( SdrObject* pObj ) //#108274 pObj->SetMergedItem( aLineEndCenter ); } -basegfx::B2DPolygon CreateArc( const Rectangle& rRect, const Point& rStart, const Point& rEnd, const sal_Bool bClockwise ) +basegfx::B2DPolygon CreateArc( const Rectangle& rRect, const Point& rStart, const Point& rEnd, const sal_Bool bClockwise, sal_Bool bFullCircle = sal_False ) { Rectangle aRect( rRect ); Point aStart( rStart ); @@ -1430,7 +1430,7 @@ basegfx::B2DPolygon CreateArc( const Rectangle& rRect, const Point& rStart, cons } } - Polygon aTempPoly( aRect, aStart, aEnd, POLY_ARC ); + Polygon aTempPoly( aRect, aStart, aEnd, POLY_ARC, bFullCircle ); basegfx::B2DPolygon aRetval; if ( bClockwise ) @@ -1757,7 +1757,7 @@ void EnhancedCustomShape2d::CreateSubPath( sal_uInt16& rSrcPt, sal_uInt16& rSegm OSL_TRACE("ARCANGLETO rect: %d, %d x %d, %d start: %d, %d end: %d, %d clockwise: %d", aRect.Left(), aRect.Top(), aRect.Right(), aRect.Bottom(), aStartPoint.X(), aStartPoint.Y(), aEndPoint.X(), aEndPoint.Y(), bClockwise); - aNewB2DPolygon.append(CreateArc( aRect, bClockwise ? aEndPoint : aStartPoint, bClockwise ? aStartPoint : aEndPoint, bClockwise)); + aNewB2DPolygon.append(CreateArc( aRect, bClockwise ? aEndPoint : aStartPoint, bClockwise ? aStartPoint : aEndPoint, bClockwise, aStartPoint == aEndPoint && fSwingAngle > F_PI)); } rSrcPt += 2; commit e4cd111fae5f9b781471d4150915bb189eff90ef Author: Radek Doulik <r...@novell.com> Date: Thu Jan 12 11:06:11 2012 +0100 make it possible to create 360 degrees arc (circle) diff --git a/tools/inc/tools/poly.hxx b/tools/inc/tools/poly.hxx index 5923266..480b357 100644 --- a/tools/inc/tools/poly.hxx +++ b/tools/inc/tools/poly.hxx @@ -140,7 +140,8 @@ public: sal_uInt16 nPoints = 0 ); Polygon( const Rectangle& rBound, const Point& rStart, const Point& rEnd, - PolyStyle ePolyStyle = POLY_ARC ); + PolyStyle ePolyStyle = POLY_ARC, + sal_Bool bWholeCircle = sal_False ); Polygon( const Point& rBezPt1, const Point& rCtrlPt1, const Point& rBezPt2, const Point& rCtrlPt2, sal_uInt16 nPoints = 0 ); diff --git a/tools/source/generic/poly.cxx b/tools/source/generic/poly.cxx index f062b9e..14b34d3 100644 --- a/tools/source/generic/poly.cxx +++ b/tools/source/generic/poly.cxx @@ -510,7 +510,7 @@ Polygon::Polygon( const Point& rCenter, long nRadX, long nRadY, sal_uInt16 nPoin // ----------------------------------------------------------------------- Polygon::Polygon( const Rectangle& rBound, - const Point& rStart, const Point& rEnd, PolyStyle eStyle ) + const Point& rStart, const Point& rEnd, PolyStyle eStyle, sal_Bool bFullCircle ) { DBG_CTOR( Polygon, NULL ); @@ -547,6 +547,9 @@ Polygon::Polygon( const Rectangle& rBound, if( fDiff < 0. ) fDiff += F_2PI; + if ( bFullCircle ) + fDiff = F_2PI; + // Punktanzahl proportional verkleinern ( fDiff / (2PI) ); // ist eingentlich nur fuer einen Kreis richtig; wir // machen es hier aber trotzdem _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits