| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
 | 
 | 
package sun.java2d.pipe;  | 
 | 
 | 
 | 
import java.awt.Rectangle;  | 
 | 
import java.awt.Shape;  | 
 | 
import java.awt.geom.Arc2D;  | 
 | 
import java.awt.geom.Ellipse2D;  | 
 | 
import java.awt.geom.Line2D;  | 
 | 
import java.awt.geom.RoundRectangle2D;  | 
 | 
import java.awt.geom.GeneralPath;  | 
 | 
import sun.java2d.SunGraphics2D;  | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
public class PixelToShapeConverter  | 
 | 
    implements PixelDrawPipe, PixelFillPipe  | 
 | 
{ | 
 | 
    ShapeDrawPipe outpipe;  | 
 | 
 | 
 | 
    public PixelToShapeConverter(ShapeDrawPipe pipe) { | 
 | 
        outpipe = pipe;  | 
 | 
    }  | 
 | 
 | 
 | 
    public void drawLine(SunGraphics2D sg,  | 
 | 
                         int x1, int y1, int x2, int y2) { | 
 | 
        outpipe.draw(sg, new Line2D.Float(x1, y1, x2, y2));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void drawRect(SunGraphics2D sg,  | 
 | 
                         int x, int y, int w, int h) { | 
 | 
        outpipe.draw(sg, new Rectangle(x, y, w, h));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void fillRect(SunGraphics2D sg,  | 
 | 
                         int x, int y, int w, int h) { | 
 | 
        outpipe.fill(sg, new Rectangle(x, y, w, h));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void drawRoundRect(SunGraphics2D sg,  | 
 | 
                              int x, int y, int w, int h,  | 
 | 
                              int aW, int aH) { | 
 | 
        outpipe.draw(sg, new RoundRectangle2D.Float(x, y, w, h, aW, aH));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void fillRoundRect(SunGraphics2D sg,  | 
 | 
                              int x, int y, int w, int h,  | 
 | 
                              int aW, int aH) { | 
 | 
        outpipe.fill(sg, new RoundRectangle2D.Float(x, y, w, h, aW, aH));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void drawOval(SunGraphics2D sg,  | 
 | 
                         int x, int y, int w, int h) { | 
 | 
        outpipe.draw(sg, new Ellipse2D.Float(x, y, w, h));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void fillOval(SunGraphics2D sg,  | 
 | 
                         int x, int y, int w, int h) { | 
 | 
        outpipe.fill(sg, new Ellipse2D.Float(x, y, w, h));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void drawArc(SunGraphics2D sg,  | 
 | 
                        int x, int y, int w, int h,  | 
 | 
                        int start, int extent) { | 
 | 
        outpipe.draw(sg, new Arc2D.Float(x, y, w, h,  | 
 | 
                                         start, extent, Arc2D.OPEN));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void fillArc(SunGraphics2D sg,  | 
 | 
                        int x, int y, int w, int h,  | 
 | 
                        int start, int extent) { | 
 | 
        outpipe.fill(sg, new Arc2D.Float(x, y, w, h,  | 
 | 
                                         start, extent, Arc2D.PIE));  | 
 | 
    }  | 
 | 
 | 
 | 
    private Shape makePoly(int xPoints[], int yPoints[],  | 
 | 
                           int nPoints, boolean close) { | 
 | 
        GeneralPath gp = new GeneralPath(GeneralPath.WIND_EVEN_ODD);  | 
 | 
        if (nPoints > 0) { | 
 | 
            gp.moveTo(xPoints[0], yPoints[0]);  | 
 | 
            for (int i = 1; i < nPoints; i++) { | 
 | 
                gp.lineTo(xPoints[i], yPoints[i]);  | 
 | 
            }  | 
 | 
            if (close) { | 
 | 
                gp.closePath();  | 
 | 
            }  | 
 | 
        }  | 
 | 
        return gp;  | 
 | 
    }  | 
 | 
 | 
 | 
    public void drawPolyline(SunGraphics2D sg,  | 
 | 
                             int xPoints[], int yPoints[],  | 
 | 
                             int nPoints) { | 
 | 
        outpipe.draw(sg, makePoly(xPoints, yPoints, nPoints, false));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void drawPolygon(SunGraphics2D sg,  | 
 | 
                            int xPoints[], int yPoints[],  | 
 | 
                            int nPoints) { | 
 | 
        outpipe.draw(sg, makePoly(xPoints, yPoints, nPoints, true));  | 
 | 
    }  | 
 | 
 | 
 | 
    public void fillPolygon(SunGraphics2D sg,  | 
 | 
                            int xPoints[], int yPoints[],  | 
 | 
                            int nPoints) { | 
 | 
        outpipe.fill(sg, makePoly(xPoints, yPoints, nPoints, true));  | 
 | 
    }  | 
 | 
}  |