VR-Forces 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 
17 
20 #include <vrfStateData/stateData.h>
21 #include <tbb/spin_mutex.h>
22 
23 namespace makVrv
24 {
25  class DtElement;
26 }
27 
28 namespace makVrf
29 {
30  class DtVrfSelectionFilter;
31 
32  namespace VRF_PROTOCOL_NAMESPACE
33  {
35  {
36  public:
38  virtual ~DtVrfFogOfWarHandler();
39 
42  virtual void slot_addFogOfWarFilter(const DtVrfSelectionFilter*);
43 
45  virtual void slot_removeFogOfWarFilter(const std::string&);
46 
47  protected:
48 
49  virtual void executeFiltersForEntities();
50 
52  virtual void executeFiltersForEntity(const DtStateData*);
53 
54  virtual void onObjectDiscovered(DtStateData*);
55  virtual void onObjectDestroyed(const DtStateData*);
56 
58  virtual void onForceChanged(int old, int newVal, makVrf::SimStateID);
59  virtual void entityDamageStateChanged(int old, int newVal, makVrf::SimStateID);
60  virtual void checkObjectsForFOWChange();
61 
62  protected:
65  virtual void executeFilters();
66  virtual void executeFiltersFor(const DtStateData*);
67 
70  virtual bool shouldHideDueToFOW(const DtStateData*);
71 
72 
73  protected:
74  virtual void executeFiltersForTacticalGraphics(bool force = false);
75 
77  virtual void executeFiltersForEnvironmental(const DtStateData*);
78 
79  virtual void slot_onFirstTickDriverInitialization();
80  virtual void initializeFilters();
81 
83  virtual void environmentalExtendedDataChanged(const DtStateData*);
84 
85  virtual void updateLabels(makVrv::DtEntityElement*, bool show);
86  virtual void updateLabels(makVrv::DtTacticalGraphicElement*, bool show);
87 
88  protected:
89  virtual void executeFiltersForAggregates();
90 
92  virtual void executeFiltersForAggregate(const DtStateData*);
93 
95  virtual void processNewFogOfWarItems();
96 
97  virtual void onElementCreated(makVrv::DtElement*);
98  virtual void onElementDestroyed(makVrv::DtElement*);
99  virtual void uuidChanged(const DtUUID& oldUUID, const DtUUID& newUUID);
100 
101  virtual void updatePickable(makVrv::DtUniqueID i, bool pickable);
102 
103  protected:
104  struct Connection
105  {
107 
108  virtual ~Connection();
109 
110  boost::signals2::connection myToBeDestroyedConnection;
111  boost::signals2::connection myForceIdChangedConnection;
112  boost::signals2::connection myDamageStateChangedConnection;
113  boost::signals2::connection myExtendedDataChangedConnection;
114  };
115 
116  typedef boost::unordered_map<Legion::UInt64, std::shared_ptr<Connection> > Connections;
118 
119  protected:
122 
123  typedef std::map<std::string, const DtVrfSelectionFilter*> FogOfWarFilters;
125 
127  boost::signals2::connection myUUIDChangedConnection;
128 
132 
133  std::set<makVrf::SimStateID> myObjectsToCheckForFOW;
135 
136  tbb::spin_mutex myObjectsDiscoveredMutex;
137 
138  typedef std::set<DtUUID> UUIDSet;
139 
141  std::set<makVrv::DtUniqueID> myNonPickable;
142  };
143  }
144 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:28
unsigned long long SimStateID
Definition: stateDataTypes.h:16
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:21
tbb::spin_mutex myObjectsToCheckForFOWMutex
Definition: vrfFogOfWarHandler.h:134
std::set< makVrf::SimStateID > myObjectsToCheckForFOW
Definition: vrfFogOfWarHandler.h:133
std::set< makVrv::DtUniqueID > myNonPickable
Definition: vrfFogOfWarHandler.h:141
DtVrfDriver * myVrfDriver
Definition: vrfFogOfWarHandler.h:120
Contains integers that determine the context with which to show/hide a visualizer.
std::map< std::string, const DtVrfSelectionFilter * > FogOfWarFilters
Definition: vrfFogOfWarHandler.h:123
makVrv::DtSignalConnectionManager myConnections
Definition: vrfFogOfWarHandler.h:126
Connections myFOWConnections
Definition: vrfFogOfWarHandler.h:117
tbb::spin_mutex myObjectsDiscoveredMutex
Definition: vrfFogOfWarHandler.h:136
The DtElement class implements the common behavior of simulation based elements added to the scene...
Definition: DtElement.h:44
FogOfWarFilters myFogOfWarFilters
Definition: vrfFogOfWarHandler.h:124
boost::unordered_map< Legion::UInt64, std::shared_ptr< Connection > > Connections
Definition: vrfFogOfWarHandler.h:116
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
#define VRF_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:14
boost::signals2::connection myExtendedDataChangedConnection
Definition: vrfFogOfWarHandler.h:113
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
UUIDSet myObjectsDiscovered
Definition: vrfFogOfWarHandler.h:140
Definition: vrfFogOfWarHandler.h:34
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::signals2::connection myToBeDestroyedConnection
Definition: vrfFogOfWarHandler.h:110
A single entity element. An entity element may be visualized using multiple visualizer sets one per m...
Definition: DtEntityElement.h:33
A single tactical graphic element. A tactical graphic element may be visualized using multiple visual...
Definition: DtTacticalGraphicElement.h:35
std::set< DtUUID > UUIDSet
Definition: vrfFogOfWarHandler.h:138
Base class to provide boost signal/slot management.
boost::signals2::connection myDamageStateChangedConnection
Definition: vrfFogOfWarHandler.h:112
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection * myConnection
Definition: vrfFogOfWarHandler.h:121
boost::signals2::connection myForceIdChangedConnection
Definition: vrfFogOfWarHandler.h:111
boost::signals2::connection myUUIDChangedConnection
Definition: vrfFogOfWarHandler.h:127
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:131
The Driver for DIS.
Definition: vrfDriver.h:89

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)