home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / ext / vecmath.jar / javax / vecmath / AxisAngle4d.class (.txt) next >
Encoding:
Java Class File  |  2002-06-19  |  5.4 KB  |  292 lines

  1. package javax.vecmath;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class AxisAngle4d implements Serializable, Cloneable {
  6.    static final long serialVersionUID = 3644296204459140589L;
  7.    // $FF: renamed from: x double
  8.    public double field_0;
  9.    // $FF: renamed from: y double
  10.    public double field_1;
  11.    // $FF: renamed from: z double
  12.    public double field_2;
  13.    public double angle;
  14.    static final double EPS = 1.0E-6;
  15.  
  16.    public AxisAngle4d(double var1, double var3, double var5, double var7) {
  17.       this.field_0 = var1;
  18.       this.field_1 = var3;
  19.       this.field_2 = var5;
  20.       this.angle = var7;
  21.    }
  22.  
  23.    public AxisAngle4d(double[] var1) {
  24.       this.field_0 = var1[0];
  25.       this.field_1 = var1[1];
  26.       this.field_2 = var1[2];
  27.       this.angle = var1[3];
  28.    }
  29.  
  30.    public AxisAngle4d(AxisAngle4d var1) {
  31.       this.field_0 = var1.field_0;
  32.       this.field_1 = var1.field_1;
  33.       this.field_2 = var1.field_2;
  34.       this.angle = var1.angle;
  35.    }
  36.  
  37.    public AxisAngle4d(AxisAngle4f var1) {
  38.       this.field_0 = (double)var1.x;
  39.       this.field_1 = (double)var1.y;
  40.       this.field_2 = (double)var1.z;
  41.       this.angle = (double)var1.angle;
  42.    }
  43.  
  44.    public AxisAngle4d(Vector3d var1, double var2) {
  45.       this.field_0 = var1.x;
  46.       this.field_1 = var1.y;
  47.       this.field_2 = var1.z;
  48.       this.angle = var2;
  49.    }
  50.  
  51.    public AxisAngle4d() {
  52.       this.field_0 = (double)0.0F;
  53.       this.field_1 = (double)0.0F;
  54.       this.field_2 = (double)1.0F;
  55.       this.angle = (double)0.0F;
  56.    }
  57.  
  58.    public final void set(double var1, double var3, double var5, double var7) {
  59.       this.field_0 = var1;
  60.       this.field_1 = var3;
  61.       this.field_2 = var5;
  62.       this.angle = var7;
  63.    }
  64.  
  65.    public final void set(double[] var1) {
  66.       this.field_0 = var1[0];
  67.       this.field_1 = var1[1];
  68.       this.field_2 = var1[2];
  69.       this.angle = var1[3];
  70.    }
  71.  
  72.    public final void set(AxisAngle4d var1) {
  73.       this.field_0 = var1.field_0;
  74.       this.field_1 = var1.field_1;
  75.       this.field_2 = var1.field_2;
  76.       this.angle = var1.angle;
  77.    }
  78.  
  79.    public final void set(AxisAngle4f var1) {
  80.       this.field_0 = (double)var1.x;
  81.       this.field_1 = (double)var1.y;
  82.       this.field_2 = (double)var1.z;
  83.       this.angle = (double)var1.angle;
  84.    }
  85.  
  86.    public final void set(Vector3d var1, double var2) {
  87.       this.field_0 = var1.x;
  88.       this.field_1 = var1.y;
  89.       this.field_2 = var1.z;
  90.       this.angle = var2;
  91.    }
  92.  
  93.    public final void get(double[] var1) {
  94.       var1[0] = this.field_0;
  95.       var1[1] = this.field_1;
  96.       var1[2] = this.field_2;
  97.       var1[3] = this.angle;
  98.    }
  99.  
  100.    public final void set(Matrix4f var1) {
  101.       Matrix3d var2 = new Matrix3d();
  102.       var1.get(var2);
  103.       this.field_0 = (double)((float)(var2.m21 - var2.m12));
  104.       this.field_1 = (double)((float)(var2.m02 - var2.m20));
  105.       this.field_2 = (double)((float)(var2.m10 - var2.m01));
  106.       double var3 = this.field_0 * this.field_0 + this.field_1 * this.field_1 + this.field_2 * this.field_2;
  107.       if (var3 > 1.0E-6) {
  108.          var3 = Math.sqrt(var3);
  109.          double var5 = (double)0.5F * var3;
  110.          double var7 = (double)0.5F * (var2.m00 + var2.m11 + var2.m22 - (double)1.0F);
  111.          this.angle = (double)((float)Math.atan2(var5, var7));
  112.          double var9 = (double)1.0F / var3;
  113.          this.field_0 *= var9;
  114.          this.field_1 *= var9;
  115.          this.field_2 *= var9;
  116.       } else {
  117.          this.field_0 = (double)0.0F;
  118.          this.field_1 = (double)1.0F;
  119.          this.field_2 = (double)0.0F;
  120.          this.angle = (double)0.0F;
  121.       }
  122.  
  123.    }
  124.  
  125.    public final void set(Matrix4d var1) {
  126.       Matrix3d var2 = new Matrix3d();
  127.       var1.get(var2);
  128.       this.field_0 = (double)((float)(var2.m21 - var2.m12));
  129.       this.field_1 = (double)((float)(var2.m02 - var2.m20));
  130.       this.field_2 = (double)((float)(var2.m10 - var2.m01));
  131.       double var3 = this.field_0 * this.field_0 + this.field_1 * this.field_1 + this.field_2 * this.field_2;
  132.       if (var3 > 1.0E-6) {
  133.          var3 = Math.sqrt(var3);
  134.          double var5 = (double)0.5F * var3;
  135.          double var7 = (double)0.5F * (var2.m00 + var2.m11 + var2.m22 - (double)1.0F);
  136.          this.angle = (double)((float)Math.atan2(var5, var7));
  137.          double var9 = (double)1.0F / var3;
  138.          this.field_0 *= var9;
  139.          this.field_1 *= var9;
  140.          this.field_2 *= var9;
  141.       } else {
  142.          this.field_0 = (double)0.0F;
  143.          this.field_1 = (double)1.0F;
  144.          this.field_2 = (double)0.0F;
  145.          this.angle = (double)0.0F;
  146.       }
  147.  
  148.    }
  149.  
  150.    public final void set(Matrix3f var1) {
  151.       this.field_0 = (double)(var1.m21 - var1.m12);
  152.       this.field_1 = (double)(var1.m02 - var1.m20);
  153.       this.field_2 = (double)(var1.m10 - var1.m01);
  154.       double var2 = this.field_0 * this.field_0 + this.field_1 * this.field_1 + this.field_2 * this.field_2;
  155.       if (var2 > 1.0E-6) {
  156.          var2 = Math.sqrt(var2);
  157.          double var4 = (double)0.5F * var2;
  158.          double var6 = (double)0.5F * ((double)(var1.m00 + var1.m11 + var1.m22) - (double)1.0F);
  159.          this.angle = (double)((float)Math.atan2(var4, var6));
  160.          double var8 = (double)1.0F / var2;
  161.          this.field_0 *= var8;
  162.          this.field_1 *= var8;
  163.          this.field_2 *= var8;
  164.       } else {
  165.          this.field_0 = (double)0.0F;
  166.          this.field_1 = (double)1.0F;
  167.          this.field_2 = (double)0.0F;
  168.          this.angle = (double)0.0F;
  169.       }
  170.  
  171.    }
  172.  
  173.    public final void set(Matrix3d var1) {
  174.       this.field_0 = (double)((float)(var1.m21 - var1.m12));
  175.       this.field_1 = (double)((float)(var1.m02 - var1.m20));
  176.       this.field_2 = (double)((float)(var1.m10 - var1.m01));
  177.       double var2 = this.field_0 * this.field_0 + this.field_1 * this.field_1 + this.field_2 * this.field_2;
  178.       if (var2 > 1.0E-6) {
  179.          var2 = Math.sqrt(var2);
  180.          double var4 = (double)0.5F * var2;
  181.          double var6 = (double)0.5F * (var1.m00 + var1.m11 + var1.m22 - (double)1.0F);
  182.          this.angle = (double)((float)Math.atan2(var4, var6));
  183.          double var8 = (double)1.0F / var2;
  184.          this.field_0 *= var8;
  185.          this.field_1 *= var8;
  186.          this.field_2 *= var8;
  187.       } else {
  188.          this.field_0 = (double)0.0F;
  189.          this.field_1 = (double)1.0F;
  190.          this.field_2 = (double)0.0F;
  191.          this.angle = (double)0.0F;
  192.       }
  193.  
  194.    }
  195.  
  196.    public final void set(Quat4f var1) {
  197.       double var2 = (double)(var1.x * var1.x + var1.y * var1.y + var1.z * var1.z);
  198.       if (var2 > 1.0E-6) {
  199.          var2 = Math.sqrt(var2);
  200.          double var4 = (double)1.0F / var2;
  201.          this.field_0 = (double)var1.x * var4;
  202.          this.field_1 = (double)var1.y * var4;
  203.          this.field_2 = (double)var1.z * var4;
  204.          this.angle = (double)2.0F * Math.atan2(var2, (double)var1.w);
  205.       } else {
  206.          this.field_0 = (double)0.0F;
  207.          this.field_1 = (double)1.0F;
  208.          this.field_2 = (double)0.0F;
  209.          this.angle = (double)0.0F;
  210.       }
  211.  
  212.    }
  213.  
  214.    public final void set(Quat4d var1) {
  215.       double var2 = var1.x * var1.x + var1.y * var1.y + var1.z * var1.z;
  216.       if (var2 > 1.0E-6) {
  217.          var2 = Math.sqrt(var2);
  218.          double var4 = (double)1.0F / var2;
  219.          this.field_0 = var1.x * var4;
  220.          this.field_1 = var1.y * var4;
  221.          this.field_2 = var1.z * var4;
  222.          this.angle = (double)2.0F * Math.atan2(var2, var1.w);
  223.       } else {
  224.          this.field_0 = (double)0.0F;
  225.          this.field_1 = (double)1.0F;
  226.          this.field_2 = (double)0.0F;
  227.          this.angle = (double)0.0F;
  228.       }
  229.  
  230.    }
  231.  
  232.    public String toString() {
  233.       return "(" + this.field_0 + ", " + this.field_1 + ", " + this.field_2 + ", " + this.angle + ")";
  234.    }
  235.  
  236.    public boolean equals(AxisAngle4d var1) {
  237.       try {
  238.          return this.field_0 == var1.field_0 && this.field_1 == var1.field_1 && this.field_2 == var1.field_2 && this.angle == var1.angle;
  239.       } catch (NullPointerException var3) {
  240.          return false;
  241.       }
  242.    }
  243.  
  244.    public boolean equals(Object var1) {
  245.       try {
  246.          AxisAngle4d var2 = (AxisAngle4d)var1;
  247.          return this.field_0 == var2.field_0 && this.field_1 == var2.field_1 && this.field_2 == var2.field_2 && this.angle == var2.angle;
  248.       } catch (NullPointerException var4) {
  249.          return false;
  250.       } catch (ClassCastException var5) {
  251.          return false;
  252.       }
  253.    }
  254.  
  255.    public boolean epsilonEquals(AxisAngle4d var1, double var2) {
  256.       double var4 = this.field_0 - var1.field_0;
  257.       if ((var4 < (double)0.0F ? -var4 : var4) > var2) {
  258.          return false;
  259.       } else {
  260.          var4 = this.field_1 - var1.field_1;
  261.          if ((var4 < (double)0.0F ? -var4 : var4) > var2) {
  262.             return false;
  263.          } else {
  264.             var4 = this.field_2 - var1.field_2;
  265.             if ((var4 < (double)0.0F ? -var4 : var4) > var2) {
  266.                return false;
  267.             } else {
  268.                var4 = this.angle - var1.angle;
  269.                return !((var4 < (double)0.0F ? -var4 : var4) > var2);
  270.             }
  271.          }
  272.       }
  273.    }
  274.  
  275.    public int hashCode() {
  276.       long var1 = 1L;
  277.       var1 = 31L * var1 + Double.doubleToLongBits(this.field_0);
  278.       var1 = 31L * var1 + Double.doubleToLongBits(this.field_1);
  279.       var1 = 31L * var1 + Double.doubleToLongBits(this.field_2);
  280.       var1 = 31L * var1 + Double.doubleToLongBits(this.angle);
  281.       return (int)(var1 ^ var1 >> 32);
  282.    }
  283.  
  284.    public Object clone() {
  285.       try {
  286.          return super.clone();
  287.       } catch (CloneNotSupportedException var2) {
  288.          throw new InternalError();
  289.       }
  290.    }
  291. }
  292.