![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef hAggPub_H_ 00011 #define hAggPub_H_ 00012 00013 #if DtHLA 00014 00015 #include "hObjPub.h" 00016 #include <vlpi/disEnums.h> 00017 00018 class DT_DLL_VL DtAggregateStateRepository; 00019 class DT_DLL_VL DtGeodeticRegion; 00020 00021 00027 class DT_DLL_VL DtAggregatePublisher : public DtObjectPublisher 00028 { 00029 public: 00030 00033 typedef DtAggregateStateRepository* (*DtStateRepCreator)(); 00034 00035 public: 00036 00038 DtAggregatePublisher( 00039 DtAggregateStateRepository *stateRepToUse, 00040 DtExerciseConn* conn, 00041 const char* name = 0, 00042 const DtDDMRegionSet* regionSetToUse = 0); 00043 00045 DtAggregatePublisher( 00046 RTI::ObjectClassHandle h, 00047 DtExerciseConn* conn, 00048 const char* name = 0, 00049 const DtDDMRegionSet* regionSetToUse = 0); 00050 00052 DtAggregatePublisher( 00053 const DtEntityType& type, 00054 DtExerciseConn* conn, 00055 const char* name = 0, 00056 const DtDDMRegionSet* regionSetToUse = 0); 00057 00059 DtAggregatePublisher( 00060 const DtEntityType& type, 00061 DtExerciseConn *conn, 00062 DtDeadReckonTypes algorithm, 00063 DtForceType forceId, 00064 const char* name = 0, 00065 const DtDDMRegionSet* regionSetToUse = 0); 00066 00072 DtAggregatePublisher(DtHlaObjectWithStateRep* obj, DtExerciseConn* conn); 00073 00075 virtual ~DtAggregatePublisher(); 00076 00079 virtual DtAggregateStateRepository* aggregateStateRep(); 00080 00082 virtual DtAggregateStateRepository* asr(); 00083 00084 virtual void tick(); 00085 00086 public: 00087 00089 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00090 00091 protected: 00095 void createGeographicRegion(DtExerciseConn* conn); 00096 00098 DtAggregatePublisher(const DtAggregatePublisher& orig); 00099 00101 DtAggregatePublisher& operator=(const DtAggregatePublisher& orig); 00102 00106 const char* objectClassNameFromType(const DtEntityType &type); 00107 00108 DtBoost::shared_ptr<DtGeodeticRegion> myGeodeticPublishingRegion; 00109 00110 protected: 00111 00112 static DtStateRepCreator theStateRepCreator; 00113 }; 00114 00115 inline DtAggregateStateRepository* DtAggregatePublisher::aggregateStateRep() 00116 { 00117 return (DtAggregateStateRepository*) myStateRep; 00118 } 00119 00120 inline DtAggregateStateRepository* DtAggregatePublisher::asr() 00121 { 00122 return (DtAggregateStateRepository*) myStateRep; 00123 } 00124 00125 #endif 00126 #endif 00127