summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedricbosdo@openoffice.org>2011-03-14 15:23:24 +0100
committerCédric Bosdonnat <cedricbosdo@openoffice.org>2011-03-19 17:57:19 +0100
commit67d0e75c7c22844cfba842bb7ff9ba53b0125677 (patch)
tree5b2546e7603e4b8aa5adba0e0f4514fd7887ecdb /drawinglayer
parente3aeec6664273abc7917280032c3219d8672465f (diff)
sc: draw slanted borders using the drawinglayer primitives
Diffstat (limited to 'drawinglayer')
-rwxr-xr-xdrawinglayer/source/primitive2d/borderlineprimitive2d.cxx27
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