* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_8;
+package org.altusmetrum.altoslib_11;
-public class AltosRotation {
+public class AltosRotation implements AltosHashable {
private AltosQuaternion rotation;
public double tilt() {
}
public void rotate(double dt, double x, double y, double z) {
- AltosQuaternion rot = AltosQuaternion.half_euler(x * dt, y * dt, z * dt);
+ AltosQuaternion rot = AltosQuaternion.half_euler(x * dt / 2.0, y * dt / 2.0, z * dt / 2.0);
rotation = rot.multiply(rotation).normalize();
}
AltosQuaternion up = new AltosQuaternion(0, 0, 0, sky);
rotation = up.vectors_to_rotation(orient);
}
+
+ public AltosHashSet hashSet() {
+ AltosHashSet h = new AltosHashSet();
+
+ h.putHashable("rotation", rotation);
+ return h;
+ }
+
+ public AltosRotation(AltosHashSet h) {
+ rotation = new AltosQuaternion(h.getHash("rotation"));
+ }
+
+ public static AltosRotation fromHashSet(AltosHashSet h, AltosRotation def) {
+ if (h == null)
+ return def;
+
+ return new AltosRotation(h);
+ }
}