22 using DtAddressList = std::list<DtAdsbDataServiceInterface::DtIcaoAddress>;
48 virtual bool init()
override;
57 virtual const char*
type()
const override;
63 virtual void tick()
override;
66 static void setMaxEntitiesCallback(
DtSimMessage * msg,
void * usr);
82 virtual void requestPhaseTick();
85 virtual void processTrackInfoPhaseTick();
88 virtual void ownershipAcquisitionPhaseTick();
91 virtual void creationPhaseTick();
95 virtual void deletionPhaseTick();
99 virtual void generalPhaseTick();
102 virtual void requestTracksInArea();
106 virtual bool processTrackAdditionEvents();
110 virtual bool processTrackRemovalEvents();
113 virtual void processTrackOwnershipResponse(
const DtAddressSet& tracks);
116 virtual void updateKnownTracks(
const DtAddressSet& tracks);
120 virtual void calculateAdditionAndRemovalTimes();
124 virtual void calculateAddAndRemoveTimesForTrack(
125 const DtAddress trackId,
const std::vector<DtVector>& areaWorldVertices,
126 const double requestPeriodEndSimTime);
137 virtual void checkForAddAndRemoveEventsForPoint(
138 const DtAddress trackId,
141 const bool ignorePreviousPoint,
142 const std::vector<DtVector>& areaWorldVertices,
151 virtual double calculateAdditionTimeAtPoint(
152 const DtAddress trackId,
156 const std::vector<DtVector>& areaWorldVertices,
164 virtual double calculateRemovalTimeAtPoint(
const DtAddress trackId,
167 const bool isFlyingAtPt,
169 const std::vector<DtVector>& areaWorldVertices,
173 virtual bool requestTrackOwnership(DtAddressSet& tracks);
176 virtual void releaseTrackOwnership(
const DtAddressSet& tracks);
179 virtual bool createEntitiesForTracks();
187 virtual void monitorNewEntities();
190 virtual void processEntityDeleted(
const DtSimObject* entity);
193 virtual void processEntityPromoted(
const DtSimObject* entity);
196 void cleanupRemovedEntities();
199 void recordPromotedEntities();
214 virtual bool calculateTrackPositionAtTime(
double simTime,
const DtTrackHandlePtr track,
228 virtual bool locationNear2IsInside(
const DtVector& location1,
const DtVector& location2,
242 double& heading,
DtVector& worldVelocity)
const;
245 virtual void markAllEntitiesForDeletion();
249 virtual void markEntitiesOutsideOfAreaForDeletion();
253 virtual void markExcessEntitiesForDeletion();
256 virtual void deleteMarkedEntities();
259 virtual bool isTimeToRequestTracks(
double simTime)
const;
262 virtual bool isTimeForTrackAdditionEvent(
double simTime)
const;
265 virtual bool isTimeForTrackRemovalEvent(
double simTime)
const;
268 virtual void logEntityCreationStatistics();
274 virtual void setPhase(ProcessingPhase);
Definition: aircraftClutterAreaController.h:34
std::vector< DtBorderCrossing > DtBorderCrossingList
sim time and world location to cross a border
Definition: aircraftClutterAreaController.h:26
std::list< DtUUID > myEntitiesToDelete
Definition: aircraftClutterAreaController.h:301
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtAircraftClutterAreaController is a controller that runs on an area tactical graphic to create and m...
Definition: aircraftClutterAreaController.h:18
bool myIsProcessingInitialData
Indicates whether the calculateAdditionAndRemovalTimes function is looking at the first data that the...
Definition: aircraftClutterAreaController.h:333
Definition: aircraftClutterAreaController.h:31
bool myDebugEnabled
The following are for debug purposes only.
Definition: aircraftClutterAreaController.h:340
ProcessingPhase myPhase
Definition: aircraftClutterAreaController.h:328
virtual bool postAddComponentsInit() override
Calls enableTaskTypes()
virtual const char * type() const override=0
Returns a string identifies the class type of component. Type values are defined in compTypes...
Definition: aircraftClutterAreaController.h:32
std::map< DtAddress, boost::signals2::connection > EntityDeletionSignalMap
Definition: aircraftClutterAreaController.h:318
virtual void registerTaskMsgCallbacks()
DtAddressSet myKnownTracksToProcess
Definition: aircraftClutterAreaController.h:290
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:22
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
Definition: readerWriterRegistry.h:39
DtTrackEventMap myTrackAdditionTimes
Map of sim time to track ID. When to add or delete tracks.
Definition: aircraftClutterAreaController.h:294
DtTrackEventMap myDelayedAdditionTimes
Definition: aircraftClutterAreaController.h:296
virtual bool taskVisualizationsActive() const override
Returns true if task visualizations are currently active for this component. Default behavior for tas...
DtTrackEventMap myTrackRemovalTimes
Definition: aircraftClutterAreaController.h:295
std::vector< DtVector > myPreCreatePts
Definition: aircraftClutterAreaController.h:341
std::vector< DtVector > myEnterPts
Definition: aircraftClutterAreaController.h:351
DtAddressSet myTracksRequested
Definition: aircraftClutterAreaController.h:299
std::map< DtAddress, boost::signals2::connection > EntityPromotedSignalMap
Definition: aircraftClutterAreaController.h:321
DtAddressSet myPromotedEntities
Definition: aircraftClutterAreaController.h:310
std::vector< DtVector > myPostEnterPts
Definition: aircraftClutterAreaController.h:350
std::vector< DtVector > myPostCreatePts
Definition: aircraftClutterAreaController.h:342
DtAddressSet myRemovedEntities
Definition: aircraftClutterAreaController.h:307
Definition: objectType.h:27
std::vector< DtVector > myCreatePts
Definition: aircraftClutterAreaController.h:343
virtual void updateTaskVisualizations()
Called to update task visualizations after every tick. Implemented by subclasses. ...
Definition: simComponent.h:437
virtual bool init() override
Calls setRadio()
ProcessingPhase
Definition: aircraftClutterAreaController.h:29
Definition: coordSystem.h:54
DtAddressSet myTracksToRequest
Definition: aircraftClutterAreaController.h:298
std::list< DtAdsbDataServiceInterface::DtIcaoAddress > DtAddressList
Definition: aircraftClutterAreaController.h:22
std::shared_ptr< DtAdsbTrackHandle > DtTrackHandlePtr
Shared_ptr so that copy constructor will work on the pointer without destroying the rhs...
Definition: adsbDataServiceInterface.h:60
File: simMsg.h.
Definition: simMessage.h:35
DtAdsbDataServiceInterface::DtAdsbDataJob::Ptr myAdsbOwnershipReq
Definition: aircraftClutterAreaController.h:326
std::vector< DtVector > myExitPts
Definition: aircraftClutterAreaController.h:347
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
unsigned myNumberSkippedRecently
Definition: aircraftClutterAreaController.h:337
std::multimap< double, DtAddress > DtTrackEventMap
Definition: aircraftClutterAreaController.h:27
std::vector< DtVector > myPostExitPts
Definition: aircraftClutterAreaController.h:346
Definition: aircraftClutterAreaController.h:36
Definition: aircraftClutterAreaController.h:35
tbb::spin_mutex myPromotedEntitiesMutex
Definition: aircraftClutterAreaController.h:309
std::set< DtObjectType > excludedModels
Definition: aircraftClutterAreaController.h:316
tbb::spin_mutex myExcludedModelsMutex
A cache of object type patterns that are to be excluded. An empty set is also valid. This is compared against to limit the object types possible to be represented for a track.
Definition: aircraftClutterAreaController.h:315
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
std::set< DtIcaoAddress > DtIcaoAddrSet
Definition: adsbDataServiceInterface.h:127
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:91
DtAddressList myTracksToCreate
Definition: aircraftClutterAreaController.h:300
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:88
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
unsigned myNumberCreatedRecently
For logging purposes only.
Definition: aircraftClutterAreaController.h:336
EntityDeletionSignalMap myEntityDeletionSignals
Definition: aircraftClutterAreaController.h:319
Definition: aircraftClutterAreaController.h:33
std::shared_ptr< DtAdsbPathPointHandle > DtPointHandlePtr
Shared_ptr so that copy constructor will work on the pointer without destroying the rhs...
Definition: adsbDataServiceInterface.h:113
std::list< DtUUID > myNewEntities
Definition: aircraftClutterAreaController.h:302
DtAdsbDataServiceInterface::DtIcaoAddrSet DtAddressSet
Definition: aircraftClutterAreaController.h:23
std::pair< double, DtVector > DtBorderCrossing
Definition: aircraftClutterAreaController.h:25
std::shared_ptr< DtAdsbDataJob > Ptr
Definition: adsbDataServiceInterface.h:134
/******************************************************************************* ** Copyright (c) 202...
Definition: aircraftClutterAreaControllerDescriptor.h:19
DtAircraftClutterAreaPSR * myProcessState
Definition: aircraftClutterAreaController.h:288
DtTime myDataEndTime
Definition: aircraftClutterAreaController.h:304
DtAircraftClutterAreaControllerDescriptor * myAircraftClutterAreaDescriptor
Definition: aircraftClutterAreaController.h:286
class DtLocalVertexList:
Definition: localVertexList.h:20
bool myCreatingEntitiesFromSave
Definition: aircraftClutterAreaController.h:329
Instances of DtAircraftClutterAreaPSR are used to hold the checkpointable state data for the DtAircra...
Definition: aircraftClutterAreaPSR.h:15
std::vector< DtVector > myPreExitPts
Definition: aircraftClutterAreaController.h:345
std::vector< DtVector > myPreEnterPts
Definition: aircraftClutterAreaController.h:349
DtAdsbDataServiceInterface::DtAdsbDataJob::Ptr myAdsbTrackReq
Requests to the ADSB data manager.
Definition: aircraftClutterAreaController.h:325
int DtIcaoAddress
Definition: adsbDataServiceInterface.h:126
EntityPromotedSignalMap myEntityPromotedSignals
Definition: aircraftClutterAreaController.h:322
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86
int myIcaoAddressToDebug
Definition: aircraftClutterAreaController.h:353
tbb::spin_mutex myRemovedEntitiesMutex
Definition: aircraftClutterAreaController.h:306