X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fdata%2FAltitude.java;h=af247cfe0217d07acce4791832a39e0207298b6e;hp=54a3f68eb862416791840dcfcb84009a5d191499;hb=da0b1f449260a0b4a94318006382a9039726ef3e;hpb=5625a1abadb5f2ca5f017fe7dbda1d5141cb637b diff --git a/tim/prune/data/Altitude.java b/tim/prune/data/Altitude.java index 54a3f68..af247cf 100644 --- a/tim/prune/data/Altitude.java +++ b/tim/prune/data/Altitude.java @@ -17,7 +17,9 @@ public class Altitude /** - * Constructor + * Constructor using String + * @param inString string to parse + * @param inFormat format of altitude, either metres or feet */ public Altitude(String inString, int inFormat) { @@ -35,7 +37,9 @@ public class Altitude /** - * Constructor + * Constructor with int vaue + * @param inValue int value of altitude + * @param inFormat format of altitude, either metres or feet */ public Altitude(int inValue, int inFormat) { @@ -99,6 +103,19 @@ public class Altitude * @return Interpolated Altitude object */ public static Altitude interpolate(Altitude inStart, Altitude inEnd, int inIndex, int inNumSteps) + { + return interpolate(inStart, inEnd, 1.0 * (inIndex + 1) / (inNumSteps + 1)); + } + + + /** + * Interpolate a new Altitude object between the given ones + * @param inStart start altitude + * @param inEnd end altitude + * @param inFrac fraction of distance from first point + * @return Interpolated Altitude object + */ + public static Altitude interpolate(Altitude inStart, Altitude inEnd, double inFrac) { // Check if altitudes are valid if (inStart == null || inEnd == null || !inStart.isValid() || !inEnd.isValid()) @@ -107,8 +124,8 @@ public class Altitude int altFormat = inStart.getFormat(); int startValue = inStart.getValue(); int endValue = inEnd.getValue(altFormat); - int newValue = startValue - + (int) ((endValue - startValue) * 1.0 / (inNumSteps + 1) * (inIndex + 1)); + // interpolate between start and end + int newValue = startValue + (int) ((endValue - startValue) * inFrac); return new Altitude(newValue, altFormat); } }