VR-Forces 4.8 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) 2014 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvVrl/vrvVrl.h>
14 #include <boost/unordered_map.hpp>
15 #include <vl/globalObjectDesignator.h>
16 #include <boost/signal.hpp>
17 #include <boost/shared_ptr.hpp>
18 
19 namespace makVrv
20 {
21 
22  class DtVisualAttributeStringVector;
23 
24  namespace DT_PROTOCOL_NAMESPACE
25  {
26 
27  class DtSmokeElement;
28  class DtSmokeVisualizerSet;
29  class DtVrlinkConnection;
30  class DtVrlinkSmokeStateListener;
31  class DtVrlinkEnvironmentalStateListenerInterface;
32 
37  : public DtVirtualBaseClass
38  {
39  public:
40 
43 
45  static void registerInstance( DtVrlinkConnection& simulation,
46  DtSmokeElementProcessor* instance );
47 
49  static DtSmokeElementProcessor* findInstance(
50  DtVrlinkConnection& simulation );
51 
53  virtual ~DtSmokeElementProcessor();
54 
55 
57  DtSmokeVisualizerSet* findVisualizer( int modelSet,
58  const DtGlobalObjectDesignator& id );
59 
61  std::vector<DtSmokeVisualizerSet*> findVisualizers(
62  const DtGlobalObjectDesignator& id );
63 
65  DtSmokeVisualizerSet* findVisualizer( DtUniqueID sceneId);
66 
68  DtVrlinkSmokeStateListener* findListener( DtUniqueID id);
69 
71  DtSmokeElement* findElement( const DtUniqueID& elementId );
72 
74  DtSmokeElement* findElement( const DtGlobalObjectDesignator& id );
75 
78  void setVisualizerCreationProcessingTime(double);
79  double visualizerCreationProcessingTime() const;
80 
81  public:
82 
83  boost::signal<void (DtVrlinkEnvironmentalStateListenerInterface&, DtSmokeElement*)> signal_elementCreated;
84  boost::signal<void (DtVrlinkEnvironmentalStateListenerInterface&, DtSmokeElement*)> signal_elementAboutToBeDestroyed;
85 
86  protected:
87 
88  virtual void modelSetVisualized(int set, bool b);
89 
90  virtual void handleElementAttributeChanged(
91  DtSmokeElement& smoke, const DtElementAttribute* attr);
92 
94  void onEnvironmentalDiscovered(
96 
98  void onEnvironmentalToBeDestroyed(
100 
101  virtual void slot_elementAttributeChangeRequested( DtUniqueID id, DtUniqueID parentId,
102  DtBoost::shared_ptr<const DtElementAttribute> atr );
103 
104  void onItemVisibilityChanged( const DtUniqueID& elementID, bool flag );
105 
107  virtual void slot_completeDiscovery();
108 
109  virtual void createVisualizer(DtVrlinkSmokeStateListener&);
110 
111  private:
115 
119 
123 
124  protected:
125 
126  typedef boost::unordered_map<DtUniqueID, DtSmokeElement*>
128 
129  typedef boost::unordered_map<std::string, DtSmokeElement*>
131 
132  typedef boost::unordered_map<DtUniqueID, DtVrlinkEnvironmentalStateListenerInterface*>
134 
141 
142  };
143 
144  }
145 }
A single tactical graphic element.
Definition: DtSmokeElement.h:36
boost::signal< void(DtVrlinkEnvironmentalStateListenerInterface &, DtSmokeElement *)> signal_elementCreated
Definition: DtSmokeElementProcessor.h:83
ToBeVisualizedMap myToBeVisualized
Definition: DtSmokeElementProcessor.h:139
Virtual base class.
Definition: DtVirtualBaseClass.h:22
GlobalIdToSmokeElementVisualizerMap myGlobalIdToElementVisualizerMap
Definition: DtSmokeElementProcessor.h:138
DtSignalConnectionManager myConnections
Definition: DtSmokeElementProcessor.h:136
double myVisualizerCreationProcessingTime
Definition: DtSmokeElementProcessor.h:140
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
SmokeElementVisualizerMap myElementVisualizers
Definition: DtSmokeElementProcessor.h:137
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
boost::unordered_map< DtUniqueID, DtVrlinkEnvironmentalStateListenerInterface * > ToBeVisualizedMap
Definition: DtSmokeElementProcessor.h:133
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
#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:127
boost::signal< void(DtVrlinkEnvironmentalStateListenerInterface &, DtSmokeElement *)> signal_elementAboutToBeDestroyed
Definition: DtSmokeElementProcessor.h:84
This class processes smoke element messages from simulation interactions.
Definition: DtSmokeElementProcessor.h:36
DtVrlinkConnection & myConnection
Definition: DtSmokeElementProcessor.h:135
boost::unordered_map< std::string, DtSmokeElement * > GlobalIdToSmokeElementVisualizerMap
Definition: DtSmokeElementProcessor.h:130
DtElementAttribute is a common base class used for all element attributes, such as those found in a D...
Definition: DtElementAttribute.h:23
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)