]> gitweb.fperrin.net Git - GpsPrune.git/blob - tim/prune/data/Distance.java
Version 14, October 2012
[GpsPrune.git] / tim / prune / data / Distance.java
1 package tim.prune.data;
2
3 import tim.prune.config.Config;
4
5 /**
6  * Class to provide distance constants and functions
7  */
8 public abstract class Distance
9 {
10         // Geographical constants
11         /** Earth radius in metres */
12         private static final double EARTH_RADIUS_M = 6372795.0;
13
14
15         /**
16          * Convert the given angle in radians into a distance
17          * @param inAngDist angular distance in radians
18          * @return distance in currently configured distance units
19          */
20         public static double convertRadiansToDistance(double inAngDist)
21         {
22                 return convertRadiansToDistance(inAngDist, Config.getUnitSet().getDistanceUnit());
23         }
24
25         /**
26          * Convert the given angle in radians into a distance
27          * @param inAngDist angular distance in radians
28          * @param inUnit distance units
29          * @return distance in specified distance units
30          */
31         public static double convertRadiansToDistance(double inAngDist, Unit inUnit)
32         {
33                 // Multiply by appropriate factor
34                 return inAngDist * EARTH_RADIUS_M * inUnit.getMultFactorFromStd();
35         }
36
37         /**
38          * Convert the given distance into an angle in radians
39          * @param inDist distance to convert in the current distance units
40          * @return angular distance in radians
41          */
42         public static double convertDistanceToRadians(double inDist)
43         {
44                 return convertDistanceToRadians(inDist, Config.getUnitSet().getDistanceUnit());
45         }
46
47         /**
48          * Convert the given distance into an angle in radians
49          * @param inDist distance to convert in the current distance units
50          * @param inUnit distance unit
51          * @return angular distance in radians
52          */
53         public static double convertDistanceToRadians(double inDist, Unit inUnit)
54         {
55                 // Divide by appropriate factor
56                 return inDist / EARTH_RADIUS_M / inUnit.getMultFactorFromStd();
57         }
58 }