WSF
WsfSensorPlot.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 WSFSENSORPLOT_HPP
13#define WSFSENSORPLOT_HPP
14
15#include "sensor_plot_lib_export.h"
16
17#include <map>
18#include <vector>
19
20#include "Function.hpp"
21#include "MapPlotVariables.hpp"
22class UtInput;
24class WsfSensorPlotApplicationExtension;
25
26class SENSOR_PLOT_LIB_EXPORT WsfSensorPlotExtension : public WsfScenarioExtension
27{
28public:
29 static WsfSensorPlotExtension* Find(WsfScenario& aScenario);
30 explicit WsfSensorPlotExtension(WsfSensorPlotApplicationExtension* aAppExtensionPtr);
31 ~WsfSensorPlotExtension() override = default;
34
35 void AddedToScenario() override;
36 bool ProcessInput(UtInput& aInput) override;
37 bool Complete2() override;
38 bool ExecutePlots();
39 static void EnableSensorPlotMode();
40 static bool IsSensorPlotMode();
41
42 template<class T>
43 void RegisterFunction(const std::string& aCommandName)
44 {
45 auto fn = [](WsfScenario& aScenario) { return ut::make_unique<T>(aScenario); };
46 mFunctionFactory[aCommandName] = std::move(fn);
47 }
48
59 void RegisterMapPlotVariable(const std::string& aVarName, std::shared_ptr<MapPlotVariable> aVariablePtr);
60
61private:
62 bool RunFunction(Function* aFunctionPtr);
63
64 using FunctionPtr = std::function<std::unique_ptr<Function>(WsfScenario&)>;
65 using FunctionFactoryMap = std::map<std::string, FunctionPtr>;
66 WsfSensorPlotApplicationExtension* mAppExtensionPtr;
67 std::vector<std::unique_ptr<Function>> mFunctionList;
68 FunctionFactoryMap mFunctionFactory;
69
71 MapPlotVariables::MapPlotVariableMap mMapPlotVariableMap;
72};
73
74#endif
An abstract base class for sensor_plot function.
Definition Function.hpp:29
std::map< std::string, std::shared_ptr< MapPlotVariable > > MapPlotVariableMap
Definition MapPlotVariables.hpp:36
WsfScenarioExtension()
Definition WsfScenarioExtension.cpp:21
virtual bool ProcessInput(UtInput &aInput)
Definition WsfScenarioExtension.cpp:62
virtual void AddedToScenario()
Definition WsfScenarioExtension.cpp:50
friend class WsfScenario
Definition WsfScenarioExtension.hpp:39
virtual bool Complete2()
Definition WsfScenarioExtension.cpp:99
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfSensorPlotExtension(const WsfSensorPlotExtension &)=delete
WsfSensorPlotExtension & operator=(const WsfSensorPlotExtension &)=delete
static WsfSensorPlotExtension * Find(WsfScenario &aScenario)
Definition WsfSensorPlot.cpp:152
bool ExecutePlots()
Definition WsfSensorPlot.cpp:235
static void EnableSensorPlotMode()
Definition WsfSensorPlot.cpp:137
WsfSensorPlotExtension(WsfSensorPlotApplicationExtension *aAppExtensionPtr)
Definition WsfSensorPlot.cpp:158
void RegisterFunction(const std::string &aCommandName)
Definition WsfSensorPlot.hpp:43
static bool IsSensorPlotMode()
Definition WsfSensorPlot.cpp:49
~WsfSensorPlotExtension() override=default
Copyrights Multiple, All Rights Reserved