UNCLASSIFIED

GeographicTranslator
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
MGRSorUSNGCoordinates.cpp
Go to the documentation of this file.
1 // CLASSIFICATION: UNCLASSIFIED
2 
3 #include <string.h>
5 #include "Precision.h"
6 
7 
8 using namespace MSP::CCS;
9 
10 
12  CoordinateTuple( CoordinateType::militaryGridReferenceSystem ),
13  _precision( Precision::tenthOfSecond )
14 {
15  strncpy( _MGRSString, "31NEA0000000000", 20 );
16 }
17 
18 
20  CoordinateTuple( _coordinateType ),
21  _precision( Precision::tenthOfSecond )
22 {
23  strncpy( _MGRSString, "31NEA0000000000", 20 );
24 }
25 
26 
27 MGRSorUSNGCoordinates::MGRSorUSNGCoordinates( CoordinateType::Enum _coordinateType, const char* __MGRSString ) :
28  CoordinateTuple( _coordinateType ),
29  _precision( Precision::tenthOfSecond )
30 {
31  strncpy( _MGRSString, __MGRSString, 20 );
32  _MGRSString[20] = '\0';
33 }
34 
35 
36 MGRSorUSNGCoordinates::MGRSorUSNGCoordinates( CoordinateType::Enum _coordinateType, const char* __MGRSString, Precision::Enum __precision ) :
37  CoordinateTuple( _coordinateType ),
38  _precision( __precision )
39 {
40  strncpy( _MGRSString, __MGRSString, 20 );
41  _MGRSString[20] = '\0';
42 }
43 
44 
45 MGRSorUSNGCoordinates::MGRSorUSNGCoordinates( CoordinateType::Enum _coordinateType, const char* __warningMessage, const char* __MGRSString, Precision::Enum __precision ) :
46  CoordinateTuple( _coordinateType ),
47  _precision( __precision )
48 {
49  strncpy( _MGRSString, __MGRSString, 20 );
50  _MGRSString[20] = '\0';
51 
52  int length = strlen( __warningMessage );
53  strncpy( _warningMessage, __warningMessage, length );
54  _warningMessage[ length ] = '\0';
55 }
56 
57 
59 {
61 
62  strncpy( _MGRSString, c._MGRSString, 20 );
63  _MGRSString[20] = '\0';
64 
65  _precision = c._precision;
66 
67  int length = strlen( c._warningMessage );
68  strncpy( _warningMessage, c._warningMessage, length );
69  _warningMessage[ length ] = '\0';
70 }
71 
72 
74 {
75 }
76 
77 
79 {
80  if( this != &c )
81  {
83 
84  strncpy( _MGRSString, c._MGRSString, 20 );
85  _MGRSString[20] = '\0';
86 
87  _precision = c._precision;
88 
89  int length = strlen( c._warningMessage );
90  strncpy( _warningMessage, c._warningMessage, length );
91  _warningMessage[ length ] = '\0';
92  }
93 
94  return *this;
95 }
96 
97 
98 void MGRSorUSNGCoordinates::set( char __MGRSString[21] )
99 {
100  strncpy( _MGRSString, __MGRSString, 20 );
101  _MGRSString[20] = '\0';
102 }
103 
104 
106 {
107  return _MGRSString;
108 }
109 
110 
112 {
113  Precision::Enum temp_precision = _precision;
114 
115  if (temp_precision < 0)
116  temp_precision = Precision::degree;
117  if (temp_precision > 5)
118  temp_precision = Precision::tenthOfSecond;
119 
120  return temp_precision;
121 }
122 
123 // CLASSIFICATION: UNCLASSIFIED