summaryrefslogtreecommitdiff
path: root/ihl/utils/IHLMathUtils.java
diff options
context:
space:
mode:
authorFoghrye4 <foghrye4@gmail.com>2017-06-17 08:12:18 +0300
committerFoghrye4 <foghrye4@gmail.com>2017-06-17 08:12:18 +0300
commitdc3df3edd5843bde0c1335d6a8e460b2c832aa48 (patch)
treeaf13bfeee567f2351e35e1ef176d168fe37c8aac /ihl/utils/IHLMathUtils.java
parent1da8dcd58647e34c9af94ceeecaeaf3b0d08c48c (diff)
full project files
Diffstat (limited to 'ihl/utils/IHLMathUtils.java')
-rw-r--r--ihl/utils/IHLMathUtils.java103
1 files changed, 0 insertions, 103 deletions
diff --git a/ihl/utils/IHLMathUtils.java b/ihl/utils/IHLMathUtils.java
deleted file mode 100644
index 8cab3c9..0000000
--- a/ihl/utils/IHLMathUtils.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package ihl.utils;
-
-public class IHLMathUtils {
- private final static int accuracy_level = 1024;
- private final static float[] sqrt_table = new float[accuracy_level];
-
- public static float sqrt(float value) {
- float value1 = value;
- int multiplier = 1;
- while (value1 >= 1.0f) {
- multiplier=multiplier<<2;
- value1 = value / (multiplier * multiplier);
- }
- return multiplier * sqrt_table[(int) (value1 * accuracy_level)];
- }
-
- public static float[] vector_vector_multiply(float[] v1, float[] v2) {
- float c_x = v1[1] * v2[2] - v2[1] * v1[2];
- float c_y = v2[0] * v1[2] - v1[0] * v2[2];
- float c_z = v1[0] * v2[1] - v2[0] * v1[1];
- return new float[] { c_x, c_y, c_z };
- }
-
- public static void normalize_vector(float[] v1) {
- float d = (float) Math.sqrt(v1[0] * v1[0] + v1[1] * v1[1] + v1[2] * v1[2]);
- if (d == 0) { // Nothing can we do. Create new vector towards up
- // direction.
- v1[0] = 0;
- v1[1] = 1;
- v1[2] = 0;
- } else {
- v1[0] /= d;
- v1[1] /= d;
- v1[2] /= d;
- }
- }
-
- public static void scale_vector_to_value(float[] v1, float v2) {
- float d = (float) Math.sqrt(v1[0] * v1[0] + v1[1] * v1[1] + v1[2] * v1[2]);
- if (d == 0) { // Nothing can we do. Create new vector towards up
- // direction.
- v1[0] = 0;
- v1[1] = v2;
- v1[2] = 0;
- } else {
- v1[0] = v1[0] * v2 / d;
- v1[1] = v1[1] * v2 / d;
- v1[2] = v1[2] * v2 / d;
- }
- }
-
- public static void vector_add(float[] fs, float x, float y, float z) {
- fs[0] += x;
- fs[1] += y;
- fs[2] += z;
- }
-
- static {
- for (int i = 0; i < accuracy_level; i++) {
- sqrt_table[i] = (float) Math.sqrt((double) i / accuracy_level);
- }
- }
-
- public static float[] vector_return_difference(double[] v1, double[] v2) {
- return new float[] { (float) (v1[0] - v2[0]), (float) (v1[1] - v2[1]), (float) (v1[2] - v2[2]) };
- }
-
- public static float[] vector_return_difference(float[] v1, double[] v2) {
- return new float[] { (float) (v1[0] - v2[0]), (float) (v1[1] - v2[1]), (float) (v1[2] - v2[2]) };
- }
-
- public static float[] vector_return_difference(int[] v1, double[] v2) {
- return new float[] { (float) (v1[0] - v2[0]), (float) (v1[1] - v2[1]), (float) (v1[2] - v2[2]) };
- }
-
- public static void multiply_vector_to_value(float[] v1, float v2) {
- v1[0] *= v2;
- v1[1] *= v2;
- v1[2] *= v2;
- }
-
- public static void vector_add(double[] v1, float[] v2) {
- v1[0] += v2[0];
- v1[1] += v2[1];
- v1[2] += v2[2];
- }
-
- public static float[] get_triangle_normal(double[][] triangle1) {
- float[] v1 = vector_return_difference(triangle1[1], triangle1[0]);
- float[] v2 = vector_return_difference(triangle1[2], triangle1[0]);
- return vector_vector_multiply(v1, v2);
- }
-
- public static int sign(int value) {
- if (value > 0)
- return 1;
- else if (value < 0)
- return -1;
- else
- return 0;
- }
-
-}