00001
00055 #if !defined(_CIGI_BASE_POSITION_REQ_INCLUDED_)
00056 #define _CIGI_BASE_POSITION_REQ_INCLUDED_
00057
00058 #include "CigiBasePacket.h"
00059
00060
00061
00062
00063
00064 #define CIGI_POSITION_REQ_PACKET_ID_V3 27
00065 #define CIGI_POSITION_REQ_PACKET_SIZE_V3 8
00066
00067
00068 class CigiPositionReqV1;
00069 class CigiPositionReqV2;
00070 class CigiPositionReqV3;
00071
00072
00073 class CIGI_SPEC CigiBasePositionReq : public CigiBasePacket
00074 {
00075
00076 friend class CigiPositionReqV1;
00077 friend class CigiPositionReqV2;
00078 friend class CigiPositionReqV3;
00079
00080 public:
00081
00082
00085 enum UpdateModeGrp
00086 {
00087 OneShot=0,
00088 Continuous=1
00089 };
00090
00091
00094 enum ObjectClassGrp
00095 {
00096 Entity=0,
00097 ArtPart=1,
00098 View=2,
00099 ViewGrp=3,
00100 MotionTracker=4
00101 };
00102
00103
00106 enum CoordSysGrp
00107 {
00108 Geodetic=0,
00109 ParentEntity=1,
00110 Submodel=2
00111 };
00112
00113
00114
00115
00116
00117
00118
00121 CigiBasePositionReq();
00122
00123
00126 virtual ~CigiBasePositionReq();
00127
00128
00129
00130
00131
00142 virtual int Pack(CigiBasePacket * Base, Cigi_uint8 * Buff, void *Spec) const=0;
00143
00144
00154 virtual int Unpack(Cigi_uint8 * Buff, bool Swap, void *Spec) =0;
00155
00156
00168 virtual int GetCnvt(CigiVersionID &CnvtVersion,
00169 CigiCnvtInfoType::Type &CnvtInfo);
00170
00171
00172
00173
00174
00175
00176
00177
00184 int SetObjectID(const Cigi_uint16 ObjectIDIn, bool bndchk=true)
00185 {
00186 ObjectID = ObjectIDIn;
00187 return(CIGI_SUCCESS);
00188 }
00189
00190
00193 Cigi_uint16 GetObjectID(void) const { return(ObjectID); }
00194
00195
00196
00197
00198
00205 int SetArtPartID(const Cigi_uint8 ArtPartIDIn, bool bndchk=true)
00206 {
00207 ArtPartID = ArtPartIDIn;
00208 return(CIGI_SUCCESS);
00209 }
00210
00211
00214 Cigi_uint8 GetArtPartID(void) const { return(ArtPartID); }
00215
00216
00217
00218
00219
00228 int SetUpdateMode(const UpdateModeGrp UpdateModeIn, bool bndchk=true);
00229
00230
00233 UpdateModeGrp GetUpdateMode(void) const { return(UpdateMode); }
00234
00235
00236
00237
00238
00250 int SetObjectClass(const ObjectClassGrp ObjectClassIn, bool bndchk=true);
00251
00252
00255 ObjectClassGrp GetObjectClass(void) const { return(ObjectClass); }
00256
00257
00258
00259
00260
00270 int SetCoordSys(const CoordSysGrp CoordSysIn, bool bndchk=true);
00271
00272
00275 CoordSysGrp GetCoordSys(void) const { return(CoordSys); }
00276
00277
00278
00279 protected:
00280
00281
00282
00283
00287 Cigi_uint16 ObjectID;
00288
00289
00293 Cigi_uint8 ArtPartID;
00294
00295
00302 UpdateModeGrp UpdateMode;
00303
00304
00314 ObjectClassGrp ObjectClass;
00315
00316
00324 CoordSysGrp CoordSys;
00325
00326
00327 };
00328
00329 #endif // #if !defined(_CIGI_BASE_POSITION_REQ_INCLUDED_)