WSF
SOSM_SensorTarget.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
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 SOSM_SENSORTARGET_HPP
13#define SOSM_SENSORTARGET_HPP
14
15#include "sosm_export.h"
16
17#include <map>
18#include <string>
19#include <vector>
20
24class SOSM_Sensor;
25class SOSM_Target;
26
51class SOSM_EXPORT SOSM_SensorTarget
52{
53public:
54 SOSM_SensorTarget(SOSM_Manager* aManagerPtr);
55 virtual ~SOSM_SensorTarget();
56
57 bool Initialize(const std::string& aSensorType, const std::string& aTargetType);
58
59 float ComputeTargetIrradiance(SOSM_Interaction& aInteraction) const;
60
61 float ComputeProbabilityOfDetection(float aTargetIrradiance, SOSM_Interaction& aInteraction) const;
62
63 SOSM_Sensor* GetSensor() const { return mSensorPtr; }
64
65 SOSM_Target* GetTarget() const { return mTargetPtr; }
66
67 SOSM_Manager* GetManager() const { return mManagerPtr; }
68
69protected:
81
85 {
86 public:
87 SnrTgtPair(SOSM_Target* aTargetPtr);
89 std::vector<SOSM_ScalarTable2D*> mProjectedAreaPtrs;
90 std::vector<SOSM_ScalarTable2D*> mRadiantIntensityPtrs;
91 };
92
94 SOSM_SensorTarget(const SOSM_SensorTarget& aSrc) = delete;
95
98
101
103
108
111
113 typedef std::map<std::string, SnrAtmPair*> SnrAtmTableMap;
114
116 typedef std::map<std::string, SnrTgtPair*> SnrTgtTableMap;
117
120};
121
122#endif
Definition SOSM_Interaction.hpp:46
A singleton class that manages SOSM data.
Definition SOSM_Manager.hpp:32
Definition SOSM_ScalarTable2D.hpp:25
Definition SOSM_ScalarTable3D.hpp:27
Definition SOSM_SensorTarget.hpp:73
SnrAtmPair(SOSM_Manager *aManagerPtr)
Definition SOSM_SensorTarget.cpp:559
SOSM_ScalarTable2D * mBackgroundRadiancePtr
Definition SOSM_SensorTarget.hpp:77
SOSM_ScalarTable3D * mForegroundRadiancePtr
Definition SOSM_SensorTarget.hpp:78
SOSM_ScalarTable3D * mTransmittancePtr
Definition SOSM_SensorTarget.hpp:79
Definition SOSM_SensorTarget.hpp:85
std::vector< SOSM_ScalarTable2D * > mProjectedAreaPtrs
Definition SOSM_SensorTarget.hpp:89
std::vector< SOSM_ScalarTable2D * > mRadiantIntensityPtrs
Definition SOSM_SensorTarget.hpp:90
SnrTgtPair(SOSM_Target *aTargetPtr)
Definition SOSM_SensorTarget.cpp:575
SnrTgtPair * CreateOrLoadSensorTargetTables()
Definition SOSM_SensorTarget.cpp:358
std::map< std::string, SnrTgtPair * > SnrTgtTableMap
The key is '<snr-type>_<tgt_type>_<tgt_state>'.
Definition SOSM_SensorTarget.hpp:116
SOSM_Sensor * mSensorPtr
Definition SOSM_SensorTarget.hpp:105
static SnrTgtTableMap sSnrTgtTables
Definition SOSM_SensorTarget.hpp:119
SnrAtmPair * CreateOrLoadSensorAtmosphereTables()
Definition SOSM_SensorTarget.cpp:202
SnrAtmPair * mSnrAtmPtr
Definition SOSM_SensorTarget.hpp:109
SOSM_SensorTarget(const SOSM_SensorTarget &aSrc)=delete
Copy constructor declared but not defined to prevent use.
SOSM_Target * mTargetPtr
Definition SOSM_SensorTarget.hpp:106
SOSM_Sensor * GetSensor() const
Definition SOSM_SensorTarget.hpp:63
bool mUsingTables
Definition SOSM_SensorTarget.hpp:107
SOSM_SensorTarget operator=(const SOSM_SensorTarget &aRhs)=delete
Assignment operator declared but not defined to prevent use.
SOSM_Manager * mManagerPtr
Definition SOSM_SensorTarget.hpp:104
SOSM_Target * GetTarget() const
Definition SOSM_SensorTarget.hpp:65
float ComputeTargetIrradiance(SOSM_Interaction &aInteraction) const
Definition SOSM_SensorTarget.cpp:103
SnrTgtPair * mSnrTgtPtr
Definition SOSM_SensorTarget.hpp:110
static SnrAtmTableMap sSnrAtmTables
Definition SOSM_SensorTarget.hpp:118
SOSM_SensorTarget(SOSM_Manager *aManagerPtr)
Definition SOSM_SensorTarget.cpp:35
std::map< std::string, SnrAtmPair * > SnrAtmTableMap
The key is '<snr-type>_<atm_type>'.
Definition SOSM_SensorTarget.hpp:113
float ComputeProbabilityOfDetection(float aTargetIrradiance, SOSM_Interaction &aInteraction) const
Definition SOSM_SensorTarget.cpp:196
bool Initialize(const std::string &aSensorType, const std::string &aTargetType)
Definition SOSM_SensorTarget.cpp:54
void LoadSensorTargetTables()
Load precomputed sensor-target specific tables if permitted.
Definition SOSM_SensorTarget.cpp:511
SOSM_Manager * GetManager() const
Definition SOSM_SensorTarget.hpp:67
A class that represents an optical sensor (IR or visible).
Definition SOSM_Sensor.hpp:30
Abstract base class that represents a target.
Definition SOSM_Target.hpp:31
Copyrights Multiple, All Rights Reserved