home *** CD-ROM | disk | FTP | other *** search
- package java.awt.geom;
-
- public abstract class RoundRectangle2D extends RectangularShape {
- protected RoundRectangle2D() {
- }
-
- public abstract double getArcWidth();
-
- public abstract double getArcHeight();
-
- public abstract void setRoundRect(double var1, double var3, double var5, double var7, double var9, double var11);
-
- public void setRoundRect(RoundRectangle2D var1) {
- this.setRoundRect(((RectangularShape)var1).getX(), ((RectangularShape)var1).getY(), ((RectangularShape)var1).getWidth(), ((RectangularShape)var1).getHeight(), var1.getArcWidth(), var1.getArcHeight());
- }
-
- public void setFrame(double var1, double var3, double var5, double var7) {
- this.setRoundRect(var1, var3, var5, var7, this.getArcWidth(), this.getArcHeight());
- }
-
- public boolean contains(double var1, double var3) {
- if (((RectangularShape)this).isEmpty()) {
- return false;
- } else {
- double var5 = ((RectangularShape)this).getX();
- double var7 = ((RectangularShape)this).getY();
- double var9 = var5 + ((RectangularShape)this).getWidth();
- double var11 = var7 + ((RectangularShape)this).getHeight();
- if (!(var1 < var5) && !(var3 < var7) && !(var1 >= var9) && !(var3 >= var11)) {
- double var13 = Math.min(((RectangularShape)this).getWidth(), Math.abs(this.getArcWidth())) / (double)2.0F;
- double var15 = Math.min(((RectangularShape)this).getHeight(), Math.abs(this.getArcHeight())) / (double)2.0F;
- if (var1 >= (var5 = var5 + var13) && var1 < (var5 = var9 - var13)) {
- return true;
- } else if (var3 >= (var7 = var7 + var15) && var3 < (var7 = var11 - var15)) {
- return true;
- } else {
- var1 = (var1 - var5) / var13;
- var3 = (var3 - var7) / var15;
- return var1 * var1 + var3 * var3 <= (double)1.0F;
- }
- } else {
- return false;
- }
- }
- }
-
- private int classify(double var1, double var3, double var5, double var7) {
- if (var1 < var3) {
- return 0;
- } else if (var1 < var3 + var7) {
- return 1;
- } else if (var1 < var5 - var7) {
- return 2;
- } else {
- return var1 < var5 ? 3 : 4;
- }
- }
-
- public boolean intersects(double var1, double var3, double var5, double var7) {
- if (!((RectangularShape)this).isEmpty() && !(var5 <= (double)0.0F) && !(var7 <= (double)0.0F)) {
- double var9 = ((RectangularShape)this).getX();
- double var11 = ((RectangularShape)this).getY();
- double var13 = var9 + ((RectangularShape)this).getWidth();
- double var15 = var11 + ((RectangularShape)this).getHeight();
- if (!(var1 + var5 <= var9) && !(var1 >= var13) && !(var3 + var7 <= var11) && !(var3 >= var15)) {
- double var17 = Math.min(((RectangularShape)this).getWidth(), Math.abs(this.getArcWidth())) / (double)2.0F;
- double var19 = Math.min(((RectangularShape)this).getHeight(), Math.abs(this.getArcHeight())) / (double)2.0F;
- int var21 = this.classify(var1, var9, var13, var17);
- int var22 = this.classify(var1 + var5, var9, var13, var17);
- int var23 = this.classify(var3, var11, var15, var19);
- int var24 = this.classify(var3 + var7, var11, var15, var19);
- if (var21 != 2 && var22 != 2 && var23 != 2 && var24 != 2) {
- if ((var21 >= 2 || var22 <= 2) && (var23 >= 2 || var24 <= 2)) {
- var1 = var22 == 1 ? var1 + var5 - (var9 + var17) : var1 - (var13 - var17);
- var3 = var24 == 1 ? var3 + var7 - (var11 + var19) : var3 - (var15 - var19);
- var1 /= var17;
- var3 /= var19;
- return var1 * var1 + var3 * var3 <= (double)1.0F;
- } else {
- return true;
- }
- } else {
- return true;
- }
- } else {
- return false;
- }
- } else {
- return false;
- }
- }
-
- public boolean contains(double var1, double var3, double var5, double var7) {
- if (!((RectangularShape)this).isEmpty() && !(var5 <= (double)0.0F) && !(var7 <= (double)0.0F)) {
- return this.contains(var1, var3) && this.contains(var1 + var5, var3) && this.contains(var1, var3 + var7) && this.contains(var1 + var5, var3 + var7);
- } else {
- return false;
- }
- }
-
- public PathIterator getPathIterator(AffineTransform var1) {
- return new RoundRectIterator(this, var1);
- }
- }
-