VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSmokeElementProcessor.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2020 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvVrl/vrvVrl.h>
13 
15 #include <vrvUtil/signalslib.h>
17 
18 #include <vrvCore/DtUniqueID.h>
20 
21 #include <vl/globalObjectDesignator.h>
22 
23 #include <vlutil/vlSmartPointers.h>
24 
25 #include <boost/unordered_map.hpp>
26 #include <boost/shared_ptr.hpp>
27 
28 namespace makVrv
29 {
30 
31  class DtVisualAttributeStringVector;
32 
33  namespace DT_PROTOCOL_NAMESPACE
34  {
35 
36  class DtSmokeElement;
37  class DtSmokeVisualizerSet;
38  class DtVrlinkConnection;
39  class DtVrlinkSmokeStateListener;
40  class DtVrlinkEnvironmentalStateListenerInterface;
41 
46  : public DtVirtualBaseClass
47  {
48  public:
49 
52 
54  static void registerInstance( DtVrlinkConnection& simulation,
55  DtSmokeElementProcessor* instance );
56 
58  static DtSmokeElementProcessor* findInstance(
59  DtVrlinkConnection& simulation );
60 
62  virtual ~DtSmokeElementProcessor();
63 
64 
66  DtSmokeVisualizerSet* findVisualizer( int modelSet,
67  const DtGlobalObjectDesignator& id );
68 
70  std::vector<DtSmokeVisualizerSet*> findVisualizers(
71  const DtGlobalObjectDesignator& id );
72 
74  DtSmokeVisualizerSet* findVisualizer( DtUniqueID sceneId);
75 
77  DtVrlinkSmokeStateListener* findListener( DtUniqueID id);
78 
80  DtSmokeElement* findElement( const DtUniqueID& elementId );
81 
83  DtSmokeElement* findElement( const DtGlobalObjectDesignator& id );
84 
87  void setVisualizerCreationProcessingTime(double);
88  double visualizerCreationProcessingTime() const;
89 
90  public:
91 
92  boost::signalslib::signal<void (DtVrlinkEnvironmentalStateListenerInterface&, DtSmokeElement*)> signal_elementCreated;
93  boost::signalslib::signal<void (DtVrlinkEnvironmentalStateListenerInterface&, DtSmokeElement*)> signal_elementAboutToBeDestroyed;
94 
95  protected:
96 
97  virtual void modelSetVisualized(int set, bool b);
98 
99  virtual void handleElementAttributeChanged(
100  DtSmokeElement& smoke, const DtElementAttribute* attr);
101 
103  void onEnvironmentalDiscovered(
105 
107  void onEnvironmentalToBeDestroyed(
109 
110  virtual void slot_elementAttributeChangeRequested( DtUniqueID id, DtUniqueID parentId,
111  DtBoost::shared_ptr<const DtElementAttribute> atr );
112 
113  void onItemVisibilityChanged( const DtUniqueID& elementID, bool flag );
114 
116  virtual void slot_completeDiscovery();
117 
118  virtual void createVisualizer(DtVrlinkSmokeStateListener&);
119 
120  private:
124 
128 
132 
133  protected:
134 
135  typedef boost::unordered_map<DtUniqueID, DtSmokeElement*>
137 
138  typedef boost::unordered_map<std::string, DtSmokeElement*>
140 
141  typedef boost::unordered_map<DtUniqueID, DtVrlinkEnvironmentalStateListenerInterface*>
143 
150 
151  };
152 
153  }
154 }
A single tactical graphic element.
Definition: DtSmokeElement.h:36
ToBeVisualizedMap myToBeVisualized
Definition: DtSmokeElementProcessor.h:148
Virtual base class.
Definition: DtVirtualBaseClass.h:19
Contains makVrv::DtElementAttribute class.
GlobalIdToSmokeElementVisualizerMap myGlobalIdToElementVisualizerMap
Definition: DtSmokeElementProcessor.h:147
DtSignalConnectionManager myConnections
Definition: DtSmokeElementProcessor.h:145
double myVisualizerCreationProcessingTime
Definition: DtSmokeElementProcessor.h:149
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
SmokeElementVisualizerMap myElementVisualizers
Definition: DtSmokeElementProcessor.h:146
Contains makVrv::DtVirtualBaseClass class.
boost::signalslib::signal< void(DtVrlinkEnvironmentalStateListenerInterface &, DtSmokeElement *)> signal_elementAboutToBeDestroyed
Definition: DtSmokeElementProcessor.h:93
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::unordered_map< DtUniqueID, DtVrlinkEnvironmentalStateListenerInterface * > ToBeVisualizedMap
Definition: DtSmokeElementProcessor.h:142
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
#define DT_PROTOCOL_NAMESPACE
Make VR-Vantage VRLink code export with library #ifdef DL_DLL_IGCONVRLINK #undef DL_DLL_IGCONVRLINK #...
Definition: export.h:32
A visualizer is created for each entity state listener which it will drive it.
Definition: DtSmokeVisualizerSet.h:34
Base class to provide boost signal/slot management.
boost::unordered_map< DtUniqueID, DtSmokeElement * > SmokeElementVisualizerMap
Definition: DtSmokeElementProcessor.h:136
boost::signalslib::signal< void(DtVrlinkEnvironmentalStateListenerInterface &, DtSmokeElement *)> signal_elementCreated
Definition: DtSmokeElementProcessor.h:92
Contains makVrv::DtUniqueID type.
This class processes smoke element messages from simulation interactions.
Definition: DtSmokeElementProcessor.h:45
DtVrlinkConnection & myConnection
Definition: DtSmokeElementProcessor.h:144
boost::unordered_map< std::string, DtSmokeElement * > GlobalIdToSmokeElementVisualizerMap
Definition: DtSmokeElementProcessor.h:139
DtElementAttribute is a common base class used for all element attributes, such as those found in a D...
Definition: DtElementAttribute.h:20
Contains DLL export macros.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)