10 #ifndef lgrHlaAggregatePublisher_H_
11 #define lgrHlaAggregatePublisher_H_
18 #include <vl/rtiCompatibility.h>
19 #include <vl/aggregatePublisherHLA.h>
21 class DtBaseEntityStateRepository;
27 class DtLgrHlaSimulationManager;
31 class DT_DLL_LGRSIM DtLgrHlaAggregatePublisher :
public DtAggregatePublisher,
32 public DtLgrPublisherInterface
40 (DtLgrHlaSimulationManager& simMgr, RTI::ObjectClassHandle classHandle,
41 const char* objName,
const DtDDMRegionSet* regionSetToUse,
42 double hbtime,
bool waitForRegionData,
bool stat),
43 (DtLgrHlaSimulationManager& simMgr, RTI::ObjectClassHandle classHandle,
44 const char* objName,
const DtDDMRegionSet* regionSetToUse,
45 double hbtime=0.0,
bool waitForRegionData=
false,
bool stat=
true))
48 virtual ~DtLgrHlaAggregatePublisher();
50 virtual
void update(const DtStateMsg& msg,
double scaling,
bool isStatic);
52 virtual DtObjectPublisher* objPublisher();
55 virtual
void tick(
double scale,
bool isStatic);
59 virtual
void sendUpdateAtScaleChangePoint(
double oldScale,
double newScale,
bool wasStatic,
bool isStatic);
62 bool sendAllNextTick();
66 void setSendAllNextTick(
bool yesNo = true);
68 virtual
void setRegion(const DtDDMRegionSet& region);
71 virtual const DtDDMRegionSet& publishingRegions() const;
73 virtual
bool publishingToRegion( DtDDMRegionSP region );
75 virtual
void setPauseUpdateAttributes(
double &scale);
80 virtual
void sendRequestedAttrs(
double scale,
bool isStatic);
82 virtual
void sendTheseAttrs(const RTI::AttributeHandleSet& attrs,
double scale,
bool isStatic);
84 virtual
void send(DtStateMsg& msg);
87 DtLgrHlaAggregatePublisher(const DtLgrHlaAggregatePublisher &other);
90 DtLgrHlaAggregatePublisher &operator=(const DtLgrHlaAggregatePublisher &other);
95 DtLgrHlaSimulationManager& mySimMgr;
98 bool mySendAllNextTick;
101 RTI::AttributeHandleSet* myAttrsToSend;
104 DtBaseEntityStateRepository* mySeenByAttrs;
106 DtDeadReckoner* myDeadReckoner;
108 double myLastScaling;
112 bool myFrozenBeforePause;
114 bool mySendingPauseUpdate;
116 double myHeartbeatInterval;
117 double myLastHeartbeatTime;
119 DtDeadReckoner* myOldDeadReckoner;
120 DtDeadReckonTypes myOldDRType;
121 bool myDRTypeChanged;
123 DtVector32 myOrigVelocity;
124 DtVector32 myOrigAcceleration;
125 DtVector32 myOrigRotVel;
126 DtTaitBryan myOrigOrientation;
127 DtVector myOrigLocation;