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 / awt / geom / Order1.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.2 KB  |  249 lines

  1. package sun.awt.geom;
  2.  
  3. import java.awt.geom.Rectangle2D;
  4.  
  5. final class Order1 extends Curve {
  6.    // $FF: renamed from: x0 double
  7.    private double field_0;
  8.    // $FF: renamed from: y0 double
  9.    private double field_1;
  10.    // $FF: renamed from: x1 double
  11.    private double field_2;
  12.    // $FF: renamed from: y1 double
  13.    private double field_3;
  14.    private double xmin;
  15.    private double xmax;
  16.  
  17.    public Order1(double var1, double var3, double var5, double var7, int var9) {
  18.       super(var9);
  19.       this.field_0 = var1;
  20.       this.field_1 = var3;
  21.       this.field_2 = var5;
  22.       this.field_3 = var7;
  23.       if (var1 < var5) {
  24.          this.xmin = var1;
  25.          this.xmax = var5;
  26.       } else {
  27.          this.xmin = var5;
  28.          this.xmax = var1;
  29.       }
  30.  
  31.    }
  32.  
  33.    public int getOrder() {
  34.       return 1;
  35.    }
  36.  
  37.    public double getXTop() {
  38.       return this.field_0;
  39.    }
  40.  
  41.    public double getYTop() {
  42.       return this.field_1;
  43.    }
  44.  
  45.    public double getXBot() {
  46.       return this.field_2;
  47.    }
  48.  
  49.    public double getYBot() {
  50.       return this.field_3;
  51.    }
  52.  
  53.    public double getXMin() {
  54.       return this.xmin;
  55.    }
  56.  
  57.    public double getXMax() {
  58.       return this.xmax;
  59.    }
  60.  
  61.    public double getX0() {
  62.       return super.direction == 1 ? this.field_0 : this.field_2;
  63.    }
  64.  
  65.    public double getY0() {
  66.       return super.direction == 1 ? this.field_1 : this.field_3;
  67.    }
  68.  
  69.    public double getX1() {
  70.       return super.direction == -1 ? this.field_0 : this.field_2;
  71.    }
  72.  
  73.    public double getY1() {
  74.       return super.direction == -1 ? this.field_1 : this.field_3;
  75.    }
  76.  
  77.    public double XforY(double var1) {
  78.       if (this.field_0 != this.field_2 && var1 != this.field_1) {
  79.          return var1 == this.field_3 ? this.field_2 : this.field_0 + (var1 - this.field_1) * (this.field_2 - this.field_0) / (this.field_3 - this.field_1);
  80.       } else {
  81.          return this.field_0;
  82.       }
  83.    }
  84.  
  85.    public double TforY(double var1) {
  86.       return (var1 - this.field_1) / (this.field_3 - this.field_1);
  87.    }
  88.  
  89.    public double XforT(double var1) {
  90.       return this.field_0 + var1 * (this.field_2 - this.field_0);
  91.    }
  92.  
  93.    public double YforT(double var1) {
  94.       return this.field_1 + var1 * (this.field_3 - this.field_1);
  95.    }
  96.  
  97.    public double dXforT(double var1, int var3) {
  98.       switch (var3) {
  99.          case 0:
  100.             return this.field_0 + var1 * (this.field_2 - this.field_0);
  101.          case 1:
  102.             return this.field_2 - this.field_0;
  103.          default:
  104.             return (double)0.0F;
  105.       }
  106.    }
  107.  
  108.    public double dYforT(double var1, int var3) {
  109.       switch (var3) {
  110.          case 0:
  111.             return this.field_1 + var1 * (this.field_3 - this.field_1);
  112.          case 1:
  113.             return this.field_3 - this.field_1;
  114.          default:
  115.             return (double)0.0F;
  116.       }
  117.    }
  118.  
  119.    public double nextVertical(double var1, double var3) {
  120.       return var3;
  121.    }
  122.  
  123.    public boolean accumulateCrossings(Crossings var1) {
  124.       double var2 = var1.getXLo();
  125.       double var4 = var1.getYLo();
  126.       double var6 = var1.getXHi();
  127.       double var8 = var1.getYHi();
  128.       if (this.xmin >= var6) {
  129.          return false;
  130.       } else {
  131.          double var10;
  132.          double var12;
  133.          if (this.field_1 < var4) {
  134.             if (this.field_3 <= var4) {
  135.                return false;
  136.             }
  137.  
  138.             var12 = var4;
  139.             var10 = this.XforY(var4);
  140.          } else {
  141.             if (this.field_1 >= var8) {
  142.                return false;
  143.             }
  144.  
  145.             var12 = this.field_1;
  146.             var10 = this.field_0;
  147.          }
  148.  
  149.          double var14;
  150.          double var16;
  151.          if (this.field_3 > var8) {
  152.             var16 = var8;
  153.             var14 = this.XforY(var8);
  154.          } else {
  155.             var16 = this.field_3;
  156.             var14 = this.field_2;
  157.          }
  158.  
  159.          if (var10 >= var6 && var14 >= var6) {
  160.             return false;
  161.          } else if (!(var10 > var2) && !(var14 > var2)) {
  162.             var1.record(var12, var16, super.direction);
  163.             return false;
  164.          } else {
  165.             return true;
  166.          }
  167.       }
  168.    }
  169.  
  170.    public void enlarge(Rectangle2D var1) {
  171.       var1.add(this.field_0, this.field_1);
  172.       var1.add(this.field_2, this.field_3);
  173.    }
  174.  
  175.    public Curve getSubCurve(double var1, double var3, int var5) {
  176.       if (var1 == this.field_1 && var3 == this.field_3) {
  177.          return ((Curve)this).getWithDirection(var5);
  178.       } else if (this.field_0 == this.field_2) {
  179.          return new Order1(this.field_0, var1, this.field_2, var3, var5);
  180.       } else {
  181.          double var6 = this.field_0 - this.field_2;
  182.          double var8 = this.field_1 - this.field_3;
  183.          double var10 = this.field_0 + (var1 - this.field_1) * var6 / var8;
  184.          double var12 = this.field_0 + (var3 - this.field_1) * var6 / var8;
  185.          return new Order1(var10, var1, var12, var3, var5);
  186.       }
  187.    }
  188.  
  189.    public Curve getReversedCurve() {
  190.       return new Order1(this.field_0, this.field_1, this.field_2, this.field_3, -super.direction);
  191.    }
  192.  
  193.    public int compareTo(Curve var1, double[] var2) {
  194.       if (!(var1 instanceof Order1)) {
  195.          return super.compareTo(var1, var2);
  196.       } else {
  197.          Order1 var3 = (Order1)var1;
  198.          if (var2[1] <= var2[0]) {
  199.             throw new InternalError("yrange already screwed up...");
  200.          } else {
  201.             var2[1] = Math.min(Math.min(var2[1], this.field_3), var3.field_3);
  202.             if (var2[1] <= var2[0]) {
  203.                throw new InternalError("backstepping from " + var2[0] + " to " + var2[1]);
  204.             } else if (this.xmax <= var3.xmin) {
  205.                return this.xmin == var3.xmax ? 0 : -1;
  206.             } else if (this.xmin >= var3.xmax) {
  207.                return 1;
  208.             } else {
  209.                double var4 = this.field_2 - this.field_0;
  210.                double var6 = this.field_3 - this.field_1;
  211.                double var8 = var3.field_2 - var3.field_0;
  212.                double var10 = var3.field_3 - var3.field_1;
  213.                double var12 = var8 * var6 - var4 * var10;
  214.                double var18;
  215.                if (var12 != (double)0.0F) {
  216.                   double var16 = (this.field_0 - var3.field_0) * var6 * var10 - this.field_1 * var4 * var10 + var3.field_1 * var8 * var6;
  217.                   var18 = var16 / var12;
  218.                   if (var18 <= var2[0]) {
  219.                      var18 = Math.min(this.field_3, var3.field_3);
  220.                   } else {
  221.                      if (var18 < var2[1]) {
  222.                         var2[1] = var18;
  223.                      }
  224.  
  225.                      var18 = Math.max(this.field_1, var3.field_1);
  226.                   }
  227.                } else {
  228.                   var18 = Math.max(this.field_1, var3.field_1);
  229.                }
  230.  
  231.                return Curve.orderof(this.XforY(var18), var3.XforY(var18));
  232.             }
  233.          }
  234.       }
  235.    }
  236.  
  237.    public int getSegment(double[] var1) {
  238.       if (super.direction == 1) {
  239.          var1[0] = this.field_2;
  240.          var1[1] = this.field_3;
  241.       } else {
  242.          var1[0] = this.field_0;
  243.          var1[1] = this.field_1;
  244.       }
  245.  
  246.       return 1;
  247.    }
  248. }
  249.