12#ifndef WSFSPINSENSORSCHEDULER_HPP
13#define WSFSPINSENSORSCHEDULER_HPP
15#include "wsf_export.h"
21#include "UtCallback.hpp"
22#include "UtCallbackHolder.hpp"
38 static std::unique_ptr<WsfSensorScheduler>
ObjectFactory(
const std::string& aTypeName);
55 void RemoveTarget(
double aSimTime,
size_t aTargetIndex)
override;
63 void TurnOff(
double aSimTime)
override;
64 void TurnOn(
double aSimTime)
override;
73 void ResetSearchList();
80 void CalculateDetectionTime(
size_t aTargetIndex,
double aSimTime);
83 double CalculateAngle(
const ut::coords::WCS& aRangeVector,
double aAngle);
88 double GetDirection(
double aSimTime)
const;
93 ut::coords::WCS FutureVec(
double aSimTime,
WsfSensor* aSensorPtr,
const WsfPlatform* aTargetPtr);
98 double AngularDistance(
double aSimTime,
const WsfPlatform* aTargetPtr);
101 double mScanPeriod{10.0};
104 float mScanDirection{1.0f};
108 double mInitialAngle{0.0};
111 bool mRandomAzimuthPosition{
false};
114 bool mRandomAzimuthPositionCheck{
false};
117 std::map<std::size_t, double> mDetectionTimes;
122 std::map<size_t, std::unique_ptr<UtCallback>> mMoverCallbackMap;
123 std::map<size_t, std::unique_ptr<UtCallback>> mRouteCallbackMap;
126 std::vector<WsfSensorMode*> mModeList;
129 size_t mLastExplicitModeIndex{0};
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
virtual void RemoveTarget(double aSimTime, size_t aTargetIndex)
Definition WsfSensorScheduler.cpp:150
virtual void PlatformAdded(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfSensorScheduler.cpp:122
virtual void TurnOff(double aSimTime)
Definition WsfSensorScheduler.cpp:213
virtual bool Initialize(double aSimTime, WsfSensor *aSensorPtr, WsfSensorTracker *aTrackerPtr)
Definition WsfSensorScheduler.cpp:91
virtual bool SelectTarget(double aSimTime, double &aNextSimTime, size_t &aTargetIndex, WsfTrackId &aRequestId, WsfSensor::Settings &aSettings)
Definition WsfSensorScheduler.cpp:176
WsfSensorScheduler()
Definition WsfSensorScheduler.cpp:26
virtual void ModeDeselected(double aSimTime, WsfStringId aModeNameId)
Definition WsfSensorScheduler.cpp:106
virtual void TurnOn(double aSimTime)
Definition WsfSensorScheduler.cpp:219
virtual WsfSensorScheduler * Clone() const
Definition WsfSensorScheduler.cpp:45
virtual void ModeSelected(double aSimTime, WsfStringId aModeNameId)
Definition WsfSensorScheduler.cpp:115
virtual bool ProcessInput(UtInput &aInput)
Definition WsfSensorScheduler.cpp:132
Definition WsfSensorTracker.hpp:75
Definition WsfSensor.hpp:133
Definition WsfSensor.hpp:92
~WsfSpinSensorScheduler() override=default
static std::unique_ptr< WsfSensorScheduler > ObjectFactory(const std::string &aTypeName)
Definition WsfSpinSensorScheduler.cpp:49
WsfSpinSensorScheduler()=default
WsfSpinSensorScheduler & operator=(const WsfSpinSensorScheduler &)=delete
Definition WsfTrackId.hpp:33