VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtLaserDesignatorProcessor.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 #ifndef DT_PROTOCOL_NAMESPACE
13 #error Namespace Protocol Macro DT_PROTOCOL_NAMESPACE not defined.
14 #endif
15 
17 
18 #include <vrvVrl/vrvVrl.h>
22 #include <boost/unordered_map.hpp>
23 #include <vl/globalObjectDesignator.h>
24 #include <vrvUtil/signalslib.h>
25 #include <boost/shared_ptr.hpp>
26 
27 namespace makVrv
28 {
29 
30  class DtVisualAttributeStringVector;
31 
32  namespace DT_PROTOCOL_NAMESPACE
33  {
34 
35  class DtLaserDesignatorElement;
36  class DtLaserDesignatorVisualizerSet;
37  class DtVrlinkConnection;
38  class DtVrlinkLaserDesignatorStateListener;
39  class DtVrlinkEnvironmentalStateListenerInterface;
40 
45  {
46  public:
47 
50 
52  static void registerInstance( DtVrlinkConnection& simulation,
53  DtLaserDesignatorProcessor* instance );
54 
55  static void unregisterInstance(DtVrlinkConnection& conn);
56 
58  static DtLaserDesignatorProcessor* findInstance(DtVrlinkConnection& simulation );
59 
61  virtual ~DtLaserDesignatorProcessor();
62 
64  DtLaserDesignatorVisualizerSet* findVisualizer( int modelSet, const DtGlobalObjectDesignator& id );
65 
67  std::vector<DtLaserDesignatorVisualizerSet*> findVisualizers(const DtGlobalObjectDesignator& id );
68 
70  DtLaserDesignatorVisualizerSet* findVisualizer( DtUniqueID sceneId);
71 
74 
76  DtLaserDesignatorElement* findElement( const DtUniqueID& elementId );
77 
79  DtLaserDesignatorElement* findElement( const DtGlobalObjectDesignator& id );
80 
83  void setVisualizerCreationProcessingTime(double);
84  double visualizerCreationProcessingTime() const;
85 
86  boost::signalslib::signal<void (DtVrlinkLaserDesignatorStateListener&, DtLaserDesignatorElement*)> signal_elementCreated;
87  boost::signalslib::signal<void (DtVrlinkLaserDesignatorStateListener&, DtLaserDesignatorElement*)> signal_elementAboutToBeDestroyed;
88 
89  protected:
91  void onDesignatorDiscovered(DtVrlinkLaserDesignatorStateListener* listener );
92 
94  virtual void slot_completeDiscovery();
95 
97  virtual void createVisualizer(DtVrlinkLaserDesignatorStateListener& listener);
98 
100  void onDesignatorToBeDestroyed(DtVrlinkLaserDesignatorStateListener* listener );
101 
102  virtual void modelSetVisualized(int set, bool b);
103 
104  void onItemVisibilityChanged( const DtUniqueID& elementID, bool flag );
105 
106  private:
110 
114 
118 
119  protected:
120 
121  typedef boost::unordered_map<DtUniqueID, DtLaserDesignatorElement*> DesignatorElementVisualizerMap;
122  typedef boost::unordered_map<std::string, DtLaserDesignatorElement*> GlobalIdToDesignatorElementVisualizerMap;
123  typedef boost::unordered_map<DtUniqueID, DtVrlinkLaserDesignatorStateListener*> ToBeVisualizedMap;
124 
130 
133  };
134  }
135 }
Virtual base class.
Definition: DtVirtualBaseClass.h:19
boost::signalslib::signal< void(DtVrlinkLaserDesignatorStateListener &, DtLaserDesignatorElement *)> signal_elementCreated
Definition: DtLaserDesignatorProcessor.h:86
DesignatorElementVisualizerMap myElementVisualizers
Definition: DtLaserDesignatorProcessor.h:127
DtVrlinkConnection & myConnection
Definition: DtLaserDesignatorProcessor.h:125
ToBeVisualizedMap myToBeVisualized
Definition: DtLaserDesignatorProcessor.h:128
boost::signalslib::signal< void(DtVrlinkLaserDesignatorStateListener &, DtLaserDesignatorElement *)> signal_elementAboutToBeDestroyed
Definition: DtLaserDesignatorProcessor.h:87
This class processes laser designators from simulation connectoins.
Definition: DtLaserDesignatorProcessor.h:44
boost::unordered_map< std::string, DtLaserDesignatorElement * > GlobalIdToDesignatorElementVisualizerMap
Definition: DtLaserDesignatorProcessor.h:122
A DtLaserDesignatorSettingsRecord contains the current laser designator settings. ...
Definition: DtLaserDesignatorSettingsRecord.h:19
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
double myVisualizerCreationProcessingTime
Definition: DtLaserDesignatorProcessor.h:129
Contains makVrv::DtVirtualBaseClass class.
GlobalIdToDesignatorElementVisualizerMap myGlobalIdToElementVisualizerMap
Definition: DtLaserDesignatorProcessor.h:131
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::unordered_map< DtUniqueID, DtVrlinkLaserDesignatorStateListener * > ToBeVisualizedMap
Definition: DtLaserDesignatorProcessor.h:123
Contains makArchives::DtLaserDesignatorSettingsRecord class.
#define DT_PROTOCOL_NAMESPACE
Make VR-Vantage VRLink code export with library #ifdef DL_DLL_IGCONVRLINK #undef DL_DLL_IGCONVRLINK #...
Definition: export.h:32
boost::unordered_map< DtUniqueID, DtLaserDesignatorElement * > DesignatorElementVisualizerMap
Definition: DtLaserDesignatorProcessor.h:121
Base class to provide boost signal/slot management.
DtSignalConnectionManager myConnections
Definition: DtLaserDesignatorProcessor.h:126
Visualizer set for laser designators.
Definition: DtLaserDesignatorVisualizerSet.h:31
A single entity element.
Definition: DtLaserDesignatorElement.h:28
makArchives::DtLaserDesignatorSettingsRecord myDesignatorSettings
Definition: DtLaserDesignatorProcessor.h:132
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)