home *** CD-ROM | disk | FTP | other *** search
- package sun.awt.geom;
-
- import java.awt.geom.QuadCurve2D;
- import java.awt.geom.Rectangle2D;
- import java.util.Vector;
-
- final class Order2 extends Curve {
- // $FF: renamed from: x0 double
- private double field_0;
- // $FF: renamed from: y0 double
- private double field_1;
- private double cx0;
- private double cy0;
- // $FF: renamed from: x1 double
- private double field_2;
- // $FF: renamed from: y1 double
- private double field_3;
- private double xmin;
- private double xmax;
- private double xcoeff0;
- private double xcoeff1;
- private double xcoeff2;
- private double ycoeff0;
- private double ycoeff1;
- private double ycoeff2;
-
- public static void insert(Vector var0, double[] var1, double var2, double var4, double var6, double var8, double var10, double var12, int var14) {
- int var15 = getHorizontalParams(var4, var8, var12, var1);
- if (var15 == 0) {
- var0.add(new Order2(var2, var4, var6, var8, var10, var12, var14));
- } else {
- double var16 = var1[0];
- var1[0] = var2;
- var1[1] = var4;
- var1[2] = var6;
- var1[3] = var8;
- var1[4] = var10;
- var1[5] = var12;
- split(var1, 0, var16);
- Order2 var18 = getInstance(var2, var4, var1[2], var1[3], var1[4], var1[5], var14);
- Order2 var19 = getInstance(var1[4], var1[5], var1[6], var1[7], var10, var12, var14);
- if (var14 == 1) {
- var0.add(var18);
- var0.add(var19);
- } else {
- var0.add(var19);
- var0.add(var18);
- }
-
- }
- }
-
- public static Order2 getInstance(double var0, double var2, double var4, double var6, double var8, double var10, int var12) {
- return var2 > var10 ? new Order2(var8, var10, var4, var6, var0, var2, -var12) : new Order2(var0, var2, var4, var6, var8, var10, var12);
- }
-
- public static void getEqn(double[] var0, double var1, double var3, double var5) {
- var0[0] = var1;
- var0[1] = var3 + var3 - var1 - var1;
- var0[2] = var1 - var3 - var3 + var5;
- }
-
- public static int getHorizontalParams(double var0, double var2, double var4, double[] var6) {
- if (var0 <= var2 && var2 <= var4) {
- return 0;
- } else {
- var0 -= var2;
- var4 -= var2;
- double var7 = var0 + var4;
- if (var7 == (double)0.0F) {
- return 0;
- } else {
- double var9 = var0 / var7;
- if (!(var9 <= (double)0.0F) && !(var9 >= (double)1.0F)) {
- var6[0] = var9;
- return 1;
- } else {
- return 0;
- }
- }
- }
- }
-
- public static void split(double[] var0, int var1, double var2) {
- double var12;
- var0[var1 + 8] = var12 = var0[var1 + 4];
- double var14;
- var0[var1 + 9] = var14 = var0[var1 + 5];
- double var8 = var0[var1 + 2];
- double var10 = var0[var1 + 3];
- var12 = var8 + (var12 - var8) * var2;
- var14 = var10 + (var14 - var10) * var2;
- double var4 = var0[var1 + 0];
- double var6 = var0[var1 + 1];
- var4 += (var8 - var4) * var2;
- var6 += (var10 - var6) * var2;
- var8 = var4 + (var12 - var4) * var2;
- var10 = var6 + (var14 - var6) * var2;
- var0[var1 + 2] = var4;
- var0[var1 + 3] = var6;
- var0[var1 + 4] = var8;
- var0[var1 + 5] = var10;
- var0[var1 + 6] = var12;
- var0[var1 + 7] = var14;
- }
-
- public Order2(double var1, double var3, double var5, double var7, double var9, double var11, int var13) {
- super(var13);
- if (var7 < var3) {
- var7 = var3;
- } else if (var7 > var11) {
- var7 = var11;
- }
-
- this.field_0 = var1;
- this.field_1 = var3;
- this.cx0 = var5;
- this.cy0 = var7;
- this.field_2 = var9;
- this.field_3 = var11;
- this.xmin = Math.min(Math.min(var1, var9), var5);
- this.xmax = Math.max(Math.max(var1, var9), var5);
- this.xcoeff0 = var1;
- this.xcoeff1 = var5 + var5 - var1 - var1;
- this.xcoeff2 = var1 - var5 - var5 + var9;
- this.ycoeff0 = var3;
- this.ycoeff1 = var7 + var7 - var3 - var3;
- this.ycoeff2 = var3 - var7 - var7 + var11;
- }
-
- public int getOrder() {
- return 2;
- }
-
- public double getXTop() {
- return this.field_0;
- }
-
- public double getYTop() {
- return this.field_1;
- }
-
- public double getXBot() {
- return this.field_2;
- }
-
- public double getYBot() {
- return this.field_3;
- }
-
- public double getXMin() {
- return this.xmin;
- }
-
- public double getXMax() {
- return this.xmax;
- }
-
- public double getX0() {
- return super.direction == 1 ? this.field_0 : this.field_2;
- }
-
- public double getY0() {
- return super.direction == 1 ? this.field_1 : this.field_3;
- }
-
- public double getCX0() {
- return this.cx0;
- }
-
- public double getCY0() {
- return this.cy0;
- }
-
- public double getX1() {
- return super.direction == -1 ? this.field_0 : this.field_2;
- }
-
- public double getY1() {
- return super.direction == -1 ? this.field_1 : this.field_3;
- }
-
- public double XforY(double var1) {
- if (var1 == this.field_1) {
- return this.field_0;
- } else {
- return var1 == this.field_3 ? this.field_2 : this.XforT(this.TforY(var1));
- }
- }
-
- public double TforY(double var1) {
- double[] var3 = new double[3];
- getEqn(var3, this.field_1, this.cy0, this.field_3);
- var3[0] -= var1;
- int var4 = QuadCurve2D.solveQuadratic(var3, var3);
- return Curve.firstValidRoot(var3, var4);
- }
-
- public double XforT(double var1) {
- return (this.xcoeff2 * var1 + this.xcoeff1) * var1 + this.xcoeff0;
- }
-
- public double YforT(double var1) {
- return (this.ycoeff2 * var1 + this.ycoeff1) * var1 + this.ycoeff0;
- }
-
- public double dXforT(double var1, int var3) {
- switch (var3) {
- case 0:
- return (this.xcoeff2 * var1 + this.xcoeff1) * var1 + this.xcoeff0;
- case 1:
- return (double)2.0F * this.xcoeff2 * var1 + this.xcoeff1;
- case 2:
- return (double)2.0F * this.xcoeff2;
- default:
- return (double)0.0F;
- }
- }
-
- public double dYforT(double var1, int var3) {
- switch (var3) {
- case 0:
- return (this.ycoeff2 * var1 + this.ycoeff1) * var1 + this.ycoeff0;
- case 1:
- return (double)2.0F * this.ycoeff2 * var1 + this.ycoeff1;
- case 2:
- return (double)2.0F * this.ycoeff2;
- default:
- return (double)0.0F;
- }
- }
-
- public double nextVertical(double var1, double var3) {
- double var5 = -this.ycoeff1 / ((double)2.0F * this.ycoeff2);
- return var5 > var1 && var5 < var3 ? var5 : var3;
- }
-
- public void enlarge(Rectangle2D var1) {
- var1.add(this.field_0, this.field_1);
- double var2 = -this.xcoeff1 / ((double)2.0F * this.xcoeff2);
- if (var2 > (double)0.0F && var2 < (double)1.0F) {
- var1.add(this.XforT(var2), this.YforT(var2));
- }
-
- var1.add(this.field_2, this.field_3);
- }
-
- public Curve getSubCurve(double var1, double var3, int var5) {
- if (var1 == this.field_1 && var3 == this.field_3) {
- return ((Curve)this).getWithDirection(var5);
- } else {
- double[] var6 = new double[10];
- double var7;
- if (var1 == this.field_1) {
- var7 = (double)0.0F;
- } else {
- getEqn(var6, this.field_1, this.cy0, this.field_3);
- var6[0] -= var1;
- int var11 = QuadCurve2D.solveQuadratic(var6, var6);
- var7 = Curve.firstValidRoot(var6, var11);
- }
-
- double var9;
- if (var3 == this.field_3) {
- var9 = (double)1.0F;
- } else {
- getEqn(var6, this.field_1, this.cy0, this.field_3);
- var6[0] -= var3;
- int var12 = QuadCurve2D.solveQuadratic(var6, var6);
- var9 = Curve.firstValidRoot(var6, var12);
- }
-
- var6[0] = this.field_0;
- var6[1] = this.field_1;
- var6[2] = this.cx0;
- var6[3] = this.cy0;
- var6[4] = this.field_2;
- var6[5] = this.field_3;
- if (var9 < (double)1.0F) {
- split(var6, 0, var9);
- }
-
- if (var7 <= (double)0.0F) {
- return new Order2(var6[0], var1, var6[2], var6[3], var6[4], var3, var5);
- } else {
- split(var6, 0, var7 / var9);
- return new Order2(var6[4], var1, var6[6], var6[7], var6[8], var3, var5);
- }
- }
- }
-
- public Curve getReversedCurve() {
- return new Order2(this.field_0, this.field_1, this.cx0, this.cy0, this.field_2, this.field_3, -super.direction);
- }
-
- public int getSegment(double[] var1) {
- var1[0] = this.cx0;
- var1[1] = this.cy0;
- if (super.direction == 1) {
- var1[2] = this.field_2;
- var1[3] = this.field_3;
- } else {
- var1[2] = this.field_0;
- var1[3] = this.field_1;
- }
-
- return 2;
- }
-
- public String controlPointString() {
- return "(" + Curve.round(this.cx0) + ", " + Curve.round(this.cy0) + "), ";
- }
- }
-