![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef hRefActSonBm_H_ 00008 #define hRefActSonBm_H_ 00009 00010 #if DtHLA 00011 00012 #include "hReflectedObj.h" 00013 #include "actSonBeamSR.h" 00014 00019 00020 class DT_DLL_VL DtReflectedActiveSonarBeam; 00021 00024 typedef void (*DtActiveSonarBeamCallbackFunction)( 00025 DtReflectedActiveSonarBeam* obj, void* userData); 00026 00030 class DT_DLL_VL DtReflectedActiveSonarBeam : public DtReflectedObject 00031 { 00032 public: 00034 typedef DtActiveSonarBeamRepository* (*DtStateRepCreator)(); 00035 00036 public: 00038 DtReflectedActiveSonarBeam(DtHlaObject* obj, DtExerciseConn* exConn); 00039 00041 virtual ~DtReflectedActiveSonarBeam(); 00042 00044 virtual DtActiveSonarBeamRepository* activeSonarBeamRep() const; 00045 00047 virtual DtActiveSonarBeamRepository* asr() const; 00048 00051 virtual DtReflectedActiveSonarBeam* next() const; 00052 00055 virtual DtReflectedActiveSonarBeam* prev() const; 00056 00059 virtual DtReflectedActiveSonarBeam* wrapNext() const; 00060 00063 virtual DtReflectedActiveSonarBeam* wrapPrev() const; 00064 00067 virtual void addPostUpdateCallback( 00068 DtActiveSonarBeamCallbackFunction cb, void* userData); 00069 00072 virtual void removePostUpdateCallback( 00073 DtActiveSonarBeamCallbackFunction cb, void* userData); 00074 00075 public: 00077 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00078 00079 00080 protected: 00082 DtReflectedActiveSonarBeam(const DtReflectedActiveSonarBeam& orig); 00083 00085 DtReflectedActiveSonarBeam& operator=(const DtReflectedActiveSonarBeam& orig); 00086 00087 protected: 00089 static DtStateRepCreator theStateRepCreator; 00090 }; 00091 00092 inline DtActiveSonarBeamRepository* DtReflectedActiveSonarBeam::activeSonarBeamRep() const 00093 { 00094 return (DtActiveSonarBeamRepository*) myStateRep; 00095 } 00096 00097 inline DtActiveSonarBeamRepository* DtReflectedActiveSonarBeam::asr() const 00098 { 00099 return (DtActiveSonarBeamRepository*) myStateRep; 00100 } 00101 00102 00103 #endif 00104 #endif 00105