summaryrefslogtreecommitdiff
path: root/altoslib/AltosGreatCircle.java
diff options
context:
space:
mode:
Diffstat (limited to 'altoslib/AltosGreatCircle.java')
-rw-r--r--altoslib/AltosGreatCircle.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/altoslib/AltosGreatCircle.java b/altoslib/AltosGreatCircle.java
index 03e05678..9ec808a5 100644
--- a/altoslib/AltosGreatCircle.java
+++ b/altoslib/AltosGreatCircle.java
@@ -20,7 +20,7 @@ package org.altusmetrum.altoslib_11;
import java.lang.Math;
import java.io.*;
-public class AltosGreatCircle implements Cloneable, Serializable {
+public class AltosGreatCircle implements Cloneable, AltosHashable {
public double distance;
public double bearing;
public double range;
@@ -103,4 +103,31 @@ public class AltosGreatCircle implements Cloneable, Serializable {
range = 0;
elevation = 0;
}
+
+ public AltosHashSet hashSet() {
+ AltosHashSet h = new AltosHashSet();
+
+ h.putDouble("distance", distance);
+ h.putDouble("bearing", bearing);
+ h.putDouble("range", range);
+ h.putDouble("elevation", elevation);
+
+ return h;
+ }
+
+ public AltosGreatCircle(AltosHashSet h) {
+ this();
+
+ distance = h.getDouble("distance", distance);
+ bearing = h.getDouble("bearing", bearing);
+ range = h.getDouble("range", range);
+ elevation = h.getDouble("elevation", elevation);
+ }
+
+ public static AltosGreatCircle fromHashSet(AltosHashSet h, AltosGreatCircle def) {
+ if (h == null)
+ return def;
+
+ return new AltosGreatCircle(h);
+ }
}