VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVirtualRealityDriver.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 
14 
15 #include <vrvCore/DtDriver.h>
16 #include <vrvCore/DtDe.h>
17 #include <vrvCore/DtAgentManager.h>
18 
20 #include <vrvUtil/DtQuat.h>
21 
22 #include <matrix/vlVector.h>
23 
24 #include <osg/ref_ptr>
25 #include <osg/Texture2D>
26 #include <osg/Camera>
27 
28 #include <vrvUtil/signalslib.h>
29 
30 #include <list>
31 
32 
33 namespace osg
34 {
35  class RenderInfo;
36 }
37 
38 namespace makVrv
39 {
40  class DtChannel;
41  class DtObserver;
42  class DtOsgChannel;
43  class DtOsgWindow;
44  class DtChannelManager;
45  class DtSubmitOverlayCallback;
46  class DtVirtualRealityProvider;
47  class DtVirtualRealityChannel;
48 
52  {
53  private:
56 
59 
62 
63  public:
66 
68  virtual ~DtVirtualRealityDriver();
69 
71  virtual const std::string& className() const;
72 
75  virtual bool onStart();
76 
78  virtual bool onStop();
79 
81  virtual bool onTick();
82 
84  virtual bool isVrAvailable();
85 
87  virtual bool isUsingMultiView() const;
88 
90  virtual vrvVirtualReality::DtVrRenderMode renderMode() const;
91 
93  virtual void resetHmd();
94 
97  virtual void setMirroring(makArchives::DtVirtualRealitySettingsRecord::DtMirroring val);
98 
101 
104  virtual void setMirrorChannel(const std::string& val);
105 
109  virtual osg::Texture* findMirrorTexture() const;
110 
113  virtual void setMirrorTexture(makArchives::DtVirtualRealitySettingsRecord::DtMirroring eye, osg::Texture* tex);
114 
117  virtual DtSubmitOverlayCallback* findOverlayCallback();
118 
121  virtual bool getHmdPose(DtVector& pos, DtQuat& ori) const;
122 
124  virtual DtVirtualRealityChannel* findEyeChannel(vrvVirtualReality::DtEye whichEye);
125 
127  virtual DtOsgChannel* findMirrorChannel();
128 
131  virtual DtObserver* findHmdObserver() const;
132 
135  virtual void setObserverForHmd(const std::string& obsName);
136 
138  void handleUseMultiViewChanged(bool val);
139 
141  void handleEnableMixedRealityChanged(bool val);
142 
144  void handleEnableRealWorldDepthTestingChanged(bool val);
145 
147  virtual void setProvider(DtVirtualRealityProvider* provider);
148 
150  virtual DtVirtualRealityProvider* findProvider() const;
151 
153  virtual osg::Texture* findOverlayTexture() const;
154 
156  virtual DtOsgChannel* findOverlayChannel();
157 
159  virtual void initializeOverlay(DtOsgChannel* channel);
160 
162  virtual void installMixedRealityMaskingObject(osg::Group* mountTo, osg::Vec3 offset, bool followObserver, std::string modelFileOrShapeName);
163 
165  virtual void uninstallMixedRealityMaskingObject();
166 
168  virtual void startMasking();
169 
171  virtual void stopMasking();
172 
175  boost::signalslib::signal<void()> signal_tick;
176 
178  boost::signalslib::signal<void()> signal_reset;
179 
181  boost::signalslib::signal<void(bool)> signal_vrRunningChaned;
182 
183  protected:
185  virtual DtOsgWindow* findHmdWindow();
186 
189  virtual DtVirtualRealityChannel* createEyeChannel(vrvVirtualReality::DtEye eye, DtDisplayConfiguration* prototypeConfig);
190 
192  virtual void installMultiViewShadersForChannel(DtVirtualRealityChannel* vrChannel);
193 
195  virtual void uninstallOverlay(DtOsgChannel* channel);
196 
199  void installResetKeyMap();
200 
202  virtual void handleEnabledChanged(bool val);
203 
205  virtual void handleObserverLost(DtObserver* obs);
206 
208  virtual void multiViewIncompatibleRenderStateChanged(bool enabled);
209 
211  virtual bool evaluateMultiViewSupport();
212 
214  virtual void updateMirroring(makArchives::DtVirtualRealitySettingsRecord::DtMirroring mirrorType, const std::string& channelName);
215 
217  virtual void updateOverlay();
218 
222  virtual bool getPose(DtVector& position, DtQuat& orienation, int index) const;
223 
225  virtual void updatePoseInformation();
226 
228  void slot_channelDestroyed(DtChannelManager* channelManager, DtChannel* channel);
229 
230  protected:
233 
234  //HMD observer, offscreen window and eye channels
238 
239  typedef std::map<vrvVirtualReality::DtEye, DtVirtualRealityChannel*> DtVrEyeToChannelMap;
241 
245 
247 
248  //main 2d overlay
252 
253  //mirroring structs
255  std::string myMirrorChannelName;
259 
262 
264  };
265 
266 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
DtWindowConfiguration myHmdWindowConfig
Definition: DtVirtualRealityDriver.h:237
bool myUseMultiView
Definition: DtVirtualRealityDriver.h:242
Contains DLL export macros.
DtVrRenderMode
Virtual reality render mode.
Definition: vrvVirtualReality.h:56
DtDe & myDe
Definition: DtVirtualRealityDriver.h:231
DtVrEyeToChannelMap myChannels
Definition: DtVirtualRealityDriver.h:240
Contains makVrv::DtDe class.
This owns a list of channel configurations.
Definition: DtWindowConfiguration.h:28
std::string myMirrorObserverRestore
Definition: DtVirtualRealityDriver.h:258
Contains makArchives::DtVirtualRealitySettingsRecord class.
osg::ref_ptr< osg::Texture2D > myOverlayDepthTexture
Definition: DtVirtualRealityDriver.h:250
bool myHasFocusView
Definition: DtVirtualRealityDriver.h:243
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:77
A driver that manages virtual reality HMD and input devices.
Definition: DtVirtualRealityDriver.h:51
#define DT_DLL_VRVVR
Definition: vrvVirtualReality.h:19
DtMirroring
Definition: DtVirtualRealitySettingsRecord.h:28
DtEye
A virtual reality eye.
Definition: vrvVirtualReality.h:38
DtSignalConnectionManager myConnections
Definition: DtVirtualRealityDriver.h:263
The abstract Channel Class.
Definition: DtChannel.h:30
A facade for a DtObserverObject.
Definition: DtObserver.h:37
Contains makVrv:DtAgentManager class.
The DtDriver is an abstract class.
Definition: DtDriver.h:31
DtVirtualRealityChannel * myStereoOverlayChannel
Definition: DtVirtualRealityDriver.h:260
DtObserver * myHmdObserver
Definition: DtVirtualRealityDriver.h:235
vrvVirtualReality::DtVrRenderMode myRenderMode
Definition: DtVirtualRealityDriver.h:244
boost::signalslib::signal< void()> signal_reset
Signal emitted when the VR system is reset.
Definition: DtVirtualRealityDriver.h:178
This owns a list of window configurations.
Definition: DtDisplayConfiguration.h:47
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
An abstract interface that provides VR System API services.
Definition: DtVirtualRealityProvider.h:45
Contains makVrv::DtQuat class.
A VRV channel that represents the eyes of the HMD A Virtual Reality channel can render in a few diffe...
Definition: DtVirtualRealityChannel.h:29
The DtAgentManager manages the distributed scene object framework.
Definition: DtAgentManager.h:38
std::map< vrvVirtualReality::DtEye, DtVirtualRealityChannel * > DtVrEyeToChannelMap
Definition: DtVirtualRealityDriver.h:239
Contains makVrv:DtDriver class.
bool myUseMixedRealityMask
Definition: DtVirtualRealityDriver.h:246
Base class for handling DtChannels.
Definition: DtChannelManager.h:32
An OSG camera callback that will submit the channel to the underlying VR system as an overlay channel...
Definition: DtSubmitOverlayCallback.h:26
boost::signalslib::signal< void(bool)> signal_vrRunningChaned
Signal emitted when the VR system is started or stoped.
Definition: DtVirtualRealityDriver.h:181
osg::ref_ptr< osg::MatrixTransform > myOverlayQuad
Definition: DtVirtualRealityDriver.h:261
Base class to provide boost signal/slot management.
DtOsgWindow * myHmdWindow
Definition: DtVirtualRealityDriver.h:236
makArchives::DtVirtualRealitySettingsRecord::DtMirroring myMirroring
Definition: DtVirtualRealityDriver.h:254
DtVirtualRealityProvider * myVrProvider
Definition: DtVirtualRealityDriver.h:232
osg::ref_ptr< osg::Texture2D > myOverlayTexture
Definition: DtVirtualRealityDriver.h:249
osg::ref_ptr< DtSubmitOverlayCallback > myOverlaySubmitCallback
Definition: DtVirtualRealityDriver.h:251
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::signalslib::signal< void()> signal_tick
Signal emitted after the driver&#39;s tick.
Definition: DtVirtualRealityDriver.h:175
osg::ref_ptr< osg::Texture > myMirrorTexture
Definition: DtVirtualRealityDriver.h:257
A utility Quaternion class.
Definition: DtQuat.h:19
voidpf uLong offset
Definition: ioapi.h:42
A basic OSG display window, used to get the osg context for a display window.
Definition: DtOsgWindow.h:36
DtOsgChannel * myMirrorChannel
Definition: DtVirtualRealityDriver.h:256
std::string myMirrorChannelName
Definition: DtVirtualRealityDriver.h:255

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)