![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef DtReflectedEmitterSystem_H_ 00008 #define DtReflectedEmitterSystem_H_ 00009 00010 #if DtHLA 00011 00012 #include "emitterSysSR.h" 00013 #include "hReflectedObj.h" 00014 00019 00022 class DT_DLL_VL DtReflectedEmitterSystem; 00023 typedef void (*DtEmitterSystemCallbackFunction)( 00024 DtReflectedEmitterSystem* obj, void* userData); 00025 00031 00032 class DT_DLL_VL DtReflectedEmitterSystem : public DtReflectedObject 00033 { 00034 public: 00035 00037 typedef DtEmitterSystemRepository* (*DtStateRepCreator)(); 00038 00039 public: 00040 00044 DtReflectedEmitterSystem(DtHlaObject* obj, 00045 DtExerciseConn* conn, bool beamsUpdateSystem); 00046 00049 DtReflectedEmitterSystem(const DtObjectId& id, 00050 const DtGlobalObjectDesignator& des, 00051 DtExerciseConn* conn, bool beamsUpdateSystem); 00052 00054 virtual ~DtReflectedEmitterSystem(); 00055 00057 virtual DtEmitterSystemRepository* emitterSysRep() const; 00058 00060 virtual DtEmitterSystemRepository* esr() const; 00061 00063 virtual DtReflectedEmitterSystem* next() const; 00064 00066 virtual DtReflectedEmitterSystem* prev() const; 00067 00070 virtual DtReflectedEmitterSystem* wrapNext() const; 00071 00074 virtual DtReflectedEmitterSystem* wrapPrev() const; 00075 00077 virtual void addPostUpdateCallback( 00078 DtEmitterSystemCallbackFunction cb, void* userData); 00079 00080 virtual void removePostUpdateCallback( 00081 DtEmitterSystemCallbackFunction cb, void* userData); 00082 00084 virtual void beamUpdated(); 00085 00086 public: 00087 00089 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00090 00091 protected: 00092 00094 DtReflectedEmitterSystem(const DtReflectedEmitterSystem& orig); 00095 00097 DtReflectedEmitterSystem& operator=( 00098 const DtReflectedEmitterSystem& orig); 00099 00100 protected: 00101 00102 static DtStateRepCreator theStateRepCreator; 00103 00104 protected: 00105 00106 bool myBeamsUpdateSystem; 00107 }; 00108 00109 inline DtEmitterSystemRepository* DtReflectedEmitterSystem::emitterSysRep() const 00110 { 00111 return (DtEmitterSystemRepository*) myStateRep; 00112 } 00113 00114 inline DtEmitterSystemRepository* DtReflectedEmitterSystem::esr() const 00115 { 00116 return (DtEmitterSystemRepository*) myStateRep; 00117 } 00118 00119 #endif //! DtHLA 00120 #endif //! DtReflectedEmitterSystem_H_ 00121