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 double getOutputScaling();
72 virtual void filterMessage(DtPacket* packet);
76 virtual bool applyTrafficAnalyzerFilter(DtHLAGenericPublisher& genPub);
79 virtual void removeEntity(
const DtLgrHlaHandle handle);
83 virtual unsigned int getInteractionConveyedRegionSet(
const DtConstLgrHlaMessage& info, DtDDMRegionSet& regionSet);
87 virtual unsigned int getInteractionRegionSetFromData(
const DtConstLgrHlaMessage& info,
92 virtual unsigned int getInteractionRegionSet(
const DtConstLgrHlaMessage& info,
100 virtual bool getPublisherRegionSetFromData(
const DtPacket& info,
101 DtDDMRegionSet& regionSet);
105 virtual unsigned int getObjectConveyedRegionSet(
const DtConstLgrHlaMessage& info, DtDDMRegionSet& regionSet);
112 bool cacheInteractionRegionsEnabled()
const;
113 void setCacheInteractionRegionsEnabled(
bool val);
119 bool cacheObjectRegionsEnabled()
const;
120 void setCacheObjectRegionsEnabled(
bool val);
127 static void encodeIsPartOf_RPR_20014(
const DtBaseEntityStateRepository& stateRep,
128 RTI::AttributeHandleValuePairSet* pAvList,
129 RTI::AttributeHandle attrHandle );
134 const DtLgrOnlineFomDesc& fom()
const;
137 virtual void immediateSend(
const DtPacket&)
const;
140 virtual void sendInteractionWithRegion(
const DtInteraction& interaction,
const DtDDMRegionSet& regionSet)
const;
143 virtual void retainedSend(
const DtPacket&);
146 virtual void updateEntity(
const DtPacket&);
149 virtual void removeEntity(
const DtPacket&);
155 virtual DtLgrPublisherInterface* createPublisher(
const DtPacket& info);
159 virtual DtLgrPublisherInterface* doPublish(RTI::ObjectClassHandle classHandle,
160 const char* objName,
const DtDDMRegionSet* regionSetToUse,
bool silent);
163 virtual void printRegion(DtDDMRegionSP region)
const;
168 typedef std::map<DtString,DtLgrHlaHandle> DtObjectNameMap;
169 typedef std::map<DtLgrHlaHandle,DtLgrPublisherInterface*> DtObjectPublisherMap;
171 DtLgrHlaSimulationManager& myHlaManager;
172 DtObjectNameMap myObjectNameMap;
173 DtObjectPublisherMap myObjectPublisherMap;
174 DtLgrHlaMessageIOInfo* myMessageInfo;
175 double myPublisherScaling;
176 bool myPublisherStatic;
177 DtInteractionFactory* myFactory;
178 DtIDRegionMap myRegionHandleMap;
179 bool myCacheInteractionRegionsEnabled;
180 bool myCacheObjectRegionsEnabled;
182 std::set<DtLgrPublisherInterface*> myFilteredPublishers;