VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCigiViewManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2022 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 #include <vrvCore/DtUniqueID.h>
16 
17 #include <string>
18 #include <map>
19 #include <set>
20 
21 class CigiBaseViewCtrl;
22 class CigiBaseViewDef;
23 class CigiBaseCompCtrl;
24 
25 namespace makVrv
26 {
27  class DtDe;
28  class DtObserver;
29  class DtChannel;
30  class DtChannelConfiguration;
31  class DtCigiConnection;
32 
37  {
38  public:
39 
41  {
42  CigiAttachTypeTether = 252,
43  CigiAttachTypeMimic = 253,
44  CigiAttachTypeFollow = 254,
45  CigiAttachTypeTrack = 255
46  };
47 
50  {
51  int groupId;
52  bool reorder;
53  std::string observerMode;
55  float zNear;
57  float zFar;
59  float left;
61  float right;
62  bool topEnabled;
63  float top;
65  float bottom;
66  bool mirrorMode;
67  };
68 
71  {
73  : xOffset(0.0f)
74  , yOffset(0.0f)
75  , zOffset(0.0f)
76  , roll(0.0f)
77  , pitch(0.0f)
78  , yaw(0.0f)
79  {};
80 
81  float xOffset;
82  float yOffset;
83  float zOffset;
84  float roll;
85  float pitch;
86  float yaw;
87  };
88 
91  {
93  : entityId(0)
94  , groupId(0)
95  , xOffsetEnabled(false)
96  , yOffsetEnabled(false)
97  , zOffsetEnabled(false)
98  , rollEnabled(false)
99  , pitchEnabled(false)
100  , yawEnabled(false)
101  , attachEnabled(false)
102  {};
103 
104 
105  DtUniqueID entityId;
106  int groupId;
115  };
116 
117  typedef std::set<int> DtViewGroup;
118  typedef std::map<int, DtViewGroup> GroupIdToGroupMap;
119  typedef std::map<int, DtViewControlPosition> ViewIdToPositionMap;
120 
122 
123 
125  virtual const ViewIdToPositionMap& viewIdToPositionMap() const;
127  virtual ViewIdToPositionMap& viewIdToPositionMap();
129 
131  virtual const GroupIdToGroupMap& groupIdToGroupMap() const;
133  virtual GroupIdToGroupMap& groupIdToGroupMap();
135 
137  virtual ~DtCigiViewManager();
138 
140  virtual DtViewControlPosition viewControlPosition( int viewId, const DtViewControlAction& action );
141 
143  virtual void addViewToGroup( int viewId, int groupId );
144 
147  virtual void removeViewFromGroups( int viewId );
148 
150  virtual std::string viewIdKeyword( int viewId );
151 
155  virtual bool retrieveConfiguration( DtDe& de, int viewId, std::string& displayName,
156  std::string& windowName, std::string& channelName, DtChannelConfiguration& config );
157 
161  virtual int maxRenderOrder( DtDe& de, int viewId, std::string& displayName,
162  std::string& windowName );
163 
167  virtual DtObserver* findObserverFromCigiViewId( DtDe& de, int viewId );
168 
172  virtual DtChannel* findChannelFromCigiViewId( DtDe& de, int viewId );
173 
175  boost::signalslib::signal<void( int, DtViewDefinitionAction )>
177 
179  boost::signalslib::signal<void( int, DtViewControlAction )>
181 
183  virtual void getViewNames( DtDe& de, int viewId, std::string& displayName, std::string& windowName, std::string& channelName );
184  protected:
186  DtCigiViewManager(DtCigiConnection& connection);
187 
191  virtual void slot_processViewDefinition( CigiBaseViewDef& viewDefinition );
192 
194  virtual void slot_viewControlReceived( CigiBaseViewCtrl& viewControl );
195 
196  private:
198  DtCigiViewManager( const DtCigiViewManager& orig );
199 
201  DtCigiViewManager& operator=( DtCigiViewManager& rhs );
202  protected:
205 
208  };
209 
213  {
214  public:
217 
219  virtual ~DtCigiViewManagerCreator();
220 
222  static DtCigiViewManagerCreator& instance( DtDe& de );
223 
225  static DtCigiViewManagerCreator& instance( DtCigiConnection& con );
226 
228  virtual DtCigiViewManagerCreator* clone();
229 
231  static void copyInstance( DtCigiConnection& con, DtDe& de );
232 
234  virtual DtCigiViewManager* create( DtCigiConnection& connection ) const;
235 
236  };
237 }
bool pitchEnabled
Definition: DtCigiViewManager.h:111
DtCigiConnection & myConnection
Definition: DtCigiViewManager.h:203
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
bool xOffsetEnabled
Definition: DtCigiViewManager.h:107
bool leftEnabled
Definition: DtCigiViewManager.h:58
float zOffset
Definition: DtCigiViewManager.h:83
Structure defines a view definition action.
Definition: DtCigiViewManager.h:49
bool yawEnabled
Definition: DtCigiViewManager.h:112
std::map< int, DtViewGroup > GroupIdToGroupMap
Definition: DtCigiViewManager.h:118
DtViewControlPosition position
Definition: DtCigiViewManager.h:114
bool yOffsetEnabled
Definition: DtCigiViewManager.h:108
float yOffset
Definition: DtCigiViewManager.h:82
DtSignalConnectionManager myCigiConnectionSignals
Definition: DtCigiViewManager.h:204
Creator class for the DtCigiViewManager.
Definition: DtCigiViewManager.h:212
boost::signalslib::signal< void(int, DtViewDefinitionAction)> signal_receivedViewDefinition
Emitted when a CIGI View definition is received.
Definition: DtCigiViewManager.h:176
std::set< int > DtViewGroup
Definition: DtCigiViewManager.h:117
DtViewControlAction()
Definition: DtCigiViewManager.h:92
bool rollEnabled
Definition: DtCigiViewManager.h:110
GroupIdToGroupMap myGroupIdToGroupMap
Definition: DtCigiViewManager.h:207
Contains DLL export macros.
bool zFarEnabled
Definition: DtCigiViewManager.h:56
ViewIdToPositionMap myViewIdToPositionMap
Definition: DtCigiViewManager.h:206
The abstract Channel Class.
Definition: DtChannel.h:35
A facade for a DtObserverObject.
Definition: DtObserver.h:37
Contains makVrv::DtVirtualBaseClass class.
int groupId
Definition: DtCigiViewManager.h:106
float bottom
Definition: DtCigiViewManager.h:65
Structure for the position of a view.
Definition: DtCigiViewManager.h:70
boost::signalslib::signal< void(int, DtViewControlAction)> signal_receivedViewControl
Emitted when a CIGI View Control is received.
Definition: DtCigiViewManager.h:180
float yaw
Definition: DtCigiViewManager.h:86
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
float top
Definition: DtCigiViewManager.h:63
float zNear
Definition: DtCigiViewManager.h:55
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:57
float pitch
Definition: DtCigiViewManager.h:85
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtViewControlPosition()
Definition: DtCigiViewManager.h:72
bool zNearEnabled
Definition: DtCigiViewManager.h:54
bool mirrorMode
Definition: DtCigiViewManager.h:66
std::string observerMode
Definition: DtCigiViewManager.h:53
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
float left
Definition: DtCigiViewManager.h:59
Contains makVrv::DtUniqueID type.
int groupId
Definition: DtCigiViewManager.h:51
bool bottomEnabled
Definition: DtCigiViewManager.h:64
bool topEnabled
Definition: DtCigiViewManager.h:62
bool attachEnabled
Definition: DtCigiViewManager.h:113
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:72
bool rightEnabled
Definition: DtCigiViewManager.h:60
float right
Definition: DtCigiViewManager.h:61
#define DT_DLL_VRVCIGI
Definition: vrvCigi.h:19
std::map< int, DtViewControlPosition > ViewIdToPositionMap
Definition: DtCigiViewManager.h:119
float roll
Definition: DtCigiViewManager.h:84
This class manages mapping between CIGI views and VRV observers / channels.
Definition: DtCigiViewManager.h:36
CIGI_GROUP_ATTACH_TYPE
Definition: DtCigiViewManager.h:40
float zFar
Definition: DtCigiViewManager.h:57
bool reorder
Definition: DtCigiViewManager.h:52
bool zOffsetEnabled
Definition: DtCigiViewManager.h:109

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)