Updated readability of the code.
[sixth-3d.git] / src / main / java / eu / svjatoslav / sixth / e3d / geometry / Point2D.java
index 06f1ded..a6bb6a1 100755 (executable)
@@ -1,14 +1,16 @@
 /*
- * Sixth 3D engine. Author: Svjatoslav Agejenko. 
+ * Sixth 3D engine. Author: Svjatoslav Agejenko.
  * This project is released under Creative Commons Zero (CC0) license.
- *
-*
  */
-
 package eu.svjatoslav.sixth.e3d.geometry;
 
 import static java.lang.Math.sqrt;
 
+/**
+ * Used to represent point in a 2D space or vector.
+ *
+ * @see Point3D
+ */
 public class Point2D implements Cloneable {
 
     public double x, y;
@@ -21,17 +23,26 @@ public class Point2D implements Cloneable {
         this.y = y;
     }
 
-    public Point2D(final Point2D source) {
-        x = source.x;
-        y = source.y;
+    public Point2D(final Point2D parent) {
+        x = parent.x;
+        y = parent.y;
     }
 
-    public Point2D add(final Point2D direction) {
-        x += direction.x;
-        y += direction.y;
+
+    /**
+     * Add other point to current point. Value of other point will not be changed.
+     *
+     * @return current point.
+     */
+    public Point2D add(final Point2D otherPoint) {
+        x += otherPoint.x;
+        y += otherPoint.y;
         return this;
     }
 
+    /**
+     * @return true if current point coordinates are equal to zero.
+     */
     public boolean isZero() {
         return (x == 0) && (y == 0);
     }
@@ -41,12 +52,22 @@ public class Point2D implements Cloneable {
         return new Point2D(this);
     }
 
-    public void clone(final Point2D source) {
-        x = source.x;
-        y = source.y;
+    /**
+     * Copy coordinates from other point to current point. Value of other point will not be changed.
+     */
+    public void clone(final Point2D otherPoint) {
+        x = otherPoint.x;
+        y = otherPoint.y;
     }
 
-    public Point2D getMiddle(final Point2D p1, final Point2D p2) {
+    /**
+     * Set current point to middle of two other points.
+     *
+     * @param p1 first point.
+     * @param p2 second point.
+     * @return current point.
+     */
+    public Point2D setToMiddle(final Point2D p1, final Point2D p2) {
         x = (p1.x + p2.x) / 2d;
         y = (p1.y + p2.y) / 2d;
         return this;
@@ -58,6 +79,9 @@ public class Point2D implements Cloneable {
 
     /**
      * Compute distance to another point.
+     *
+     * @param anotherPoint point to compute distance to.
+     * @return distance from current point to another point.
      */
     public double getDistanceTo(final Point2D anotherPoint) {
         final double xDiff = x - anotherPoint.x;
@@ -66,31 +90,60 @@ public class Point2D implements Cloneable {
         return sqrt(((xDiff * xDiff) + (yDiff * yDiff)));
     }
 
+    /**
+     * Calculate length of vector.
+     *
+     * @return length of vector.
+     */
     public double getVectorLength() {
         return sqrt(((x * x) + (y * y)));
     }
 
+    /**
+     * Invert current point.
+     *
+     * @return current point.
+     */
     public Point2D invert() {
         x = -x;
         y = -y;
         return this;
     }
 
+    /**
+     * Round current point coordinates to integer.
+     */
     public void roundToInteger() {
         x = (int) x;
         y = (int) y;
     }
 
-    public Point2D subtract(final Point2D point) {
-        x -= point.x;
-        y -= point.y;
+    /**
+     * Subtract other point from current point. Value of other point will not be changed.
+     *
+     * @return current point.
+     */
+    public Point2D subtract(final Point2D otherPoint) {
+        x -= otherPoint.x;
+        y -= otherPoint.y;
         return this;
     }
 
+    /**
+     * Convert current point to 3D point.
+     * Value of the z coordinate will be set to zero.
+     *
+     * @return 3D point.
+     */
     public Point3D to3D() {
         return new Point3D(x, y, 0);
     }
 
+    /**
+     * Set current point to zero.
+     *
+     * @return current point.
+     */
     public Point2D zero() {
         x = 0;
         y = 0;