![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 * hArealObjPub.h 00007 *********************************************************************/ 00008 00009 #if DtHLA 00010 00011 #ifndef hArealObjPub_H_ 00012 #define hArealObjPub_H_ 00013 00014 #include "hObjPub.h" 00015 #include "objectType.h" 00016 00020 00021 class DT_DLL_VL DtArealObjectRepository; 00022 00023 00033 class DT_DLL_VL DtArealObjectPublisher : public DtObjectPublisher 00034 { 00035 public: 00036 00039 typedef DtArealObjectRepository* (*DtStateRepCreator)(); 00040 00041 public: 00042 00044 DtArealObjectPublisher( 00045 DtArealObjectRepository *stateRepToUse, 00046 DtExerciseConn* conn, 00047 const char* name = 0, 00048 const DtDDMRegionSet* regionSetToUse = 0); 00049 00051 DtArealObjectPublisher( 00052 RTI::ObjectClassHandle h, 00053 DtExerciseConn* conn, 00054 const char* name = 0, 00055 const DtDDMRegionSet* regionSetToUse = 0); 00056 00058 DtArealObjectPublisher( 00059 const DtSyntheticEnvironmentObjectType& type, 00060 DtExerciseConn* conn, 00061 const char* name = 0, 00062 const DtDDMRegionSet* regionSetToUse = 0); 00063 00065 virtual ~DtArealObjectPublisher(); 00066 00069 virtual DtArealObjectRepository* arealObjectStateRep(); 00070 00072 virtual DtArealObjectRepository* aosr(); 00073 00074 public: 00075 00077 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00078 00079 protected: 00080 00082 DtArealObjectPublisher(const DtArealObjectPublisher& orig); 00083 00085 DtArealObjectPublisher& operator= 00086 (const DtArealObjectPublisher& orig); 00087 00088 //Non-virtual method called from constructor. 00089 const char* objectClassNameFromType 00090 (const DtSyntheticEnvironmentObjectType& type); 00091 00092 protected: 00093 00094 static DtStateRepCreator theStateRepCreator; 00095 }; 00096 00097 inline DtArealObjectRepository* 00098 DtArealObjectPublisher::arealObjectStateRep() 00099 { 00100 return (DtArealObjectRepository*) myStateRep; 00101 } 00102 00103 inline DtArealObjectRepository* DtArealObjectPublisher::aosr() 00104 { 00105 return (DtArealObjectRepository*) myStateRep; 00106 } 00107 00108 #endif //hArealObjPub_H_ 00109 #endif //DtHLA 00110