diff options
author | Michael Meeks <michael.meeks@suse.com> | 2013-06-07 14:45:59 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2013-06-07 14:48:58 +0100 |
commit | e7f1bae02cc75edc7a9ffca9a3ddf50be40c814c (patch) | |
tree | 54bee1e8940b98a2412b1b282df7a6c18f8aeb95 | |
parent | 1477ea6e92011302aa78e87b513af3aa0ba93352 (diff) |
fdo#65502 - EmfFillPie fix.
-rw-r--r-- | cppcanvas/source/mtfrenderer/emfplus.cxx | 18 |
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); |