|
@@ -1,48 +0,0 @@
|
|
|
-/*
|
|
|
- * This file is part of MissileWars (https://github.com/Butzlabben/missilewars).
|
|
|
- * Copyright (c) 2018-2021 Daniel Nägele.
|
|
|
- *
|
|
|
- * MissileWars is free software: you can redistribute it and/or modify
|
|
|
- * it under the terms of the GNU General Public License as published by
|
|
|
- * the Free Software Foundation, either version 3 of the License, or
|
|
|
- * (at your option) any later version.
|
|
|
- *
|
|
|
- * MissileWars is distributed in the hope that it will be useful,
|
|
|
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
- * GNU General Public License for more details.
|
|
|
- *
|
|
|
- * You should have received a copy of the GNU General Public License
|
|
|
- * along with MissileWars. If not, see <https://www.gnu.org/licenses/>.
|
|
|
- */
|
|
|
-
|
|
|
-package de.butzlabben.missilewars.util;
|
|
|
-
|
|
|
-import org.bukkit.util.Vector;
|
|
|
-
|
|
|
-public class MathUtil {
|
|
|
-
|
|
|
- /**
|
|
|
- * Checks if two doubles are close enough to be considered "equal".
|
|
|
- * As we have a limited precision, the normal "==" operator would make some of our math not working.
|
|
|
- * As long as the difference is smaller than 1.0E-8D, it will return true. This value was chosen, as
|
|
|
- * {@link org.bukkit.util.Vector#equals(Object)} uses a more losen tolerance.
|
|
|
- *
|
|
|
- * @param value1 the first double
|
|
|
- * @param value2 the second double
|
|
|
- *
|
|
|
- * @return true if the double values are close enough to be considered equal
|
|
|
- */
|
|
|
- public static boolean closeEnoughEquals(final double value1, final double value2) {
|
|
|
- return Math.abs(value1 - value2) < 1.0E-8D;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public static boolean areMultiples(final Vector vector1, final Vector vector2) {
|
|
|
- double factor = 0;
|
|
|
- if (vector1.getX() != 0 && vector2.getX() != 0) factor = vector1.getX() / vector2.getX();
|
|
|
- if (vector1.getY() != 0 && vector2.getY() != 0 && factor != 0) factor = vector1.getY() / vector2.getY();
|
|
|
- if (vector1.getZ() != 0 && vector2.getZ() != 0 && factor != 0) factor = vector1.getZ() / vector2.getZ();
|
|
|
- return vector1.equals(vector2.clone().multiply(factor));
|
|
|
- }
|
|
|
-}
|