X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosRotation.java;h=e9c447ad1e4d69e355a96b25ab630809878a6fdf;hp=411ecbdfae7edd530fc4fd7e1c684499f053b65f;hb=b1a90adac9f6e2a609ce1ccd6749462bb5c9adbe;hpb=b13037fad0905c5933d1ff579122ba1357b02eea diff --git a/altoslib/AltosRotation.java b/altoslib/AltosRotation.java index 411ecbdf..e9c447ad 100644 --- a/altoslib/AltosRotation.java +++ b/altoslib/AltosRotation.java @@ -17,7 +17,7 @@ package org.altusmetrum.altoslib_11; -public class AltosRotation { +public class AltosRotation implements AltosHashable { private AltosQuaternion rotation; public double tilt() { @@ -47,4 +47,22 @@ public class AltosRotation { 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); + } }