VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVrlinkSmokeElementProcessor.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2023 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  class DtSmokeVisualizerSet;
33  enum class DtModelSetId;
34 
35  namespace DT_PROTOCOL_NAMESPACE
36  {
37 
38  class DtVrlinkSmokeElement;
39  class DtVrlinkConnection;
40  class DtVrlinkSmokeStateListener;
41  class DtVrlinkEnvironmentalStateListenerInterface;
42 
47  : public DtVirtualBaseClass
48  {
49  public:
50 
53 
55  static void registerInstance( DtVrlinkConnection& simulation,
57 
59  static DtVrlinkSmokeElementProcessor* findInstance(
60  DtVrlinkConnection& simulation );
61 
64 
65 
67  DtSmokeVisualizerSet* findVisualizer( DtModelSetId modelSet,
68  const DtGlobalObjectDesignator& id );
69 
71  std::vector<DtSmokeVisualizerSet*> findVisualizers(
72  const DtGlobalObjectDesignator& id );
73 
75  DtSmokeVisualizerSet* findVisualizer( DtUniqueID sceneId);
76 
78  DtVrlinkSmokeStateListener* findListener( DtUniqueID id);
79 
81  DtVrlinkSmokeElement* findElement( const DtUniqueID& elementId );
82 
84  DtVrlinkSmokeElement* findElement( const DtGlobalObjectDesignator& id );
85 
88  void setVisualizerCreationProcessingTime(double);
89  double visualizerCreationProcessingTime() const;
90 
91  public:
92 
93  makVrv::vrvSignalsLib::signal<void (DtVrlinkEnvironmentalStateListenerInterface&, DtVrlinkSmokeElement*)> signal_elementCreated;
94  makVrv::vrvSignalsLib::signal<void (DtVrlinkEnvironmentalStateListenerInterface&, DtVrlinkSmokeElement*)> signal_elementAboutToBeDestroyed;
95 
96  protected:
97 
98  virtual void modelSetVisualized( DtModelSetId set, bool b);
99 
100  virtual void handleElementAttributeChanged(
101  DtVrlinkSmokeElement& smoke, const DtElementAttribute* attr);
102 
104  void onEnvironmentalDiscovered(
106 
108  void onEnvironmentalToBeDestroyed(
110 
111  virtual void slot_elementAttributeChangeRequested( DtUniqueID id, DtUniqueID parentId,
112  DtBoost::shared_ptr<const DtElementAttribute> atr );
113 
114  void onItemVisibilityChanged( const DtUniqueID& elementID, bool flag );
115 
117  virtual void slot_completeDiscovery();
118 
119  virtual void createVisualizer(DtVrlinkSmokeStateListener&);
120 
121  private:
125 
129 
133 
134  protected:
135 
136  using ElementIdToSmokeElementMap = std::unordered_map<DtUniqueID, DtVrlinkSmokeElement*>;
137 
138  using GlobalIdToSmokeElementVisualizerMap = std::unordered_map<std::string, DtVrlinkSmokeElement*>;
139 
140  using ToBeVisualizedMap = std::unordered_map<DtUniqueID, DtVrlinkEnvironmentalStateListenerInterface*>;
141 
148 
149  makVrv::vrvSignalsLib::connection myEnvironmentalDiscoveredConnection;
150  makVrv::vrvSignalsLib::connection myEnvironmentalToBeDestroyedConnection;
151  makVrv::vrvSignalsLib::connection myPostTickConnection;
152 
153  };
154 
155  }
156 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Contains makVrv::DtElementAttribute class.
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
Contains makVrv::DtVirtualBaseClass class.
A visualizer is created for each entity state listener which it will drive it.
Definition: DtSmokeVisualizerSet.h:26
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Base class to provide boost signal/slot management.
Contains makVrv::DtUniqueID type.
DtModelSetId
Definition: DtModelSetEnums.h:19
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 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)