VR-Forces 5.0.1 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) 2020 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  };
67 
70  {
72  : xOffset(0.0f)
73  , yOffset(0.0f)
74  , zOffset(0.0f)
75  , roll(0.0f)
76  , pitch(0.0f)
77  , yaw(0.0f)
78  {};
79 
80  float xOffset;
81  float yOffset;
82  float zOffset;
83  float roll;
84  float pitch;
85  float yaw;
86  };
87 
90  {
92  : entityId(0)
93  , groupId(0)
94  , xOffsetEnabled(false)
95  , yOffsetEnabled(false)
96  , zOffsetEnabled(false)
97  , rollEnabled(false)
98  , pitchEnabled(false)
99  , yawEnabled(false)
100  , attachEnabled(false)
101  {};
102 
103 
104  DtUniqueID entityId;
105  int groupId;
114  };
115 
116  typedef std::set<int> DtViewGroup;
117  typedef std::map<int, DtViewGroup> GroupIdToGroupMap;
118  typedef std::map<int, DtViewControlPosition> ViewIdToPositionMap;
119 
121 
122 
124  virtual const ViewIdToPositionMap& viewIdToPositionMap() const;
126  virtual ViewIdToPositionMap& viewIdToPositionMap();
128 
130  virtual const GroupIdToGroupMap& groupIdToGroupMap() const;
132  virtual GroupIdToGroupMap& groupIdToGroupMap();
134 
136  virtual ~DtCigiViewManager();
137 
139  virtual DtViewControlPosition viewControlPosition( int viewId, const DtViewControlAction& action );
140 
142  virtual void addViewToGroup( int viewId, int groupId );
143 
145  virtual std::string viewIdKeyword( int viewId );
146 
150  virtual bool retrieveConfiguration( DtDe& de, int viewId, std::string& displayName,
151  std::string& windowName, std::string& channelName, DtChannelConfiguration& config );
152 
156  virtual int maxRenderOrder( DtDe& de, int viewId, std::string& displayName,
157  std::string& windowName );
158 
162  virtual DtObserver* findObserverFromCigiViewId( DtDe& de, int viewId );
163 
167  virtual DtChannel* findChannelFromCigiViewId( DtDe& de, int viewId );
168 
170  boost::signalslib::signal<void( int, DtViewDefinitionAction )>
172 
174  boost::signalslib::signal<void( int, DtViewControlAction )>
176 
178  virtual void getViewNames( DtDe& de, int viewId, std::string& displayName, std::string& windowName, std::string& channelName );
179  protected:
181  DtCigiViewManager(DtCigiConnection& connection);
182 
186  virtual void slot_processViewDefinition( CigiBaseViewDef& viewDefinition );
187 
189  virtual void slot_viewControlReceived( CigiBaseViewCtrl& viewControl );
190 
191  private:
193  DtCigiViewManager( const DtCigiViewManager& orig );
194 
196  DtCigiViewManager& operator=( DtCigiViewManager& rhs );
197  protected:
200 
203  };
204 
208  {
209  public:
212 
214  virtual ~DtCigiViewManagerCreator();
215 
217  static DtCigiViewManagerCreator& instance( DtDe& de );
218 
220  static DtCigiViewManagerCreator& instance( DtCigiConnection& con );
221 
223  DtCigiViewManagerCreator* clone();
224 
226  static void copyInstance( DtCigiConnection& con, DtDe& de );
227 
229  virtual DtCigiViewManager* create( DtCigiConnection& connection ) const;
230 
231  };
232 }
bool pitchEnabled
Definition: DtCigiViewManager.h:110
DtCigiConnection & myConnection
Definition: DtCigiViewManager.h:198
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:106
bool leftEnabled
Definition: DtCigiViewManager.h:58
float zOffset
Definition: DtCigiViewManager.h:82
Structure defines a view definition action.
Definition: DtCigiViewManager.h:49
bool yawEnabled
Definition: DtCigiViewManager.h:111
std::map< int, DtViewGroup > GroupIdToGroupMap
Definition: DtCigiViewManager.h:117
DtViewControlPosition position
Definition: DtCigiViewManager.h:113
bool yOffsetEnabled
Definition: DtCigiViewManager.h:107
float yOffset
Definition: DtCigiViewManager.h:81
DtSignalConnectionManager myCigiConnectionSignals
Definition: DtCigiViewManager.h:199
Creator class for the DtCigiViewManager.
Definition: DtCigiViewManager.h:207
boost::signalslib::signal< void(int, DtViewDefinitionAction)> signal_receivedViewDefinition
Emitted when a CIGI View definition is received.
Definition: DtCigiViewManager.h:171
std::set< int > DtViewGroup
Definition: DtCigiViewManager.h:116
DtViewControlAction()
Definition: DtCigiViewManager.h:91
bool rollEnabled
Definition: DtCigiViewManager.h:109
GroupIdToGroupMap myGroupIdToGroupMap
Definition: DtCigiViewManager.h:202
Contains DLL export macros.
bool zFarEnabled
Definition: DtCigiViewManager.h:56
ViewIdToPositionMap myViewIdToPositionMap
Definition: DtCigiViewManager.h:201
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:105
float bottom
Definition: DtCigiViewManager.h:65
Structure for the position of a view.
Definition: DtCigiViewManager.h:69
boost::signalslib::signal< void(int, DtViewControlAction)> signal_receivedViewControl
Emitted when a CIGI View Control is received.
Definition: DtCigiViewManager.h:175
float yaw
Definition: DtCigiViewManager.h:85
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:89
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:84
DtViewControlPosition()
Definition: DtCigiViewManager.h:71
bool zNearEnabled
Definition: DtCigiViewManager.h:54
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:26
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:112
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:70
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:118
float roll
Definition: DtCigiViewManager.h:83
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:108

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)