VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCigiViewController.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2025 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
15 
16 #include <vrvCore/DtUniqueID.h>
18 
21 
22 #include <string>
23 #include <unordered_map>
24 #include <unordered_set>
25 
26 namespace makVrv
27 {
28  class DtDe;
29  class DtChannelConfiguration;
30 
31  class DtCigiDriver;
32  class DtCigiConnection;
33  class DtMasterSensorController;
34 
38  {
39  public:
41 
43  virtual ~DtCigiViewController();
44 
46  virtual void reset();
47 
48  public:
51  DtCigiViewController() = delete;
54  DtCigiViewController& operator=( DtCigiViewController& ) = delete;
55  DtCigiViewController& operator=( DtCigiViewController&& ) = delete;
57  protected:
58 
60  DtCigiViewController(DtDe& de, DtCigiConnection& connection);
61 
63  virtual void modifyConfiguration(const std::string& displayName,
64  const std::string& windowName, const std::string& channelName,
65  const DtChannelConfiguration& config);
66 
68  virtual void attachObserver(int viewId, const DtCigiViewManager::DtViewControlAction& action,
70 
72  virtual void slot_onViewDefinitionReceived(int viewId,
74 
76  virtual void performSetViewDefinition(int viewId,
78 
80  virtual void slot_onViewControlReceived(int viewId, DtCigiViewManager::DtViewControlAction action );
81 
83  virtual void performSetViewControl(int viewId, const DtCigiViewManager::DtViewControlAction& action );
84 
86  virtual void slot_onViewMagnificationReceived(int viewId, float magValue);
87 
89  virtual void performSetViewMagnification(int viewId, float magValue);
90 
92  virtual void slot_onLodScaleReceived(int viewId, float scale);
93 
95  virtual void slot_onEntityLodScaleReceived(int viewId, float scale);
96 
98  virtual void slot_onTerrainLodScaleReceived(int viewId, float scale);
99 
101  virtual void performSetLodScale(int viewId, float scale, bool setEntityLodScale, bool setTerrainLodScale);
102 
106  virtual void slot_onAttachViewToArtPartReceived( int viewId, DtCigiViewManager::DtViewControlAction action, int artPartId );
107 
109  virtual void performAttachViewToArtPart( int viewId, DtCigiViewManager::DtViewControlAction action, int artPartId );
110 
114  virtual void slot_onSensorControlRequest( DtSensorResponder::DtSensorRequestData* request );
115 
117  virtual void performSensorControlRequest( DtSensorResponder::DtSensorRequestData& request );
118 
122  virtual void slot_channelEnabledReceived( int viewId, bool channelOn );
123 
125  virtual void performChannelEnabledChange( int viewId, bool channelOn );
126 
129  virtual void clearSensors();
130  protected:
131 
135 
138 
139  // Track what views are attached to an entity; multiple observers can
140  // be attached to the same entity
141  struct AttachData
142  {
146  };
147 
148  std::unordered_map< int, AttachData > myViewIdsToAttachDataMap;
149 
151  std::unordered_set< int > myViewIdsToClearSensor;
152  };
153 
157  {
158  public:
161 
163  virtual ~DtCigiViewControllerCreator();
164 
166  static DtCigiViewControllerCreator& instance( DtDe& de );
167 
169  virtual DtCigiViewController* create( DtCigiConnection& connection ) const;
170 
171  protected:
173  };
174 }
175 
Contains makVrv::DtSensorResponder class.
DtMasterSensorController * myMasterSensorController
This can only be used from the render thread!
Definition: DtCigiViewController.h:137
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtUniqueID myEntityId
Definition: DtCigiViewController.h:143
DtDe & myDe
Definition: DtCigiViewController.h:172
DtCigiConnection & myCigiConnection
Definition: DtCigiViewController.h:133
Structure defines a view definition action.
Definition: DtCigiViewManager.h:49
DtSignalConnectionManager myConnections
Definition: DtCigiViewController.h:134
A DtCigiViewControl receives messages from the DtCigiConnection and actually changes the channel sett...
Definition: DtCigiViewController.h:37
Creator class for the DtCigiViewController.
Definition: DtCigiViewController.h:156
Contains makVrv::DtCigiViewManager class.
Contains DLL export macros.
Definition: DtCigiViewController.h:141
std::unordered_map< int, AttachData > myViewIdsToAttachDataMap
Definition: DtCigiViewController.h:148
Contains makVrv::DtVirtualBaseClass class.
Contains makVrv::DtObserverObject class declaration.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Structure for a view control action.
Definition: DtCigiViewManager.h:90
This class is responsible for the actual processing of CIGI data. This holds the entity visualizer...
Definition: DtCigiConnection.h:58
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
int myArtPartId
Definition: DtCigiViewController.h:145
int myGroupId
Definition: DtCigiViewController.h:144
Base class to provide boost signal/slot management.
Configuration for a single channel Serialized and sent to remote displays as necessary to configure r...
Definition: DtChannelConfiguration.h:24
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
DtDe & myDe
Definition: DtCigiViewController.h:132
Main thread controller used to create, destroy, and modify sensors.
Definition: DtMasterSensorController.h:25
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
Structure containing the data of the processed inbound sensor control packet. These packets are sent ...
Definition: DtSensorResponder.h:69
std::unordered_set< int > myViewIdsToClearSensor
Used in render thread if multithreaded connection is on.
Definition: DtCigiViewController.h:151
Definition: DtObserverObject.h:45
AttachType
Definition: DtObserverObject.h:42

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)