示例#1
0
 /// <summary> Sets the value of this tuple to the scalar multiplication of tuple t1 and then
 /// adds tuple t2 (this = s*t1 + t2).
 /// </summary>
 /// <param name="s">the scalar value
 /// </param>
 /// <param name="t1">the tuple to be multipled
 /// </param>
 /// <param name="t2">the tuple to be added
 /// </param>
 public void  scaleAdd(float s, Tuple4f t1, Tuple4f t2)
 {
     x = s * t1.x + t2.x;
     y = s * t1.y + t2.y;
     z = s * t1.z + t2.z;
     w = s * t1.w + t2.w;
 }
示例#2
0
 /// <summary> Sets the value of this tuple to the value of tuple t1.</summary>
 /// <param name="t1">the tuple to be copied
 /// </param>
 public void  set_Renamed(Tuple4f t1)
 {
     x = t1.x;
     y = t1.y;
     z = t1.z;
     w = t1.w;
 }
示例#3
0
 /// <summary> Sets the value of this tuple to the negation of tuple t1. </summary>
 /// <param name="t1">the source vector
 /// </param>
 public void  negate(Tuple4f t1)
 {
     x = -t1.x;
     y = -t1.y;
     z = -t1.z;
     w = -t1.w;
 }
示例#4
0
 /// <summary> Sets the value of this tuple to the scalar multiplication of tuple t1.</summary>
 /// <param name="s">the scalar value
 /// </param>
 /// <param name="t1">the source tuple
 /// </param>
 public void  scale(float s, Tuple4f t1)
 {
     x = s * t1.x;
     y = s * t1.y;
     z = s * t1.z;
     w = s * t1.w;
 }
示例#5
0
 /// <summary> Sets the value of this tuple to the vector difference of tuple t1 and t2 (this = t1 - t2).</summary>
 /// <param name="t1">the first tuple
 /// </param>
 /// <param name="t2">the second tuple
 /// </param>
 public void  sub(Tuple4f t1, Tuple4f t2)
 {
     x = t1.x - t2.x;
     y = t1.y - t2.y;
     z = t1.z - t2.z;
     w = t1.w - t2.w;
 }
示例#6
0
 /// <summary> Sets the value of this tuple to the vector difference of itself and tuple t1 (this = this - t1).</summary>
 /// <param name="t1">the other tuple
 /// </param>
 public void  sub(Tuple4f t1)
 {
     x -= t1.x;
     y -= t1.y;
     z -= t1.z;
     w -= t1.w;
 }
示例#7
0
 /// <summary> Sets the value of this tuple to the vector sum of itself and tuple t1.</summary>
 /// <param name="t1"> the other tuple
 /// </param>
 public void  add(Tuple4f t1)
 {
     x += t1.x;
     y += t1.y;
     z += t1.z;
     w += t1.w;
 }
示例#8
0
 /// <summary> Sets the value of this tuple to the vector sum of tuples t1 and t2.</summary>
 /// <param name="t1">the first tuple
 /// </param>
 /// <param name="t2">the second tuple
 /// </param>
 public void  add(Tuple4f t1, Tuple4f t2)
 {
     x = t1.x + t2.x;
     y = t1.y + t2.y;
     z = t1.z + t2.z;
     w = t1.w + t2.w;
 }
示例#9
0
 /// <summary> Gets the value of this tuple and copies the values into the Tuple4f.</summary>
 /// <param name="t">Tuple4f object into which that values of this object are copied
 /// </param>
 public void  get_Renamed(Tuple4f t)
 {
     t.x = x;
     t.y = y;
     t.z = z;
     t.w = w;
 }
示例#10
0
 /// <summary> Sets the value of this tuple to the scalar multiplication of itself and then
 /// adds tuple t1 (this = s*this + t1).
 /// </summary>
 /// <param name="s">the scalar value
 /// </param>
 /// <param name="t1">the tuple to be added
 /// </param>
 public void  scaleAdd(float s, Tuple4f t1)
 {
     x = s * x + t1.x;
     y = s * y + t1.y;
     z = s * z + t1.z;
     w = s * z + t1.w;
 }
示例#11
0
        /// <summary> Linearly interpolates between this tuple and tuple t1 and places the
        /// result into this tuple: this = (1-alpha)*this + alpha*t1.
        /// </summary>
        /// <param name="t1">the first tuple
        /// </param>
        /// <param name="alpha">the alpha interpolation parameter
        ///
        /// </param>
        public void  interpolate(Tuple4f t1, float alpha)
        {
            float beta = 1 - alpha;

            x = beta * x + alpha * t1.x;
            y = beta * y + alpha * t1.y;
            z = beta * z + alpha * t1.z;
            w = beta * w + alpha * t1.w;
        }
示例#12
0
        /// <summary> Constructs and initializes a Quat4d from the specified Tuple4f. </summary>
        /// <param name="t1">the Tuple4f containing the initialization x y z w data
        /// </param>
        public Quat4d(Tuple4f t1)
        {
            double mag;

            mag = 1.0 / System.Math.Sqrt(t1.x * t1.x + t1.y * t1.y + t1.z * t1.z + t1.w * t1.w);
            x   = t1.x * mag;
            y   = t1.y * mag;
            z   = t1.z * mag;
            w   = t1.w * mag;
        }
示例#13
0
        /// <summary> Constructs and initializes a Quat4f from the specified Tuple4f. </summary>
        /// <param name="t1">the Tuple4f containing the initialization x y z w data
        /// </param>
        public Quat4f(Tuple4f t1)
        {
            float mag;

            //UPGRADE_WARNING: Data types in Visual C# might be different.  Verify the accuracy of narrowing conversions. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1042'"
            mag = (float)(1.0 / System.Math.Sqrt(t1.x * t1.x + t1.y * t1.y + t1.z * t1.z + t1.w * t1.w));
            x   = t1.x * mag;
            y   = t1.y * mag;
            z   = t1.z * mag;
            w   = t1.w * mag;
        }
示例#14
0
 /// <summary> Constructs and initializes a Tuple4d from the specified Tuple4f.</summary>
 /// <param name="t1">the Tuple4f containing the initialization x y z w data
 /// </param>
 public Tuple4d(Tuple4f t1)
 {
     set_Renamed(t1);
 }
示例#15
0
 /// <summary> Returns true if the L-infinite distance between this tuple and tuple t1 is
 /// less than or equal to the epsilon parameter, otherwise returns false. The L-infinite
 /// distance is equal to MAX[abs(x1-x2), abs(y1-y2), abs(z1-z2), abs(w1-w2)].
 /// </summary>
 /// <param name="t1">the tuple to be compared to this tuple
 /// </param>
 /// <param name="epsilon">the threshold value
 /// </param>
 public virtual bool epsilonEquals(Tuple4f t1, float epsilon)
 {
     return((System.Math.Abs(t1.x - this.x) <= epsilon) && (System.Math.Abs(t1.y - this.y) <= epsilon) && (System.Math.Abs(t1.z - this.z) <= epsilon) && (System.Math.Abs(t1.w - this.w) <= epsilon));
 }
示例#16
0
 /// <summary> Constructs and initializes a Vector4f from the specified Tuple4f.</summary>
 /// <param name="t1">the Tuple4f containing the initialization x y z w data
 /// </param>
 public Vector4f(Tuple4f t1) : base(t1)
 {
 }
示例#17
0
 /// <summary> Linearly interpolates between tuples t1 and t2 and places the
 /// result into this tuple: this = (1-alpha)*t1 + alpha*t2.
 /// </summary>
 /// <param name="t1">the first tuple
 /// </param>
 /// <param name="t2">the second tuple
 /// </param>
 /// <param name="alpha">the alpha interpolation parameter
 /// </param>
 public void  interpolate(Tuple4f t1, Tuple4f t2, float alpha)
 {
     set_Renamed(t1);
     interpolate(t2, alpha);
 }
示例#18
0
 /// <summary> Sets each component of the tuple parameter to its absolute value and
 /// places the modified values into this tuple.
 /// </summary>
 /// <param name="t">the source tuple, which will not be modified
 /// </param>
 public void  absolute(Tuple4f t)
 {
     set_Renamed(t);
     absolute();
 }
示例#19
0
 /// <summary> Clamps the maximum value of the tuple parameter to the max parameter and
 /// places the values into this tuple.
 /// </summary>
 /// <param name="max">the highest value in the tuple after clamping
 /// </param>
 /// <param name="t">the source tuple, which will not be modified
 /// </param>
 public void  clampMax(float max, Tuple4f t)
 {
     set_Renamed(t);
     clampMax(max);
 }
示例#20
0
 /// <summary> Clamps the minimum value of the tuple parameter to the min parameter
 /// and places the values into this tuple.
 /// </summary>
 /// <param name="min">the lowest value in the tuple after clamping
 /// </param>
 /// <parm>  t the source tuple, which will not be modified </parm>
 public void  clampMin(float min, Tuple4f t)
 {
     set_Renamed(t);
     clampMin(min);
 }
示例#21
0
 /// <summary> Clamps the tuple parameter to the range [low, high] and places the values
 /// into this tuple.
 /// </summary>
 /// <param name="min">the lowest value in the tuple after clamping
 /// </param>
 /// <param name="max">the highest value in the tuple after clamping
 /// </param>
 /// <param name="t">the source tuple, which will not be modified
 /// </param>
 public void  clamp(float min, float max, Tuple4f t)
 {
     set_Renamed(t);
     clamp(min, max);
 }
示例#22
0
 /// <summary> Constructs and initializes a Point4f from the specified Tuple4f.</summary>
 /// <param name="t1">the Tuple4f containing the initialization x y z w data
 /// </param>
 public Point4f(Tuple4f t1) : base(t1)
 {
 }
示例#23
0
        /// <summary> Returns a hash number based on the data values in this object.
        /// Two different Tuple4f objects with identical data  values
        /// (ie, returns true for equals(Tuple4f) ) will return the same hash number.
        /// Two vectors with different data members may return the same hash value,
        /// although this is not likely.
        /// </summary>
        //public override int GetHashCode()
        //{
        //    //UPGRADE_ISSUE: Method 'java.lang.Float.floatToIntBits' was not converted. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1000_javalangFloatfloatToIntBits_float'"
        //    return Float.floatToIntBits(x) ^ Float.floatToIntBits(y) ^ Float.floatToIntBits(z) ^ Float.floatToIntBits(w);
        //}

        /// <summary> Returns true if all of the data members of Tuple4f t1 are equal to the corresponding
        /// data members in this
        /// </summary>
        /// <param name="t1">the vector with which the comparison is made.
        /// </param>
        public bool equals(Tuple4f t1)
        {
            return(t1 != null && x == t1.x && y == t1.y && z == t1.z && w == t1.w);
        }