10 #ifndef lgrHlaEntityPublisher_H_
11 #define lgrHlaEntityPublisher_H_
18 #include <vl/rtiCompatibility.h>
19 #include <vl/hEntityPub.h>
21 class DtBaseEntityStateRepository;
27 class DtLgrHlaSimulationManager;
31 class DT_DLL_LGRSIM DtLgrHlaEntityPublisher :
public DtEntityPublisher,
public DtLgrPublisherInterface
39 (DtLgrHlaSimulationManager& simMgr, RTI::ObjectClassHandle classHandle,
40 const char* objName,
const DtDDMRegionSet* regionSetToUse,
41 double hbtime,
bool waitForRegionData,
bool stat),
42 (DtLgrHlaSimulationManager& simMgr, RTI::ObjectClassHandle classHandle,
43 const char* objName,
const DtDDMRegionSet* regionSetToUse,
44 double hbtime=0.0,
bool waitForRegionData=
false,
bool stat=
true))
47 virtual ~DtLgrHlaEntityPublisher();
49 virtual
void update(const DtStateMsg& msg,
double scaling,
bool isStatic);
51 virtual DtObjectPublisher* objPublisher();
54 virtual
void tick(
double scale,
bool isStatic);
58 virtual
void sendUpdateAtScaleChangePoint(
double oldScale,
double newScale,
bool wasStatic,
bool isStatic);
61 bool sendAllNextTick();
65 void setSendAllNextTick(
bool yesNo = true);
67 virtual
void setRegion(const DtDDMRegionSet& region);
70 virtual const DtDDMRegionSet& publishingRegions() const;
72 virtual
bool publishingToRegion( DtDDMRegionSP region );
77 virtual
void sendRequestedAttrs(
double scale,
bool isStatic);
79 virtual
void sendTheseAttrs(const RTI::AttributeHandleSet& attrs,
double scale,
bool isStatic);
81 virtual
void send(DtStateMsg& msg);
84 DtLgrHlaEntityPublisher(const DtLgrHlaEntityPublisher &other);
87 DtLgrHlaEntityPublisher &operator=(const DtLgrHlaEntityPublisher &other);
92 DtLgrHlaSimulationManager& mySimMgr;
95 bool mySendAllNextTick;
97 DtBaseEntityStateRepository* mySeenByAttrs;
98 DtDeadReckoner* myDeadReckoner;
100 double myLastScaling;
102 double myHeartbeatInterval;
103 double myLastHeartbeatTime;
105 DtVector myOrigVelocity;
106 DtVector myOrigAcceleration;
107 DtVector myOrigRotVel;
108 DtTaitBryan myOrigOrientation;
109 DtVector myOrigLocation;