diff options
author | Cédric Bosdonnat <cedricbosdo@openoffice.org> | 2011-03-14 15:23:24 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cedricbosdo@openoffice.org> | 2011-03-19 17:57:19 +0100 |
commit | 67d0e75c7c22844cfba842bb7ff9ba53b0125677 (patch) | |
tree | 5b2546e7603e4b8aa5adba0e0f4514fd7887ecdb /drawinglayer | |
parent | e3aeec6664273abc7917280032c3219d8672465f (diff) |
sc: draw slanted borders using the drawinglayer primitives
Diffstat (limited to 'drawinglayer')
-rwxr-xr-x | drawinglayer/source/primitive2d/borderlineprimitive2d.cxx | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx index 5c3a889483e8..66544d65a084 100755 --- a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx @@ -57,12 +57,22 @@ namespace drawinglayer // Get the points const basegfx::B2DVector aLeftOff(aPerpendicular * (-0.5 * (getWidth()))); const basegfx::B2DVector aRightOff(aPerpendicular * (0.5 * (getWidth()))); - clipPolygon.append( basegfx::B2DPoint(getStart() + aLeftOff - (getExtendLeftStart() * aVector)) ); + + const basegfx::B2DVector aSLVector( aLeftOff - ( getExtendLeftStart() * aVector ) ); + clipPolygon.append( basegfx::B2DPoint( getStart() + aSLVector * 2.0 ) ); + clipPolygon.append( getStart( ) ); - clipPolygon.append( basegfx::B2DPoint(getStart() + aRightOff - (getExtendRightStart() * aVector)) ); - clipPolygon.append( basegfx::B2DPoint(getEnd() + aRightOff + (getExtendRightEnd() * aVector)) ); + + const basegfx::B2DVector aSRVector( aRightOff - ( getExtendRightStart() * aVector ) ); + clipPolygon.append( basegfx::B2DPoint( getStart() + aSRVector * 2.0 ) ); + + const basegfx::B2DVector aERVector( aRightOff + ( getExtendRightEnd() * aVector ) ); + clipPolygon.append( basegfx::B2DPoint( getEnd() + aERVector * 2.0 ) ); + clipPolygon.append( getEnd( ) ); - clipPolygon.append( basegfx::B2DPoint(getEnd() + aLeftOff + (getExtendLeftEnd() * aVector)) ); + + const basegfx::B2DVector aELVector( aLeftOff + ( getExtendLeftEnd() * aVector ) ); + clipPolygon.append( basegfx::B2DPoint( getEnd() + aELVector * 2.0 ) ); clipPolygon.setClosed( true ); @@ -198,12 +208,9 @@ namespace drawinglayer { // single line, create geometry basegfx::B2DPolygon aPolygon; - const double fMaxExtStart = std::max( getExtendLeftStart(), - std::max( getExtendRightStart(), 0.0 ) ); - const double fMaxExtEnd = std::max( getExtendLeftEnd(), - std::max( getExtendRightEnd(), 0.0 ) ); - const basegfx::B2DPoint aTmpStart(getStart() - (fMaxExtStart * aVector)); - const basegfx::B2DPoint aTmpEnd(getEnd() + (fMaxExtEnd * aVector)); + const double fExt = getWidth( ); // Extend a lot: it'll be clipped after + const basegfx::B2DPoint aTmpStart(getStart() - (fExt * aVector)); + const basegfx::B2DPoint aTmpEnd(getEnd() + (fExt * aVector)); xRetval.realloc(1); // Get which is the line to show |