12#ifndef WSFLASERDESIGNATIONS_HPP
13#define WSFLASERDESIGNATIONS_HPP
18#include "UtCallback.hpp"
19#include "UtCallbackHolder.hpp"
21#include "wsf_mil_export.h"
123 unsigned int GetCode()
const {
return mLaserCode; }
127 double GetFrequency()
const;
129 void GetLocationWCS(
double aLocWCS[3])
const;
130 void GetTargetAdjustedLocationWCS(
double aLocWCS[3],
WsfLaserDesignations* aDesignationsPtr)
const;
131 void GetOffsetECS(
double aOffsetECS[3])
const;
132 void GetAcceleration(
double aAccel[3])
const;
133 double GetOffsetDistSquared()
const;
139 void SetCode(
unsigned int aCode) { mLaserCode = aCode; }
140 void SetCodeName(
unsigned int aCodeName) { mLaserCodeName = aCodeName; }
142 void SetOffsetECS(
const double aOffsetECS[3]);
143 void SetAcceleration(
const double aAccel[3]);
146 void SetFrequency(
double aValue);
148 void ClearDesignatedPlatform();
149 void SetDesignatedIndex(
WsfSimulation& aSimulation,
size_t aDesignatedIndex);
156 void AddLocalOcclusion(
WsfPlatform* aTargetPtr,
double aPlatformRadius,
const double aEmitterLocationWCS[3]);
158 void ComputeECS_OffsetFrom(
WsfPlatform* aTargetPtr,
const double aLocWCS[3]);
160 size_t mDesignatingPlatIndex;
161 size_t mDesignatedPlatIndex;
162 unsigned int mLaserCodeName;
163 unsigned int mLaserCode;
164 unsigned int mDeadReckoningAlgorithm;
165 unsigned int mSpotUpdateCount;
167 double mSimTimeStamp;
171 double mOffsetECS[3];
172 double mLocationWCS[3];
173 double mAcceleration[3];
176 bool mAddLocalOcclusion;
185 void Update(
double aSimTime);
192 bool AddOrUpdate(
const Spot& aDesignator,
const double aEmitterLocationWCS[3]);
201 void GetAllSpots(std::vector<const Spot*>& aSpotPtrs);
203 void GetSpecified(
unsigned int aLaserCode,
double aWaveLength, std::vector<const Spot*>& aSpotPtrs);
217 double mUpdateInterval;
221 void RemoveP(std::list<Spot>::iterator aDesignator, std::list<Spot>::iterator& aResultIter);
226 bool FindDesignationOf(
size_t aDesignatedPlatIndex, std::list<Spot>::iterator& aIter);
228 bool FindDesignationFrom(
size_t aDesignatingPlatIndex, std::list<Spot>::iterator& aIter);
230 bool mIsInitialized =
false;
231 bool mIsRegistered =
false;
232 double mLastUpdate = -100.0;
234 std::list<Spot> mSpots = std::list<Spot>();
235 UtCallbackHolder mCallbacks = UtCallbackHolder();
aObjectPtr Update(simTime)
pointPtr SetLocationWCS(finalPos.GetData())
Definition WsfDisDesignator.hpp:24
EventDisposition
Definition WsfEvent.hpp:37
double mUpdateInterval
Definition WsfLaserDesignations.hpp:47
WsfLaserDesignationsData()=default
bool InputIsProcessed() const
Definition WsfLaserDesignations.hpp:36
bool DebugEnabled() const
Definition WsfLaserDesignations.hpp:39
bool mProcessedInput
Definition WsfLaserDesignations.hpp:43
void SetInputProcessed(bool aValue)
Definition WsfLaserDesignations.hpp:35
~WsfLaserDesignationsData()=default
WsfLaserDesignationsData(const WsfLaserDesignationsData &aSrc)=default
bool mDebug
Definition WsfLaserDesignations.hpp:42
double mStaleOutInterval
Definition WsfLaserDesignations.hpp:46
void SetDebug(bool aValue)
Definition WsfLaserDesignations.hpp:38
unsigned int mUpdatePrintModulus
Definition WsfLaserDesignations.hpp:45
bool mSendExternal
Definition WsfLaserDesignations.hpp:44
double mPlatformRadius
Definition WsfLaserDesignations.hpp:48
Definition WsfLaserDesignations.hpp:86
double GetSimTimeStamp() const
Definition WsfLaserDesignations.hpp:120
void SetIsLocal(bool aValue)
Definition WsfLaserDesignations.hpp:152
Spot()
Definition WsfLaserDesignations.cpp:407
void SetPower(double aValue)
Definition WsfLaserDesignations.hpp:144
void SetAddLocalOcclusion(bool aValue)
Definition WsfLaserDesignations.hpp:147
void SetIsExternal(bool aValue)
Definition WsfLaserDesignations.hpp:151
void SetWavelength(double aValue)
Definition WsfLaserDesignations.hpp:145
void SetSimTimeStamp(double aValue)
Definition WsfLaserDesignations.hpp:138
unsigned int GetCodeName() const
Definition WsfLaserDesignations.hpp:124
bool IsNulled()
Definition WsfLaserDesignations.hpp:116
unsigned int GetDeadReckoningAlgorithm() const
Definition WsfLaserDesignations.hpp:125
bool IsExternal() const
Definition WsfLaserDesignations.hpp:134
Spot & operator=(const Spot &aSrc)=delete
void SetCode(unsigned int aCode)
Definition WsfLaserDesignations.hpp:139
bool AddLocalOcclusion() const
Definition WsfLaserDesignations.hpp:136
void SetCodeName(unsigned int aCodeName)
Definition WsfLaserDesignations.hpp:140
void SetDeadReckoningAlgorithm(DeadReckoningAlgorithm aValue)
Definition WsfLaserDesignations.hpp:153
DeadReckoningAlgorithm
Definition WsfLaserDesignations.hpp:89
@ cDRM_RVB
Definition WsfLaserDesignations.hpp:100
@ cDRM_FPW
Definition WsfLaserDesignations.hpp:94
@ cDRM_FPB
Definition WsfLaserDesignations.hpp:98
@ cDRM_FVW
Definition WsfLaserDesignations.hpp:97
@ cDRM_FVB
Definition WsfLaserDesignations.hpp:101
@ cDRM_RVW
Definition WsfLaserDesignations.hpp:96
@ cSTATIC
Definition WsfLaserDesignations.hpp:93
@ cDRM_RPB
Definition WsfLaserDesignations.hpp:99
@ cOTHER
Definition WsfLaserDesignations.hpp:92
@ cDRM_RPW
Definition WsfLaserDesignations.hpp:95
void SetDesignatingIndex(size_t aDesignatingIndex)
Definition WsfLaserDesignations.hpp:150
void UpdateTo(const Spot *aSrcPtr, WsfLaserDesignations *aDesignationsPtr)
Definition WsfLaserDesignations.cpp:498
bool IsLocal() const
Definition WsfLaserDesignations.hpp:135
size_t GetDesignatedIndex() const
Definition WsfLaserDesignations.hpp:121
void NullPower()
Definition WsfLaserDesignations.hpp:117
double GetPower() const
Definition WsfLaserDesignations.hpp:128
double GetWavelength() const
Definition WsfLaserDesignations.hpp:126
unsigned int GetUpdateCount() const
Definition WsfLaserDesignations.hpp:119
void LocalUpdate(WsfSimulation &aSimulation, const double aEmitterLocationWCS[3], double aPlatformRadius)
Definition WsfLaserDesignations.cpp:597
unsigned int GetCode() const
Definition WsfLaserDesignations.hpp:123
size_t GetDesignatingIndex() const
Definition WsfLaserDesignations.hpp:122
EventDisposition Execute() override
Definition WsfLaserDesignations.cpp:369
WsfLaserDesignations()=default
void UpdateCallbacks()
Definition WsfLaserDesignations.cpp:276
bool AddOrUpdate(const Spot &aDesignator, const double aEmitterLocationWCS[3])
Definition WsfLaserDesignations.cpp:96
bool Remove(const Spot &aDesignator)
Definition WsfLaserDesignations.cpp:202
void PlatformDeleted(double aSimTime, WsfPlatform *aPlatPtr)
Definition WsfLaserDesignations.cpp:309
void GetSpecified(unsigned int aLaserCode, double aWaveLength, std::vector< const Spot * > &aSpotPtrs)
Definition WsfLaserDesignations.cpp:389
bool Initialize() override
Definition WsfLaserDesignations.cpp:345
void GetAllSpots(std::vector< const Spot * > &aSpotPtrs)
Definition WsfLaserDesignations.cpp:377
UtCallbackListN< void(const Spot &)> SpotUpdated
Definition WsfLaserDesignations.hpp:179
WsfSimulationExtension()
Definition WsfSimulationExtension.cpp:23
friend class WsfSimulation
Definition WsfSimulationExtension.hpp:43