10 #ifndef lgrDisEntity_H_
11 #define lgrDisEntity_H_
17 #include <vl/entityStatePdu.h>
23 class DtDIGuyCustomPdu;
30 class DtLgrDisSimulationManager;
31 class DtLgrArtPartList;
35 class DT_DLL_LGRSIM DtLgrDisEntityPublisher :
public DtLgrPublisherInterface
39 DT_VIRTUAL_CTR(DtLgrDisEntityPublisher,(
const DtEntityStatePdu& pdu,
40 DtLgrDisSimulationManager* simManager))
43 virtual ~DtLgrDisEntityPublisher();
46 DtLgrDisEntityPublisher(
const DtLgrDisEntityPublisher& src );
48 DtLgrDisEntityPublisher& operator=(
const DtLgrDisEntityPublisher& src );
53 virtual void update(
const DtPdu& pdu,
double scaling,
bool isStatic,
bool sendFlag );
58 virtual void sendUpdateAtScaleChangePoint(
double oldScale,
double newScale,
59 bool wasStatic,
bool isStatic);
62 virtual bool timeoutNow();
66 virtual void tick(
double scale,
bool isStatic);
69 virtual const DtEntityIdentifier& id();
71 virtual void processDIGuyPdu(
const DtDIGuyCustomPdu& pdu);
81 virtual bool sendNow();
85 virtual void sendScaled(
double timescale,
bool isStatic,
bool doSend );
88 virtual void sendCurrent(
double timescale,
bool isStatic);
91 virtual void sendPdu();
96 virtual bool getArtPartParamsFromPdu();
101 virtual bool setArtPartParamsToPdu();
105 virtual bool scaleArtPartRateParams(
double ts );
109 virtual bool drArtPartParamsToScaleChangePoint( DtTime dt );
113 virtual void scaleVecs(
double ts );
116 virtual void scaleVelocity(
double ts );
119 DtEntityStatePdu lastRead;
120 DtEntityStatePdu toSend;
125 DtLgrDisSimulationManager* mySimManager;
128 DtTaitBryan myExtrapEuler;
129 DtVector myExtrapPos;
130 DtVector32 myExtrapVel;
131 DtVector32 myScaledVel;
132 DtVector32 myScaledAcc;
133 DtVector32 myScaledRotVel;
135 DtLgrArtPartList* myArtPartRecvList;
136 DtLgrArtPartList* myArtPartSendList;
139 int myPartBufferSize;
140 double myLastTimeScale;
144 bool myFrozenBeforePause;
146 DtDeadReckoner* myOldDeadReckoner;
147 DtDeadReckonTypes myOldDRType;
148 bool myDRTypeChanged;