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
commit066ff6ecfc23bb7e854642a153417e516ec4f1b2 (patch)
tree0991f67de76360ff93e2bfb8a28db7812df9d97f /drawinglayer
parent8fe4b54be1b618e066b9f3b8f8ea159dcd6beec6 (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 95866f07d7..afac9b9ff0 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