X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgeometry%2FPoint3D.java;h=3b8ad225a005a81cbab0a2c05c3ef64e50463aa5;hb=163f1c4b65973edd8528f8619e88db7da2de5c47;hp=8d723454c453370682e01c91f7a7cc2b9cc58e9e;hpb=ff13a51ec53b3d2ee1c9309152ed2b40366218b9;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 8d72345..3b8ad22 100755 --- a/src/main/java/eu/svjatoslav/sixth/e3d/geometry/Point3D.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/geometry/Point3D.java @@ -1,9 +1,11 @@ /* - * 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 eu.svjatoslav.sixth.e3d.renderer.octree.IntegerPoint; + import static java.lang.Math.*; /** @@ -36,6 +38,13 @@ public class Point3D implements Cloneable { this.z = z; } + public Point3D(IntegerPoint point) { + this.x = point.x; + this.y = point.y; + this.z = point.z; + } + + /** * Creates new current point by cloning coordinates from parent point. */ @@ -58,6 +67,21 @@ public class Point3D implements Cloneable { return this; } + /** + * Add coordinates of current point to other point. Value of current point will not be changed. + * + * @return current point. + */ + public Point3D addTo(final Point3D... otherPoints) { + for (final Point3D otherPoint : otherPoints) otherPoint.add(this); + return this; + } + + /** + * Create new point by cloning position of current point. + * + * @return newly created clone. + */ public Point3D clone() { return new Point3D(this); } @@ -143,12 +167,12 @@ public class Point3D implements Cloneable { *

* See also: Let's remove Quaternions from every 3D Engine * - * @param center center point. + * @param center center point. * @param angleXZ angle around XZ axis. * @param angleYZ angle around YZ axis. */ public Point3D rotate(final Point3D center, final double angleXZ, - final double angleYZ) { + final double angleYZ) { final double s1 = sin(angleXZ); final double c1 = cos(angleXZ); @@ -215,6 +239,7 @@ public class Point3D implements Cloneable { /** * Set current point coordinates to given values. + * * @param x X coordinate. * @param y Y coordinate. * @param z Z coordinate.