summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2013-06-07 14:45:59 +0100
committerMichael Meeks <michael.meeks@suse.com>2013-06-07 14:48:58 +0100
commite7f1bae02cc75edc7a9ffca9a3ddf50be40c814c (patch)
tree54bee1e8940b98a2412b1b282df7a6c18f8aeb95
parent1477ea6e92011302aa78e87b513af3aa0ba93352 (diff)
fdo#65502 - EmfFillPie fix.
-rw-r--r--cppcanvas/source/mtfrenderer/emfplus.cxx18
1 files changed, 9 insertions, 9 deletions
diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx
index 4063f42abcff..7afddbf7499e 100644
--- a/cppcanvas/source/mtfrenderer/emfplus.cxx
+++ b/cppcanvas/source/mtfrenderer/emfplus.cxx
@@ -1293,18 +1293,18 @@ namespace cppcanvas
B2DPoint mappedCenter (Map (dx + dw/2, dy + dh/2));
B2DSize mappedSize( MapSize (dw/2, dh/2));
- double endAngle = startAngle + sweepAngle;
+ float endAngle = startAngle + sweepAngle;
+ startAngle = fmod (startAngle, M_PI*2);
+ if (startAngle < 0)
+ startAngle += M_PI*2;
+ endAngle = fmod (endAngle, M_PI*2);
if (endAngle < 0)
endAngle += M_PI*2;
- endAngle = fmod (endAngle, M_PI*2);
-
- if (sweepAngle < 0) {
- double tmp = startAngle;
- startAngle = endAngle;
- endAngle = tmp;
- }
+ if (sweepAngle < 0)
+ std::swap (endAngle, startAngle);
- EMFP_DEBUG (printf ("EMF+ angles: %f,%f ---> %f,%f\n", startAngle, sweepAngle, startAngle, endAngle));
+ EMFP_DEBUG (printf ("EMF+ adjusted angles to: %f,%f\n",
+ 360.0*startAngle/M_PI, 360.0*endAngle/M_PI));
B2DPolygon polygon = tools::createPolygonFromEllipseSegment (mappedCenter, mappedSize.getX (), mappedSize.getY (), startAngle, endAngle);
polygon.append (mappedCenter);