WSF
WsfDisInterface.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11// ****************************************************************************
12// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFDISINTERFACEP_HPP
16#define WSFDISINTERFACEP_HPP
17
18#include <bitset>
19#include <iosfwd>
20#include <map>
21#include <memory>
22#include <set>
23#include <string>
24#include <vector>
25
26class DisBeam;
27#include "DisClockTime.hpp"
28#include "DisEntityId.hpp"
29class DisEntityState;
30#include "DisEntityType.hpp"
31class DisPdu;
32class DisPduFactory;
33class DisSystem;
34
35#include "UtCallbackHolder.hpp"
36class UtCalendar;
37#include "UtRandom.hpp"
38
40#include "WsfDisDevice.hpp"
42#include "WsfDisExchange.hpp"
43#include "WsfDisIO_Thread.hpp"
45class WsfDisPlatform;
46class WsfDisDraw;
47#include "WsfDisInput.hpp"
49#include "wsf_export.h"
50
51#include "WsfEvent.hpp"
52class WsfExtInterface;
53#include "WsfMessage.hpp"
54#include "WsfPlatform.hpp"
55#include "WsfSensor.hpp"
57#include "WsfStringId.hpp"
60class WsfTrack;
61class WsfSimulation;
62class WsfExtEmission;
63
64namespace wsf
65{
66namespace comm
67{
68class Comm;
69class Result;
70} // namespace comm
71} // namespace wsf
72
81
83{
84public:
85 friend class WsfDisPlatform;
86 friend class WsfDisEntityState;
87
88 static DisUint16 cSHADOW_SITE;
89 static DisUint16 cMIN_PLAYBACK_SITE;
90 static DisUint16 cMAX_PLAYBACK_SITE;
91 static WsfDisInterface* Find(const WsfSimulation& aSimulation);
92 WsfDisInterface(WsfDisInput& aScenario, WsfSimulation& aSim, WsfExtInterface* aExtInterfacePtr);
93 void AddedToSimulation() override;
94 bool Initialize() override;
95 ~WsfDisInterface() override;
96
97 bool PrepareExtension() override;
98
100
101 bool ActivateConnection(double aSimTime);
102
103 WsfDisPlatform* AddExternalPlatform(double aSimTime, std::unique_ptr<WsfDisEntityState> aEntityPtr);
104
105 bool ClearIgnoredSiteAndApp(unsigned short aSite, unsigned short aApp);
107
108 WsfDisPlatform* FindDisPlatform(const DisEntityId& aEntityId);
109
110 double GetSimTime() const { return mSimTime; }
111
112 WsfDisPlatform* GetDisPlatform(size_t aPlatformIndex);
113
114 size_t GetDisPlatformCount() const { return mDisPlatforms.size(); }
115
116 WsfExtEntityDeadReckon* GetDeadReckonPtr() { return mDeadReckonPtr; }
117
118 void GetEntityId(WsfPlatform* aPlatformPtr, DisEntityId& aEntityId);
119
120 void GetEntityIdFromIndex(size_t aPlatformIndex, DisEntityId& aEntityId);
121
123 double GetEntityOrientationThreshold() const { return mDeadReckonPtr->GetEntityOrientationThreshold(); }
124
126 double GetEntityPositionThreshold() const { return mDeadReckonPtr->GetEntityPositionThreshold(); }
127
129 double GetHeartbeatTimer() const { return mDeadReckonPtr->GetHeartbeatTimer(); }
130
132 double GetHeartbeatMultiplier() const { return mHeartbeatMultiplier; }
133
134 double GetTimeFromPdu(DisPdu& aPdu) const;
135
138 bool GetAutostart() const { return mAutostart; }
139
141 unsigned int GetPutCounter() const { return mPutCounter; }
142
144 void SetPutCounter(int aCount) { mPutCounter = aCount; }
145
147 bool HasInputDevice() const { return mHasInputDevice; }
148
150 bool HasOutputDevice() const { return mHasOutputDevice; }
151
153 bool HasExternalDevice() const { return mHasExternalDevice; }
154
156 bool HasDevice() const { return HasInputDevice() || HasOutputDevice(); }
157
158 unsigned int GetDeviceCount() const { return static_cast<unsigned int>(mDevices.size()); }
159
160 WsfDisDevice* GetDevice(unsigned int aIndex) { return mDevices[aIndex]; }
161 using DeviceList = std::vector<WsfDisDevice*>;
162 DeviceList& GetDeviceList() { return mDevices; }
163
165 int GetSendPort() const;
166
168 int GetRcvPort() const;
169
171 double GetInitialDistributionInterval() { return mDeadReckonPtr->GetInitialDistributionInterval(); }
172
173 DisPduFactory* GetPduFactory() { return mPduFactoryPtr; }
174
175 DisPdu* GetPdu();
176
178 ut::Random& GetRandom();
179
180 void PutPdu(double aSimTime, std::unique_ptr<DisPdu> aPduPtr);
181
182 void ImmediatePutPdu(double aSimTime, DisPdu& aPduPtr);
183
184 static void ReadEntityId(UtInput& aInput, DisEntityId& aEntityId);
185
186 static void ReadEntityType(UtInput& aInput, DisEntityType& aEntityType);
187
188 void SetHeartbeatMultiplier(double aValue) { mHeartbeatMultiplier = aValue; }
189
190 void SetPduFactory(DisPduFactory* aFactoryPtr);
191
192 bool GetSuppressDisOutput() { return mSuppressDisOutput; }
193 void SetSuppressDisOutput(bool aFlag) { mSuppressDisOutput = aFlag; }
194
196
201
203
204 using DelayEntityStateFn = bool (*)(WsfDisInterface& aInterfacePtr, const DisEntityId& aEntityId);
206 WsfStringId aPlatformType,
207 WsfDisEntityState* aEntityStatePtr);
208
209 void SetDelayEntityStateFunction(DelayEntityStateFn aDelayFn) { mEntityStateDelayFunctionPtr = aDelayFn; }
210 void SetCreateDisPlatformFunction(CreatePlatformFn aModifyFn) { mCreatePlatformFunctionPtr = aModifyFn; }
211 void ResumeEntityStateProcessing(double aSimTime, const DisEntityId& aEntityId);
213
214 //@ The remaining methods are called via the simulation observer interface.
216
217 void AdvanceTime(double aSimTime);
218
219 void Comment(double aSimTime, WsfPlatform* aPlatformPtr, const std::string& aComment);
220
221 void CommFrequencyChanged(double aSimTime, wsf::comm::Comm* aCommPtr);
222
223 void CommTurnedOff(double aSimTime, wsf::comm::Comm* aCommPtr);
224
225 void CommTurnedOn(double aSimTime, wsf::comm::Comm* aCommPtr);
226
227 void FrameComplete(double aSimTime);
228
229 void FramePlatformsUpdated(double aSimTime);
230
231 void FrameStarting(double aSimTime);
232
236
238
239 void MessageReceived(double aSimTime,
240 wsf::comm::Comm* aXmtrPtr,
241 wsf::comm::Comm* aRcvrPtr,
242 const WsfMessage& aMessage,
243 wsf::comm::Result& aResult);
244
245 void MessageTransmitted(double aSimTime, wsf::comm::Comm* aCommPtr, const WsfMessage& aMessage);
246
247 void MoverUpdated(double aSimTime, WsfExtEntityDeadReckon::PlatformDR& aDeadReckonData);
248
249 void PlatformAdded(double aSimTime, WsfPlatform* aPlatformPtr);
250
251 void PlatformDeleted(double aSimTime, WsfPlatform* aPlatformPtr);
252
253 void PlatformInitialized(double aSimTime, WsfPlatform* aPlatformPtr);
254
255 void RequestTimeAdvance(double aSimTime, double aMaxRate, double aTimeStep);
256
257 void SensorDetectionChanged(double aSimTime, WsfSensor* aSensorPtr, size_t aTargetPlatformIndex, WsfSensorResult& aResult);
258
259 void SensorFrequencyChanged(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr);
260
261 void SensorModeActivated(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr);
262
263 void SensorModeDeactivated(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr);
264
265 void SensorRequestCanceled(double aSimTime, WsfSensor* aSensorPtr, const WsfTrack* aTrackPtr);
266
267 void SensorRequestInitiated(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr, const WsfTrack* aTrackPtr);
268
269 void SensorRequestUpdated(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr, const WsfTrack* aTrackPtr);
270
271 void SensorScanUpdated(double aSimTime, WsfSensor* aSensorPtr);
272
273 void SensorTrackDropped(double aSimTime, WsfSensor* aSensorPtr, const WsfTrack* aTrackPtr);
274
275 void SensorTrackInitiated(double aSimTime, WsfSensor* aSensorPtr, const WsfTrack* aTrackPtr);
276
277 void SensorTurnedOff(double aSimTime, WsfSensor* aSensorPtr);
278
279 void SensorTurnedOn(double aSimTime, WsfSensor* aSensorPtr);
280
281 static void SimTimeToDisClockTime(double aSimTime, DisClockTime& aClockTime);
282
283 void SimulationPausing();
284 void SimulationResuming();
285
286 void SimulationComplete(double aSimTime);
287 void SimulationDestroyed(WsfSimulation* aSimulationPtr);
288 void SimulationStarting();
290
291 DisUint32 GetNextRequestNumber() { return ++mSerialRequestNumber; }
292 DisUint8 GetReliabilityService() const { return mReliabilityService; }
293
294 bool PauseIsInProgress() const { return mPauseIsInProgress; }
295 void SendPeriodicPdusWhilePaused(std::vector<unsigned int>& aEntityIndices);
296 void SendDateAndTime(WsfDisDevice& aDevice, const DisEntityId& aReceivingId, const UtCalendar& aDateTime);
297
298 bool ShouldJoinExercise() const { return mJoinExercise; }
299
300 void WriteEntityTypes(std::ostream& aStream);
301
302 WsfExtInterface* GetExtInterface() const { return mExtInterfacePtr; }
303 WsfExtEmission* GetExtEmission() const;
304 WsfDisArticulatedPartList* GetArticulatedParts() const { return mArticulatedPartListPtr; }
305
306 // allow real-time filtering
307 void EnableFiltering() { mFilteringEnabled = true; }
308 void ResetFiltering();
309
310 std::map<DisEntityId, WsfDisPlatform*>& GetEntityIdToDisPlatform() { return mEntityIdToDisPlatform; }
311
313
314 void ExtrapolatePlatformState(double aSimTime, WsfDisPlatform* aDisPlatformPtr);
315
316 void PrepareFinalEntityState(double aSimTime, WsfPlatform* aPlatformPtr, DisEntityState* aEntityStatePtr);
317
318 bool UpdateAppearanceFromPlatform(double aSimTime, WsfPlatform* aPlatformPtr, DisEntityState* aEntityStatePtr);
319
320 void UpdatePlatformFromAppearance(double aSimTime, WsfPlatform* aPlatformPtr, DisEntityState* aEntityStatePtr);
321
322 void UpdatePlatformFromEntityState(double aSimTime, WsfDisPlatform* aDisPlatformPtr, DisEntityState* aEntityStatePtr);
323
324 void UpdatePlatformSystem(WsfPlatform* aPlatformPtr, WsfDisEmission* aEmissionPtr, DisSystem* aSystemPtr);
325
326 void SetBeamTypeAndFunction(WsfPlatformPart* aPartPtr,
327 WsfStringId aModeNameId,
328 int aBeamNumber,
329 DisBeam* aBeamPtr,
330 DisEnum8 aDefaultFunction);
331
332 void SetEmitterTypeAndFunction(WsfPlatformPart* aPartPtr, DisSystem* aSystemPtr);
333
334 void UpdateBeamFromXmtr(WsfEM_Xmtr& aXmtr, DisBeam* aBeamPtr, double aMinAz, double aMaxAz, double aMinEl, double aMaxEl);
335
336 void UpdateXmtrFromBeam(WsfDisEmission* aEmissionPtr, DisBeam* aBeamPtr, WsfEM_Xmtr* aXmtrPtr, bool& aBeamOn);
337
338 void UpdateSystemFromSensor(WsfSensor* aSensorPtr, DisSystem* aSystemPtr);
340
341 void UpdateLastSimTime(double aSimTime) { mLastSimTime = aSimTime; }
342
343 bool IsDeferredConnection() const { return mIsDeferredConnection; }
344
345 void ExecuteDeferredTransmitEvent(double aSimTime, size_t aPlatformIndex);
346 double ExecuteSensorUpdateEvent(double aSimTime);
347 void InitializeInputData();
348
349 void ReceivedBadEntityState();
350
351 bool GetEntityType(WsfStringId aTypeName, DisEntityType& aEntityType) const;
352
353private:
354 WsfDisPlatform* AddExternalPlatformP(double aSimTime, std::unique_ptr<WsfDisEntityState> aEntityPtr);
355
356 // The following event is scheduled periodically when in simulation pause to send out
357 // Entity State and Emission PDUs so external simulations will not time them out.
358 class PauseUpdateEvent : public WsfEvent
359 {
360 public:
361 PauseUpdateEvent(double aWallTime,
362 double aSimTime,
363 double aWallUpdateInterval,
364 unsigned int aNumPlatformsPerPulse,
365 const std::vector<unsigned int>& aPlatformIndices,
366 WsfDisInterface* aInterfacePtr);
367 EventDisposition Execute() override;
368
369 private:
370 WsfDisInterface* mInterfacePtr;
371 double mWallUpdateInterval;
372 double mSimTime; // Constant during the pause interval.
373 unsigned int mNumberPlatIndicesPerExecute;
374 unsigned int mSendCounter;
375 std::vector<unsigned int> mPlatformIndices;
376 };
377
378 // The following event is scheduled to activate the network connection
379 // at the time specified by the 'deferred_connection_time' command.
380
381 class ActivateDeferredConnectionEvent : public WsfEvent
382 {
383 public:
384 ActivateDeferredConnectionEvent(double aSimTime, WsfDisInterface* aInterfacePtr)
385 : WsfEvent(aSimTime)
386 , mInterfacePtr(aInterfacePtr)
387 {
388 }
389
390 EventDisposition Execute() override;
391
392 private:
393 WsfDisInterface* mInterfacePtr;
394 };
395
396 void AddCallbacks();
397
398 void AddPlatform(double aSimTime, WsfPlatform* aPlatformPtr);
399
400 void AddShadowPlatform(double aSimTime, const WsfPlatform* aPlatformPtr);
401
402 void DeletePlatform(double aSimTime, size_t aPlatformIndex);
403
404 void CleanupDevices();
405
406 bool GetEntityType(const WsfObject* aObjectPtr, DisEntityType& aEntityType) const;
407
408 bool RunFilterChecks(const DisPdu* aPdu);
409
410 DisUint32 ConvertDamageFactorToDamageState(double aDamageFactor);
411 double ConvertDamageStateToDamageFactor(DisUint32 aDamageState);
412
413 StringToStateIdVec* GetAfterburnerSigStateByType(WsfStringId aType, int aStateFlag);
414 StringToStateIdVec* GetAfterburnerSigStateByName(WsfStringId aName, int aStateFlag);
415
416 StringToStateIdVec* GetConfigSigStateByType(WsfStringId aType, int aStateFlag);
417 StringToStateIdVec* GetConfigSigStateByName(WsfStringId aName, int aStateFlag);
418
419 void UpdatePlatformFromArticulationRecords(double aSimTime,
420 WsfPlatform* aPlatformPtr,
421 DisEntityState* aNewStatePtr,
422 DisEntityState* aOldStatePtr);
423
424 void SetAppearance(DisUint32& aAppearance, WsfPlatform* aPlatformPtr, unsigned int aLSB, unsigned int aNumBits);
425
426 WsfExtInterface* mExtInterfacePtr;
427 UtCallbackHolder mCallbacks;
428 UtCallbackHolder mConditionalCallbacks;
429
430 std::vector<WsfPlatform*> mAddedPlatforms;
431 std::vector<unsigned int> mDeletedPlatforms;
432
433 double mHeartbeatMultiplier;
434
435 bool mIsDeferredConnection;
436
437 WsfDisIO_Thread* mIO_ThreadPtr;
438
439 DeviceList mDevices;
440 bool mHasInputDevice;
441 bool mHasOutputDevice;
442 bool mHasExternalDevice;
443 unsigned int mCurrentGetDevice;
444
445 DisPduFactory* mPduFactoryPtr;
446
447 WsfDisExchange mWsfDisExchange;
448
449 unsigned int mPutCounter;
450
451 DisUint32 mSerialRequestNumber;
452 DisUint8 mReliabilityService;
453
454 // The following is used for communication between AddExternalPlatform()
455 // and PlatformAdded().
456
457 std::unique_ptr<WsfDisEntityState> mExternalEntityStatePtr;
458
459 // The following table is indexed by the simulation index of a platform.
460 std::vector<WsfDisPlatform*> mDisPlatforms;
461
462 // A map of entity ID to DIS platform
463 std::map<DisEntityId, WsfDisPlatform*> mEntityIdToDisPlatform;
464
465 // A map of deleted platforms with there corresponding entity id
466 // Need to be saved in order to clean up track/jam lists, etc.
467 std::map<size_t, DisEntityId> mDelPlatformIndexToEntityId;
468
469 std::vector<std::unique_ptr<WsfDisEntityState>> mDelayedEntityStates;
470
471 DelayEntityStateFn mEntityStateDelayFunctionPtr;
472 CreatePlatformFn mCreatePlatformFunctionPtr;
473 double mSimTime;
474 double mLastSimTime;
475
476 bool mFilteringEnabled;
477
479 bool mSuppressDisOutput;
480
482 bool mPauseIsInProgress;
483
485 WsfDisDraw* mReplayDrawPtr;
486 WsfDisVisualization* mVisualizationPtr;
487
489 WsfExtEntityDeadReckon* mDeadReckonPtr;
490
491 WsfDisArticulatedPartList* mArticulatedPartListPtr;
492
494 // Entity State
495
498
499 unsigned int mNullEntityIdCount;
500 std::map<DisEntityId, int> mBadDataCount;
501
503 // WsfDisPlatform
504 std::list<size_t> mSensorUpdateList;
505 bool mSensorUpdateScheduled;
506};
507
508#endif
aObjectPtr SetAppearance(16, 1, afterburnerValue, true)
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfDisArticulatedPart.hpp:102
A base class for a DIS I/O device (file, network, etc).
Definition WsfDisDevice.hpp:33
Provides DIS output for WsfDraw.
Definition WsfDisDraw.hpp:26
Definition WsfDisEmission.hpp:37
Definition WsfDisEntityState.hpp:38
Definition WsfDisFilterAllowance.hpp:33
bool mJoinExercise
Join an exercise for non-realtime simulation.
Definition WsfDisInput.hpp:197
bool mSuppressCME_EntityData
'true' if the non-standard 'other' PDU used for CME entity data should NOT be sent.
Definition WsfDisInput.hpp:215
bool mUseSimpleOrientRates
Use the calculated simple orientation rates.
Definition WsfDisInput.hpp:195
bool mSuppressCME_DetectBeam
Deprecated commands.
Definition WsfDisInput.hpp:213
bool mSuppressCME_PassiveSensor
'true' if the non-standard practice of sending emissions PDUs for passive sensors should NOT take pla...
Definition WsfDisInput.hpp:219
WsfDisInput()
Definition WsfDisInput.cpp:34
bool mIgnoreStopFreezePDU
Ignore the Stop/Freeze PDU; can be used by simulations running asynchronously.
Definition WsfDisInput.hpp:208
bool mUseWorldToBodyAngularVelocities
Force the world (Euler) angular velocities to body axis angular velocities.
Definition WsfDisInput.hpp:204
bool mAutostart
Definition WsfDisInput.hpp:189
bool mSuppressEmissionsData
Definition WsfDisInput.hpp:185
bool mZeroBodyAngularVelocities
Zero out the world (Euler) angular velocities to body axis angular velocities.
Definition WsfDisInput.hpp:206
Definition WsfDisInterface.hpp:83
void SetPutCounter(int aCount)
Sets the number of sent DIS PDUs.
Definition WsfDisInterface.hpp:144
WsfDisPlatform * AddExternalPlatform(double aSimTime, std::unique_ptr< WsfDisEntityState > aEntityPtr)
Definition WsfDisInterface.cpp:480
bool(*)(WsfDisInterface &aInterfacePtr, const DisEntityId &aEntityId) DelayEntityStateFn
Definition WsfDisInterface.hpp:204
DisUint8 GetReliabilityService() const
Definition WsfDisInterface.hpp:292
double GetInitialDistributionInterval()
Returns initial distribution time.
Definition WsfDisInterface.hpp:171
bool GetAutostart() const
Definition WsfDisInterface.hpp:138
DeviceList & GetDeviceList()
Definition WsfDisInterface.hpp:162
bool HasDevice() const
Returns true if a device is configured for sending or receiving PDU's.
Definition WsfDisInterface.hpp:156
DisUint32 GetNextRequestNumber()
Definition WsfDisInterface.hpp:291
bool HasInputDevice() const
Returns true if at least device is configured for receiving DIS PDU's.
Definition WsfDisInterface.hpp:147
bool PauseIsInProgress() const
Definition WsfDisInterface.hpp:294
bool ClearIgnoredSiteAndApp(unsigned short aSite, unsigned short aApp)
Remove a site/application from the ignored site/application list.
Definition WsfDisInterface.cpp:840
bool HasExternalDevice() const
Returns true if at least one device is a external device.
Definition WsfDisInterface.hpp:153
WsfDisInterface(WsfDisInput &aScenario, WsfSimulation &aSim, WsfExtInterface *aExtInterfacePtr)
Definition WsfDisInterface.cpp:95
static DisUint16 cMAX_PLAYBACK_SITE
Definition WsfDisInterface.hpp:90
DisPduFactory * GetPduFactory()
Definition WsfDisInterface.hpp:173
size_t GetDisPlatformCount() const
Definition WsfDisInterface.hpp:114
double GetEntityOrientationThreshold() const
Return the orientation threshold (radians).
Definition WsfDisInterface.hpp:123
WsfExtInterface * GetExtInterface() const
Definition WsfDisInterface.hpp:302
unsigned int GetDeviceCount() const
Definition WsfDisInterface.hpp:158
static WsfDisInterface * Find(const WsfSimulation &aSimulation)
Definition WsfDisInterface.cpp:89
bool GetSuppressDisOutput()
Definition WsfDisInterface.hpp:192
double GetHeartbeatTimer() const
Return the heartbeat timer (seconds).
Definition WsfDisInterface.hpp:129
void UpdateLastSimTime(double aSimTime)
Definition WsfDisInterface.hpp:341
bool UseSimpleOrientationRate()
Definition WsfDisInterface.hpp:233
void EnableFiltering()
Definition WsfDisInterface.hpp:307
void SetSuppressDisOutput(bool aFlag)
Definition WsfDisInterface.hpp:193
bool SuppressAllNonStandardPDUs()
Definition WsfDisInterface.hpp:197
void SetDelayEntityStateFunction(DelayEntityStateFn aDelayFn)
Definition WsfDisInterface.hpp:209
bool HasOutputDevice() const
Returns true if at least device is configured for sending DIS PDU's.
Definition WsfDisInterface.hpp:150
WsfDisDevice * GetDevice(unsigned int aIndex)
Definition WsfDisInterface.hpp:160
std::vector< WsfDisDevice * > DeviceList
Definition WsfDisInterface.hpp:161
void WriteEntityTypes(std::ostream &aStream)
unsigned int GetPutCounter() const
Returns number of sent DIS PDUs.
Definition WsfDisInterface.hpp:141
WsfPlatform *(*)(WsfDisInterface & aInterface, WsfStringId aPlatformType, WsfDisEntityState *aEntityStatePtr) CreatePlatformFn
Definition WsfDisInterface.hpp:205
double GetSimTime() const
Definition WsfDisInterface.hpp:110
WsfExtEntityDeadReckon * GetDeadReckonPtr()
Definition WsfDisInterface.hpp:116
bool IgnoreStopFreezePDU()
Definition WsfDisInterface.hpp:237
bool ActivateConnection(double aSimTime)
Definition WsfDisInterface.cpp:224
friend class WsfDisPlatform
Definition WsfDisInterface.hpp:85
void SetCreateDisPlatformFunction(CreatePlatformFn aModifyFn)
Definition WsfDisInterface.hpp:210
static DisUint16 cSHADOW_SITE
Definition WsfDisInterface.hpp:88
static DisUint16 cMIN_PLAYBACK_SITE
Definition WsfDisInterface.hpp:89
friend class WsfDisEntityState
Definition WsfDisInterface.hpp:86
bool ShouldJoinExercise() const
Definition WsfDisInterface.hpp:298
bool ClearIgnoredSitesAndApps()
Definition WsfDisInterface.cpp:863
WsfDisArticulatedPartList * GetArticulatedParts() const
Definition WsfDisInterface.hpp:304
bool GetSuppressEmissionsData() const
Definition WsfDisInterface.hpp:195
bool ZeroWorldToBodyAngularVelocities()
Definition WsfDisInterface.hpp:235
double GetHeartbeatMultiplier() const
Return the heartbeat multiplier.
Definition WsfDisInterface.hpp:132
double GetEntityPositionThreshold() const
Return the entity position threshold (meters).
Definition WsfDisInterface.hpp:126
bool IsDeferredConnection() const
Definition WsfDisInterface.hpp:343
void SetHeartbeatMultiplier(double aValue)
Definition WsfDisInterface.hpp:188
WsfDisPlatform * FindDisPlatform(const DisEntityId &aEntityId)
Definition WsfDisInterface.cpp:926
bool UseWorldToBodyAngularVelocities()
Definition WsfDisInterface.hpp:234
std::map< DisEntityId, WsfDisPlatform * > & GetEntityIdToDisPlatform()
Definition WsfDisInterface.hpp:310
An internal class used by WsfDisInterface to maintain information about a platform.
Definition WsfDisPlatform.hpp:67
Sends DisOther PDU's with commands to change visualization parameters.
Definition WsfDisVisualization.hpp:28
Definition WsfEM_Xmtr.hpp:55
Definition WsfEvent.hpp:29
Definition WsfExtEmission.hpp:32
Maintains a platform's dead reckon state.
Definition WsfExtEntityDeadReckon.hpp:108
Definition WsfExtEntityDeadReckon.hpp:46
The WSF Ext is code which is shared between common external interfaces like DIS and HLA.
Definition WsfExtInterface.hpp:183
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Definition WsfPlatformPart.hpp:61
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Definition WsfSensorMode.hpp:36
Definition WsfSensorResult.hpp:27
Definition WsfSensor.hpp:92
const WsfScenario & GetScenario() const
Definition WsfSimulationExtension.cpp:31
WsfSimulationExtension()
Definition WsfSimulationExtension.cpp:23
virtual bool PrepareExtension()
Definition WsfSimulationExtension.cpp:72
friend class WsfSimulation
Definition WsfSimulationExtension.hpp:43
virtual bool Initialize()
Definition WsfSimulationExtension.cpp:49
virtual void AddedToSimulation()
Definition WsfSimulationExtension.cpp:41
The main controller for a simulation.
Definition WsfSimulation.hpp:109
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfComm.hpp:43
Definition WsfCommResult.hpp:34
Definition WsfComm.cpp:34
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved