Support Forum G3D Web Page |
Inherits G3D::XR::HMD.
Public Member Functions | |
virtual float | displayFrequency () const |
In Hz. More... | |
const CFrame & | frame () const |
Where the AR/VR system estimates the object will be at the time of the next HMD::submit() call, in the room coordinate frame. More... | |
const shared_ptr< GazeTracker > & | gazeTracker () const |
If the HMD has no true gaze tracker, it will create an emulation one that always looks forward. More... | |
virtual void | getPassThroughVideo (shared_ptr< Texture > &left, shared_ptr< Texture > &right) const |
The left and right may be the same Texture. More... | |
virtual void | getResolution (Vector2uint32 *resPerView) const |
Ideal resolution for one eye before warping. More... | |
virtual void | getViewCameraMatrices (float nearPlaneZ, float farPlaneZ, CFrame *viewToHead, Projection *viewProjection) const override |
const int | index () const |
Zero-based index in the XR::objectArray. More... | |
virtual bool | isController () const |
virtual bool | isHMD () const |
const shared_ptr< Controller > & | leftController () const |
If there is no tracked left controller, one is created and fixed relative to the head. More... | |
const shared_ptr< Hand > & | leftHand () const |
If there is no hand tracking, it is inferred from the controller. More... | |
const String & | name () const |
Unique identifier. More... | |
int | nativeAPIIndex () const |
Index of this object in the underlying OS API (e.g., OVR, OpenVR, SteamVR) More... | |
virtual int | numViews () const override |
const CFrame & | previousFrame () const |
Frame that was predicted at the previous HMD::submit() time. More... | |
const shared_ptr< Controller > & | rightController () const |
If there is no tracked right controller, one is created and fixed relative to the head. More... | |
virtual bool | rightEyeDominant () const override |
Is the user's right (true) or left (false) eye dominant? More... | |
const shared_ptr< Hand > & | rightHand () const |
If there is no hand tracking, it is inferred from the controller. More... | |
virtual bool | rightHanded () const override |
Does the user prefer to use the right (true) or left (false) hand? More... | |
virtual float | standingHeadHeight () const override |
Top of the user's head in the real world when standing. More... | |
virtual void | submitFrame (RenderDevice *rd, const shared_ptr< Framebuffer > *hmdDeviceFramebuffer) override |
Static Public Member Functions | |
static shared_ptr< Object > | create (int index, int nativeAPIIndex, const String &name) |
static shared_ptr< EmulatedHMD > | create (int index, int nativeAPIIndex, const String &name, EmulatedXR *xr) |
Public Attributes | |
bool | allowGameControllerToDriveHead = true |
Protected Member Functions | |
EmulatedHMD (int index, int nativeAPIIndex, const String &name, EmulatedXR *xr) | |
Static Protected Member Functions | |
template<class T , class ... ArgTypes> | |
static shared_ptr< T > | createShared (ArgTypes &&... args) |
Like std::make_shared, but works for protected constructors. More... | |
Protected Attributes | |
CFrame | m_frame |
shared_ptr< GazeTracker > | m_gazeTracker |
int | m_index |
shared_ptr< Controller > | m_leftController |
shared_ptr< Hand > | m_leftHand |
String | m_name |
int | m_nativeAPIIndex |
CFrame | m_previousFrame |
shared_ptr< Controller > | m_rightController |
shared_ptr< Hand > | m_rightHand |
GLint | m_texIDs [2] = { 0, 0 } |
EmulatedXR * | m_xr |
|
inlineprotected |
|
inlinestaticinherited |
|
inlinestatic |
|
inlinestaticprotectedinherited |
Like std::make_shared, but works for protected constructors.
Call as createShared<myclass>.
|
virtual |
In Hz.
Implements G3D::XR::HMD.
|
inlineinherited |
Where the AR/VR system estimates the object will be at the time of the next HMD::submit() call, in the room coordinate frame.
|
inlineinherited |
If the HMD has no true gaze tracker, it will create an emulation one that always looks forward.
|
inlinevirtual |
The left and right may be the same Texture.
They may also be Texture::black() if there is no passthrough video.
Implements G3D::XR::HMD.
|
virtual |
Ideal resolution for one eye before warping.
Implements G3D::XR::HMD.
|
overridevirtual |
viewToHead | Must have numViews() elements. |
viewProjection | Must have numViews() elements. |
These may change every frame in some displays, such as those with dynamic foveal insets or that adjust the eyebox based on gaze tracking.
Implements G3D::XR::HMD.
|
inlineinherited |
Zero-based index in the XR::objectArray.
Referenced by G3D::XR::Object::create(), G3D::OpenVR::OpenVRController::create(), create(), and G3D::XR::Hand::create().
|
inlinevirtualinherited |
Reimplemented in G3D::XR::Controller.
|
inlinevirtualinherited |
Reimplemented from G3D::XR::Object.
|
inlineinherited |
If there is no tracked left controller, one is created and fixed relative to the head.
It can be driven using an GameController.
|
inlineinherited |
If there is no hand tracking, it is inferred from the controller.
|
inlineinherited |
Unique identifier.
Referenced by G3D::XR::Object::create(), G3D::OpenVR::OpenVRController::create(), create(), and G3D::XR::Hand::create().
|
inlineinherited |
Index of this object in the underlying OS API (e.g., OVR, OpenVR, SteamVR)
Referenced by G3D::XR::Object::create(), create(), and G3D::XR::Hand::create().
|
overridevirtual |
Implements G3D::XR::HMD.
|
inlineinherited |
Frame that was predicted at the previous HMD::submit() time.
|
inlineinherited |
If there is no tracked right controller, one is created and fixed relative to the head.
It can be driven using an GameController.
|
inlineoverridevirtual |
Is the user's right (true) or left (false) eye dominant?
Implements G3D::XR::HMD.
|
inlineinherited |
If there is no hand tracking, it is inferred from the controller.
|
inlineoverridevirtual |
Does the user prefer to use the right (true) or left (false) hand?
Implements G3D::XR::HMD.
|
inlineoverridevirtual |
Top of the user's head in the real world when standing.
Implements G3D::XR::HMD.
|
overridevirtual |
Implements G3D::XR::HMD.
|
inherited |
|
protectedinherited |
Referenced by G3D::XR::Object::frame().
|
protectedinherited |
Referenced by G3D::XR::HMD::gazeTracker().
|
protectedinherited |
Referenced by G3D::XR::Object::index().
|
protectedinherited |
Referenced by G3D::XR::HMD::leftController().
|
protectedinherited |
Referenced by G3D::XR::HMD::leftHand().
|
protectedinherited |
Referenced by G3D::XR::Object::name().
|
protectedinherited |
Referenced by G3D::XR::Object::nativeAPIIndex().
|
protectedinherited |
Referenced by G3D::XR::Object::previousFrame().
|
protectedinherited |
Referenced by G3D::XR::HMD::rightController().
|
protectedinherited |
Referenced by G3D::XR::HMD::rightHand().
|
mutableprotected |
|
protected |