![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #if DtHLA 00008 00009 #ifndef DtReflectedEmitterBeam_H_ 00010 #define DtReflectedEmitterBeam_H_ 00011 00012 #include "emittrBeamSR.h" 00013 #include "hReflectedObj.h" 00014 00019 00022 class DT_DLL_VL DtReflectedEmitterBeam; 00023 typedef void (*DtEmitterBeamCallbackFunction)( 00024 DtReflectedEmitterBeam* obj, void* userData); 00025 00031 00032 class DT_DLL_VL DtReflectedEmitterBeam : public DtReflectedObject 00033 { 00034 public: 00035 00037 typedef DtEmitterBeamRepository* (*DtStateRepCreator)(); 00038 00039 public: 00040 00042 DtReflectedEmitterBeam(DtHlaObject* obj, DtExerciseConn* conn); 00043 00045 virtual ~DtReflectedEmitterBeam(); 00046 00048 virtual DtEmitterBeamRepository* beamRep() const; 00049 00051 virtual DtEmitterBeamRepository* bsr() const; 00052 00055 virtual void setBsr(DtEmitterBeamRepository* bsr); 00056 00058 virtual DtReflectedEmitterBeam* next() const; 00059 00061 virtual DtReflectedEmitterBeam* prev() const; 00062 00065 virtual DtReflectedEmitterBeam* wrapNext() const; 00066 00069 virtual DtReflectedEmitterBeam* wrapPrev() const; 00070 00072 virtual void addPostUpdateCallback( 00073 DtEmitterBeamCallbackFunction cb, void* userData); 00074 00075 virtual void removePostUpdateCallback( 00076 DtEmitterBeamCallbackFunction cb, void* userData); 00077 00078 public: 00079 00081 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00082 00083 protected: 00084 00086 DtReflectedEmitterBeam(const DtReflectedEmitterBeam& orig); 00087 00089 DtReflectedEmitterBeam& operator=( 00090 const DtReflectedEmitterBeam& orig); 00091 00092 protected: 00093 00094 DtEmitterBeamRepository* myConstructedBsr; 00095 00096 protected: 00097 00098 static DtStateRepCreator theStateRepCreator; 00099 }; 00100 00101 inline DtEmitterBeamRepository* 00102 DtReflectedEmitterBeam::beamRep() const 00103 { 00104 return (DtEmitterBeamRepository*) myStateRep; 00105 } 00106 00107 inline DtEmitterBeamRepository* DtReflectedEmitterBeam::bsr() const 00108 { 00109 return (DtEmitterBeamRepository*) myStateRep; 00110 } 00111 00112 #endif //DtReflectedEmitterBeam_H_ 00113 #endif //DtHLA 00114