Files
NGECore2/src/resources/common/MathUtilities.java
T
Waverunner ffc9aec1b1 Added Inspiration ticks, effects for Multi-Tier Performance Abilities
(BugFix) Build-A-Buff applies correct stats now
-- NOTE: Stats that the player does not have yet may not show in
character sheet but the server will recognize still recognize their new
stats
(Added) Inspiration Ticks
(BugFix) Inspiration Buffs time corresponds to the players inspiration
ticks.
(BugFix) "Watch" on radial menu working again
(Added) Put in the effects for the multi-tiered performance abilities
(Feature) You can now type /[performance effect] [tier number] to use
that specific effect
(BugFix) showFlyText boolean for showing to observers or not (fixes
other players exp gain shown to other players)
(Code) Few minor additions/fixes
2014-03-22 11:47:37 -04:00

72 lines
2.5 KiB
Java

/*******************************************************************************
* Copyright (c) 2013 <Project SWG>
*
* This File is part of NGECore2.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
package resources.common;
import java.math.BigDecimal;
import engine.resources.scene.*;
public class MathUtilities {
public static Quaternion rotateQuaternion(Quaternion quaternion, float radians, Point3D axis) {
float sin = (float) Math.sin(radians / 2);
Quaternion rotateQ = new Quaternion((float) Math.cos(radians / 2), axis.x * sin, axis.y * sin, axis.z * sin);
return multiplyQuaternions(rotateQ, quaternion);
}
public static Quaternion multiplyQuaternions(Quaternion q1, Quaternion q2) {
return new Quaternion(q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z,
q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,
q1.w * q2.y + q1.y * q2.w + q1.z * q2.x - q1.x * q2.z,
q1.w * q2.z + q1.z * q2.w + q1.x * q2.y - q1.y * q2.x);
}
/**
* Converts seconds to a whole hour.
* @author Waverunner
* @param seconds
* @return hour(s)
*/
public static int secondsToWholeHours(int seconds) {
BigDecimal dec = new BigDecimal(seconds);
return dec.divide(new BigDecimal(3600), BigDecimal.ROUND_FLOOR).intValue();
}
/**
* Converts seconds to minutes of the hour.
* @author Waverunner
* @param seconds
* @return hour(s)
*/
public static int secondsToHourMinutes(int seconds) {
BigDecimal dec = new BigDecimal(seconds);
return dec.remainder(new BigDecimal(3600)).divide(new BigDecimal(60), BigDecimal.ROUND_FLOOR).intValue();
}
}