Switch from GPLv2 to GPLv2+
[fw/altos] / altoslib / AltosGreatCircle.java
index 8fd380a100ada00c645698460426dbd56223adc4..6e5bd362372f4c633b423594b94cb37e296bb420 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 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
@@ -20,7 +21,7 @@ package org.altusmetrum.altoslib_11;
 import java.lang.Math;
 import java.io.*;
 
-public class AltosGreatCircle implements Cloneable, AltosHashable, AltosJsonable {
+public class AltosGreatCircle implements Cloneable {
        public double   distance;
        public double   bearing;
        public double   range;
@@ -71,7 +72,10 @@ public class AltosGreatCircle implements Cloneable, AltosHashable, AltosJsonable
                                course = 2 * Math.PI-course;
                }
                distance = d * earth_radius;
-               bearing = course * 180/Math.PI;
+               if (Double.isNaN(course) || Double.isInfinite(course))
+                       bearing = 0;
+               else
+                       bearing = course * 180/Math.PI;
 
                double height_diff = end_alt - start_alt;
                range = Math.sqrt(distance * distance + height_diff * height_diff);
@@ -103,58 +107,4 @@ public class AltosGreatCircle implements Cloneable, AltosHashable, AltosJsonable
                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 AltosJson json() {
-               AltosJson j = new AltosJson();
-
-               j.put("distance", distance);
-               j.put("bearing", bearing);
-               j.put("range", range);
-               j.put("elevation", elevation);
-
-               return j;
-       }
-
-       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);
-       }
-
-       public AltosGreatCircle(AltosJson j) {
-               this();
-
-               distance = j.get_double("distance", distance);
-               bearing = j.get_double("bearing", bearing);
-               range = j.get_double("range", range);
-               elevation = j.get_double("elevation", elevation);
-       }
-
-       public static AltosGreatCircle fromJson(AltosJson j, AltosGreatCircle def) {
-               if (j == null)
-                       return def;
-
-               return new AltosGreatCircle(j);
-       }
 }