You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2019/09/26 12:54:28 UTC

[commons-geometry] 01/07: GEOMETRY-46: Add additional UnitVector methods

This is an automated email from the ASF dual-hosted git repository.

erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-geometry.git

commit a7ef97fea91e6ed73df653041d0efdfa15f1ec26
Author: Steven Fontaine <si...@gmail.com>
AuthorDate: Tue Sep 24 13:22:16 2019 -0500

    GEOMETRY-46: Add additional UnitVector methods
---
 .../org/apache/commons/geometry/euclidean/oned/Vector1D.java | 12 ++++++++++++
 .../apache/commons/geometry/euclidean/threed/Vector3D.java   | 12 ++++++++++++
 .../org/apache/commons/geometry/euclidean/twod/Vector2D.java | 12 ++++++++++++
 3 files changed, 36 insertions(+)

diff --git a/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/oned/Vector1D.java b/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/oned/Vector1D.java
index 07f3417..56b0af0 100644
--- a/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/oned/Vector1D.java
+++ b/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/oned/Vector1D.java
@@ -409,6 +409,12 @@ public class Vector1D extends EuclideanVector<Vector1D> {
 
         /** {@inheritDoc} */
         @Override
+        public double normSq() {
+            return 1;
+        }
+
+        /** {@inheritDoc} */
+        @Override
         public Vector1D normalize() {
             return this;
         }
@@ -418,5 +424,11 @@ public class Vector1D extends EuclideanVector<Vector1D> {
         public Vector1D withNorm(final double mag) {
             return multiply(mag);
         }
+
+        /** {@inheritDoc} */
+        @Override
+        public UnitVector negate() {
+            return new UnitVector(-super.x);
+        }
     }
 }
diff --git a/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/threed/Vector3D.java b/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/threed/Vector3D.java
index 977c32a..1ad050b 100644
--- a/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/threed/Vector3D.java
+++ b/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/threed/Vector3D.java
@@ -622,6 +622,12 @@ public class Vector3D extends MultiDimensionalEuclideanVector<Vector3D> {
 
         /** {@inheritDoc} */
         @Override
+        public double normSq() {
+            return 1;
+        }
+
+        /** {@inheritDoc} */
+        @Override
         public Vector3D normalize() {
             return this;
         }
@@ -631,5 +637,11 @@ public class Vector3D extends MultiDimensionalEuclideanVector<Vector3D> {
         public Vector3D withNorm(final double mag) {
             return multiply(mag);
         }
+
+        /** {@inheritDoc} */
+        @Override
+        public UnitVector negate() {
+            return new UnitVector(-super.x, -super.y, -super.z);
+        }
     }
 }
diff --git a/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/twod/Vector2D.java b/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/twod/Vector2D.java
index 8f3cf7b..27eef71 100644
--- a/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/twod/Vector2D.java
+++ b/commons-geometry-euclidean/src/main/java/org/apache/commons/geometry/euclidean/twod/Vector2D.java
@@ -556,6 +556,12 @@ public class Vector2D extends MultiDimensionalEuclideanVector<Vector2D> {
 
         /** {@inheritDoc} */
         @Override
+        public double normSq() {
+            return 1;
+        }
+
+        /** {@inheritDoc} */
+        @Override
         public Vector2D normalize() {
             return this;
         }
@@ -565,5 +571,11 @@ public class Vector2D extends MultiDimensionalEuclideanVector<Vector2D> {
         public Vector2D withNorm(final double mag) {
             return multiply(mag);
         }
+
+        /** {@inheritDoc} */
+        @Override
+        public UnitVector negate() {
+            return new UnitVector(-super.x, -super.y);
+        }
     }
 }