![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00010 00011 #ifndef DtDisEmitterSystemPublisher_H_ 00012 #define DtDisEmitterSystemPublisher_H_ 00013 00014 #if DtDIS 00015 00016 00017 #include "dObjPub.h" 00018 #include "emitterSysSR.h" 00019 #include "dEmittrSysEnc.h" 00020 #include "dEmittrSysDec.h" 00021 00022 00026 class DT_DLL_VL DtEmitterSystemPublisher : public DtObjectPublisher 00027 { 00028 public: 00029 00031 typedef DtEmitterSystemRepository* (*DtStateRepCreator)(); 00032 00033 public: 00034 00037 DtEmitterSystemPublisher( 00038 DtEmitterSystemRepository* stateRepToUse, 00039 DtExerciseConn* conn, 00040 const DtObjectId& id = DtObjectId::defaultId()); 00041 00044 DtEmitterSystemPublisher( 00045 DtExerciseConn* conn, 00046 const DtObjectId& id = DtObjectId::defaultId()); 00047 00050 DtEmitterSystemPublisher( 00051 DtExerciseConn* conn, 00052 const char* name, 00053 const DtObjectId& id = DtObjectId::defaultId()); 00054 00056 virtual ~DtEmitterSystemPublisher(); 00057 00058 00060 virtual void forceUpdate(); 00061 00063 virtual void tick(); 00064 00066 virtual DtEmitterSystemRepository* emitterSystemStateRep(); 00067 virtual DtEmitterSystemRepository* esr(); 00068 00070 virtual const DtObjectId& id() const; 00071 00072 virtual const DtObjectId& localId() const; 00073 00075 virtual const DtGlobalObjectDesignator& globalId() const; 00076 00079 virtual void setBeamAzimuthThreshold(double threshold); 00080 00082 virtual double beamAzimuthThreshold() const; 00083 00086 virtual void setBeamElevationThreshold(double threshold); 00087 00088 00090 virtual double beamElevationThreshold() const; 00091 00092 public: 00093 00095 static void setStateRepCreator(DtStateRepCreator creator); 00096 static DtStateRepCreator stateRepCreator(void); 00097 00098 static void setClassDfltTimeThreshold(DtTime threshold); 00099 00100 protected: 00101 00103 void init( const char* name, 00104 const DtEntityIdentifier& id); 00105 00107 DtEmitterSystemPublisher(const DtEmitterSystemPublisher& orig); 00108 00110 DtEmitterSystemPublisher& operator=(const DtEmitterSystemPublisher& orig); 00111 00112 protected: 00113 00114 DtObjectId myId; 00115 DtEmitterSystemStateDecoder* myEmitterSystemDecoder; 00116 DtEmitterSystemStateEncoder* myEmitterSystemEncoder; 00117 00118 00119 protected: 00120 static DtStateRepCreator theStateRepCreator; 00121 static DtTime theClassDfltTimeThreshold; 00122 static bool theClassDfltIsSetFlag; 00123 char *myName; 00124 }; 00125 00126 inline DtEmitterSystemRepository* DtEmitterSystemPublisher::esr() 00127 { 00128 return static_cast<DtEmitterSystemRepository*>(myStateRep); 00129 } 00130 00131 #endif 00132 #endif 00133