home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / awt / geom / RoundRectangle2D.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.8 KB  |  105 lines

  1. package java.awt.geom;
  2.  
  3. public abstract class RoundRectangle2D extends RectangularShape {
  4.    protected RoundRectangle2D() {
  5.    }
  6.  
  7.    public abstract double getArcWidth();
  8.  
  9.    public abstract double getArcHeight();
  10.  
  11.    public abstract void setRoundRect(double var1, double var3, double var5, double var7, double var9, double var11);
  12.  
  13.    public void setRoundRect(RoundRectangle2D var1) {
  14.       this.setRoundRect(((RectangularShape)var1).getX(), ((RectangularShape)var1).getY(), ((RectangularShape)var1).getWidth(), ((RectangularShape)var1).getHeight(), var1.getArcWidth(), var1.getArcHeight());
  15.    }
  16.  
  17.    public void setFrame(double var1, double var3, double var5, double var7) {
  18.       this.setRoundRect(var1, var3, var5, var7, this.getArcWidth(), this.getArcHeight());
  19.    }
  20.  
  21.    public boolean contains(double var1, double var3) {
  22.       if (((RectangularShape)this).isEmpty()) {
  23.          return false;
  24.       } else {
  25.          double var5 = ((RectangularShape)this).getX();
  26.          double var7 = ((RectangularShape)this).getY();
  27.          double var9 = var5 + ((RectangularShape)this).getWidth();
  28.          double var11 = var7 + ((RectangularShape)this).getHeight();
  29.          if (!(var1 < var5) && !(var3 < var7) && !(var1 >= var9) && !(var3 >= var11)) {
  30.             double var13 = Math.min(((RectangularShape)this).getWidth(), Math.abs(this.getArcWidth())) / (double)2.0F;
  31.             double var15 = Math.min(((RectangularShape)this).getHeight(), Math.abs(this.getArcHeight())) / (double)2.0F;
  32.             if (var1 >= (var5 = var5 + var13) && var1 < (var5 = var9 - var13)) {
  33.                return true;
  34.             } else if (var3 >= (var7 = var7 + var15) && var3 < (var7 = var11 - var15)) {
  35.                return true;
  36.             } else {
  37.                var1 = (var1 - var5) / var13;
  38.                var3 = (var3 - var7) / var15;
  39.                return var1 * var1 + var3 * var3 <= (double)1.0F;
  40.             }
  41.          } else {
  42.             return false;
  43.          }
  44.       }
  45.    }
  46.  
  47.    private int classify(double var1, double var3, double var5, double var7) {
  48.       if (var1 < var3) {
  49.          return 0;
  50.       } else if (var1 < var3 + var7) {
  51.          return 1;
  52.       } else if (var1 < var5 - var7) {
  53.          return 2;
  54.       } else {
  55.          return var1 < var5 ? 3 : 4;
  56.       }
  57.    }
  58.  
  59.    public boolean intersects(double var1, double var3, double var5, double var7) {
  60.       if (!((RectangularShape)this).isEmpty() && !(var5 <= (double)0.0F) && !(var7 <= (double)0.0F)) {
  61.          double var9 = ((RectangularShape)this).getX();
  62.          double var11 = ((RectangularShape)this).getY();
  63.          double var13 = var9 + ((RectangularShape)this).getWidth();
  64.          double var15 = var11 + ((RectangularShape)this).getHeight();
  65.          if (!(var1 + var5 <= var9) && !(var1 >= var13) && !(var3 + var7 <= var11) && !(var3 >= var15)) {
  66.             double var17 = Math.min(((RectangularShape)this).getWidth(), Math.abs(this.getArcWidth())) / (double)2.0F;
  67.             double var19 = Math.min(((RectangularShape)this).getHeight(), Math.abs(this.getArcHeight())) / (double)2.0F;
  68.             int var21 = this.classify(var1, var9, var13, var17);
  69.             int var22 = this.classify(var1 + var5, var9, var13, var17);
  70.             int var23 = this.classify(var3, var11, var15, var19);
  71.             int var24 = this.classify(var3 + var7, var11, var15, var19);
  72.             if (var21 != 2 && var22 != 2 && var23 != 2 && var24 != 2) {
  73.                if ((var21 >= 2 || var22 <= 2) && (var23 >= 2 || var24 <= 2)) {
  74.                   var1 = var22 == 1 ? var1 + var5 - (var9 + var17) : var1 - (var13 - var17);
  75.                   var3 = var24 == 1 ? var3 + var7 - (var11 + var19) : var3 - (var15 - var19);
  76.                   var1 /= var17;
  77.                   var3 /= var19;
  78.                   return var1 * var1 + var3 * var3 <= (double)1.0F;
  79.                } else {
  80.                   return true;
  81.                }
  82.             } else {
  83.                return true;
  84.             }
  85.          } else {
  86.             return false;
  87.          }
  88.       } else {
  89.          return false;
  90.       }
  91.    }
  92.  
  93.    public boolean contains(double var1, double var3, double var5, double var7) {
  94.       if (!((RectangularShape)this).isEmpty() && !(var5 <= (double)0.0F) && !(var7 <= (double)0.0F)) {
  95.          return this.contains(var1, var3) && this.contains(var1 + var5, var3) && this.contains(var1, var3 + var7) && this.contains(var1 + var5, var3 + var7);
  96.       } else {
  97.          return false;
  98.       }
  99.    }
  100.  
  101.    public PathIterator getPathIterator(AffineTransform var1) {
  102.       return new RoundRectIterator(this, var1);
  103.    }
  104. }
  105.