WSF
WsfCyberVisualization.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 2016 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 WSFCYBERVISUALIZATION_HPP
13#define WSFCYBERVISUALIZATION_HPP
14
15#include <functional>
16
18#include "WsfDraw.hpp"
19#include "WsfGeoPoint.hpp"
20#include "WsfSimulation.hpp"
21
22namespace wsf
23{
24namespace cyber
25{
26
28{
29public:
30 virtual ~Visualization() = default;
31
34 virtual void AttackInitiated(const Engagement& aEngagement) = 0;
35
38 virtual void AttackSucceeded(const Engagement& aEngagement) = 0;
39
42 virtual void AttackFailed(const Engagement& aEngagement) = 0;
43
46 virtual void ScanInitiated(const Engagement& aEngagement) = 0;
47
50 virtual void ScanSucceeded(const Engagement& aEngagement) = 0;
51
54 virtual void ScanFailed(const Engagement& aEngagement) = 0;
55
57 virtual std::string GetName() const = 0;
58};
59
61{
62public:
63 VisualizationDraw(WsfSimulation* aSimulationPtr);
64 ~VisualizationDraw() override = default;
65
66 void AttackInitiated(const Engagement& aEngagement) override;
67 void AttackSucceeded(const Engagement& aEngagement) override;
68 void AttackFailed(const Engagement& aEngagement) override;
69
70 void ScanInitiated(const Engagement& aEngagement) override;
71 void ScanSucceeded(const Engagement& aEngagement) override;
72 void ScanFailed(const Engagement& aEngagement) override;
73
74 std::string GetName() const override;
75
76private:
77 enum class Outcome
78 {
79 Successful,
80 Failed,
81 Unknown
82 };
83
84 void Draw(const Engagement& aEngagement,
85 const std::function<void(WsfDraw&, WsfGeoPoint, WsfGeoPoint)>& aDrawFunc,
86 Outcome aPercievedOutcome,
87 Outcome aActualOutcome);
88 void Draw(WsfPlatform* aAttacker,
89 WsfPlatform* aVictim,
90 const std::function<void(WsfDraw&, WsfGeoPoint, WsfGeoPoint)>& aDrawFunc,
91 Outcome aPercievedOutcome,
92 Outcome aActualOutcome);
93 void Draw(WsfGeoPoint aSource,
94 WsfGeoPoint aDest,
95 const std::function<void(WsfDraw&, WsfGeoPoint, WsfGeoPoint)>& aDrawFunc,
96 Outcome aPercievedOutcome,
97 Outcome aActualOutcome);
98 void DrawAttack(const Engagement& aEngagement, Outcome aPercievedOutcome, Outcome aActualOutcome);
99 void DrawScan(const Engagement& aEngagement, Outcome aPercievedOutcome, Outcome aActualOutcome);
100
101 UtColor GetColor(Outcome aOutcome);
102
103 WsfSimulation* mSimulationPtr;
104};
105
106} // namespace cyber
107} // namespace wsf
108
109#endif
Provides the capability to draw shapes into the WSF replay file.
Definition WsfDraw.hpp:35
Definition WsfGeoPoint.hpp:29
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
The main controller for a simulation.
Definition WsfSimulation.hpp:109
A class that represents the cyber engagements between two platforms.
Definition WsfCyberEngagement.hpp:37
void ScanFailed(const Engagement &aEngagement) override
Definition WsfCyberVisualization.cpp:64
void AttackInitiated(const Engagement &aEngagement) override
Definition WsfCyberVisualization.cpp:31
std::string GetName() const override
Get the name of the cyber visualization.
Definition WsfCyberVisualization.cpp:71
VisualizationDraw(WsfSimulation *aSimulationPtr)
Definition WsfCyberVisualization.cpp:26
~VisualizationDraw() override=default
void ScanSucceeded(const Engagement &aEngagement) override
Definition WsfCyberVisualization.cpp:57
void AttackSucceeded(const Engagement &aEngagement) override
Definition WsfCyberVisualization.cpp:37
void AttackFailed(const Engagement &aEngagement) override
Definition WsfCyberVisualization.cpp:44
void ScanInitiated(const Engagement &aEngagement) override
Definition WsfCyberVisualization.cpp:51
Definition WsfCyberVisualization.hpp:28
virtual void ScanInitiated(const Engagement &aEngagement)=0
virtual void ScanSucceeded(const Engagement &aEngagement)=0
virtual void AttackSucceeded(const Engagement &aEngagement)=0
virtual void AttackInitiated(const Engagement &aEngagement)=0
virtual void ScanFailed(const Engagement &aEngagement)=0
virtual void AttackFailed(const Engagement &aEngagement)=0
virtual std::string GetName() const =0
Get the name of the cyber visualization.
virtual ~Visualization()=default
Definition WsfCyberApplicationExtension.cpp:24
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved