22 using DtAddressList = std::list<DtAdsbDataServiceInterface::DtIcaoAddress>;
49 virtual bool init()
override;
58 virtual const char*
type()
const override;
64 virtual void tick()
override;
67 static void setMaxEntitiesCallback(
DtSimMessage * msg,
void * usr);
83 virtual void requestPhaseTick();
86 virtual void processTrackInfoPhaseTick();
89 virtual void ownershipAcquisitionPhaseTick();
92 virtual void creationPhaseTick();
96 virtual void deletionPhaseTick();
100 virtual void generalPhaseTick();
103 virtual void requestTracksInArea();
107 virtual bool processTrackAdditionEvents();
111 virtual bool processTrackRemovalEvents();
114 virtual void processTrackOwnershipResponse(
const DtAddressSet& tracks);
117 virtual void updateKnownTracks(
const DtAddressSet& tracks);
121 virtual void calculateAdditionAndRemovalTimes();
125 virtual void calculateAddAndRemoveTimesForTrack(
126 const DtAddress trackId,
const std::vector<DtVector>& areaWorldVertices,
127 const double requestPeriodEndSimTime);
138 virtual void checkForAddAndRemoveEventsForPoint(
139 const DtAddress trackId,
142 const bool ignorePreviousPoint,
143 const std::vector<DtVector>& areaWorldVertices,
152 virtual double calculateAdditionTimeAtPoint(
153 const DtAddress trackId,
155 const DtVector& ptLocalLocation,
157 const std::vector<DtVector>& areaWorldVertices,
165 virtual double calculateRemovalTimeAtPoint(
const DtAddress trackId,
167 const DtVector& ptLocalLocation,
168 const bool isFlyingAtPt,
170 const std::vector<DtVector>& areaWorldVertices,
174 virtual bool requestTrackOwnership(DtAddressSet& tracks);
177 virtual void releaseTrackOwnership(
const DtAddressSet& tracks);
180 virtual bool createEntitiesForTracks();
188 virtual void monitorNewEntities();
191 virtual void processEntityDeleted(
const DtSimObject* entity);
194 virtual void processEntityPromoted(
const DtSimObject* entity);
197 void cleanupRemovedEntities();
200 void recordPromotedEntities();
203 virtual DtEntityType objectTypeForTrack(
const DtTrackHandlePtr track)
const;
215 virtual bool calculateTrackPositionAtTime(
double simTime,
const DtTrackHandlePtr track,
216 DtVector& worldLocation,
double& heading, DtVector& velocity,
229 virtual bool locationNear2IsInside(
const DtVector& location1,
const DtVector& location2,
237 DtVector& worldLocation,
double& heading, DtVector& worldVelocity)
const;
242 virtual void trackPositionOnGround(
const DtPointHandlePtr point, DtVector& worldLocation,
243 double& heading, DtVector& worldVelocity)
const;
246 virtual void markAllEntitiesForDeletion();
250 virtual void markEntitiesOutsideOfAreaForDeletion();
254 virtual void markExcessEntitiesForDeletion();
257 virtual void deleteMarkedEntities();
260 virtual bool isTimeToRequestTracks(
double simTime)
const;
263 virtual bool isTimeForTrackAdditionEvent(
double simTime)
const;
266 virtual bool isTimeForTrackRemovalEvent(
double simTime)
const;
269 virtual void logEntityCreationStatistics();
275 virtual void setPhase(ProcessingPhase);
Definition: aircraftClutterAreaController.h:35
std::vector< DtBorderCrossing > DtBorderCrossingList
sim time and world location to cross a border
Definition: aircraftClutterAreaController.h:26
std::list< DtUUID > myEntitiesToDelete
Definition: aircraftClutterAreaController.h:302
#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:334
std::set< DtEntityType > excludedModels
Definition: aircraftClutterAreaController.h:317
Definition: aircraftClutterAreaController.h:31
bool myDebugEnabled
The following are for debug purposes only.
Definition: aircraftClutterAreaController.h:341
ProcessingPhase myPhase
Definition: aircraftClutterAreaController.h:329
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:33
std::map< DtAddress, boost::signals2::connection > EntityDeletionSignalMap
Definition: aircraftClutterAreaController.h:319
virtual void registerTaskMsgCallbacks()
DtAddressSet myKnownTracksToProcess
Definition: aircraftClutterAreaController.h:291
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:295
DtTrackEventMap myDelayedAdditionTimes
Definition: aircraftClutterAreaController.h:297
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:296
std::vector< DtVector > myPreCreatePts
Definition: aircraftClutterAreaController.h:342
std::vector< DtVector > myEnterPts
Definition: aircraftClutterAreaController.h:352
DtAddressSet myTracksRequested
Definition: aircraftClutterAreaController.h:300
Definition: aircraftClutterAreaController.h:32
std::map< DtAddress, boost::signals2::connection > EntityPromotedSignalMap
Definition: aircraftClutterAreaController.h:322
DtAddressSet myPromotedEntities
Definition: aircraftClutterAreaController.h:311
std::vector< DtVector > myPostEnterPts
Definition: aircraftClutterAreaController.h:351
std::vector< DtVector > myPostCreatePts
Definition: aircraftClutterAreaController.h:343
DtAddressSet myRemovedEntities
Definition: aircraftClutterAreaController.h:308
std::vector< DtVector > myCreatePts
Definition: aircraftClutterAreaController.h:344
virtual void updateTaskVisualizations()
Called to update task visualizations after every tick. Implemented by subclasses. ...
Definition: simComponent.h:443
virtual bool init() override
Calls setRadio()
ProcessingPhase
Definition: aircraftClutterAreaController.h:29
Definition: coordSystem.h:54
DtAddressSet myTracksToRequest
Definition: aircraftClutterAreaController.h:299
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:327
std::vector< DtVector > myExitPts
Definition: aircraftClutterAreaController.h:348
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:338
std::multimap< double, DtAddress > DtTrackEventMap
Definition: aircraftClutterAreaController.h:27
std::vector< DtVector > myPostExitPts
Definition: aircraftClutterAreaController.h:347
Definition: aircraftClutterAreaController.h:37
Definition: aircraftClutterAreaController.h:36
tbb::spin_mutex myPromotedEntitiesMutex
Definition: aircraftClutterAreaController.h:310
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:316
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
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:89
DtAddressList myTracksToCreate
Definition: aircraftClutterAreaController.h:301
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:80
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
unsigned myNumberCreatedRecently
For logging purposes only.
Definition: aircraftClutterAreaController.h:337
EntityDeletionSignalMap myEntityDeletionSignals
Definition: aircraftClutterAreaController.h:320
Definition: aircraftClutterAreaController.h:34
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:303
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:289
DtTime myDataEndTime
Definition: aircraftClutterAreaController.h:305
DtAircraftClutterAreaControllerDescriptor * myAircraftClutterAreaDescriptor
Definition: aircraftClutterAreaController.h:287
class DtLocalVertexList:
Definition: localVertexList.h:20
bool myCreatingEntitiesFromSave
Definition: aircraftClutterAreaController.h:330
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:346
std::vector< DtVector > myPreEnterPts
Definition: aircraftClutterAreaController.h:350
DtAdsbDataServiceInterface::DtAdsbDataJob::Ptr myAdsbTrackReq
Requests to the ADSB data manager.
Definition: aircraftClutterAreaController.h:326
int DtIcaoAddress
Definition: adsbDataServiceInterface.h:126
EntityPromotedSignalMap myEntityPromotedSignals
Definition: aircraftClutterAreaController.h:323
A locally simulated VRF object.
Definition: localObject.h:98
int myIcaoAddressToDebug
Definition: aircraftClutterAreaController.h:354
tbb::spin_mutex myRemovedEntitiesMutex
Definition: aircraftClutterAreaController.h:307