10 #ifndef lgrDisEntity_H_
11 #define lgrDisEntity_H_
17 #include <vl/entityStatePdu.h>
23 class DtDIGuyCustomPdu;
29 class DtLgrDisSimulationManager;
30 class DtLgrArtPartList;
34 class DT_DLL_LGRSIM DtLgrDisEntityPublisher :
public DtLgrPublisherInterface
38 DT_VIRTUAL_CTR(DtLgrDisEntityPublisher,(
const DtEntityStatePdu& pdu,
39 DtLgrDisSimulationManager* simManager))
42 virtual ~DtLgrDisEntityPublisher();
45 DtLgrDisEntityPublisher(
const DtLgrDisEntityPublisher& src );
47 DtLgrDisEntityPublisher& operator=(
const DtLgrDisEntityPublisher& src );
52 virtual void update(
const DtPdu& pdu,
double scaling,
bool isStatic,
bool sendFlag );
57 virtual void sendUpdateAtScaleChangePoint(
double oldScale,
double newScale,
58 bool wasStatic,
bool isStatic);
61 virtual bool timeoutNow();
65 virtual void tick(
double scale,
bool isStatic);
68 virtual const DtEntityIdentifier& id();
70 virtual void processDIGuyPdu(
const DtDIGuyCustomPdu& pdu);
80 virtual bool sendNow();
84 virtual void sendScaled(
double timescale,
bool isStatic,
bool doSend );
87 virtual void sendCurrent(
double timescale,
bool isStatic);
90 virtual void sendPdu();
95 virtual bool getArtPartParamsFromPdu();
100 virtual bool setArtPartParamsToPdu();
104 virtual bool scaleArtPartRateParams(
double ts );
108 virtual bool drArtPartParamsToScaleChangePoint( DtTime dt );
112 virtual void scaleVecs(
double ts );
115 virtual void scaleVelocity(
double ts );
118 DtEntityStatePdu lastRead;
119 DtEntityStatePdu toSend;
124 DtLgrDisSimulationManager* mySimManager;
127 DtTaitBryan myExtrapEuler;
128 DtVector myExtrapPos;
129 DtVector myExtrapVel;
130 DtVector myScaledVel;
131 DtVector myScaledAcc;
132 DtVector myScaledRotVel;
134 DtLgrArtPartList* myArtPartRecvList;
135 DtLgrArtPartList* myArtPartSendList;
138 int myPartBufferSize;
139 double myLastTimeScale;