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 / AxisAngle4f.class (.txt) < prev    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 AxisAngle4f implements Serializable, Cloneable {
  6.    static final long serialVersionUID = -163246355858070601L;
  7.    // $FF: renamed from: x float
  8.    public float field_0;
  9.    // $FF: renamed from: y float
  10.    public float field_1;
  11.    // $FF: renamed from: z float
  12.    public float field_2;
  13.    public float angle;
  14.    static final double EPS = 1.0E-6;
  15.  
  16.    public AxisAngle4f(float var1, float var2, float var3, float var4) {
  17.       this.field_0 = var1;
  18.       this.field_1 = var2;
  19.       this.field_2 = var3;
  20.       this.angle = var4;
  21.    }
  22.  
  23.    public AxisAngle4f(float[] 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 AxisAngle4f(AxisAngle4f 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 AxisAngle4f(AxisAngle4d var1) {
  38.       this.field_0 = (float)var1.x;
  39.       this.field_1 = (float)var1.y;
  40.       this.field_2 = (float)var1.z;
  41.       this.angle = (float)var1.angle;
  42.    }
  43.  
  44.    public AxisAngle4f(Vector3f var1, float 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 AxisAngle4f() {
  52.       this.field_0 = 0.0F;
  53.       this.field_1 = 0.0F;
  54.       this.field_2 = 1.0F;
  55.       this.angle = 0.0F;
  56.    }
  57.  
  58.    public final void set(float var1, float var2, float var3, float var4) {
  59.       this.field_0 = var1;
  60.       this.field_1 = var2;
  61.       this.field_2 = var3;
  62.       this.angle = var4;
  63.    }
  64.  
  65.    public final void set(float[] 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(AxisAngle4f 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(AxisAngle4d var1) {
  80.       this.field_0 = (float)var1.x;
  81.       this.field_1 = (float)var1.y;
  82.       this.field_2 = (float)var1.z;
  83.       this.angle = (float)var1.angle;
  84.    }
  85.  
  86.    public final void set(Vector3f var1, float 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(float[] 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(Quat4f var1) {
  101.       double var2 = (double)(var1.x * var1.x + var1.y * var1.y + var1.z * var1.z);
  102.       if (var2 > 1.0E-6) {
  103.          var2 = Math.sqrt(var2);
  104.          double var4 = (double)1.0F / var2;
  105.          this.field_0 = (float)((double)var1.x * var4);
  106.          this.field_1 = (float)((double)var1.y * var4);
  107.          this.field_2 = (float)((double)var1.z * var4);
  108.          this.angle = (float)((double)2.0F * Math.atan2(var2, (double)var1.w));
  109.       } else {
  110.          this.field_0 = 0.0F;
  111.          this.field_1 = 1.0F;
  112.          this.field_2 = 0.0F;
  113.          this.angle = 0.0F;
  114.       }
  115.  
  116.    }
  117.  
  118.    public final void set(Quat4d var1) {
  119.       double var2 = var1.x * var1.x + var1.y * var1.y + var1.z * var1.z;
  120.       if (var2 > 1.0E-6) {
  121.          var2 = Math.sqrt(var2);
  122.          double var4 = (double)1.0F / var2;
  123.          this.field_0 = (float)(var1.x * var4);
  124.          this.field_1 = (float)(var1.y * var4);
  125.          this.field_2 = (float)(var1.z * var4);
  126.          this.angle = (float)((double)2.0F * Math.atan2(var2, var1.w));
  127.       } else {
  128.          this.field_0 = 0.0F;
  129.          this.field_1 = 1.0F;
  130.          this.field_2 = 0.0F;
  131.          this.angle = 0.0F;
  132.       }
  133.  
  134.    }
  135.  
  136.    public final void set(Matrix4f var1) {
  137.       Matrix3f var2 = new Matrix3f();
  138.       var1.get(var2);
  139.       this.field_0 = var2.m21 - var2.m12;
  140.       this.field_1 = var2.m02 - var2.m20;
  141.       this.field_2 = var2.m10 - var2.m01;
  142.       double var3 = (double)(this.field_0 * this.field_0 + this.field_1 * this.field_1 + this.field_2 * this.field_2);
  143.       if (var3 > 1.0E-6) {
  144.          var3 = Math.sqrt(var3);
  145.          double var5 = (double)0.5F * var3;
  146.          double var7 = (double)0.5F * ((double)(var2.m00 + var2.m11 + var2.m22) - (double)1.0F);
  147.          this.angle = (float)Math.atan2(var5, var7);
  148.          double var9 = (double)1.0F / var3;
  149.          this.field_0 = (float)((double)this.field_0 * var9);
  150.          this.field_1 = (float)((double)this.field_1 * var9);
  151.          this.field_2 = (float)((double)this.field_2 * var9);
  152.       } else {
  153.          this.field_0 = 0.0F;
  154.          this.field_1 = 1.0F;
  155.          this.field_2 = 0.0F;
  156.          this.angle = 0.0F;
  157.       }
  158.  
  159.    }
  160.  
  161.    public final void set(Matrix4d var1) {
  162.       Matrix3d var2 = new Matrix3d();
  163.       var1.get(var2);
  164.       this.field_0 = (float)(var2.m21 - var2.m12);
  165.       this.field_1 = (float)(var2.m02 - var2.m20);
  166.       this.field_2 = (float)(var2.m10 - var2.m01);
  167.       double var3 = (double)(this.field_0 * this.field_0 + this.field_1 * this.field_1 + this.field_2 * this.field_2);
  168.       if (var3 > 1.0E-6) {
  169.          var3 = Math.sqrt(var3);
  170.          double var5 = (double)0.5F * var3;
  171.          double var7 = (double)0.5F * (var2.m00 + var2.m11 + var2.m22 - (double)1.0F);
  172.          this.angle = (float)Math.atan2(var5, var7);
  173.          double var9 = (double)1.0F / var3;
  174.          this.field_0 = (float)((double)this.field_0 * var9);
  175.          this.field_1 = (float)((double)this.field_1 * var9);
  176.          this.field_2 = (float)((double)this.field_2 * var9);
  177.       } else {
  178.          this.field_0 = 0.0F;
  179.          this.field_1 = 1.0F;
  180.          this.field_2 = 0.0F;
  181.          this.angle = 0.0F;
  182.       }
  183.  
  184.    }
  185.  
  186.    public final void set(Matrix3f var1) {
  187.       this.field_0 = var1.m21 - var1.m12;
  188.       this.field_1 = var1.m02 - var1.m20;
  189.       this.field_2 = var1.m10 - var1.m01;
  190.       double var2 = (double)(this.field_0 * this.field_0 + this.field_1 * this.field_1 + this.field_2 * this.field_2);
  191.       if (var2 > 1.0E-6) {
  192.          var2 = Math.sqrt(var2);
  193.          double var4 = (double)0.5F * var2;
  194.          double var6 = (double)0.5F * ((double)(var1.m00 + var1.m11 + var1.m22) - (double)1.0F);
  195.          this.angle = (float)Math.atan2(var4, var6);
  196.          double var8 = (double)1.0F / var2;
  197.          this.field_0 = (float)((double)this.field_0 * var8);
  198.          this.field_1 = (float)((double)this.field_1 * var8);
  199.          this.field_2 = (float)((double)this.field_2 * var8);
  200.       } else {
  201.          this.field_0 = 0.0F;
  202.          this.field_1 = 1.0F;
  203.          this.field_2 = 0.0F;
  204.          this.angle = 0.0F;
  205.       }
  206.  
  207.    }
  208.  
  209.    public final void set(Matrix3d var1) {
  210.       this.field_0 = (float)(var1.m21 - var1.m12);
  211.       this.field_1 = (float)(var1.m02 - var1.m20);
  212.       this.field_2 = (float)(var1.m10 - var1.m01);
  213.       double var2 = (double)(this.field_0 * this.field_0 + this.field_1 * this.field_1 + this.field_2 * this.field_2);
  214.       if (var2 > 1.0E-6) {
  215.          var2 = Math.sqrt(var2);
  216.          double var4 = (double)0.5F * var2;
  217.          double var6 = (double)0.5F * (var1.m00 + var1.m11 + var1.m22 - (double)1.0F);
  218.          this.angle = (float)Math.atan2(var4, var6);
  219.          double var8 = (double)1.0F / var2;
  220.          this.field_0 = (float)((double)this.field_0 * var8);
  221.          this.field_1 = (float)((double)this.field_1 * var8);
  222.          this.field_2 = (float)((double)this.field_2 * var8);
  223.       } else {
  224.          this.field_0 = 0.0F;
  225.          this.field_1 = 1.0F;
  226.          this.field_2 = 0.0F;
  227.          this.angle = 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(AxisAngle4f 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.          AxisAngle4f var2 = (AxisAngle4f)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(AxisAngle4f var1, float var2) {
  256.       float var3 = this.field_0 - var1.field_0;
  257.       if ((var3 < 0.0F ? -var3 : var3) > var2) {
  258.          return false;
  259.       } else {
  260.          var3 = this.field_1 - var1.field_1;
  261.          if ((var3 < 0.0F ? -var3 : var3) > var2) {
  262.             return false;
  263.          } else {
  264.             var3 = this.field_2 - var1.field_2;
  265.             if ((var3 < 0.0F ? -var3 : var3) > var2) {
  266.                return false;
  267.             } else {
  268.                var3 = this.angle - var1.angle;
  269.                return !((var3 < 0.0F ? -var3 : var3) > var2);
  270.             }
  271.          }
  272.       }
  273.    }
  274.  
  275.    public int hashCode() {
  276.       long var1 = 1L;
  277.       var1 = 31L * var1 + (long)Float.floatToIntBits(this.field_0);
  278.       var1 = 31L * var1 + (long)Float.floatToIntBits(this.field_1);
  279.       var1 = 31L * var1 + (long)Float.floatToIntBits(this.field_2);
  280.       var1 = 31L * var1 + (long)Float.floatToIntBits(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.