001package armyc2.c5isr.renderer.utilities; 002 003/** 004 * Units of Measure to be used with {@link MilStdAttributes#DistanceUnits} 005 * Default is meters. 006 */ 007public class DistanceUnit 008{ 009 private static final double FEET_PER_METER = 3.28084; 010 private static final double FLIGHT_LEVEL_PER_METER = 0.0328084; // hundreds of feet 011 public final double conversionFactor; 012 public final String label; 013 014 public DistanceUnit(double conversionFactor, String label){ 015 this.conversionFactor = conversionFactor; 016 this.label = label; 017 } 018 019 public static DistanceUnit parse(String distanceUnitText){ 020 if(distanceUnitText == null){ 021 return null; 022 } 023 String[] parts = distanceUnitText.split(","); 024 if(parts.length != 2){ 025 return null; 026 } 027 double conversionFactor = Double.parseDouble(parts[0].trim()); 028 String label = parts[1].trim(); 029 030 return new DistanceUnit(conversionFactor, label); 031 } 032 033 public String toAttribute(){ 034 return conversionFactor + "," + label; 035 } 036 037 public static DistanceUnit METERS = new DistanceUnit(1, "M"); 038 public static DistanceUnit FEET = new DistanceUnit(FEET_PER_METER, "FT"); 039 public static DistanceUnit FLIGHT_LEVEL = new DistanceUnit(FLIGHT_LEVEL_PER_METER, "FL"); 040}