00001
00002
00003 #include <string.h>
00004 #include "BNGCoordinates.h"
00005
00006
00007 using namespace MSP::CCS;
00008
00009
00010 BNGCoordinates::BNGCoordinates() :
00011 CoordinateTuple( CoordinateType::britishNationalGrid ),
00012 _precision( Precision::tenthOfSecond )
00013 {
00014 strncpy( _BNGString, "SV 0000000000", 20 );
00015 }
00016
00017
00018 BNGCoordinates::BNGCoordinates( CoordinateType::Enum _coordinateType ) :
00019 CoordinateTuple( _coordinateType ),
00020 _precision( Precision::tenthOfSecond )
00021 {
00022 strncpy( _BNGString, "SV 0000000000", 20 );
00023 }
00024
00025
00026 BNGCoordinates::BNGCoordinates( CoordinateType::Enum _coordinateType, const char* __BNGString ) :
00027 CoordinateTuple( _coordinateType ),
00028 _precision( Precision::tenthOfSecond )
00029 {
00030 strncpy( _BNGString, __BNGString, 20 );
00031 _BNGString[20] = '\0';
00032 }
00033
00034
00035 BNGCoordinates::BNGCoordinates( CoordinateType::Enum _coordinateType, const char* __BNGString, Precision::Enum __precision ) :
00036 CoordinateTuple( _coordinateType ),
00037 _precision( __precision )
00038 {
00039 strncpy( _BNGString, __BNGString, 20 );
00040 _BNGString[20] = '\0';
00041 }
00042
00043
00044 BNGCoordinates::BNGCoordinates( CoordinateType::Enum _coordinateType, const char* __warningMessage, const char* __BNGString, Precision::Enum __precision ) :
00045 CoordinateTuple( _coordinateType ),
00046 _precision( __precision )
00047 {
00048 strncpy( _BNGString, __BNGString, 20 );
00049 _BNGString[20] = '\0';
00050
00051 int length = strlen( __warningMessage );
00052 strncpy( _warningMessage, __warningMessage, length );
00053 _warningMessage[ length ] = '\0';
00054 }
00055
00056
00057 BNGCoordinates::BNGCoordinates( const BNGCoordinates &c )
00058 {
00059 _coordinateType = c._coordinateType;
00060
00061 strncpy( _BNGString, c._BNGString, 20 );
00062 _BNGString[20] = '\0';
00063
00064 _precision = c._precision;
00065
00066 int length = strlen( c._warningMessage );
00067 strncpy( _warningMessage, c._warningMessage, length );
00068 _warningMessage[ length ] = '\0';
00069 }
00070
00071
00072 BNGCoordinates::~BNGCoordinates()
00073 {
00074 }
00075
00076
00077 BNGCoordinates& BNGCoordinates::operator=( const BNGCoordinates &c )
00078 {
00079 if( this != &c )
00080 {
00081 _coordinateType = c._coordinateType;
00082
00083 strncpy( _BNGString, c._BNGString, 20 );
00084 _BNGString[20] = '\0';
00085
00086 _precision = c._precision;
00087
00088 int length = strlen( c._warningMessage );
00089 strncpy( _warningMessage, c._warningMessage, length );
00090 _warningMessage[ length ] = '\0';
00091 }
00092
00093 return *this;
00094 }
00095
00096
00097 void BNGCoordinates::set( char __BNGString[21] )
00098 {
00099 strncpy( _BNGString, __BNGString, 20 );
00100 _BNGString[20] = '\0';
00101 }
00102
00103
00104 char* BNGCoordinates::BNGString()
00105 {
00106 return _BNGString;
00107 }
00108
00109
00110 Precision::Enum BNGCoordinates::precision() const
00111 {
00112 return _precision;
00113 }
00114
00115