VR-Forces 5.0.3 Developer's Guide
 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  class DtVisualAttributeStringVector;
30  class DtLaserDesignatorVisualizerSet;
31 
32  namespace DT_PROTOCOL_NAMESPACE
33  {
34 
35  class DtLaserDesignatorElement;
36  class DtVrlinkConnection;
37  class DtVrlinkLaserDesignatorStateListener;
38  class DtVrlinkEnvironmentalStateListenerInterface;
39 
44  {
45  public:
46 
49 
51  static void registerInstance( DtVrlinkConnection& simulation,
52  DtLaserDesignatorProcessor* instance );
53 
54  static void unregisterInstance(DtVrlinkConnection& conn);
55 
57  static DtLaserDesignatorProcessor* findInstance(DtVrlinkConnection& simulation );
58 
60  virtual ~DtLaserDesignatorProcessor();
61 
63  DtLaserDesignatorVisualizerSet* findVisualizer( int modelSet, const DtGlobalObjectDesignator& id );
64 
66  std::vector<DtLaserDesignatorVisualizerSet*> findVisualizers(const DtGlobalObjectDesignator& id );
67 
69  DtLaserDesignatorVisualizerSet* findVisualizer( DtUniqueID sceneId);
70 
73 
75  DtLaserDesignatorElement* findElement( const DtUniqueID& elementId );
76 
78  DtLaserDesignatorElement* findElement( const DtGlobalObjectDesignator& id );
79 
82  void setVisualizerCreationProcessingTime(double);
83  double visualizerCreationProcessingTime() const;
84 
85  boost::signalslib::signal<void (DtVrlinkLaserDesignatorStateListener&, DtLaserDesignatorElement*)> signal_elementCreated;
86  boost::signalslib::signal<void (DtVrlinkLaserDesignatorStateListener&, DtLaserDesignatorElement*)> signal_elementAboutToBeDestroyed;
87 
88  protected:
90  void onDesignatorDiscovered(DtVrlinkLaserDesignatorStateListener* listener );
91 
93  virtual void slot_completeDiscovery();
94 
96  virtual void createVisualizer(DtVrlinkLaserDesignatorStateListener& listener);
97 
99  void onDesignatorToBeDestroyed(DtVrlinkLaserDesignatorStateListener* listener );
100 
101  virtual void modelSetVisualized(int set, bool b);
102 
103  void onItemVisibilityChanged( const DtUniqueID& elementID, bool flag );
104 
105  private:
109 
113 
117 
118  protected:
119 
120  typedef boost::unordered_map<DtUniqueID, DtLaserDesignatorElement*> DesignatorElementVisualizerMap;
121  typedef boost::unordered_map<std::string, DtLaserDesignatorElement*> GlobalIdToDesignatorElementVisualizerMap;
122  typedef boost::unordered_map<DtUniqueID, DtVrlinkLaserDesignatorStateListener*> ToBeVisualizedMap;
123 
129 
132  };
133  }
134 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signalslib::signal< void(DtVrlinkLaserDesignatorStateListener &, DtLaserDesignatorElement *)> signal_elementCreated
Definition: DtLaserDesignatorProcessor.h:85
DesignatorElementVisualizerMap myElementVisualizers
Definition: DtLaserDesignatorProcessor.h:126
DtVrlinkConnection & myConnection
Definition: DtLaserDesignatorProcessor.h:124
ToBeVisualizedMap myToBeVisualized
Definition: DtLaserDesignatorProcessor.h:127
boost::signalslib::signal< void(DtVrlinkLaserDesignatorStateListener &, DtLaserDesignatorElement *)> signal_elementAboutToBeDestroyed
Definition: DtLaserDesignatorProcessor.h:86
This class processes laser designators from simulation connectoins.
Definition: DtLaserDesignatorProcessor.h:43
boost::unordered_map< std::string, DtLaserDesignatorElement * > GlobalIdToDesignatorElementVisualizerMap
Definition: DtLaserDesignatorProcessor.h:121
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:128
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
Contains makVrv::DtVirtualBaseClass class.
GlobalIdToDesignatorElementVisualizerMap myGlobalIdToElementVisualizerMap
Definition: DtLaserDesignatorProcessor.h:130
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::unordered_map< DtUniqueID, DtVrlinkLaserDesignatorStateListener * > ToBeVisualizedMap
Definition: DtLaserDesignatorProcessor.h:122
Contains makArchives::DtLaserDesignatorSettingsRecord class.
boost::unordered_map< DtUniqueID, DtLaserDesignatorElement * > DesignatorElementVisualizerMap
Definition: DtLaserDesignatorProcessor.h:120
Base class to provide boost signal/slot management.
DtSignalConnectionManager myConnections
Definition: DtLaserDesignatorProcessor.h:125
A single entity element. An entity element may be visualized using multiple visualizer sets one per m...
Definition: DtLaserDesignatorElement.h:28
Visualizer set for laser designators. Provides the visualize(..) method that looks up the appropriate...
Definition: DtLaserDesignatorVisualizerSet.h:25
makArchives::DtLaserDesignatorSettingsRecord myDesignatorSettings
Definition: DtLaserDesignatorProcessor.h:131
Contains DLL export macros.

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)