WSF
SOSM_TableTarget.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_TABLETARGET_HPP
13#define SOSM_TABLETARGET_HPP
14
15#include <list>
16#include <string>
17#include <vector>
18
19class SOSM_Selector;
23#include "SOSM_Target.hpp"
24
30{
31public:
32 SOSM_TableTarget(SOSM_Manager* aManagerPtr);
35
36 SOSM_Target* Clone() const override;
37
38 void InputComplete() override;
39
40 void ComputeRadiantIntensity(const SOSM_SpectralObject& aRequestor,
41 SOSM_Interaction& aInteraction,
42 std::vector<float>& aBodyIntensity,
43 float& aBodyArea,
44 std::vector<float>& aPlumeIntensity,
45 float& aPlumeArea) override;
46
47 void GetSamplePoints(SOSM_Interaction& aInteraction, std::vector<float>& aAzValues, std::vector<float>& aElValues) override;
48
49 void GetSampleTargetState(SOSM_Interaction& aInteraction, float& aAltitude, float& aSpeed, float& aThrottle) override;
50
51protected:
53 using IntensityTablePtr = std::shared_ptr<SOSM_SpectralTable2D>;
54
55 StateBase* CreateState(const std::string& aStateName) const override;
56
57 static AreaTablePtr LoadAreaTable(const std::string& aFileName, const std::string& aCachePrefix);
58
59 static IntensityTablePtr LoadIntensityTable(const std::string& aFileName, const std::string& aCachePrefix);
60
63 {
64 public:
65 void CheckConsistency(const std::string& aMessagePrefix, const std::string& aComponentType) const;
66
67 void LoadAreaTable(SOSM_Manager* aManagerPtr, const std::string& aFileName, const std::string& aCachePrefix);
68
69 void LoadIntensityTable(SOSM_Manager* aManagerPtr, const std::string& aFileName, const std::string& aCachePrefix);
70
73 };
74
78 {
79 public:
80 Band(const std::string& aBandName);
81
82 virtual void InputComplete(const std::string& aStateName);
83
84 virtual bool ProcessInput(UtInput& aInput, SOSM_Target& aTarget);
85
86 std::string mBandName;
89 };
90
92 class TT_State : public StateBase
93 {
94 public:
95 TT_State(const std::string& aStateName);
96
97 void InputComplete(SOSM_Target& aTarget) override;
98 bool ProcessInput(UtInput& aInput, SOSM_Target& aTarget) override;
99
100 std::list<Band> mBandList;
103 };
104
111
112 typedef std::map<std::string, IntensityTablePtr> IntensityTableMap;
113
117};
118
119#endif
Definition SOSM_Interaction.hpp:46
A singleton class that manages SOSM data.
Definition SOSM_Manager.hpp:32
std::shared_ptr< SOSM_ScalarTable2D > TablePtr
Definition SOSM_ScalarTable2D.hpp:27
Definition SOSM_Selector.hpp:24
SOSM_SpectralObject()
Definition SOSM_SpectralObject.hpp:49
Component mPlume
Definition SOSM_TableTarget.hpp:88
virtual bool ProcessInput(UtInput &aInput, SOSM_Target &aTarget)
Definition SOSM_TableTarget.cpp:417
Component mBody
Definition SOSM_TableTarget.hpp:87
Band(const std::string &aBandName)
Definition SOSM_TableTarget.cpp:366
std::string mBandName
Definition SOSM_TableTarget.hpp:86
A 'Component' represents something like a cold_part, hot part or plume.
Definition SOSM_TableTarget.hpp:63
AreaTablePtr mAreaTablePtr
Definition SOSM_TableTarget.hpp:71
void CheckConsistency(const std::string &aMessagePrefix, const std::string &aComponentType) const
Definition SOSM_TableTarget.cpp:475
void LoadAreaTable(SOSM_Manager *aManagerPtr, const std::string &aFileName, const std::string &aCachePrefix)
Definition SOSM_TableTarget.cpp:520
IntensityTablePtr mIntensityTablePtr
Definition SOSM_TableTarget.hpp:72
void LoadIntensityTable(SOSM_Manager *aManagerPtr, const std::string &aFileName, const std::string &aCachePrefix)
Definition SOSM_TableTarget.cpp:529
std::list< Band > mBandList
Definition SOSM_TableTarget.hpp:100
TT_State(const std::string &aStateName)
Definition SOSM_TableTarget.cpp:255
bool ProcessInput(UtInput &aInput, SOSM_Target &aTarget) override
Definition SOSM_TableTarget.cpp:302
bool mImplicitBandUsed
Definition SOSM_TableTarget.hpp:102
bool mExplicitBandUsed
Definition SOSM_TableTarget.hpp:101
void ComputeRadiantIntensity(const SOSM_SpectralObject &aRequestor, SOSM_Interaction &aInteraction, std::vector< float > &aBodyIntensity, float &aBodyArea, std::vector< float > &aPlumeIntensity, float &aPlumeArea) override
Definition SOSM_TableTarget.cpp:63
void GetSamplePoints(SOSM_Interaction &aInteraction, std::vector< float > &aAzValues, std::vector< float > &aElValues) override
Definition SOSM_TableTarget.cpp:173
std::map< std::string, IntensityTablePtr > IntensityTableMap
Definition SOSM_TableTarget.hpp:112
SOSM_TableTarget & operator=(const SOSM_TableTarget &)=delete
static IntensityTablePtr LoadIntensityTable(const std::string &aFileName, const std::string &aCachePrefix)
StateBase * CreateState(const std::string &aStateName) const override
Definition SOSM_TableTarget.cpp:245
SOSM_ScalarTable2D::TablePtr AreaTablePtr
Definition SOSM_TableTarget.hpp:52
void InputComplete() override
Definition SOSM_TableTarget.cpp:52
std::shared_ptr< SOSM_SpectralTable2D > IntensityTablePtr
Definition SOSM_TableTarget.hpp:53
static IntensityTableMap sIntensityTables
The persistent collection of radiant intensity tables that have been read, indexed by filename.
Definition SOSM_TableTarget.hpp:115
SOSM_TableTarget(SOSM_Manager *aManagerPtr)
Definition SOSM_TableTarget.cpp:32
static AreaTablePtr LoadAreaTable(const std::string &aFileName, const std::string &aCachePrefix)
SOSM_Target * Clone() const override
A virtual copy constructor.
Definition SOSM_TableTarget.cpp:45
void GetSampleTargetState(SOSM_Interaction &aInteraction, float &aAltitude, float &aSpeed, float &aThrottle) override
Definition SOSM_TableTarget.cpp:233
Definition SOSM_Target.hpp:37
StateBase(const std::string &aStateName)
Definition SOSM_Target.cpp:148
SOSM_Target(SOSM_Manager *aManagerPtr)
Constructor.
Definition SOSM_Target.cpp:25
Copyrights Multiple, All Rights Reserved