VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtRemoteGraphicsProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvVrl/vrvVrl.h>
13 
15 
17 
18 #include <vl/dataInteraction.h>
19 
20 #include <unordered_map>
21 #include <boost/function.hpp>
22 
23 #include <map>
24 
25 namespace vrvControlToolkit
26 {
27  struct DtRemoteGraphicSet_v1;
28 }
29 
30 namespace makVrv
31 {
32  class DtRemoteGraphicSetControllerAgent;
33  class DtVisualizerSet;
34  class DtRemoteGraphicStateListener;
35 
36  namespace DT_PROTOCOL_NAMESPACE
37  {
38  class DtRemoteGraphicElement;
39  class DtVrlinkEnvironmentalStateListenerInterface;
40 
45  : public DtVirtualBaseClass
46  {
47  public:
48 
51 
53  static void registerInstance(DtVrlinkConnection& connection,
54  DtRemoteGraphicsProcessor* instance);
55 
57  static DtRemoteGraphicsProcessor* findInstance(DtVrlinkConnection& connection);
58 
60  virtual ~DtRemoteGraphicsProcessor();
61 
63  std::vector<DtVisualizerSet*> findVisualizers(
64  const DtGlobalObjectDesignator& id);
65 
67  inline DtRemoteGraphicStateListener* findListener( DtUniqueID id);
68 
70  void processInteraction(const DtDataInteraction& dataInter);
71 
75  virtual void setRemoteGraphicSet(const std::string& name, bool onOff);
76 
78  virtual bool remoteGraphicSetStatus(
79  const std::vector<std::string>& names) const;
80 
81  virtual void addRemoteGraphicSet(const std::string& name);
82 
83  virtual void removeRemoteGraphicSet(const std::string& name);
84 
85  virtual void addAttributeGroupTemplate(const std::string& groupName,
86  const std::string& templateName);
87 
88  virtual void removeAttributeGroupTemplate(const std::string& groupName,
89  const std::string& templateName);
90 
91  virtual void setAttributeGroupTemplateStatus(const std::string& groupName,
92  const std::string& templateName, bool onOff);
93 
94  boost::signalslib::signal<void ()> signal_layersChanged;
95 
98  void onEnvironmentalDiscovered(DtVrlinkEnvironmentalStateListenerInterface& listener);
99 
102  void onEnvironmentalToBeDestroyed(DtVrlinkEnvironmentalStateListenerInterface& listener);
103 
104  protected:
105  virtual void getLayerNames(const std::string& name, std::vector<std::string>& names) const;
106 
107  virtual void getGroupAndTemplateNames(const std::string& name,
108  std::string& groupName, std::string& templateName);
109 
111  //View control functions. All functions are registered by default in
112  //the CTOR.
113  void processRemoteGraphicSetControl(const vrvControlToolkit::DtRemoteGraphicSet_v1* command);
115 
116  protected:
117 
118  typedef std::unordered_map<DtUniqueID, DtRemoteGraphicStateListener*>
120 
121  typedef std::unordered_map<DtRemoteGraphicStateListener*, DtRemoteGraphicElement*>
123 
124  typedef std::unordered_map<std::string, DtRemoteGraphicElement*>
126 
127  typedef std::map<std::string, bool> GraphicSetStatusMap;
128 
135  DtRemoteGraphicSetControllerAgent* myRemoteGraphicSetAgent;
136  };
137 
138  }
139 }
DtSignalConnectionManager myConnections
Definition: DtRemoteGraphicsProcessor.h:130
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::unordered_map< std::string, DtRemoteGraphicElement * > GlobalIdToRemoteGraphicElementMap
Definition: DtRemoteGraphicsProcessor.h:125
std::unordered_map< DtUniqueID, DtRemoteGraphicStateListener * > RemoteGraphicElementIdToListenerMap
Definition: DtRemoteGraphicsProcessor.h:119
RemoteGraphicElementMap myElementVisualizers
Definition: DtRemoteGraphicsProcessor.h:132
This class manages the display of Remote Graphics discovered via a connection.
Definition: DtRemoteGraphicsProcessor.h:44
Contains makVrv:DtSelectionManager class.
std::unordered_map< DtRemoteGraphicStateListener *, DtRemoteGraphicElement * > RemoteGraphicElementMap
Definition: DtRemoteGraphicsProcessor.h:122
RemoteGraphicElementIdToListenerMap myElementIdToListenerMap
Definition: DtRemoteGraphicsProcessor.h:131
The DtRemoteGraphicStateListener is a class that deals with basic remote Graphics processing...
Definition: DtRemoteGraphicStateListener.h:22
#define DT_PROTOCOL_NAMESPACE
Contains defines and includes header files for protocols.
Definition: vrfProtocol.h:13
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
Contains makVrv::DtVirtualBaseClass class.
GlobalIdToRemoteGraphicElementMap myGlobalIdToElementVisualizerMap
Definition: DtRemoteGraphicsProcessor.h:133
GraphicSetStatusMap myRemoteGraphicSetStatus
Definition: DtRemoteGraphicsProcessor.h:134
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtRemoteGraphicSetControllerAgent * myRemoteGraphicSetAgent
Definition: DtRemoteGraphicsProcessor.h:135
std::map< std::string, bool > GraphicSetStatusMap
Definition: DtRemoteGraphicsProcessor.h:127
DtVrlinkConnection & myConnection
Definition: DtRemoteGraphicsProcessor.h:129
Contains DLL export macros.
Show/hide Remote Graphic Sets or Remote Graphics Attribute templates.
Definition: vrvControlToolkitDataTypes.h:1224
boost::signalslib::signal< void()> signal_layersChanged
Definition: DtRemoteGraphicsProcessor.h:94

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)