WSF
WsfCoverageSimulationExtension.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 2020 Infoscitex, a DCS 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 WSFCOVERAGESIMULATIONEXTENSION_HPP
13#define WSFCOVERAGESIMULATIONEXTENSION_HPP
14
15#include <map>
16#include <string>
17
18#include "UtCloneablePtr.hpp"
19#include "WsfCoverage.hpp"
20#include "WsfCoverageGrid.hpp"
22
23class UtInput;
24
25namespace wsf
26{
27namespace coverage
28{
29
31
33{
34public:
35 explicit SimulationExtension(const ScenarioExtension& aScenarioExtension)
37 , mScenarioExtension(aScenarioExtension)
38 {
39 }
40 SimulationExtension(const SimulationExtension& aOther) = default;
41 ~SimulationExtension() override = default;
42
43 SimulationExtension* Clone() const override { return new SimulationExtension{*this}; }
44
45 bool ProcessInput(UtInput& aInput) override;
46 bool Initialize() override;
47 void PendingStart() override;
48 void Complete(double aSimTime) override;
49
50 Grid* GetGrid(const std::string& aGridName) const;
51 Coverage* GetCoverage(const std::string& aCoverageName) const;
52
53 static const SimulationExtension& Get(const WsfSimulation& aSimulation);
54
55private:
56 void CategorizeAllNonAssets(const WsfSimulation& aSimulation) const;
57 void RemoveUnusedGrids();
58
59 const ScenarioExtension& mScenarioExtension;
60 std::map<std::string, ut::CloneablePtr<Grid>> mGrids{};
61 std::map<std::string, ut::CloneablePtr<Coverage>> mCoverages{};
62};
63
64} // namespace coverage
65} // namespace wsf
66
67#endif // WSFCOVERAGESIMULATIONEXTENSION_HPP
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfCoverage.hpp:57
The Grid object defines the region over which coverage can be computed.
Definition WsfCoverageGrid.hpp:38
Definition WsfCoverageScenarioExtension.hpp:23
Definition WsfCoverageSimulationExtension.hpp:33
static const SimulationExtension & Get(const WsfSimulation &aSimulation)
Definition WsfCoverageSimulationExtension.cpp:171
SimulationExtension(const SimulationExtension &aOther)=default
void PendingStart() override
Definition WsfCoverageSimulationExtension.cpp:113
Grid * GetGrid(const std::string &aGridName) const
Definition WsfCoverageSimulationExtension.cpp:149
SimulationExtension(const ScenarioExtension &aScenarioExtension)
Definition WsfCoverageSimulationExtension.hpp:35
bool ProcessInput(UtInput &aInput) override
Definition WsfCoverageSimulationExtension.cpp:32
SimulationExtension * Clone() const override
Definition WsfCoverageSimulationExtension.hpp:43
Coverage * GetCoverage(const std::string &aCoverageName) const
Definition WsfCoverageSimulationExtension.cpp:160
~SimulationExtension() override=default
void Complete(double aSimTime) override
Definition WsfCoverageSimulationExtension.cpp:137
bool Initialize() override
Definition WsfCoverageSimulationExtension.cpp:94
Definition WsfCoverage.cpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved