You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by de...@apache.org on 2008/12/07 15:48:24 UTC

svn commit: r724138 - /xmlgraphics/batik/trunk/sources/org/apache/batik/transcoder/wmf/tosvg/WMFPainter.java

Author: deweese
Date: Sun Dec  7 06:48:24 2008
New Revision: 724138

URL: http://svn.apache.org/viewvc?rev=724138&view=rev
Log:
Fixed a bug in handling WMF META_PIE function

Modified:
    xmlgraphics/batik/trunk/sources/org/apache/batik/transcoder/wmf/tosvg/WMFPainter.java

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/transcoder/wmf/tosvg/WMFPainter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/transcoder/wmf/tosvg/WMFPainter.java?rev=724138&r1=724137&r2=724138&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/transcoder/wmf/tosvg/WMFPainter.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/transcoder/wmf/tosvg/WMFPainter.java Sun Dec  7 06:48:24 2008
@@ -611,39 +611,8 @@
 
                 case WMFConstants.META_ARC:
                 case WMFConstants.META_PIE:
-                    {
-                        double left, top, right, bottom;
-                        double xstart, ystart, xend, yend;
-                        left = scaleX * ( vpX + xOffset + mr.elementAt( 0 ) );
-                        top =  scaleY * ( vpY + yOffset + mr.elementAt( 1 ) );
-                        right = scaleX * ( vpX + xOffset + mr.elementAt( 2 ) );
-                        bottom = scaleY * ( vpY + yOffset + mr.elementAt( 3 ) );
-                        xstart = scaleX * ( vpX + xOffset + mr.elementAt( 4 ) );
-                        ystart = scaleY * ( vpY + yOffset + mr.elementAt( 5 ) );
-                        xend = scaleX * ( vpX + xOffset + mr.elementAt( 6 ) );
-                        yend = scaleY * ( vpY + yOffset + mr.elementAt( 7 ) );
-                        setBrushPaint( currentStore, g2d, brushObject );
-
-                        double cx = left + (right - left)/2;
-                        double cy = top + (bottom - top)/2;
-                        double startAngle = - Math.toDegrees( Math.atan2(ystart - cy, xstart - cx) );
-                        double endAngle   = - Math.toDegrees( Math.atan2(yend - cy, xend - cx) );
-
-                        double extentAngle = endAngle - startAngle;
-                        if (extentAngle < 0) extentAngle += 360;
-                        if (startAngle < 0) startAngle +=360;
-
-                        Arc2D.Double arc = new Arc2D.Double(left, top, right - left, bottom - top,
-                            startAngle, extentAngle, Arc2D.OPEN);
-                        if ( mr.functionId == WMFConstants.META_ARC ) g2d.draw(arc);
-                        else g2d.fill(arc);
-                        firstEffectivePaint = false;
-                    }
-                    break;
-
-
                 case WMFConstants.META_CHORD:
-                {
+                    {
                         double left, top, right, bottom;
                         double xstart, ystart, xend, yend;
                         left   = scaleX * ( vpX + xOffset + mr.elementAt( 0 ) );
@@ -665,9 +634,32 @@
                         if (extentAngle < 0) extentAngle += 360;
                         if (startAngle < 0) startAngle +=360;
 
-                        Arc2D.Double arc = new Arc2D.Double(left, top, right - left, bottom - top,
-                            startAngle, extentAngle, Arc2D.CHORD);
-                        paint(brushObject, penObject, arc, g2d);
+                        
+                        Arc2D.Double arc;
+                        switch(mr.functionId) {
+                        case WMFConstants.META_ARC:
+                            arc = new Arc2D.Double(left, top, 
+                                                   right - left, bottom - top,
+                                                   startAngle, extentAngle, 
+                                                   Arc2D.OPEN);
+                            g2d.draw(arc);
+                            break;
+                        case WMFConstants.META_PIE:
+                            arc = new Arc2D.Double(left, top, 
+                                                   right - left, bottom - top,
+                                                   startAngle, extentAngle, 
+                                                   Arc2D.PIE);
+                            paint(brushObject, penObject, arc, g2d);
+                            // g2d.fill(arc);                    
+                            break;
+                        case WMFConstants.META_CHORD:
+                            arc = new Arc2D.Double(left, top, 
+                                                   right - left, 
+                                                   bottom - top,
+                                                   startAngle, extentAngle, 
+                                                   Arc2D.CHORD);
+                            paint(brushObject, penObject, arc, g2d);
+                        }
                         firstEffectivePaint = false;
                     }
                     break;