WSF
WsfGeometricSensor.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFGEOMETRICSENSOR_HPP
13#define WSFGEOMETRICSENSOR_HPP
14
15#include "wsf_export.h"
16
17#include <map>
18#include <memory>
19#include <vector>
20
21#include "TblLookup.hpp"
22#include "WsfEM_Antenna.hpp"
23#include "WsfEM_Rcvr.hpp"
24#include "WsfSensor.hpp"
25#include "WsfSensorMode.hpp"
26
28
30{
31public:
35 ~WsfGeometricSensor() override = default;
36
37 WsfSensor* Clone() const override;
38 bool Initialize(double aSimTime) override;
39 bool ProcessInput(UtInput& aInput) override;
40 void Update(double aSimTime) override;
41
42 size_t GetEM_RcvrCount() const override;
43 WsfEM_Rcvr& GetEM_Rcvr(size_t aIndex) const override;
44
47 {
48 public:
50 GeometricMode(const GeometricMode& aSrc);
52 WsfMode* Clone() const override;
53 bool Initialize(double aSimTime) override;
54 bool ProcessInput(UtInput& aInput) override;
55
56 bool AttemptToDetect(double aSimTime, WsfPlatform* aTargetPtr, Settings& aSettings, WsfSensorResult& aResult) override;
57
58 void Deselect(double aSimTime) override;
59 void Select(double aSimTime) override;
60
61 double GetRangeRate(WsfPlatform* aTargetPtr);
62
65 {
66 TblIndVarU<double> mRange;
67 TblDepVar1<double> mProbability;
68 };
69 using PD_RangeTablePtr = std::shared_ptr<PD_RangeTable>;
70
81 typedef std::map<WsfStringId, TypeDetectionCriteria> TypeCriteriaMap;
82
84
91 };
92
93protected:
95 std::vector<GeometricMode*> mGeometricModeList;
96};
97
98#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfEM_Antenna.hpp:49
Definition WsfEM_Rcvr.hpp:68
WsfEM_Antenna mAntenna
Definition WsfGeometricSensor.hpp:85
double GetRangeRate(WsfPlatform *aTargetPtr)
Definition WsfGeometricSensor.cpp:285
void Select(double aSimTime) override
Definition WsfGeometricSensor.cpp:484
double mMinRangeRate
Definition WsfGeometricSensor.hpp:87
TypeCriteriaMap mTypeCriteria
A map of type vs detection criteria.
Definition WsfGeometricSensor.hpp:90
void Deselect(double aSimTime) override
Definition WsfGeometricSensor.cpp:477
WsfEM_Rcvr mRcvr
Definition WsfGeometricSensor.hpp:86
double mMaxRangeRate
Definition WsfGeometricSensor.hpp:88
GeometricMode()
Definition WsfGeometricSensor.cpp:115
TypeDetectionCriteria & GetDetectionCriteria(WsfPlatform *aTargetPtr)
Returns the TypeDetectionCriteria struct for a target based on its platform type.
Definition WsfGeometricSensor.cpp:492
std::map< WsfStringId, TypeDetectionCriteria > TypeCriteriaMap
Definition WsfGeometricSensor.hpp:81
std::shared_ptr< PD_RangeTable > PD_RangeTablePtr
Definition WsfGeometricSensor.hpp:69
WsfGeometricSensor & operator=(const WsfGeometricSensor &)=delete
std::vector< GeometricMode * > mGeometricModeList
The sensor-specific list of modes (not valid until Initialize is called).
Definition WsfGeometricSensor.hpp:95
~WsfGeometricSensor() override=default
WsfGeometricSensor(WsfScenario &aScenario)
Definition WsfGeometricSensor.cpp:36
WsfMode()
Definition WsfMode.cpp:15
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
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
bool Initialize(double aSimTime) override
Definition WsfSensor.cpp:255
WsfSensor & operator=(const WsfSensor &aSrc)=delete
virtual bool AttemptToDetect(double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult)
Definition WsfSensor.cpp:224
A Probability vs Range table.
Definition WsfGeometricSensor.hpp:65
TblDepVar1< double > mProbability
Definition WsfGeometricSensor.hpp:67
TblIndVarU< double > mRange
Definition WsfGeometricSensor.hpp:66
Detection range and PD range table for a target type.
Definition WsfGeometricSensor.hpp:73
double mMaximumRange
Definition WsfGeometricSensor.hpp:78
TypeDetectionCriteria()
Definition WsfGeometricSensor.hpp:74
PD_RangeTablePtr mPD_TablePtr
Definition WsfGeometricSensor.hpp:79
Copyrights Multiple, All Rights Reserved