Represents data needed to use an OpenVR-supported HMD.
More...
#include <OpenVRDevice.hpp>
|
enum | DeviceClass { NONE = 0,
HMD = 1,
BASESTATION = 2,
CONTROLLER = 3
} |
|
|
double | _worldUnitsPerMeter |
|
double | _minWorldUnitsPerMeter |
|
double | _maxWorldUnitsPerMeter |
|
double | _userHeight |
|
int | _width |
|
int | _height |
|
bool | _isInitialized |
|
vr::IVRSystem * | _vrSystem |
|
vr::IVRRenderModels * | _vrRenderModels |
|
DeviceGeodeMap | _deviceNameToGeode |
|
DeviceModelVector | _deviceIDToModel |
|
osg::ref_ptr< osg::MatrixTransform > | _deviceModels |
|
osg::ref_ptr< osg::MatrixTransform > | _controllerMidpoint |
|
osg::ref_ptr< osg::MatrixTransform > | _roomGround |
|
osg::Matrixd | _rightEyeProj |
|
osg::Matrixd | _leftEyeProj |
|
osg::Matrixd | _centerProj |
|
osg::Vec3d | _rightEyeViewOffset |
|
osg::Vec3d | _leftEyeViewOffset |
|
osg::Vec3d | _centerViewOffset |
|
osg::Vec3d | _rightEyeViewOffsetRaw |
|
osg::Vec3d | _leftEyeViewOffsetRaw |
|
osg::Vec3d | _centerViewOffsetRaw |
|
Represents data needed to use an OpenVR-supported HMD.
◆ DeviceGeodeMap
Map between a device's OpenVR name and its OSG render model
◆ DeviceModelVector
TODO: Make this a vector of pointers, then DeviceModel can be subclassed.
Vector of each device's rendering data indexed by its OpenVR id
◆ DeviceClass
◆ OpenVRDevice()
OpenFrames::OpenVRDevice::OpenVRDevice |
( |
double |
worldUnitsPerMeter, |
|
|
double |
userHeight |
|
) |
| |
Create a new OpenVR device, specifying relationship between world units and real-world meters, and the user height in meters.
◆ createDeviceRenderModels()
void OpenFrames::OpenVRDevice::createDeviceRenderModels |
( |
| ) |
|
|
protected |
Create the render models for each OpenVR device and misc UI elements
◆ getDeviceRenderModels()
osg::MatrixTransform* OpenFrames::OpenVRDevice::getDeviceRenderModels |
( |
| ) |
const |
|
inline |
Get render models for devices
◆ getGroundPlane()
osg::MatrixTransform* OpenFrames::OpenVRDevice::getGroundPlane |
( |
| ) |
|
|
inline |
◆ getHMDPoseMatrix()
const osg::Matrixd& OpenFrames::OpenVRDevice::getHMDPoseMatrix |
( |
| ) |
const |
|
inline |
Get the HMD pose matrix, in world units
◆ getNumDeviceModels()
unsigned int OpenFrames::OpenVRDevice::getNumDeviceModels |
( |
| ) |
const |
|
inline |
◆ getRecommendedTextureSize()
void OpenFrames::OpenVRDevice::getRecommendedTextureSize |
( |
int & |
w, |
|
|
int & |
h |
|
) |
| const |
|
inline |
Get the per-eye texture size recommended by OpenVR
◆ getRightEyeViewOffset()
osg::Vec3d& OpenFrames::OpenVRDevice::getRightEyeViewOffset |
( |
| ) |
|
|
inline |
Get the per-eye world offset vector, in world units (see worldUnitsPerMeter)
◆ getVRSystem()
vr::IVRSystem* OpenFrames::OpenVRDevice::getVRSystem |
( |
| ) |
const |
|
inline |
◆ initVR()
bool OpenFrames::OpenVRDevice::initVR |
( |
| ) |
|
Initialize OpenVR and connect to the HMD Return status: whether OpenVR was initialized
◆ isInitialized()
bool OpenFrames::OpenVRDevice::isInitialized |
( |
| ) |
const |
|
inline |
Get whether OpenVR has been initialized
◆ pollNextEvent()
bool OpenFrames::OpenVRDevice::pollNextEvent |
( |
OpenVREvent * |
event | ) |
|
Get the next OpenVR event
◆ setupRenderModelForTrackedDevice()
void OpenFrames::OpenVRDevice::setupRenderModelForTrackedDevice |
( |
uint32_t |
deviceID | ) |
|
|
protected |
Load a device's render model by its OpenVR ID
◆ setUserHeight()
void OpenFrames::OpenVRDevice::setUserHeight |
( |
double |
userHeight | ) |
|
|
inline |
Get/set the user height in meters
◆ setWorldUnitsPerMeter()
void OpenFrames::OpenVRDevice::setWorldUnitsPerMeter |
( |
const double & |
worldUnitsPerMeter | ) |
|
Get/set the world units per meter ratio and its limits
◆ submitFrame()
void OpenFrames::OpenVRDevice::submitFrame |
( |
GLuint |
rightEyeTexName, |
|
|
GLuint |
leftEyeTexName |
|
) |
| |
Submits the latest rendered eye textures to OpenVR
◆ updateDeviceModels()
void OpenFrames::OpenVRDevice::updateDeviceModels |
( |
| ) |
|
Update all device models, e.g. controller states
◆ updateProjectionMatrices()
void OpenFrames::OpenVRDevice::updateProjectionMatrices |
( |
| ) |
|
Update the per-eye projection matrix
◆ updateViewOffsets()
void OpenFrames::OpenVRDevice::updateViewOffsets |
( |
| ) |
|
|
protected |
Update the per-eye raw view offset vector, in OpenVR units [meters]
◆ waitGetPoses()
void OpenFrames::OpenVRDevice::waitGetPoses |
( |
| ) |
|
Update raw poses (in OpenVR units [meters]) of all VR devices, and wait for the signal to start the next frame.
The documentation for this class was generated from the following file: