11 #ifndef hlaSimOutput_H_
12 #define hlaSimOutput_H_
24 #include <vl/region.h>
26 class DtInteractionFactory;
27 class DtBaseEntityStateRepository;
33 class DtLgrHlaSimulationManager;
34 class DtLgrPublisherInterface;
35 class DtHLAGenericPublisher;
36 class DtLgrHlaMessageIOInfo;
37 class DtMessageIOInfo;
38 class DtLgrOnlineFomDesc;
39 class DtConstLgrHlaMessage;
48 DT_VIRTUAL_CTR(DtLgrHlaSimOutput, (DtLgrHlaSimulationManager& manager))
50 virtual ~DtLgrHlaSimOutput();
55 virtual void disconnecting();
57 virtual void activateImplementation();
58 virtual void deactivateImplementation();
63 virtual const DtMessageIOInfo* info()
const;
66 virtual void setOutputScaling(
double scaling,
bool enableStatic);
69 virtual void filterMessage(DtPacket* packet);
73 virtual bool applyTrafficAnalyzerFilter(DtHLAGenericPublisher& genPub);
76 virtual void removeEntity(
const DtLgrHlaHandle handle);
80 virtual unsigned int getInteractionConveyedRegionSet(
const DtConstLgrHlaMessage& info, DtDDMRegionSet& regionSet);
84 virtual unsigned int getInteractionRegionSetFromData(
const DtConstLgrHlaMessage& info,
89 virtual unsigned int getInteractionRegionSet(
const DtConstLgrHlaMessage& info,
97 virtual bool getPublisherRegionSetFromData(
const DtPacket& info,
98 DtDDMRegionSet& regionSet);
102 virtual unsigned int getObjectConveyedRegionSet(
const DtConstLgrHlaMessage& info, DtDDMRegionSet& regionSet);
109 bool cacheInteractionRegionsEnabled()
const;
110 void setCacheInteractionRegionsEnabled(
bool val);
116 bool cacheObjectRegionsEnabled()
const;
117 void setCacheObjectRegionsEnabled(
bool val);
124 static void encodeIsPartOf_RPR_20014(
const DtBaseEntityStateRepository& stateRep,
125 RTI::AttributeHandleValuePairSet* pAvList,
126 RTI::AttributeHandle attrHandle );
131 const DtLgrOnlineFomDesc& fom()
const;
134 virtual void immediateSend(
const DtPacket&)
const;
137 virtual void sendInteractionWithRegion(
const DtInteraction& interaction,
const DtDDMRegionSet& regionSet)
const;
140 virtual void retainedSend(
const DtPacket&);
143 virtual void updateEntity(
const DtPacket&);
146 virtual void removeEntity(
const DtPacket&);
152 virtual DtLgrPublisherInterface* createPublisher(
const DtPacket& info);
156 virtual DtLgrPublisherInterface* doPublish(RTI::ObjectClassHandle classHandle,
157 const char* objName,
const DtDDMRegionSet* regionSetToUse,
bool silent);
160 virtual void printRegion(DtDDMRegionSP region)
const;
165 typedef std::map<DtString,DtLgrHlaHandle> DtObjectNameMap;
166 typedef std::map<DtLgrHlaHandle,DtLgrPublisherInterface*> DtObjectPublisherMap;
168 DtLgrHlaSimulationManager& myHlaManager;
169 DtObjectNameMap myObjectNameMap;
170 DtObjectPublisherMap myObjectPublisherMap;
171 DtLgrHlaMessageIOInfo* myMessageInfo;
172 double myPublisherScaling;
173 bool myPublisherStatic;
174 DtInteractionFactory* myFactory;
175 DtIDRegionMap myRegionHandleMap;
176 bool myCacheInteractionRegionsEnabled;
177 bool myCacheObjectRegionsEnabled;
179 std::set<DtLgrPublisherInterface*> myFilteredPublishers;