VR-Forces 4.8 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) 2020 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 <boost/signal.hpp>
29 
30 #include <list>
31 
32 
33 namespace osg
34 {
35  class RenderInfo;
36 }
37 
38 namespace makVrv
39 {
40  class DtObserver;
41  class DtOsgChannel;
42  class DtOsgWindow;
43  class DtSubmitOverlayCallback;
44  class DtVirtualRealityProvider;
45  class DtVirtualRealityChannel;
46 
50  {
51  private:
54 
57 
60 
61  public:
64 
66  virtual ~DtVirtualRealityDriver();
67 
69  virtual const std::string& className() const;
70 
73  virtual bool onStart();
74 
76  virtual bool onStop();
77 
79  virtual bool onTick();
80 
82  virtual bool isVrAvailable();
83 
85  virtual bool isUsingMultiView() const;
86 
88  virtual vrvVirtualReality::DtVrRenderMode renderMode() const;
89 
91  virtual void resetHmd();
92 
95  virtual void setMirroring(makArchives::DtVirtualRealitySettingsRecord::DtMirroring val);
96 
99 
102  virtual void setMirrorChannel(const std::string& val);
103 
107  virtual osg::Texture* findMirrorTexture() const;
108 
111  virtual void setMirrorTexture(makArchives::DtVirtualRealitySettingsRecord::DtMirroring eye, osg::Texture* tex);
112 
115  virtual DtSubmitOverlayCallback* findOverlayCallback();
116 
119  virtual bool getHmdPose(DtVector& pos, DtQuat& ori) const;
120 
122  virtual DtVirtualRealityChannel* findEyeChannel(vrvVirtualReality::DtEye whichEye);
123 
125  virtual DtOsgChannel* findMirrorChannel();
126 
129  virtual DtObserver* findHmdObserver() const;
130 
133  virtual void setObserverForHmd(const std::string& obsName);
134 
136  void handleUseMultiViewChanged(bool val);
137 
139  virtual void setProvider(DtVirtualRealityProvider* provider);
140 
142  virtual DtVirtualRealityProvider* findProvider() const;
143 
145  virtual osg::Texture* findOverlayTexture() const;
146 
148  virtual void installMixedRealityMaskingObject(osg::Group* mountTo, osg::Vec3 offset, bool followObserver, std::string modelFileOrShapeName);
149 
151  virtual void uninstallMixedRealityMaskingObject();
152 
154  virtual void startMasking();
155 
157  virtual void stopMasking();
158 
161  boost::signal<void()> signal_tick;
162 
164  boost::signal<void()> signal_reset;
165 
166  protected:
168  virtual DtOsgWindow* findHmdWindow();
169 
172  virtual DtVirtualRealityChannel* createEyeChannel(vrvVirtualReality::DtEye eye, DtDisplayConfiguration* prototypeConfig);
173 
175  virtual void installMultiViewShadersForChannel(DtVirtualRealityChannel* vrChannel);
176 
178  virtual void initializeOverlay(DtOsgChannel* channel);
179 
181  virtual void uninstallOverlay(DtOsgChannel* channel);
182 
185  void installResetKeyMap();
186 
188  virtual void handleEnabledChanged(bool val);
189 
191  virtual void handleObserverLost(DtObserver* obs);
192 
194  virtual void multiViewIncompatibleRenderStateChanged(bool enabled);
195 
197  virtual bool evaluateMultiViewSupport();
198 
200  virtual void updateMirroring(makArchives::DtVirtualRealitySettingsRecord::DtMirroring mirrorType, const std::string& channelName);
201 
205  virtual bool getPose(DtVector& position, DtQuat& orienation, int index) const;
206 
208  virtual void updatePoseInformation();
209 
210  protected:
213 
214  //HMD observer, offscreen window and eye channels
217 
218  typedef std::map<vrvVirtualReality::DtEye, DtVirtualRealityChannel*> DtVrEyeToChannelMap;
220 
224 
226 
227  //main 2d overlay
231 
232  //mirroring structs
234  std::string myMirrorChannelName;
238 
240  };
241 
242 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
bool myUseMultiView
Definition: DtVirtualRealityDriver.h:221
Contains DLL export macros.
DtVrRenderMode
Virtual reality render mode.
Definition: vrvVirtualReality.h:54
DtDe & myDe
Definition: DtVirtualRealityDriver.h:211
DtVrEyeToChannelMap myChannels
Definition: DtVirtualRealityDriver.h:219
Contains makVrv::DtDe class.
std::string myMirrorObserverRestore
Definition: DtVirtualRealityDriver.h:237
Contains makArchives::DtVirtualRealitySettingsRecord class.
osg::ref_ptr< osg::Texture2D > myOverlayDepthTexture
Definition: DtVirtualRealityDriver.h:229
bool myHasFocusView
Definition: DtVirtualRealityDriver.h:222
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:75
boost::signal< void()> signal_tick
Signal emitted after the driver&#39;s tick.
Definition: DtVirtualRealityDriver.h:161
A driver that manages virtual reality HMD and input devices.
Definition: DtVirtualRealityDriver.h:49
#define DT_DLL_VRVVR
Definition: vrvVirtualReality.h:19
DtMirroring
Definition: DtVirtualRealitySettingsRecord.h:28
DtEye
A virtual reality eye.
Definition: vrvVirtualReality.h:37
DtSignalConnectionManager myConnections
Definition: DtVirtualRealityDriver.h:239
A facade for a DtObserverObject.
Definition: DtObserver.h:37
Contains makVrv:DtAgentManager class.
The DtDriver is an abstract class.
Definition: DtDriver.h:34
DtObserver * myHmdObserver
Definition: DtVirtualRealityDriver.h:215
vrvVirtualReality::DtVrRenderMode myRenderMode
Definition: DtVirtualRealityDriver.h:223
This owns a list of window configurations.
Definition: DtDisplayConfiguration.h:47
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
An abstract interface that provides VR System API services.
Definition: DtVirtualRealityProvider.h:43
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:218
Contains makVrv:DtDriver class.
bool myUseMixedRealityMask
Definition: DtVirtualRealityDriver.h:225
An OSG camera callback that will submit the channel to the underlying VR system as an overlay channel...
Definition: DtSubmitOverlayCallback.h:26
Base class to provide boost signal/slot management.
DtOsgWindow * myHmdWindow
Definition: DtVirtualRealityDriver.h:216
makArchives::DtVirtualRealitySettingsRecord::DtMirroring myMirroring
Definition: DtVirtualRealityDriver.h:233
DtVirtualRealityProvider * myVrProvider
Definition: DtVirtualRealityDriver.h:212
osg::ref_ptr< osg::Texture2D > myOverlayTexture
Definition: DtVirtualRealityDriver.h:228
osg::ref_ptr< DtSubmitOverlayCallback > myOverlaySubmitCallback
Definition: DtVirtualRealityDriver.h:230
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
osg::ref_ptr< osg::Texture > myMirrorTexture
Definition: DtVirtualRealityDriver.h:236
A utility Quaternion class.
Definition: DtQuat.h:22
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:235
boost::signal< void()> signal_reset
Signal emitted when the VR system is reset.
Definition: DtVirtualRealityDriver.h:164
std::string myMirrorChannelName
Definition: DtVirtualRealityDriver.h:234

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)