X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgeometry%2FPoint3D.java;h=295c10a512713dbc82ac5ca17091e336b4df3a5e;hb=197ac1b87328bb5b06ba52d3768af04b2007b087;hp=462f310ac3f2e3aad1dcf0fdfcdfe88e9a67bfa0;hpb=baab2e2c2ad89695293f3136311c585c9a5afed1;p=sixth-3d.git diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/geometry/Point3D.java b/src/main/java/eu/svjatoslav/sixth/e3d/geometry/Point3D.java index 462f310..295c10a 100755 --- a/src/main/java/eu/svjatoslav/sixth/e3d/geometry/Point3D.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/geometry/Point3D.java @@ -1,25 +1,21 @@ /* - * Sixth 3D engine. Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 3 of the GNU Lesser General Public License - * or later as published by the Free Software Foundation. + * 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.cos; -import static java.lang.Math.sin; -import static java.lang.Math.sqrt; +import static java.lang.Math.*; /** * Used to represent point in a 3D space or vector. */ -public class Point3D extends Point2D implements Cloneable { +public class Point3D implements Cloneable { - public double z; + public double x, y, z; public Point3D() { } @@ -49,12 +45,12 @@ public class Point3D extends Point2D implements Cloneable { } public Point3D add(final Point3D direction) { - super.add(direction); + x += direction.x; + y += direction.y; z += direction.z; return this; } - @Override public Point3D clone() { return new Point3D(this); } @@ -73,8 +69,7 @@ public class Point3D extends Point2D implements Cloneable { return this; } - @Override - public boolean isZero(){ + public boolean isZero() { return (x == 0) && (y == 0) && (z == 0); } @@ -86,6 +81,10 @@ public class Point3D extends Point2D implements Cloneable { return Math.atan2(y - anotherPoint.y, z - anotherPoint.z); } + public double getAngleXY(final Point3D anotherPoint) { + return Math.atan2(x - anotherPoint.x, y - anotherPoint.y); + } + /** * Compute distance to another point. */ @@ -97,12 +96,10 @@ public class Point3D extends Point2D implements Cloneable { return sqrt(((xDelta * xDelta) + (yDelta * yDelta) + (zDelta * zDelta))); } - @Override public double getVectorLength() { return sqrt(((x * x) + (y * y) + (z * z))); } - @Override public Point3D invert() { x = -x; y = -y; @@ -133,7 +130,6 @@ public class Point3D extends Point2D implements Cloneable { z = z2 + center.z; } - @Override public void roundToInteger() { x = (int) x; y = (int) y; @@ -161,7 +157,8 @@ public class Point3D extends Point2D implements Cloneable { } public Point3D subtract(final Point3D direction) { - super.subtract(direction); + x -= direction.x; + y -= direction.y; z -= direction.z; return this; } @@ -198,9 +195,9 @@ public class Point3D extends Point2D implements Cloneable { return false; } - @Override public Point3D zero() { - super.zero(); + x = 0; + y = 0; z = 0; return this; }