00001
00055 #if !defined(_CIGI_BASE_MARITIME_SURFACE_CTRL_INCLUDED_)
00056 #define _CIGI_BASE_MARITIME_SURFACE_CTRL_INCLUDED_
00057
00058 #include "CigiBasePacket.h"
00059
00060
00061
00062
00063
00064 #define CIGI_MARITIME_SURFACE_CTRL_PACKET_ID_V3 13
00065 #define CIGI_MARITIME_SURFACE_CTRL_PACKET_SIZE_V3 24
00066
00067
00068 class CigiMaritimeSurfaceCtrlV3;
00069
00070
00071 class CIGI_SPEC CigiBaseMaritimeSurfaceCtrl : public CigiBasePacket
00072 {
00073
00074 friend class CigiMaritimeSurfaceCtrlV3;
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 CigiBaseMaritimeSurfaceCtrl();
00097
00098
00101 virtual ~CigiBaseMaritimeSurfaceCtrl();
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 SetSurfaceCondEn(const bool SurfaceCondEnIn, bool bndchk=true)
00181 {
00182 SurfaceCondEn = SurfaceCondEnIn;
00183 return(CIGI_SUCCESS);
00184 }
00185
00186
00189 bool GetSurfaceCondEn(void) const { return(SurfaceCondEn); }
00190
00191
00192
00193
00194
00201 int SetWhitecapEn(const bool WhitecapEnIn, bool bndchk=true)
00202 {
00203 WhitecapEn = WhitecapEnIn;
00204 return(CIGI_SUCCESS);
00205 }
00206
00207
00210 bool GetWhitecapEn(void) const { return(WhitecapEn); }
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 SetSurfaceHeight(const float SurfaceHeightIn, bool bndchk=true)
00243 {
00244 SurfaceHeight = SurfaceHeightIn;
00245 return(CIGI_SUCCESS);
00246 }
00247
00248
00251 float GetSurfaceHeight(void) const { return(SurfaceHeight); }
00252
00253
00254
00255
00256
00263 int SetWaterTemp(const float WaterTempIn, bool bndchk=true)
00264 {
00265 WaterTemp = WaterTempIn;
00266 return(CIGI_SUCCESS);
00267 }
00268
00269
00272 float GetWaterTemp(void) const { return(WaterTemp); }
00273
00274
00275
00276
00277
00284 int SetClarity(const float ClarityIn, bool bndchk=true);
00285
00286
00289 float GetClarity(void) const { return(Clarity); }
00290
00291
00292
00293 protected:
00294
00295
00296
00297
00301 Cigi_uint16 EntityRgnID;
00302
00303
00307 bool SurfaceCondEn;
00308
00309
00313 bool WhitecapEn;
00314
00315
00323 ScopeGrp Scope;
00324
00325
00329 float SurfaceHeight;
00330
00331
00335 float WaterTemp;
00336
00337
00341 float Clarity;
00342
00343
00344 };
00345
00346 #endif // #if !defined(_CIGI_BASE_MARITIME_SURFACE_CTRL_INCLUDED_)