Emergency 20 Dokumentation  4.2.0
SEKDroneScanWindow.h
Go to the documentation of this file.
1 // Copyright (C) 2012-2018 Promotion Software GmbH
2 
3 
4 //[-------------------------------------------------------]
5 //[ Header guard ]
6 //[-------------------------------------------------------]
7 #pragma once
8 
9 
10 //[-------------------------------------------------------]
11 //[ Includes ]
12 //[-------------------------------------------------------]
13 #include "em5/Export.h"
14 
15 #include <qsf/gui/GuiDocument.h>
16 #include <qsf/job/JobProxy.h>
17 #include <qsf/map/Entity.h>
18 
19 #include <glm/glm.hpp>
20 
21 
22 //[-------------------------------------------------------]
23 //[ Forward declarations ]
24 //[-------------------------------------------------------]
25 namespace em5
26 {
27  class HeatRenderer;
28 }
29 namespace qsf
30 {
31  class Map;
32 }
33 namespace Rocket
34 {
35  namespace Core
36  {
37  class Geometry;
38  }
39 }
40 
41 
42 //[-------------------------------------------------------]
43 //[ Namespace ]
44 //[-------------------------------------------------------]
45 namespace em5
46 {
47 
48 
49  //[-------------------------------------------------------]
50  //[ Classes ]
51  //[-------------------------------------------------------]
57  {
58 
59 
60  //[-------------------------------------------------------]
61  //[ Public methods ]
62  //[-------------------------------------------------------]
63  public:
64  explicit SEKDroneScanWindow(qsf::GuiContext& guiContext);
65  virtual ~SEKDroneScanWindow();
66 
67  void rebuildGui();
68  void setMap(qsf::Map& map);
69 
70  void setCameraDrone(qsf::Entity& entityWithCamera);
71 
72  inline HeatRenderer& getHeatRenderer();
73  inline Rocket::Core::Geometry& getGeometry();
74 
75  void update(const qsf::JobArguments& jobArguments);
76 
77 
78  //[-------------------------------------------------------]
79  //[ Public virtual qsf::GuiDocument methods ]
80  //[-------------------------------------------------------]
81  public:
82  virtual void processEvent(const std::string& eventKey, Rocket::Core::Event& event) override;
83 
84 
85  //[-------------------------------------------------------]
86  //[ Private virtual qsf::GuiDocument methods ]
87  //[-------------------------------------------------------]
88  private:
89  virtual bool onPreShow() override;
90  virtual void onPostHide() override;
91 
92 
93  //[-------------------------------------------------------]
94  //[ Private data ]
95  //[-------------------------------------------------------]
96  private:
97  HeatRenderer* mHeatRenderer;
98  Rocket::Core::Geometry* mViewportGeometry;
99  qsf::WeakPtr<qsf::Entity> mDroneEntity;
100  glm::vec2 mViewportSize;
101  bool mViewportGeometryBuilt;
102  bool mHeatRendererInitialized;
103  qsf::JobProxy mAnimationJobProxy;
104 
105 
106  };
107 
108 
109 //[-------------------------------------------------------]
110 //[ Namespace ]
111 //[-------------------------------------------------------]
112 } // em5
113 
114 
115 //[-------------------------------------------------------]
116 //[ Implementation ]
117 //[-------------------------------------------------------]
Definition: ActionPriority.h:13
Job proxy class.
Definition: JobProxy.h:51
Entity class.
Definition: Entity.h:46
Map class.
Definition: Map.h:93
Graphical User Interface (GUI) document base class.
Definition: GuiDocument.h:51
#define EM5_API_EXPORT
Definition: Export.h:28
Definition: OverlayComponent.h:29
Job arguments class: holds data to be passed to the called job method by the job manager.
Definition: JobArguments.h:40
Definition: PickupPersonByParamedicAction.h:21
EMERGENCY 5 SEK drone scan HUD element.
Definition: SEKDroneScanWindow.h:56
Ingame Graphical User Interface (GUI) context class.
Definition: GuiContext.h:62
Heat renderer.
Definition: HeatRenderer.h:59