![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtEmitterBeamRepository_H_ 00011 #define DtEmitterBeamRepository_H_ 00012 00013 #include "stateRep.h" 00014 #include "hostStructs.h" 00015 #include "eventId.h" 00016 #include <vlpi/disEnums.h> 00017 #include <vlutil/vlList.h> 00018 00019 #if DtHLA 00020 #include "objDesList.h" 00021 typedef DtGlobalObjectDesignator DtTrackJamDesignator; 00022 typedef DtGlobalObjectDesignatorList DtTrackJamDesignatorList; 00023 #else 00024 #include "tkJmDesLst.h" 00025 #endif 00026 00027 enum DtBeamType 00028 { 00029 DtRegularBeam = -1, 00030 DtRadarBeam = 1, 00031 DtTrackBeam = 1, 00032 DtJamBeam = 0 00033 }; 00034 00039 00040 class DT_DLL_VL DtEmitterBeamRepository : public DtStateRepository 00041 { 00042 public: 00043 00045 DtEmitterBeamRepository(); 00046 00048 virtual ~DtEmitterBeamRepository(); 00049 00051 DtEmitterBeamRepository(const DtEmitterBeamRepository& orig); 00052 00054 DtEmitterBeamRepository& operator=( 00055 const DtEmitterBeamRepository& orig); 00056 00058 virtual DtStateRepository* clone(bool copy = false) const; 00059 00060 00062 virtual void setAzimuthCenter(DtFloat32 center); 00063 virtual DtFloat32 azimuthCenter() const; 00064 00066 virtual void setAzimuthSweep(DtFloat32 sweep); 00067 virtual DtFloat32 azimuthSweep() const; 00068 00070 virtual void setBeamFunction(DtBeamFunc func); 00071 virtual DtBeamFunc beamFunction() const; 00072 00074 virtual void setBeamId(DtU8 id); 00075 virtual DtU8 beamId() const; 00076 00078 virtual void setBeamParameterIndex(DtU16 index); 00079 virtual DtU16 beamParameterIndex() const; 00080 00082 virtual void setElevationCenter(DtFloat32 center); 00083 virtual DtFloat32 elevationCenter() const; 00084 00086 virtual void setElevationSweep(DtFloat32 sweep); 00087 virtual DtFloat32 elevationSweep() const; 00088 00090 #if DtHLA 00091 virtual void setEmittingSystemId(const DtGlobalObjectDesignator& id); 00092 virtual const DtGlobalObjectDesignator& emittingSystemId() const; 00093 #else 00094 00095 00096 00097 00098 virtual void setEmittingSystemId(int id); 00099 virtual int emittingSystemId() const; 00100 #endif 00101 00103 virtual void setERP(DtFloat32 erp); 00104 virtual DtFloat32 ERP() const; 00105 00110 virtual void setEntityId(const DtEntityIdentifier& id); 00111 virtual const DtEntityIdentifier& entityId() const; 00112 00114 virtual void setEventId(const DtEventId& id); 00115 virtual const DtEventId& eventId() const; 00116 00118 virtual void setFrequency(DtFloat32 freq); 00119 virtual DtFloat32 frequency() const; 00120 00122 virtual void setFrequencyRange(DtFloat32 freq); 00123 virtual DtFloat32 frequencyRange() const; 00124 00126 virtual void setPRF(DtFloat32 prf); 00127 virtual DtFloat32 PRF() const; 00128 00130 virtual void setPulseWidth(DtFloat32 width); 00131 virtual DtFloat32 pulseWidth() const; 00132 00134 virtual void setSweepSync(DtFloat32 sync); 00135 virtual DtFloat32 sweepSync() const; 00136 00138 virtual void setBeamType(DtBeamType flag); 00139 virtual DtBeamType beamType() const; 00140 00143 00145 virtual void setJammingModeSequence(DtU32 sequence); 00146 virtual DtU32 jammingModeSequence() const; 00147 00150 virtual const DtTrackJamDesignatorList& trackJamTargets() const; 00151 virtual DtTrackJamDesignatorList* trackJamTargets(); 00152 00154 virtual void setHighDensity(bool val); 00155 virtual bool highDensity() const; 00156 00158 virtual void printData() const; 00159 00161 virtual void printDataToStream(std::ostream& stream) const; 00162 00163 protected: 00164 00166 virtual void printTrackJam(std::ostream& stream) const; 00167 00168 public: 00170 static DtEmitterBeamRepository* create(); 00171 00172 protected: 00174 DtFloat32 myAzimuthCenter; 00175 DtFloat32 myAzimuthSweep; 00176 DtBeamFunc myBeamFunction; 00177 DtU8 myBeamId; 00178 DtU16 myBeamParameterIndex; 00179 DtFloat32 myElevationCenter; 00180 DtFloat32 myElevationSweep; 00181 #if DtHLA 00182 DtGlobalObjectDesignator myEmittingSystemId; 00183 #else 00184 DtU8 myEmittingSystemId; 00185 #endif 00186 DtFloat32 myERP; 00187 DtEntityIdentifier myEntityId; 00188 DtEventId myEventId; 00189 DtFloat32 myFrequency; 00190 DtFloat32 myFrequencyRange; 00191 DtFloat32 myPRF; 00192 DtFloat32 myPulseWidth; 00193 DtFloat32 mySweepSync; 00194 00196 DtU32 myJammingModeSequence; 00197 DtTrackJamDesignatorList myTrackJamTargets; 00198 DtBeamType myBeamType; 00199 bool myHighDensity; 00200 }; 00201 00202 #endif //DtEmitterBeamRepository_H_ 00203