summaryrefslogtreecommitdiff
path: root/altoslib/AltosRotation.java
diff options
context:
space:
mode:
Diffstat (limited to 'altoslib/AltosRotation.java')
-rw-r--r--altoslib/AltosRotation.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/altoslib/AltosRotation.java b/altoslib/AltosRotation.java
index e9c447ad..4b7ab407 100644
--- a/altoslib/AltosRotation.java
+++ b/altoslib/AltosRotation.java
@@ -17,7 +17,7 @@
package org.altusmetrum.altoslib_11;
-public class AltosRotation implements AltosHashable {
+public class AltosRotation implements AltosHashable, AltosJsonable {
private AltosQuaternion rotation;
public double tilt() {
@@ -55,6 +55,10 @@ public class AltosRotation implements AltosHashable {
return h;
}
+ public AltosJson json() {
+ return rotation.json();
+ }
+
public AltosRotation(AltosHashSet h) {
rotation = new AltosQuaternion(h.getHash("rotation"));
}
@@ -65,4 +69,15 @@ public class AltosRotation implements AltosHashable {
return new AltosRotation(h);
}
+
+ public AltosRotation(AltosJson j) {
+ rotation = new AltosQuaternion(j);
+ }
+
+ public static AltosRotation fromJson(AltosJson j, AltosRotation def) {
+ if (j == null)
+ return def;
+
+ return new AltosRotation(j);
+ }
}