X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=src%2Fjavajs%2Futil%2FV3d.java;fp=src%2Fjavajs%2Futil%2FV3d.java;h=9060575b4b3e0a886b653259a7ca29d77d62a215;hp=7fd4f58f7f6ba93bf462e33ba40c4fc84da8962f;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/src/javajs/util/V3d.java b/src/javajs/util/V3d.java index 7fd4f58..9060575 100644 --- a/src/javajs/util/V3d.java +++ b/src/javajs/util/V3d.java @@ -1,93 +1,93 @@ -/* - 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 3 element vector that is represented by double precision floating point - * x,y,z coordinates. If this value represents a normal, then it should be - * normalized. - * - * @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 class V3d extends T3d { - - /** - * Sets this vector to be the vector cross product of vectors v1 and v2. - * - * @param v1 - * the first vector - * @param v2 - * the second vector - */ - public final void cross(V3d v1, V3d v2) { - // store on stack once for aliasing-safty - // i.e. safe when a.cross(a, b) - set(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - - v1.y * v2.x); - } - - /** - * Normalizes this vector in place. - */ - public final void normalize() { - double d = length(); - - // zero-div may occur. - x /= d; - y /= d; - z /= d; - } - - /** - * Computes the dot product of the this vector and vector v. - * - * @param v - * the other vector - * @return this.dot.v - */ - public final double dot(V3d v) { - return x * v.x + y * v.y + z * v.z; - } - - /** - * Returns the squared length of this vector. - * - * @return the squared length of this vector - */ - public final double lengthSquared() { - return x * x + y * y + z * z; - } - - /** - * Returns the length of this vector. - * - * @return the length of this vector - */ - public final double length() { - return Math.sqrt(lengthSquared()); - } - -} +/* + 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 3 element vector that is represented by double precision floating point + * x,y,z coordinates. If this value represents a normal, then it should be + * normalized. + * + * @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 class V3d extends T3d { + + /** + * Sets this vector to be the vector cross product of vectors v1 and v2. + * + * @param v1 + * the first vector + * @param v2 + * the second vector + */ + public final void cross(V3d v1, V3d v2) { + // store on stack once for aliasing-safty + // i.e. safe when a.cross(a, b) + set(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y + - v1.y * v2.x); + } + + /** + * Normalizes this vector in place. + */ + public final void normalize() { + double d = length(); + + // zero-div may occur. + x /= d; + y /= d; + z /= d; + } + + /** + * Computes the dot product of the this vector and vector v. + * + * @param v + * the other vector + * @return this.dot.v + */ + public final double dot(V3d v) { + return x * v.x + y * v.y + z * v.z; + } + + /** + * Returns the squared length of this vector. + * + * @return the squared length of this vector + */ + public final double lengthSquared() { + return x * x + y * y + z * z; + } + + /** + * Returns the length of this vector. + * + * @return the length of this vector + */ + public final double length() { + return Math.sqrt(lengthSquared()); + } + +}