You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2008/02/15 11:13:41 UTC

svn commit: r627993 - in /commons/proper/math/trunk/src: java/org/apache/commons/math/geometry/Rotation.java test/org/apache/commons/math/geometry/RotationTest.java

Author: luc
Date: Fri Feb 15 02:13:39 2008
New Revision: 627993

URL: http://svn.apache.org/viewvc?rev=627993&view=rev
Log:
improved javadoc (null norm => zero norm)
improved exception consistency
(ArithmeticException => IllegalArgumentException for zero norm argument vectors)

Modified:
    commons/proper/math/trunk/src/java/org/apache/commons/math/geometry/Rotation.java
    commons/proper/math/trunk/src/test/org/apache/commons/math/geometry/RotationTest.java

Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/geometry/Rotation.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/geometry/Rotation.java?rev=627993&r1=627992&r2=627993&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/geometry/Rotation.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/geometry/Rotation.java Fri Feb 15 02:13:39 2008
@@ -139,13 +139,13 @@
    * +j.</p>
    * @param axis axis around which to rotate
    * @param angle rotation angle.
-   * @exception ArithmeticException if the axis norm is null
+   * @exception ArithmeticException if the axis norm is zero
    */
   public Rotation(Vector3D axis, double angle) {
 
     double norm = axis.getNorm();
     if (norm == 0) {
-      throw new ArithmeticException("null norm");
+      throw new ArithmeticException("zero norm for rotation axis");
     }
 
     double halfAngle = -0.5 * angle;
@@ -221,7 +221,7 @@
     // from the matrix. They all involve computing one element from
     // the diagonal of the matrix, and computing the three other ones
     // using a formula involving a division by the first element,
-    // which unfortunately can be null. Since the norm of the
+    // which unfortunately can be zero. Since the norm of the
     // quaternion is 1, we know at least one element has an absolute
     // value greater or equal to 0.5, so it is always possible to
     // select the right formula and avoid division by zero and even
@@ -284,6 +284,7 @@
    * @param u2 second vector of the origin pair
    * @param v1 desired image of u1 by the rotation
    * @param v2 desired image of u2 by the rotation
+   * @exception IllegalArgumentException if the norm of one of the vectors is zero
    */
   public Rotation(Vector3D u1, Vector3D u2, Vector3D v1, Vector3D v2) {
 
@@ -293,7 +294,7 @@
   double v1v1 = Vector3D.dotProduct(v1, v1);
   double v2v2 = Vector3D.dotProduct(v2, v2);
   if ((u1u1 == 0) || (u2u2 == 0) || (v1v1 == 0) || (v2v2 == 0)) {
-    throw new ArithmeticException("null norm");
+    throw new IllegalArgumentException("zero norm for rotation defining vector");
   }
 
   double u1x = u1.getX();
@@ -418,13 +419,13 @@
 
    * @param u origin vector
    * @param v desired image of u by the rotation
-   * @exception ArithmeticException if the norm of one of the vectors is null
+   * @exception IllegalArgumentException if the norm of one of the vectors is zero
    */
   public Rotation(Vector3D u, Vector3D v) {
 
     double normProduct = u.getNorm() * v.getNorm();
     if (normProduct == 0) {
-      throw new ArithmeticException("null norm");
+      throw new IllegalArgumentException("zero norm for rotation defining vector");
     }
 
     double dot = Vector3D.dotProduct(u, v);
@@ -1029,6 +1030,6 @@
   private final double q3;
 
   /** Serializable version identifier */
-  private static final long serialVersionUID = 5127795878493115119L;
+  private static final long serialVersionUID = 8225864499430109352L;
 
 }

Modified: commons/proper/math/trunk/src/test/org/apache/commons/math/geometry/RotationTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/geometry/RotationTest.java?rev=627993&r1=627992&r2=627993&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/org/apache/commons/math/geometry/RotationTest.java (original)
+++ commons/proper/math/trunk/src/test/org/apache/commons/math/geometry/RotationTest.java Fri Feb 15 02:13:39 2008
@@ -105,7 +105,8 @@
     try {
         new Rotation(u, new Vector3D());
         fail("an exception should have been thrown");
-      } catch (ArithmeticException e) {
+      } catch (IllegalArgumentException e) {
+        // expected behavior
       } catch (Exception e) {
         fail("unexpected exception");
     }
@@ -145,8 +146,9 @@
     try {
         new Rotation(u1, u2, new Vector3D(), v2);
         fail("an exception should have been thrown");
-      } catch (ArithmeticException e) {
-      } catch (Exception e) {
+    } catch (IllegalArgumentException e) {
+      // expected behavior
+    } catch (Exception e) {
         fail("unexpected exception");
     }