WSF
SimulationExtension.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
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 SIMULATIONEXTENSION_HPP
16#define SIMULATIONEXTENSION_HPP
17
18#include "UtCallbackHolder.hpp"
19class WsfPlatform;
21class WsfSensor;
22class WsfSensorMode;
23class WsfSensorResult;
25class WsfTrack;
26class WsfWeapon;
28
29
30namespace engage
31{
32
33class Events;
34class Simulation;
35class Task;
36class TaskOutput;
37
42{
43public:
45 ~SimulationExtension() override;
46
47 void AddedToSimulation() override;
48 bool Initialize() override;
49
50#define TODO_TEMPORARY_OBSERVERS
51#ifdef TODO_TEMPORARY_OBSERVERS
52 // TODO-TEMPORARAY OBSERVERS
53 void FrameStarting(double aSimTime);
54 void PlatformUpdated(double aSimTime, WsfPlatform* aPlatformPtr);
55#endif
56
58
59 void AdvanceTime(double aSimTime);
60
61 void FrameComplete(double aSimTime);
62
63 void PlatformAdded(double aSimTime, WsfPlatform* aPlatformPtr);
64
65 void PlatformAppearanceChanged(double aSimTime, WsfPlatform* aPlatformPtr, WsfObserver::AppearanceType aAppearanceType);
66
67 void PlatformDeleted(double aSimTime, WsfPlatform* aPlatformPtr);
68
69 void PlatformKilled(double aSimTime, WsfPlatform* aPlatformPtr);
70
71 void SensorDetectionAttempt(double aSimTime, WsfSensor* aSensorPtr, WsfPlatform* aTargetPtr, WsfSensorResult& aResult);
72
73 void SensorDetectionChanged(double aSimTime, WsfSensor* aSensorPtr, size_t aTargetIndex, WsfSensorResult& aResult);
74
75 void SensorFrequencyChanged(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr);
76
77 void SensorModeActivated(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr);
78
79 void SensorModeDeactivated(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr);
80
81 void SensorNonOperational(double aSimTime, WsfSensor* aSensorPtr);
82
83 void SensorOperational(double aSimTime, WsfSensor* aSensorPtr);
84
85 void SensorRequestCanceled(double aSimTime, WsfSensor* aSensorPtr, const WsfTrack* aTrackPtr);
86
87 void SensorRequestInitiated(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr, const WsfTrack* aTrackPtr);
88
89 void SensorRequestUpdated(double aSimTime, WsfSensor* aSensorPtr, WsfSensorMode* aModePtr, const WsfTrack* aTrackPtr);
90
91 void SensorTrackCoasted(double aSimTime, WsfSensor* aSensorPtr, const WsfTrack* aTrackPtr);
92
93 void SensorTrackDropped(double aSimTime, WsfSensor* aSensorPtr, const WsfTrack* aTrackPtr);
94
95 void SensorTrackInitiated(double aSimTime, WsfSensor* aSensorPtr, const WsfTrack* aTrackPtr);
96
97 void SensorTrackUpdated(double aSimTime, WsfSensor* aSensorPtr, const WsfTrack* aTrackPtr);
98
99 void SensorTurnedOff(double aSimTime, WsfSensor* aSensorPtr);
100
101 void SensorTurnedOn(double aSimTime, WsfSensor* aSensorPtr);
102
103 void SimulationComplete(double aSimTime);
104
105 void WeaponFireAborted(double aSimTime, WsfWeapon* aWeaponPtr, const WsfTrack* aTargetTrackPtr, double aQuantity);
106
107 void WeaponFired(double aSimTime, const WsfWeaponEngagement* aEngagementPtr, const WsfTrack* aTargetTrackPtr);
108
109 void WeaponFireRequested(double aSimTime, WsfWeapon* aWeaponPtr, const WsfTrack* aTargetTrackPtr, double aQuantity);
110
111
112 void WeaponHit(double aSimTime, const WsfWeaponEngagement* aEngagementPtr, WsfPlatform* aTargetPtr);
113
114 void WeaponKilled(double aSimTime, WsfWeapon* aWeaponPtr);
115
116 void WeaponMissed(double aSimTime, const WsfWeaponEngagement* aEngagementPtr, WsfPlatform* aTargetPtr);
117
118 void WeaponTerminated(double aSimTime, const WsfWeaponEngagement* aEngagementPtr);
120
121private:
122 UtCallbackHolder mCallbacks;
123
124 Task* mTaskPtr;
125 TaskOutput* mTaskOutputPtr; // Ease of use, gotten from mTaskPtr
126 Events* mEventsPtr; // Ease of use, gotten from mTaskOutputPtr
127
129 bool mWeaponTerminated;
130
133 bool mSimulationComplete;
134};
135
136} // namespace engage
137
138#endif
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Definition WsfSensorMode.hpp:36
Definition WsfSensorResult.hpp:27
Definition WsfSensor.hpp:92
WsfSimulationExtension()
Definition WsfSimulationExtension.cpp:23
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeaponEngagement.hpp:43
Definition WsfWeapon.hpp:63
This represents all of the events the user can select for writing.
Definition Events.hpp:37
void SensorModeActivated(double aSimTime, WsfSensor *aSensorPtr, WsfSensorMode *aModePtr)
Definition SimulationExtension.cpp:243
void AddedToSimulation() override
Definition SimulationExtension.cpp:61
void PlatformAdded(double aSimTime, WsfPlatform *aPlatformPtr)
Definition SimulationExtension.cpp:188
void SensorTrackDropped(double aSimTime, WsfSensor *aSensorPtr, const WsfTrack *aTrackPtr)
Definition SimulationExtension.cpp:297
void SensorTrackInitiated(double aSimTime, WsfSensor *aSensorPtr, const WsfTrack *aTrackPtr)
Definition SimulationExtension.cpp:303
void WeaponKilled(double aSimTime, WsfWeapon *aWeaponPtr)
Definition SimulationExtension.cpp:378
void SensorRequestUpdated(double aSimTime, WsfSensor *aSensorPtr, WsfSensorMode *aModePtr, const WsfTrack *aTrackPtr)
Definition SimulationExtension.cpp:282
void FrameComplete(double aSimTime)
Definition SimulationExtension.cpp:176
void PlatformDeleted(double aSimTime, WsfPlatform *aPlatformPtr)
Definition SimulationExtension.cpp:205
void WeaponFired(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, const WsfTrack *aTargetTrackPtr)
Definition SimulationExtension.cpp:353
void WeaponTerminated(double aSimTime, const WsfWeaponEngagement *aEngagementPtr)
Definition SimulationExtension.cpp:392
void SensorTurnedOff(double aSimTime, WsfSensor *aSensorPtr)
Definition SimulationExtension.cpp:315
bool Initialize() override
Definition SimulationExtension.cpp:113
void SensorDetectionChanged(double aSimTime, WsfSensor *aSensorPtr, size_t aTargetIndex, WsfSensorResult &aResult)
Definition SimulationExtension.cpp:228
void SimulationComplete(double aSimTime)
Definition SimulationExtension.cpp:327
void PlatformAppearanceChanged(double aSimTime, WsfPlatform *aPlatformPtr, WsfObserver::AppearanceType aAppearanceType)
Definition SimulationExtension.cpp:195
void PlatformUpdated(double aSimTime, WsfPlatform *aPlatformPtr)
void WeaponHit(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, WsfPlatform *aTargetPtr)
Definition SimulationExtension.cpp:371
void AdvanceTime(double aSimTime)
Definition SimulationExtension.cpp:166
void PlatformKilled(double aSimTime, WsfPlatform *aPlatformPtr)
Definition SimulationExtension.cpp:212
void SensorTrackCoasted(double aSimTime, WsfSensor *aSensorPtr, const WsfTrack *aTrackPtr)
Definition SimulationExtension.cpp:291
SimulationExtension()
Definition SimulationExtension.cpp:46
void WeaponFireRequested(double aSimTime, WsfWeapon *aWeaponPtr, const WsfTrack *aTargetTrackPtr, double aQuantity)
Definition SimulationExtension.cpp:343
void WeaponFireAborted(double aSimTime, WsfWeapon *aWeaponPtr, const WsfTrack *aTargetTrackPtr, double aQuantity)
Definition SimulationExtension.cpp:333
void WeaponMissed(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, WsfPlatform *aTargetPtr)
Definition SimulationExtension.cpp:385
void SensorRequestInitiated(double aSimTime, WsfSensor *aSensorPtr, WsfSensorMode *aModePtr, const WsfTrack *aTrackPtr)
Definition SimulationExtension.cpp:273
~SimulationExtension() override
Definition SimulationExtension.cpp:57
void SensorRequestCanceled(double aSimTime, WsfSensor *aSensorPtr, const WsfTrack *aTrackPtr)
Definition SimulationExtension.cpp:267
void SensorTurnedOn(double aSimTime, WsfSensor *aSensorPtr)
Definition SimulationExtension.cpp:321
void SensorNonOperational(double aSimTime, WsfSensor *aSensorPtr)
Definition SimulationExtension.cpp:255
void SensorFrequencyChanged(double aSimTime, WsfSensor *aSensorPtr, WsfSensorMode *aModePtr)
Definition SimulationExtension.cpp:237
void SensorDetectionAttempt(double aSimTime, WsfSensor *aSensorPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
Definition SimulationExtension.cpp:219
void SensorOperational(double aSimTime, WsfSensor *aSensorPtr)
Definition SimulationExtension.cpp:261
void FrameStarting(double aSimTime)
Definition SimulationExtension.cpp:173
void SensorTrackUpdated(double aSimTime, WsfSensor *aSensorPtr, const WsfTrack *aTrackPtr)
Definition SimulationExtension.cpp:309
void SensorModeDeactivated(double aSimTime, WsfSensor *aSensorPtr, WsfSensorMode *aModePtr)
Definition SimulationExtension.cpp:249
Definition Simulation.hpp:34
This class is the run-time output controller for the tasks.
Definition TaskOutput.hpp:42
Definition Task.hpp:47
AppearanceType
The type of data being changed in the PlatformAppearanceChanged callback.
Definition WsfPlatformObserver.hpp:31
Definition ApplicationExtension.cpp:26
Copyrights Multiple, All Rights Reserved