VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfFogOfWarHandler.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #if DtDIS
15 #include <vrfDis/vrfDis.h>
16 #elif DtHLA
17 #ifndef DtHLA_1516
18 #include <vrfHla13/vrfHla13.h>
19 #else
20 #ifdef DtHLA_1516_EVOLVED
21 #include <vrfHla1516e/vrfHla1516e.h>
22 #else
23 #include <vrfHla1516/vrfHla1516.h>
24 #endif
25 #endif
26 #endif
27 
29 
36 #include <vrfStateData/stateData.h>
37 #include <tbb/spin_mutex.h>
38 
39 namespace makVrv
40 {
41  class DtAggregateElement;
42  class DtTacticalGraphicElement;
43 
44  namespace DT_PROTOCOL_NAMESPACE
45  {
46  class DtVrlinkAggregateStateListener;
48  }
49 }
50 
51 namespace makVrf
52 {
53  class DtVrfSelectionFilter;
54 
55  namespace VRF_PROTOCOL_NAMESPACE
56  {
59  {
60  public:
62 
63  virtual void setState(const DtStateData*, makVrv::DtSimState& state);
64  };
65 
68  {
69  public:
71 
72  virtual void setState(const DtStateData*, makVrv::DtSimState& state);
73  };
74 
77  {
78  public:
80  };
81 
83  {
84  public:
86  virtual ~DtVrfFogOfWarHandler();
87 
90  virtual void slot_addFogOfWarFilter(const DtVrfSelectionFilter*);
91 
93  virtual void slot_removeFogOfWarFilter(const std::string&);
94 
95  protected:
96 
97  virtual void executeFiltersForEntities();
98 
100  virtual void executeFiltersForEntity(const DtStateData*);
101 
102  virtual void onEntityDiscovered(DtStateData*);
103  virtual void onEntityToBeDestroyed(const DtStateData*);
104 
106  virtual void entityForceIdChanged(int old, int newVal, makVrf::SimStateID);
107  virtual void entityDamageStateChanged(int old, int newVal, makVrf::SimStateID);
108  virtual void checkEntitiesForFOWChange();
109 
110  virtual void slot_entityElementCreated(makVrv::DtEntityElement*);
111  virtual void slot_aggregateElementCreated(makVrv::DtAggregateElement*);
112  virtual void slot_tacticalGraphicElementCreated(makVrv::DtTacticalGraphicElement*);
113 
114  protected:
117  virtual void executeFilters();
118 
121  virtual bool executeFilters(const makVrv::DtVrlinkSimulatedBaseState*, const makVrf::DtVrfObjectDataState*);
122 
123 
124  protected:
125  virtual void executeFiltersForTacticalGraphics(bool force = false);
126 
128  virtual void executeFiltersForEnvironmental(const DtStateData*);
129 
130  virtual void onEnvironmentalDiscovered(DtStateData*);
131  virtual void onEnvironmentalToBeDestroyed(const DtStateData*);
132  virtual void slot_onFirstTickDriverInitialization();
133  virtual void initializeFilters();
134 
136  virtual void environmentalForceIdChanged(int old, int newVal, makVrf::SimStateID);
137  virtual void environmentalExtendedDataChanged(const DtStateData*);
138  virtual void checkEnvironmentalsForFOWChange();
139 
140  protected:
141  virtual void executeFiltersForAggregates();
142 
144  virtual void executeFiltersForAggregate(const DtStateData*);
145 
146  virtual void onAggregateDiscovered(DtStateData*);
147  virtual void onAggregateToBeDestroyed(const DtStateData*);
148 
150  virtual void aggregateForceIdChanged(int old, int newVal, makVrf::SimStateID);
151  virtual void aggregateDamageStateChanged(int old, int newVal, makVrf::SimStateID);
152  virtual void checkAggregatesForFOWChange();
153 
154  protected:
155  struct Connection
156  {
158  {
159  }
160 
161  virtual ~Connection()
162  {
163  }
164 
165  boost::signals2::connection myToBeDestroyedConnection;
166  boost::signals2::connection myForceIdChangedConnection;
167  boost::signals2::connection myDamageStateChangedConnection;
168  boost::signals2::connection myExtendedDataChangedConnection;
169  };
170 
171  struct EntityConnection : public Connection
172  {
174  EntityConnection(const EntityConnection& orig);
175  virtual ~EntityConnection();
176  };
177 
179  {
182  virtual ~EnvironmentalConnection();
183  };
184 
185  typedef boost::unordered_map<Legion::UInt64, boost::shared_ptr<Connection> > Connections;
187 
188  protected:
191 
192  typedef std::map<std::string, const DtVrfSelectionFilter*> FogOfWarFilters;
194 
197 
202 
206 
207  std::set<makVrf::SimStateID> myEntitiesToCheckForFOW;
209 
210  std::set<makVrf::SimStateID> myEnvironmentalsToCheckForFOW;
212 
213  std::set<makVrf::SimStateID> myAggregatesToCheckForFOW;
215 
216  tbb::spin_mutex myFOWConnectionsMutex;
217 
218  typedef struct
219  {
220  std::set<std::string> toBeHidden;
221  boost::signals2::connection elementCreatedConnection;
223 
227  };
228  }
229 }
Class to transfer DtStateData for entities into entity sim data.
Definition: vrfEntitySimDataProcessor.h:27
Class to transfer DtStateData for entities into entity sim data.
Definition: aggregateSimDataProcessor.h:20
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:32
ElementsToBeHidden myEntityElementsToBeHidden
Definition: vrfFogOfWarHandler.h:224
boost::unordered_map< Legion::UInt64, boost::shared_ptr< Connection > > Connections
Definition: vrfFogOfWarHandler.h:185
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
A single Aggregate element. An Aggregate element may be visualized using multiple visualizer sets one...
Definition: DtAggregateElement.h:32
boost::signals2::connection elementCreatedConnection
Definition: vrfFogOfWarHandler.h:221
tbb::spin_mutex myAggregatesToCheckForFOWMutex
Definition: vrfFogOfWarHandler.h:214
Class to transfer DtStateData for entities into entity sim data.
Definition: environmentSimDataProcessor.h:24
DtVrfDriver * myVrfDriver
Definition: vrfFogOfWarHandler.h:189
Contains integers that determine the context with which to show/hide a visualizer.
DtVrfDataProcessorInterface * myEntityObjectDataProcessor
Definition: vrfFogOfWarHandler.h:201
std::set< std::string > toBeHidden
Definition: vrfFogOfWarHandler.h:220
std::map< std::string, const DtVrfSelectionFilter * > FogOfWarFilters
Definition: vrfFogOfWarHandler.h:192
makVrv::DtSignalConnectionManager myConnections
Definition: vrfFogOfWarHandler.h:195
tbb::spin_mutex myFOWConnectionsMutex
Definition: vrfFogOfWarHandler.h:216
DtVrfFogOfWarEntityDataProcessor myEntityDataProcessor
Definition: vrfFogOfWarHandler.h:198
Connections myFOWConnections
Definition: vrfFogOfWarHandler.h:186
ElementsToBeHidden myAggregateElementsToBeHidden
Definition: vrfFogOfWarHandler.h:225
tbb::spin_mutex myEntitiesToCheckForFOWMutex
Definition: vrfFogOfWarHandler.h:208
makVrv::DtSignalConnectionManager myEnvironmentalConnections
Definition: vrfFogOfWarHandler.h:196
Contains makVrv::DtEnvironmentSimDataProcessor class.
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
std::set< makVrf::SimStateID > myAggregatesToCheckForFOW
Definition: vrfFogOfWarHandler.h:213
FogOfWarFilters myFogOfWarFilters
Definition: vrfFogOfWarHandler.h:193
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:336
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
boost::signals2::connection myExtendedDataChangedConnection
Definition: vrfFogOfWarHandler.h:168
DtVrfFogOfWarAggregateDataProcessor myAggregateDataProcessor
Definition: vrfFogOfWarHandler.h:200
virtual ~Connection()
Definition: vrfFogOfWarHandler.h:161
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Override class to simply get vrlink entity state filled in correctly.
Definition: vrfFogOfWarHandler.h:67
Override class to simply get vrlink entity state filled in correctly.
Definition: vrfFogOfWarHandler.h:76
Definition: vrfFogOfWarHandler.h:82
boost::signals2::connection myToBeDestroyedConnection
Definition: vrfFogOfWarHandler.h:165
A single entity element. An entity element may be visualized using multiple visualizer sets one per m...
Definition: DtEntityElement.h:32
Override class to simply get vrlink entity state filled in correctly.
Definition: vrfFogOfWarHandler.h:58
A single tactical graphic element. A tactical graphic element may be visualized using multiple visual...
Definition: DtTacticalGraphicElement.h:35
std::set< makVrf::SimStateID > myEntitiesToCheckForFOW
Definition: vrfFogOfWarHandler.h:207
Base class to provide boost signal/slot management.
std::set< makVrf::SimStateID > myEnvironmentalsToCheckForFOW
Definition: vrfFogOfWarHandler.h:210
boost::signals2::connection myDamageStateChangedConnection
Definition: vrfFogOfWarHandler.h:167
DtVrfFogOfWarEnvironmentalDataProcessor myEnvironmentalDataProcessor
Definition: vrfFogOfWarHandler.h:199
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection * myConnection
Definition: vrfFogOfWarHandler.h:190
A DtSimState is the base class for all state objects. Derived instances of DtSimState will be created...
Definition: DtSimState.h:19
boost::signals2::connection myForceIdChangedConnection
Definition: vrfFogOfWarHandler.h:166
ElementsToBeHidden myTacticalGraphicElementsToBeHidden
Definition: vrfFogOfWarHandler.h:226
tbb::spin_mutex myEnvironmentalsToCheckForFOWMutex
Definition: vrfFogOfWarHandler.h:211
Definition: vrfDataProcessorInterface.h:55
bool myEnabledForTacticalGraphicFiltering
Will only be set to true if receive a fog of war filter that says to enable for tactical graphic filt...
Definition: vrfFogOfWarHandler.h:205
The Driver for DIS.
Definition: vrfDriver.h:84
Definition: vrfObjectDataState.h:87
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:71

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)