projects
/
sixth-3d.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Code refactoring
[sixth-3d.git]
/
src
/
main
/
java
/
eu
/
svjatoslav
/
sixth
/
e3d
/
geometry
/
Point3D.java
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
aff475e
..
f0f2390
100755
(executable)
--- a/
src/main/java/eu/svjatoslav/sixth/e3d/geometry/Point3D.java
+++ b/
src/main/java/eu/svjatoslav/sixth/e3d/geometry/Point3D.java
@@
-1,22
+1,23
@@
/*
/*
- * Sixth - System for data storage, computation, exploration and interaction.
- * Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
+ * Sixth 3D engine. Copyright ©2012-2020, 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.
* 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.
+ *
*/
package eu.svjatoslav.sixth.e3d.geometry;
*/
package eu.svjatoslav.sixth.e3d.geometry;
+import static java.lang.Math.*;
+
/**
/**
- * Used to represent point in a 3D space
, vector or speed
.
+ * Used to represent point in a 3D space
or vector
.
*/
*/
-public class Point3D
extends Point2D
implements Cloneable {
+public class Point3D implements Cloneable {
- public static final Point3D ZERO = new Point3D();
- public double z;
+ public double x, y, z;
public Point3D() {
}
public Point3D() {
}
@@
-46,12
+47,12
@@
public class Point3D extends Point2D implements Cloneable {
}
public Point3D add(final Point3D direction) {
}
public Point3D add(final Point3D direction) {
- super.add(direction);
+ x += direction.x;
+ y += direction.y;
z += direction.z;
return this;
}
z += direction.z;
return this;
}
- @Override
public Point3D clone() {
return new Point3D(this);
}
public Point3D clone() {
return new Point3D(this);
}
@@
-70,6
+71,10
@@
public class Point3D extends Point2D implements Cloneable {
return this;
}
return this;
}
+ public boolean isZero() {
+ return (x == 0) && (y == 0) && (z == 0);
+ }
+
public double getAngleXZ(final Point3D anotherPoint) {
return Math.atan2(x - anotherPoint.x, z - anotherPoint.z);
}
public double getAngleXZ(final Point3D anotherPoint) {
return Math.atan2(x - anotherPoint.x, z - anotherPoint.z);
}
@@
-78,6
+83,10
@@
public class Point3D extends Point2D implements Cloneable {
return Math.atan2(y - anotherPoint.y, z - anotherPoint.z);
}
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.
*/
/**
* Compute distance to another point.
*/
@@
-86,11
+95,13
@@
public class Point3D extends Point2D implements Cloneable {
final double yDelta = y - anotherPoint.y;
final double zDelta = z - anotherPoint.z;
final double yDelta = y - anotherPoint.y;
final double zDelta = z - anotherPoint.z;
- return Math
- .sqrt(((xDelta * xDelta) + (yDelta * yDelta) + (zDelta * zDelta)));
+ return sqrt(((xDelta * xDelta) + (yDelta * yDelta) + (zDelta * zDelta)));
+ }
+
+ public double getVectorLength() {
+ return sqrt(((x * x) + (y * y) + (z * z)));
}
}
- @Override
public Point3D invert() {
x = -x;
y = -y;
public Point3D invert() {
x = -x;
y = -y;
@@
-100,11
+111,11
@@
public class Point3D extends Point2D implements Cloneable {
public void rotate(final Point3D center, final double angleXZ,
final double angleYZ) {
public void rotate(final Point3D center, final double angleXZ,
final double angleYZ) {
- final double s1 =
Math.
sin(angleXZ);
- final double c1 =
Math.
cos(angleXZ);
+ final double s1 = sin(angleXZ);
+ final double c1 = cos(angleXZ);
- final double s2 =
Math.
sin(angleYZ);
- final double c2 =
Math.
cos(angleYZ);
+ final double s2 = sin(angleYZ);
+ final double c2 = cos(angleYZ);
x -= center.x;
y -= center.y;
x -= center.x;
y -= center.y;
@@
-121,7
+132,6
@@
public class Point3D extends Point2D implements Cloneable {
z = z2 + center.z;
}
z = z2 + center.z;
}
- @Override
public void roundToInteger() {
x = (int) x;
y = (int) y;
public void roundToInteger() {
x = (int) x;
y = (int) y;
@@
-149,7
+159,8
@@
public class Point3D extends Point2D implements Cloneable {
}
public Point3D subtract(final Point3D direction) {
}
public Point3D subtract(final Point3D direction) {
- super.subtract(direction);
+ x -= direction.x;
+ y -= direction.y;
z -= direction.z;
return this;
}
z -= direction.z;
return this;
}
@@
-174,7
+185,7
@@
public class Point3D extends Point2D implements Cloneable {
return this;
}
return this;
}
- public boolean
withinDrawingLimits
() {
+ public boolean
isVisible
() {
if (z > 0)
return true;
if (z > 0)
return true;
@@
-186,9
+197,9
@@
public class Point3D extends Point2D implements Cloneable {
return false;
}
return false;
}
- @Override
public Point3D zero() {
public Point3D zero() {
- super.zero();
+ x = 0;
+ y = 0;
z = 0;
return this;
}
z = 0;
return this;
}