-/*
- Copyright (C) 1997,1998,1999
- Kenji Hiranabe, Eiwa System Management, Inc.
-
- This program is free software.
- Implemented by Kenji Hiranabe(hiranabe@esm.co.jp),
- conforming to the Java(TM) 3D API specification by Sun Microsystems.
-
- Permission to use, copy, modify, distribute and sell this software
- and its documentation for any purpose is hereby granted without fee,
- provided that the above copyright notice appear in all copies and
- that both that copyright notice and this permission notice appear
- in supporting documentation. Kenji Hiranabe and Eiwa System Management,Inc.
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS IS" with NO WARRANTY.
-*/
-package javajs.util;
-
-/**
- * A generic 4 element tuple that is represented by single precision floating
- * point x,y,z and w coordinates.
- *
- * @version specification 1.1, implementation $Revision: 1.9 $, $Date:
- * 2006/07/28 17:01:32 $
- * @author Kenji hiranabe
- *
- * additions by Bob Hanson hansonr@stolaf.edu 9/30/2012
- * for unique constructor and method names
- * for the optimization of compiled JavaScript using Java2Script
- */
-public abstract class T4 extends T3 {
-
- /**
- * The w coordinate.
- */
- public float w;
-
- /**
- * Constructs and initializes a Tuple4f to (0,0,0,0).
- *
- */
- public T4() {
- }
-
- /**
- * Sets the value of this tuple to the specified xyzw coordinates.
- *
- * @param x
- * the x coordinate
- * @param y
- * the y coordinate
- * @param z
- * the z coordinate
- * @param w
- * the w coordinate
- */
- public final void set4(float x, float y, float z, float w) {
- this.x = x;
- this.y = y;
- this.z = z;
- this.w = w;
- }
-
- /**
- * Sets the value of this tuple to the scalar multiplication of itself.
- *
- * @param s
- * the scalar value
- */
- public final void scale4(float s) {
- scale(s);
- w *= s;
- }
-
- /**
- * 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.
- */
- @Override
- public int hashCode() {
- return T3.floatToIntBits(x) ^ T3.floatToIntBits(y)
- ^ T3.floatToIntBits(z) ^ T3.floatToIntBits(w);
- }
-
- /**
- * Returns true if all of the data members of Object are equal to the
- * corresponding data members in this
- *
- * @param o
- * the vector with which the comparison is made.
- */
- @Override
- public boolean equals(Object o) {
- if (!(o instanceof T4))
- return false;
- T4 t = (T4) o;
- return (this.x == t.x && this.y == t.y && this.z == t.z && this.w == t.w);
- }
-
- /**
- * Returns a string that contains the values of this Tuple4f. The form is
- * (x,y,z,w).
- *
- * @return the String representation
- */
- @Override
- public String toString() {
- return "(" + x + ", " + y + ", " + z + ", " + w + ")";
- }
-
- @Override
- public String toJSON() {
- return "[" + x + ", " + y + ", " + z + ", " + w + "]";
- }
-
-}