VR-Forces 5.0.1 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  namespace DT_PROTOCOL_NAMESPACE
42  {
43  class DtVrlinkAggregateStateListener;
45  }
46 }
47 
48 namespace makVrf
49 {
50  class DtVrfSelectionFilter;
51 
52  namespace VRF_PROTOCOL_NAMESPACE
53  {
56  {
57  public:
59 
60  virtual void setState(const DtStateData*, makVrv::DtSimState& state);
61  };
62 
65  {
66  public:
68 
69  virtual void setState(const DtStateData*, makVrv::DtSimState& state);
70  };
71 
74  {
75  public:
77  };
78 
80  {
81  public:
83  virtual ~DtVrfFogOfWarHandler();
84 
87  virtual void slot_addFogOfWarFilter(const DtVrfSelectionFilter*);
88 
90  virtual void slot_removeFogOfWarFilter(const std::string&);
91 
92  protected:
93 
94  virtual void executeFiltersForEntities();
95 
97  virtual void executeFiltersForEntity(const DtStateData*);
98 
99  virtual void onEntityDiscovered(DtStateData*);
100  virtual void onEntityToBeDestroyed(const DtStateData*);
101 
103  virtual void entityForceIdChanged(int old, int newVal, makVrf::SimStateID);
104  virtual void entityDamageStateChanged(int old, int newVal, makVrf::SimStateID);
105  virtual void checkEntitiesForFOWChange();
106 
107  protected:
110  virtual void executeFilters();
111 
114  virtual bool executeFilters(const makVrv::DtVrlinkSimulatedBaseState*, const makVrf::DtVrfObjectDataState*);
115 
116 
117  protected:
118  virtual void executeFiltersForTacticalGraphics(bool force = false);
119 
121  virtual void executeFiltersForEnvironmental(const DtStateData*);
122 
123  virtual void onEnvironmentalDiscovered(DtStateData*);
124  virtual void onEnvironmentalToBeDestroyed(const DtStateData*);
125  virtual void slot_onFirstTickDriverInitialization();
126  virtual void initializeFilters();
127 
129  virtual void environmentalForceIdChanged(int old, int newVal, makVrf::SimStateID);
130  virtual void environmentalExtendedDataChanged(const DtStateData*);
131  virtual void checkEnvironmentalsForFOWChange();
132 
133  protected:
134  virtual void executeFiltersForAggregates();
135 
137  virtual void executeFiltersForAggregate(const DtStateData*);
138 
139  virtual void onAggregateDiscovered(DtStateData*);
140  virtual void onAggregateToBeDestroyed(const DtStateData*);
141 
143  virtual void aggregateForceIdChanged(int old, int newVal, makVrf::SimStateID);
144  virtual void aggregateDamageStateChanged(int old, int newVal, makVrf::SimStateID);
145  virtual void checkAggregatesForFOWChange();
146 
147  protected:
148  struct Connection
149  {
151  {
152  }
153 
154  virtual ~Connection()
155  {
156  }
157 
158  boost::signals2::connection myToBeDestroyedConnection;
159  boost::signals2::connection myForceIdChangedConnection;
160  boost::signals2::connection myDamageStateChangedConnection;
161  boost::signals2::connection myExtendedDataChangedConnection;
162  };
163 
164  struct EntityConnection : public Connection
165  {
167  EntityConnection(const EntityConnection& orig);
168  virtual ~EntityConnection();
169  };
170 
172  {
175  virtual ~EnvironmentalConnection();
176  };
177 
178  typedef boost::unordered_map<Legion::UInt64, boost::shared_ptr<Connection> > Connections;
180 
181  protected:
184 
185  typedef std::map<std::string, const DtVrfSelectionFilter*> FogOfWarFilters;
187 
190 
195 
199 
200  std::set<makVrf::SimStateID> myEntitiesToCheckForFOW;
202 
203  std::set<makVrf::SimStateID> myEnvironmentalsToCheckForFOW;
205 
206  std::set<makVrf::SimStateID> myAggregatesToCheckForFOW;
208 
209  tbb::spin_mutex myFOWConnectionsMutex;
210  };
211  }
212 }
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
boost::unordered_map< Legion::UInt64, boost::shared_ptr< Connection > > Connections
Definition: vrfFogOfWarHandler.h:178
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
tbb::spin_mutex myAggregatesToCheckForFOWMutex
Definition: vrfFogOfWarHandler.h:207
Class to transfer DtStateData for entities into entity sim data.
Definition: environmentSimDataProcessor.h:24
DtVrfDriver * myVrfDriver
Definition: vrfFogOfWarHandler.h:182
Contains integers that determine the context with which to show/hide a visualizer.
DtVrfDataProcessorInterface * myEntityObjectDataProcessor
Definition: vrfFogOfWarHandler.h:194
std::map< std::string, const DtVrfSelectionFilter * > FogOfWarFilters
Definition: vrfFogOfWarHandler.h:185
makVrv::DtSignalConnectionManager myConnections
Definition: vrfFogOfWarHandler.h:188
tbb::spin_mutex myFOWConnectionsMutex
Definition: vrfFogOfWarHandler.h:209
DtVrfFogOfWarEntityDataProcessor myEntityDataProcessor
Definition: vrfFogOfWarHandler.h:191
Connections myFOWConnections
Definition: vrfFogOfWarHandler.h:179
tbb::spin_mutex myEntitiesToCheckForFOWMutex
Definition: vrfFogOfWarHandler.h:201
makVrv::DtSignalConnectionManager myEnvironmentalConnections
Definition: vrfFogOfWarHandler.h:189
Contains makVrv::DtEnvironmentSimDataProcessor class.
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:39
std::set< makVrf::SimStateID > myAggregatesToCheckForFOW
Definition: vrfFogOfWarHandler.h:206
FogOfWarFilters myFogOfWarFilters
Definition: vrfFogOfWarHandler.h:186
#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:161
DtVrfFogOfWarAggregateDataProcessor myAggregateDataProcessor
Definition: vrfFogOfWarHandler.h:193
virtual ~Connection()
Definition: vrfFogOfWarHandler.h:154
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:64
Override class to simply get vrlink entity state filled in correctly.
Definition: vrfFogOfWarHandler.h:73
Definition: vrfFogOfWarHandler.h:79
boost::signals2::connection myToBeDestroyedConnection
Definition: vrfFogOfWarHandler.h:158
Override class to simply get vrlink entity state filled in correctly.
Definition: vrfFogOfWarHandler.h:55
std::set< makVrf::SimStateID > myEntitiesToCheckForFOW
Definition: vrfFogOfWarHandler.h:200
Base class to provide boost signal/slot management.
std::set< makVrf::SimStateID > myEnvironmentalsToCheckForFOW
Definition: vrfFogOfWarHandler.h:203
boost::signals2::connection myDamageStateChangedConnection
Definition: vrfFogOfWarHandler.h:160
DtVrfFogOfWarEnvironmentalDataProcessor myEnvironmentalDataProcessor
Definition: vrfFogOfWarHandler.h:192
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection * myConnection
Definition: vrfFogOfWarHandler.h:183
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:159
tbb::spin_mutex myEnvironmentalsToCheckForFOWMutex
Definition: vrfFogOfWarHandler.h:204
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:198
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 Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)