![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 00012 #ifndef DtEmitterComponent_H_ 00013 #define DtEmitterComponent_H_ 00014 00015 00016 #include "vrfobjcore/simCmpnt.h" 00017 00018 class DtString; 00019 class DtSimManager; 00020 class DtSimMessage; 00021 class DtSimBaseRadio; 00022 class DtEmitterBeamRepository; 00023 class DtEmitterPSR; 00024 class DtVrfEmitterSystem; 00025 class DtVrfObjectMessage; 00026 class DtVrfObjectCommunicationInterface; 00027 00047 #include "vrfmodel/vrfmodelDefines.h" 00048 class DT_DLL_vrfmodel DtEmitterComponent : public DtSimComponent 00049 { 00050 public: 00051 00054 DtEmitterComponent(const DtString& name, 00055 DtVrfObject* owner, 00056 DtSimManager* simManager, 00057 DtComponentDescriptor* desc = 0, 00058 DtReaderWriterRegistry* parentRegistry = 0); 00059 00061 virtual ~DtEmitterComponent(); 00062 00064 virtual void tick(); 00065 00069 virtual bool tickWhileDestroyed() const; 00070 00072 bool init(); 00073 00076 virtual DtString type() const; 00077 00081 static DtSimComponent * creator(const DtString& name, 00082 DtVrfObject* owner, 00083 DtSimManager* simManager, 00084 DtComponentDescriptor* desc = 0, 00085 DtReaderWriterRegistry* parentRegistry = 0); 00086 00088 virtual void registerSetRequestMsgCallbacks(); 00089 00090 static void setEmitterRequestCallback(DtSimMessage* msg, void* usrData); 00091 virtual void processSetEmitterRequestMessage(DtSimMessage* msg); 00092 00093 static void setRadarModeRequestCallback(DtSimMessage* msg, void* usrData); 00094 virtual void processSetRadarModeRequestMessage(DtSimMessage* msg); 00095 00096 static void requestRadarModesAdminCallback(const DtVrfObjectMessage* msg, void* usr); 00097 virtual void processRequestRadarModesAdmin(DtString receiver, 00098 DtString sender, 00099 bool isEchelonId, 00100 const DtVrfObjectMessage* msg); 00101 00102 static void setTargetRequestCallback(DtSimMessage* msg, void* usrData); 00103 virtual void processSetTargetRequestMessage(DtSimMessage* msg); 00104 00106 virtual void setSystemName(DtEmitterSysName nameEnum); 00107 virtual DtEmitterSysName systemName() const; 00108 00109 virtual void setSystemFunction(DtEmissionFunc functionEnum); 00110 virtual DtEmissionFunc systemFunction() const; 00111 00112 virtual void setMountLocation(const DtVector &location); 00113 virtual DtVector mountLocation() const; 00114 00120 virtual void setTargetingCapable(bool onOff); 00121 virtual bool targetingCapable() const; 00122 00125 virtual void setOn(bool onOff); 00126 virtual bool on() const; 00127 00130 virtual void addTrackTarget(const DtGlobalObjectDesignator &globalId); 00131 00134 virtual void removeTrackTarget(const DtGlobalObjectDesignator &globalId); 00135 00137 virtual void clearTrackTargets(); 00138 00141 virtual DtEmitterBeamRepository* addBeam(DtU8 id); 00142 00144 virtual void removeBeam(DtU8 id); 00145 00148 virtual DtEmitterBeamRepository* beam(DtU8 id = 0); 00149 00151 virtual int numBeams() const; 00152 00154 virtual DtList* beamList(); 00155 00161 virtual DtVrfEmitterSystem* emitterSystem(); 00162 00163 protected: 00164 virtual void setRadio(DtSimBaseRadio * radio); 00166 virtual DtSimBaseRadio * radio(); 00167 00169 virtual bool createAndInitEmitterSystem(); 00170 00172 virtual void updateFromDescriptor(); 00173 00179 virtual bool createPSR(); 00180 00181 private: 00183 DtEmitterComponent(); 00184 00186 DtEmitterComponent(const DtEmitterComponent& orig); 00187 00189 const DtEmitterComponent & operator=(const DtEmitterComponent & orig); 00190 00191 00192 protected: 00193 DtSimBaseRadio * myRadio; 00194 bool myTargetingCapable; 00195 DtVrfEmitterSystem* myEmitterSystem; 00197 00200 DtEmitterPSR* myProcessState; 00201 00203 bool myStateRestored; 00204 DtU8 myEmitterSystemId; 00205 }; 00206 00207 #endif 00208 00209 00210