![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00008 #pragma once 00009 #if DtHLA 00010 00011 #include "hObjPub.h" 00012 00013 00014 class DtEmitterSystemRepository; 00015 class DtEmitterBeamPublisher; 00016 class DtEmitterBeamRepository; 00017 00022 class DT_DLL_VL DtEmitterSystemPublisher : public DtObjectPublisher 00023 { 00024 public: 00025 00027 typedef DtEmitterSystemRepository* (*DtStateRepCreator)(); 00028 00029 public: 00030 00032 DtEmitterSystemPublisher( 00033 DtEmitterSystemRepository *stateRepToUse, 00034 DtExerciseConn* conn, 00035 const char* name = 0, 00036 const DtDDMRegionSet* regionSetToUse = 0); 00037 00039 DtEmitterSystemPublisher( 00040 RTI::ObjectClassHandle h, 00041 DtExerciseConn* conn, 00042 const char* name = 0, 00043 const DtDDMRegionSet* regionSetToUse = 0); 00044 00046 DtEmitterSystemPublisher( 00047 DtExerciseConn* conn, 00048 const char* name = 0, 00049 const DtDDMRegionSet* regionSetToUse = 0); 00050 00056 DtEmitterSystemPublisher(DtHlaObjectWithStateRep* obj, DtExerciseConn* conn); 00057 00059 virtual ~DtEmitterSystemPublisher(); 00060 00061 private: 00063 DtEmitterSystemPublisher(const DtEmitterSystemPublisher& orig); 00064 00066 DtEmitterSystemPublisher& operator= 00067 (const DtEmitterSystemPublisher& orig); 00068 00069 public: 00070 00073 virtual DtEmitterSystemRepository* emitterSystemRep(); 00074 00076 virtual DtEmitterSystemRepository* esr(); 00077 00080 virtual const char* classToUse() const; 00081 00083 virtual void tick(); 00084 00088 virtual void forceUpdate(); 00089 00093 virtual void forceUpdate(const RTI::AttributeHandleSet& set); 00094 00095 public: 00096 00098 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00099 00100 protected: 00101 00102 00106 virtual void syncBeamList(); 00107 00110 virtual DtEmitterBeamPublisher* publisherForBsr( 00111 DtEmitterBeamRepository* bsr); 00112 00114 virtual int numBeams() const; 00115 00116 protected: 00117 00119 DtList myBeamPubs; 00120 bool myTickedFirstTime; 00121 00122 protected: 00123 00124 static DtStateRepCreator theStateRepCreator; 00125 }; 00126 00127 inline DtEmitterSystemRepository* DtEmitterSystemPublisher::emitterSystemRep() 00128 { 00129 return (DtEmitterSystemRepository*) myStateRep; 00130 } 00131 00132 inline DtEmitterSystemRepository* DtEmitterSystemPublisher::esr() 00133 { 00134 return (DtEmitterSystemRepository*) myStateRep; 00135 } 00136 00137 #endif 00138