00001 00052 #if !defined(_CIGI_BASE_EARTH_MODEL_DEF_INCLUDED_) 00053 #define _CIGI_BASE_EARTH_MODEL_DEF_INCLUDED_ 00054 00055 #include "CigiBasePacket.h" 00056 00057 // ==================================================================== 00058 // preprocessor definitions 00059 // ==================================================================== 00060 00061 #define CIGI_EARTH_MODEL_DEF_PACKET_ID_V3 19 00062 #define CIGI_EARTH_MODEL_DEF_PACKET_SIZE_V3 24 00063 00064 00065 class CigiEarthModelDefV3; 00066 00067 00068 class CIGI_SPEC CigiBaseEarthModelDef : public CigiBasePacket 00069 { 00070 00071 friend class CigiEarthModelDefV3; 00072 00073 public: 00074 00075 //==> Management 00076 00077 //========================================================= 00080 CigiBaseEarthModelDef() { }; 00081 00082 //========================================================= 00085 virtual ~CigiBaseEarthModelDef() { }; 00086 00087 00088 //==> Buffer Packing/Unpacking 00089 00090 //========================================================= 00101 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0; 00102 00103 //========================================================= 00113 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0; 00114 00115 //========================================================= 00127 virtual int GetCnvt(CigiVersionID &CnvtVersion, 00128 CigiCnvtInfoType::Type &CnvtInfo) 00129 { 00130 if(CnvtVersion.CigiMajorVersion < 3) 00131 { 00132 CnvtInfo.ProcID = CigiProcessType::ProcNone; 00133 CnvtInfo.CnvtPacketID = 0; 00134 } 00135 else 00136 { 00137 CnvtInfo.ProcID = CigiProcessType::ProcStd; 00138 CnvtInfo.CnvtPacketID = CIGI_EARTH_MODEL_DEF_PACKET_ID_V3; 00139 } 00140 00141 return(CIGI_SUCCESS); 00142 } 00143 00144 00145 00146 //==> Accessing Member Variable Values functions 00147 00148 //+> CustomERMEn 00149 00150 //========================================================= 00157 int SetCustomERMEn(const bool CustomERMEnIn, bool bndchk=true) 00158 { 00159 CustomERMEn = CustomERMEnIn; 00160 return(CIGI_SUCCESS); 00161 } 00162 00163 //========================================================= 00166 bool GetCustomERMEn(void) const { return(CustomERMEn); } 00167 00168 00169 //+> EquatorialRadius 00170 00171 //========================================================= 00178 int SetEquatorialRadius(const double EquatorialRadiusIn, bool bndchk=true) 00179 { 00180 EquatorialRadius = EquatorialRadiusIn; 00181 return(CIGI_SUCCESS); 00182 } 00183 00184 //========================================================= 00187 double GetEquatorialRadius(void) const { return(EquatorialRadius); } 00188 00189 00190 //+> Flattening 00191 00192 //========================================================= 00199 int SetFlattening(const double FlatteningIn, bool bndchk=true) 00200 { 00201 Flattening = FlatteningIn; 00202 return(CIGI_SUCCESS); 00203 } 00204 00205 //========================================================= 00208 double GetFlattening(void) const { return(Flattening); } 00209 00210 00211 00212 protected: 00213 00214 //==> Member variables 00215 00216 //========================================================= 00220 bool CustomERMEn; 00221 00222 //========================================================= 00226 double EquatorialRadius; 00227 00228 //========================================================= 00232 double Flattening; 00233 00234 00235 }; 00236 00237 #endif // #if !defined(_CIGI_BASE_EARTH_MODEL_DEF_INCLUDED_)