00001
00055 #if !defined(_CIGI_BASE_TERRESTRIAL_SURFACE_CTRL_INCLUDED_)
00056 #define _CIGI_BASE_TERRESTRIAL_SURFACE_CTRL_INCLUDED_
00057
00058 #include "CigiBasePacket.h"
00059
00060
00061
00062
00063
00064 #define CIGI_TERRESTRIAL_SURFACE_CTRL_PACKET_ID_V3 15
00065 #define CIGI_TERRESTRIAL_SURFACE_CTRL_PACKET_SIZE_V3 8
00066
00067
00068 class CigiTerrestrialSurfaceCtrlV3;
00069
00070
00071 class CIGI_SPEC CigiBaseTerrestrialSurfaceCtrl : public CigiBasePacket
00072 {
00073
00074 friend class CigiTerrestrialSurfaceCtrlV3;
00075
00076 public:
00077
00078
00081 enum ScopeGrp
00082 {
00083 Global=0,
00084 Regional=1,
00085 Entity=2
00086 };
00087
00088
00089
00090
00091
00092
00093
00096 CigiBaseTerrestrialSurfaceCtrl();
00097
00098
00101 virtual ~CigiBaseTerrestrialSurfaceCtrl();
00102
00103
00104
00105
00106
00117 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00118
00119
00129 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00130
00131
00143 virtual int GetCnvt(CigiVersionID &CnvtVersion,
00144 CigiCnvtInfoType::Type &CnvtInfo);
00145
00146
00147
00148
00149
00150
00151
00152
00159 int SetEntityRgnID(const Cigi_uint16 EntityRgnIDIn, bool bndchk=true)
00160 {
00161 EntityRgnID = EntityRgnIDIn;
00162 return(CIGI_SUCCESS);
00163 }
00164
00165
00168 Cigi_uint16 GetEntityRgnID(void) const { return(EntityRgnID); }
00169
00170
00171
00172
00173
00180 int SetSurfaceCondID(const Cigi_uint16 SurfaceCondIDIn, bool bndchk=true)
00181 {
00182 SurfaceCondID = SurfaceCondIDIn;
00183 return(CIGI_SUCCESS);
00184 }
00185
00186
00189 Cigi_uint16 GetSurfaceCondID(void) const { return(SurfaceCondID); }
00190
00191
00192
00193
00194
00201 int SetSurfaceCondEn(const bool SurfaceCondEnIn, bool bndchk=true)
00202 {
00203 SurfaceCondEn = SurfaceCondEnIn;
00204 return(CIGI_SUCCESS);
00205 }
00206
00207
00210 bool GetSurfaceCondEn(void) const { return(SurfaceCondEn); }
00211
00212
00213
00214
00215
00225 int SetScope(const ScopeGrp ScopeIn, bool bndchk=true);
00226
00227
00230 ScopeGrp GetScope(void) const { return(Scope); }
00231
00232
00233
00234
00235
00242 int SetSeverity(const Cigi_uint8 SeverityIn, bool bndchk=true);
00243
00244
00247 Cigi_uint8 GetSeverity(void) const { return(Severity); }
00248
00249
00250
00251
00252
00259 int SetCoverage(const Cigi_uint8 CoverageIn, bool bndchk=true);
00260
00261
00264 Cigi_uint8 GetCoverage(void) const { return(Coverage); }
00265
00266
00267
00268 protected:
00269
00270
00271
00272
00276 Cigi_uint16 EntityRgnID;
00277
00278
00282 Cigi_uint16 SurfaceCondID;
00283
00284
00288 bool SurfaceCondEn;
00289
00290
00298 ScopeGrp Scope;
00299
00300
00303 Cigi_uint8 Severity;
00304
00305
00309 Cigi_uint8 Coverage;
00310
00311
00312 };
00313
00314 #endif // #if !defined(_CIGI_BASE_TERRESTRIAL_SURFACE_CTRL_INCLUDED_)