12#ifndef WSFCOMPOSITESENSOR_HPP
13#define WSFCOMPOSITESENSOR_HPP
15#include "wsf_export.h"
20#include "UtCallbackHolder.hpp"
53 void TurnOff(
double aSimTime)
override;
54 void TurnOn(
double aSimTime)
override;
55 void Update(
double aSimTime)
override;
82 void Deselect(
double aSimTime)
override;
83 void Select(
double aSimTime)
override;
@ cWSF_INITIALIZE_ORDER_SENSOR
Definition WsfComponentRoles.hpp:178
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
CompositeMode & operator=(const CompositeMode &aSrc)
Definition WsfCompositeSensor.cpp:920
void InitializeTrack(double aSimTime, WsfTrack *&aTrackPtr) override
Definition WsfCompositeSensor.cpp:1178
void Select(double aSimTime) override
Definition WsfCompositeSensor.cpp:1148
void ApplyMeasurementErrors(WsfSensorResult &aResult) override
Definition WsfCompositeSensor.cpp:1168
bool Initialize(double aSimTime) override
Definition WsfCompositeSensor.cpp:962
~CompositeMode() override=default
bool ProcessInput(UtInput &aInput) override
Definition WsfCompositeSensor.cpp:971
CompositeMode()
Definition WsfCompositeSensor.cpp:900
void UpdateTrack(double aSimTime, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) override
Definition WsfCompositeSensor.cpp:1194
WsfMode * Clone() const override
Create an exact duplicate of this mode.
Definition WsfCompositeSensor.cpp:955
bool AttemptToDetect(double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult) override
Definition WsfCompositeSensor.cpp:978
void Deselect(double aSimTime) override
Definition WsfCompositeSensor.cpp:1128
A specialization of WsfSensor that implements a sensor that is a collection of other sensors.
Definition WsfCompositeSensor.hpp:30
bool IsA_ConstituentSensor(WsfSensor *aSensorPtr)
Definition WsfCompositeSensor.cpp:742
unsigned int GetSensorIndex(WsfSensor *aSensorPtr) const
Definition WsfCompositeSensor.cpp:757
std::vector< WsfSensor * > mSensorPtrs
The list of constituent sensors (not valid until after Initialize is called).
Definition WsfCompositeSensor.hpp:119
OperatingMode
Definition WsfCompositeSensor.hpp:33
@ cOM_INDEPENDENT
Definition WsfCompositeSensor.hpp:35
@ cOM_UNDEFINED
Definition WsfCompositeSensor.hpp:34
@ cOM_SYNCHRONOUS
Definition WsfCompositeSensor.hpp:36
void UpdateXmtrRcvrLists()
Definition WsfCompositeSensor.cpp:876
std::recursive_mutex mMutex
Mutex for locking simulation observer callbacks when multi-threading.
Definition WsfCompositeSensor.hpp:138
void SensorDetectionChanged(double aSimTime, WsfSensor *aSensorPtr, size_t aTargetIndex, WsfSensorResult &aResult)
Definition WsfCompositeSensor.cpp:818
WsfCompositeSensor & operator=(const WsfCompositeSensor &aSrc)=delete
OperatingMode mOperatingMode
Definition WsfCompositeSensor.hpp:113
std::vector< CompositeMode * > mCompositeModeList
The sensor-specific list of modes (not valid until Initialize is called).
Definition WsfCompositeSensor.hpp:116
WsfTrackManager * mTrackManagerPtr
Pointer to the track manager that holds the track lists.
Definition WsfCompositeSensor.hpp:135
void UpdateCompositeTrack(double aSimTime, const WsfTrack &aRawTrack)
Definition WsfCompositeSensor.cpp:604
UtCallbackHolder mCallbacks
Registered simulation observer callbacks.
Definition WsfCompositeSensor.hpp:141
double mTrackQuality
Definition WsfCompositeSensor.hpp:129
bool DropContributorTrack(double aSimTime, const WsfTrackId &aRawTrackId)
Definition WsfCompositeSensor.cpp:560
WsfCompositeSensor(WsfScenario &aScenario)
Definition WsfCompositeSensor.cpp:40
WsfFilter * mFilterPtr
The pointer to the prototype filter (if defined).
Definition WsfCompositeSensor.hpp:132
std::vector< WsfEM_Xmtr * > mXmtrList
The list of transmitters.
Definition WsfCompositeSensor.hpp:147
void SensorTurnedOff(double aSimTime, WsfSensor *aSensorPtr)
Definition WsfCompositeSensor.cpp:774
std::vector< WsfStringId > mSensorNames
The list of constituent sensor names.
Definition WsfCompositeSensor.hpp:122
std::vector< WsfEM_Rcvr * > mRcvrList
The list of receivers.
Definition WsfCompositeSensor.hpp:150
int GetComponentInitializationOrder() const override
Definition WsfCompositeSensor.hpp:47
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
Implement a filter as an adapter.
Definition WsfFilter.hpp:24
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
WsfMode()
Definition WsfMode.cpp:15
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfSensorMode()
Definition WsfSensorMode.cpp:47
Definition WsfSensorResult.hpp:27
Definition WsfSensor.hpp:133
bool ProcessInput(UtInput &aInput) override
Definition WsfSensor.cpp:380
void Update(double aSimTime) override
Definition WsfSensor.cpp:497
virtual WsfEM_Rcvr & GetEM_Rcvr(size_t aIndex) const
Definition WsfSensor.cpp:660
WsfSensor(const WsfScenario &aScenario)
Definition WsfSensor.cpp:52
virtual size_t GetEM_RcvrCount() const
Definition WsfSensor.cpp:646
WsfSensor * Clone() const override=0
virtual WsfEM_Xmtr & GetEM_Xmtr(size_t aIndex) const
Definition WsfSensor.cpp:714
bool Initialize(double aSimTime) override
Definition WsfSensor.cpp:255
virtual size_t GetEM_XmtrCount() const
Definition WsfSensor.cpp:700
bool Initialize2(double aSimTime) override
Definition WsfSensor.cpp:321
virtual bool WithinFieldOfView(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfSensor.cpp:751
void TurnOff(double aSimTime) override
Definition WsfSensor.cpp:523
void TurnOn(double aSimTime) override
Definition WsfSensor.cpp:563
Definition WsfTrackId.hpp:33
Definition WsfTrackManager.hpp:62
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120