home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / java2d / pipe / DrawToFillConverter.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.3 KB  |  62 lines

  1. package sun.java2d.pipe;
  2.  
  3. import java.awt.BasicStroke;
  4. import java.awt.Shape;
  5. import java.awt.geom.AffineTransform;
  6. import java.awt.geom.PathIterator;
  7. import sun.dc.path.PathConsumer;
  8. import sun.dc.path.PathException;
  9. import sun.java2d.SunGraphics2D;
  10.  
  11. public class DrawToFillConverter extends DuctusRenderer implements ShapeDrawPipe {
  12.    SimpleRenderPipe outpipe;
  13.    ShapeDrawPipe fillpipe;
  14.    boolean doTx;
  15.  
  16.    public DrawToFillConverter(SimpleRenderPipe var1, ShapeDrawPipe var2, boolean var3) {
  17.       this.outpipe = var1;
  18.       this.fillpipe = var2;
  19.       this.doTx = var3;
  20.    }
  21.  
  22.    public void draw(SunGraphics2D var1, Shape var2) {
  23.       ShapeSpanIterator var3 = new ShapeSpanIterator();
  24.  
  25.       try {
  26.          this.draw2(var1, var3, var2);
  27.       } finally {
  28.          var3.dispose();
  29.       }
  30.  
  31.    }
  32.  
  33.    public void draw2(SunGraphics2D var1, ShapeSpanIterator var2, Shape var3) {
  34.       var2.setOutputArea(var1.getCompBounds());
  35.       if (var1.stroke instanceof BasicStroke) {
  36.          var2.setRule(1);
  37.          BasicStroke var4 = (BasicStroke)var1.stroke;
  38.          AffineTransform var5 = var1.transformState == 2 ? var1.transform : null;
  39.          PathConsumer var6 = DuctusRenderer.createStroker(var2, var4, var5);
  40.          var5 = this.doTx && var1.transformState != 0 ? var1.transform : null;
  41.          PathIterator var7 = var3.getPathIterator(var5);
  42.  
  43.          try {
  44.             boolean var8 = var1.strokeHint != 2;
  45.             DuctusRenderer.feedConsumer(var7, var6, var8, 0.25F);
  46.          } catch (PathException var9) {
  47.             throw new InternalError("Unable to Stroke shape (" + ((Throwable)var9).getMessage() + ")");
  48.          }
  49.       } else {
  50.          var3 = var1.stroke.createStrokedShape(var3);
  51.          AffineTransform var11 = this.doTx && var1.transformState != 0 ? var1.transform : null;
  52.          var2.appendPath(var3.getPathIterator(var11));
  53.       }
  54.  
  55.       this.outpipe.fillSpans(var1, var2);
  56.    }
  57.  
  58.    public void fill(SunGraphics2D var1, Shape var2) {
  59.       this.fillpipe.fill(var1, var2);
  60.    }
  61. }
  62.