![]() |
ATC
Advanced Trip Computer
|
00001 00006 #define NORD 1 00007 #define SUD -1 00008 00012 class Latitude { 00013 00014 private: 00015 00016 int orientation; // -1 => Sud, +1 => Nord 00017 unsigned int degree; // gradi 00018 unsigned int minute; // primi 00019 unsigned int second; // secondi 00020 00021 public: 00022 00031 Latitude(unsigned int d=0, unsigned int m=0, unsigned int s=0, int o = 1) 00032 { 00033 degree = 0; 00034 minute = 0; 00035 second = 0; 00036 orientation = 1; 00037 if (d<=89 && m<=59 && s<=59) 00038 { 00039 degree = d; minute = m; second = s; 00040 } 00041 else 00042 { 00043 if (d==90 && m==0 && s==0) 00044 { 00045 degree = d; minute = 0; second = 0; 00046 } 00047 else 00048 return; 00049 } 00050 if (o>=0) 00051 orientation = +1; 00052 else 00053 orientation = -1; 00054 } 00058 int getOrientation(void) 00059 { 00060 return orientation; 00061 } 00065 unsigned int getDegree(void) 00066 { 00067 return degree; 00068 } 00072 unsigned int getMinute(void) 00073 { 00074 return minute; 00075 } 00079 unsigned int getSecond(void) 00080 { 00081 return second; 00082 } 00086 double getLatitude(void) 00087 { 00088 double latitude = (double)degree + (double)minute/60. + (double)second/3600.; 00089 if (orientation < 0) 00090 return (-latitude); 00091 else 00092 return latitude; 00093 } 00094 };