VR-Forces 5.0.3 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) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvVrl/vrvVrl.h>
13 
15 
17 
19 
20 #include <vl/dataInteraction.h>
21 
22 #include <boost/unordered_map.hpp>
23 #include <boost/function.hpp>
24 
25 #include <map>
26 
27 namespace vrvControlToolkit
28 {
29  struct DtRemoteGraphicSet_v1;
30 }
31 
32 namespace makVrv
33 {
34  class DtRemoteGraphicSetControllerAgent;
35  class DtRemoteGraphicVisualizerSet;
36  class DtRemoteGraphicStateListener;
37 
38  namespace DT_PROTOCOL_NAMESPACE
39  {
40  class DtRemoteGraphicElement;
41  class DtVrlinkEnvironmentalStateListenerInterface;
42 
47  : public DtVirtualBaseClass
48  {
49  public:
50 
53 
55  static void registerInstance(DtVrlinkConnection& connection,
56  DtRemoteGraphicsProcessor* instance);
57 
59  static DtRemoteGraphicsProcessor* findInstance(DtVrlinkConnection& connection);
60 
62  virtual ~DtRemoteGraphicsProcessor();
63 
65  std::vector<DtRemoteGraphicVisualizerSet*> findVisualizers(
66  const DtGlobalObjectDesignator& id);
67 
69  inline DtRemoteGraphicStateListener* findListener( DtUniqueID id);
70 
72  void processInteraction(const DtDataInteraction& dataInter);
73 
77  virtual void setRemoteGraphicSet(const std::string& name, bool onOff);
78 
80  virtual bool remoteGraphicSetStatus(
81  const std::vector<std::string>& names) const;
82 
83  virtual void addRemoteGraphicSet(const std::string& name);
84 
85  virtual void removeRemoteGraphicSet(const std::string& name);
86 
87  virtual void addAttributeGroupTemplate(const std::string& groupName,
88  const std::string& templateName);
89 
90  virtual void removeAttributeGroupTemplate(const std::string& groupName,
91  const std::string& templateName);
92 
93  virtual void setAttributeGroupTemplateStatus(const std::string& groupName,
94  const std::string& templateName, bool onOff);
95 
96  boost::signalslib::signal<void ()> signal_layersChanged;
97 
98  protected:
99 
101  void onEnvironmentalDiscovered(DtVrlinkEnvironmentalStateListenerInterface& listener);
102 
104  void onEnvironmentalToBeDestroyed(DtVrlinkEnvironmentalStateListenerInterface& listener);
105 
106  virtual void getLayerNames(const std::string& name, std::vector<std::string>& names) const;
107 
108  virtual void getGroupAndTemplateNames(const std::string& name,
109  std::string& groupName, std::string& templateName);
110 
112  //View control functions. All functions are registered by default in
113  //the CTOR.
114  void processRemoteGraphicSetControl(const vrvControlToolkit::DtRemoteGraphicSet_v1* command);
116 
117  protected:
118 
119  typedef boost::unordered_map<DtUniqueID, DtRemoteGraphicStateListener*>
121 
122  typedef boost::unordered_map<DtRemoteGraphicStateListener*, DtRemoteGraphicElement*>
124 
125  typedef boost::unordered_map<std::string, DtRemoteGraphicElement*>
127 
128  typedef std::map<std::string, bool> GraphicSetStatusMap;
129 
136  DtRemoteGraphicSetControllerAgent* myRemoteGraphicSetAgent;
137  };
138 
139  }
140 }
DtSignalConnectionManager myConnections
Definition: DtRemoteGraphicsProcessor.h:131
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
RemoteGraphicElementMap myElementVisualizers
Definition: DtRemoteGraphicsProcessor.h:133
This class manages the display of Remote Graphics discovered via a connection.
Definition: DtRemoteGraphicsProcessor.h:46
Contains makVrv:DtSelectionManager class.
RemoteGraphicElementIdToListenerMap myElementIdToListenerMap
Definition: DtRemoteGraphicsProcessor.h:132
The DtRemoteGraphicStateListener is a class that deals with basic remote Graphics processing...
Definition: DtRemoteGraphicStateListener.h:22
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
boost::unordered_map< std::string, DtRemoteGraphicElement * > GlobalIdToRemoteGraphicElementMap
Definition: DtRemoteGraphicsProcessor.h:126
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
Contains makVrv::DtVirtualBaseClass class.
GlobalIdToRemoteGraphicElementMap myGlobalIdToElementVisualizerMap
Definition: DtRemoteGraphicsProcessor.h:134
GraphicSetStatusMap myRemoteGraphicSetStatus
Definition: DtRemoteGraphicsProcessor.h:135
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtRemoteGraphicVisualizerSetclass.
DtRemoteGraphicSetControllerAgent * myRemoteGraphicSetAgent
Definition: DtRemoteGraphicsProcessor.h:136
std::map< std::string, bool > GraphicSetStatusMap
Definition: DtRemoteGraphicsProcessor.h:128
boost::unordered_map< DtRemoteGraphicStateListener *, DtRemoteGraphicElement * > RemoteGraphicElementMap
Definition: DtRemoteGraphicsProcessor.h:123
boost::unordered_map< DtUniqueID, DtRemoteGraphicStateListener * > RemoteGraphicElementIdToListenerMap
Definition: DtRemoteGraphicsProcessor.h:120
DtVrlinkConnection & myConnection
Definition: DtRemoteGraphicsProcessor.h:130
Contains DLL export macros.
Show/hide Remote Graphic Sets or Remote Graphics Attribute templates.
Definition: vrvControlToolkitDataTypes.h:1179
boost::signalslib::signal< void()> signal_layersChanged
Definition: DtRemoteGraphicsProcessor.h:96

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)