Open CASCADE Technology 7.8.2.dev
|
OpenVR wrapper implementing Aspect_XRSession interface. More...
#include <Aspect_OpenVRSession.hxx>
Public Member Functions | |
Aspect_OpenVRSession () | |
Empty constructor. | |
virtual | ~Aspect_OpenVRSession () |
Destructor. | |
virtual bool | IsOpen () const override |
Return TRUE if session is opened. | |
virtual bool | Open () override |
Initialize session. | |
virtual void | Close () override |
Release session. | |
virtual bool | WaitPoses () override |
Fetch actual poses of tracked devices. | |
virtual NCollection_Vec2< int > | RecommendedViewport () const override |
Return recommended viewport Width x Height for rendering into VR. | |
virtual NCollection_Mat4< double > | EyeToHeadTransform (Aspect_Eye theEye) const override |
Return transformation from eye to head. vr::GetEyeToHeadTransform() wrapper. | |
virtual NCollection_Mat4< double > | ProjectionMatrix (Aspect_Eye theEye, double theZNear, double theZFar) const override |
Return projection matrix. | |
virtual bool | HasProjectionFrustums () const override |
Return TRUE. | |
virtual void | ProcessEvents () override |
Receive XR events. | |
virtual bool | SubmitEye (void *theTexture, Aspect_GraphicsLibrary theGraphicsLib, Aspect_ColorSpace theColorSpace, Aspect_Eye theEye) override |
Submit texture eye to XR Composer. | |
virtual TCollection_AsciiString | GetString (InfoString theInfo) const override |
Query information. | |
virtual Standard_Integer | NamedTrackedDevice (Aspect_XRTrackedDeviceRole theDevice) const override |
Return index of tracked device of known role. | |
virtual Aspect_XRDigitalActionData | GetDigitalActionData (const Handle< Aspect_XRAction > &theAction) const override |
Fetch data for digital input action (like button). | |
virtual Aspect_XRAnalogActionData | GetAnalogActionData (const Handle< Aspect_XRAction > &theAction) const override |
Fetch data for analog input action (like axis). | |
virtual Aspect_XRPoseActionData | GetPoseActionDataForNextFrame (const Handle< Aspect_XRAction > &theAction) const override |
Fetch data for pose input action (like fingertip position). | |
virtual void | SetTrackingOrigin (TrackingUniverseOrigin theOrigin) override |
Set tracking origin. | |
Public Member Functions inherited from Aspect_XRSession | |
NCollection_Mat4< double > | HeadToEyeTransform (Aspect_Eye theEye) const |
Return transformation from head to eye. | |
Standard_Real | UnitFactor () const |
Return unit scale factor defined as scale factor for m (meters); 1.0 by default. | |
void | SetUnitFactor (Standard_Real theFactor) |
Set unit scale factor. | |
Standard_Real | Aspect () const |
Return aspect ratio. | |
Standard_Real | FieldOfView () const |
Return field of view. | |
Standard_Real | IOD () const |
Return Intra-ocular Distance (IOD); also known as Interpupillary Distance (IPD). Defined in meters by default (. | |
Standard_ShortReal | DisplayFrequency () const |
Return display frequency or 0 if unknown. | |
const Aspect_FrustumLRBT< double > & | ProjectionFrustum (Aspect_Eye theEye) const |
Return projection frustum. | |
const gp_Trsf & | HeadPose () const |
Return head orientation in right-handed system: +y is up +x is to the right -z is forward Distance unit is meters by default (. | |
gp_Trsf | LeftHandPose () const |
Return left hand orientation. | |
gp_Trsf | RightHandPose () const |
Return right hand orientation. | |
const Aspect_TrackedDevicePoseArray & | TrackedPoses () const |
Return number of tracked poses array. | |
bool | HasTrackedPose (Standard_Integer theDevice) const |
Return TRUE if device orientation is defined. | |
Handle< Graphic3d_ArrayOfTriangles > | LoadRenderModel (Standard_Integer theDevice, Handle< Image_Texture > &theTexture) |
Load model for displaying device. | |
Handle< Graphic3d_ArrayOfTriangles > | LoadRenderModel (Standard_Integer theDevice, Standard_Boolean theToApplyUnitFactor, Handle< Image_Texture > &theTexture) |
Load model for displaying device. | |
void | TriggerHapticVibrationAction (const Handle< Aspect_XRAction > &theAction, const Aspect_XRHapticActionData &theParams) |
Trigger vibration. | |
void | AbortHapticVibrationAction (const Handle< Aspect_XRAction > &theAction) |
Abort vibration. | |
TrackingUniverseOrigin | TrackingOrigin () const |
Return tracking origin. | |
const Handle< Aspect_XRAction > & | GenericAction (Aspect_XRTrackedDeviceRole theDevice, Aspect_XRGenericAction theAction) const |
Return generic action for specific hand or NULL if undefined. | |
Public Member Functions inherited from Standard_Transient | |
Standard_Transient () | |
Empty constructor. | |
Standard_Transient (const Standard_Transient &) | |
Copy constructor – does nothing. | |
Standard_Transient & | operator= (const Standard_Transient &) |
Assignment operator, needed to avoid copying reference counter. | |
virtual | ~Standard_Transient () |
Destructor must be virtual. | |
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
Returns a type descriptor about this object. | |
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
Returns a true value if this is an instance of Type. | |
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
Returns a true value if this is an instance of TypeName. | |
Standard_Boolean | IsKind (const opencascade::handle< Standard_Type > &theType) const |
Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
Standard_Transient * | This () const |
Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. | |
Standard_Integer | GetRefCount () const noexcept |
Get the reference counter of this object. | |
void | IncrementRefCounter () noexcept |
Increments the reference counter of this object. | |
Standard_Integer | DecrementRefCounter () noexcept |
Decrements the reference counter of this object; returns the decremented value. | |
virtual void | Delete () const |
Memory deallocator for transient classes. | |
Static Public Member Functions | |
static bool | IsHmdPresent () |
Return TRUE if an HMD may be presented on the system (e.g. to show VR checkbox in application GUI). This is fast check, and even if it returns TRUE, opening session may fail. | |
Static Public Member Functions inherited from Standard_Transient | |
static constexpr const char * | get_type_name () |
Returns a type descriptor about this object. | |
static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
Returns type descriptor of Standard_Transient class. | |
Protected Member Functions | |
TCollection_AsciiString | defaultActionsManifest () |
Find location of default actions manifest file (based on CSF_OCCTResourcePath or CASROOT variables). | |
void | closeVR () |
Release OpenVR device. | |
virtual void | updateProjectionFrustums () |
Update projection frustums. | |
virtual bool | initInput () |
Init VR input. | |
virtual void | onTrackedDeviceActivated (Standard_Integer theDeviceIndex) |
Handle tracked device activation. | |
virtual void | onTrackedDeviceDeactivated (Standard_Integer theDeviceIndex) |
Handle tracked device deactivation. | |
virtual void | onTrackedDeviceUpdated (Standard_Integer theDeviceIndex) |
Handle tracked device update. | |
virtual void | triggerHapticVibrationAction (const Handle< Aspect_XRAction > &theAction, const Aspect_XRHapticActionData &theParams) override |
Trigger vibration. | |
virtual Handle< Graphic3d_ArrayOfTriangles > | loadRenderModel (Standard_Integer theDevice, Standard_Boolean theToApplyUnitFactor, Handle< Image_Texture > &theTexture) override |
Return model for displaying device. | |
void * | getVRSystem () const |
Access vr::IVRSystem* - OpenVR session object. | |
Protected Member Functions inherited from Aspect_XRSession | |
Aspect_XRSession () | |
Empty constructor. | |
Protected Attributes | |
VRContext * | myContext |
TCollection_AsciiString | myActionsManifest |
Protected Attributes inherited from Aspect_XRSession | |
NCollection_Array1< Handle< Aspect_XRAction > > | myRoleActions [Aspect_XRTrackedDeviceRole_NB] |
generic actions | |
Aspect_XRActionSetMap | myActionSets |
actions sets | |
TrackingUniverseOrigin | myTrackOrigin |
tracking origin | |
Aspect_TrackedDevicePoseArray | myTrackedPoses |
array of tracked poses | |
gp_Trsf | myHeadPose |
head orientation | |
NCollection_Vec2< int > | myRendSize |
viewport Width x Height for rendering into VR | |
Aspect_FrustumLRBT< double > | myFrustumL |
left eye projection frustum | |
Aspect_FrustumLRBT< double > | myFrustumR |
right eye projection frustum | |
Standard_Real | myUnitFactor |
unit scale factor defined as scale factor for m (meters) | |
Standard_Real | myAspect |
aspect ratio | |
Standard_Real | myFieldOfView |
field of view | |
Standard_Real | myIod |
intra-ocular distance in meters | |
Standard_ShortReal | myDispFreq |
display frequency | |
Additional Inherited Members | |
Public Types inherited from Aspect_XRSession | |
enum | TrackingUniverseOrigin { TrackingUniverseOrigin_Seated , TrackingUniverseOrigin_Standing } |
Identifies which style of tracking origin the application wants to use for the poses it is requesting. More... | |
enum | InfoString { InfoString_Vendor , InfoString_Device , InfoString_Tracker , InfoString_SerialNumber } |
Info string enumeration. More... | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. | |
OpenVR wrapper implementing Aspect_XRSession interface.
Aspect_OpenVRSession::Aspect_OpenVRSession | ( | ) |
Empty constructor.
|
virtual |
Destructor.
|
overridevirtual |
Release session.
Implements Aspect_XRSession.
|
protected |
Release OpenVR device.
|
protected |
Find location of default actions manifest file (based on CSF_OCCTResourcePath or CASROOT variables).
|
overridevirtual |
Return transformation from eye to head. vr::GetEyeToHeadTransform() wrapper.
Implements Aspect_XRSession.
|
overridevirtual |
Fetch data for analog input action (like axis).
Implements Aspect_XRSession.
|
overridevirtual |
Fetch data for digital input action (like button).
Implements Aspect_XRSession.
|
overridevirtual |
Fetch data for pose input action (like fingertip position).
Implements Aspect_XRSession.
|
overridevirtual |
Query information.
Implements Aspect_XRSession.
|
protected |
Access vr::IVRSystem* - OpenVR session object.
|
inlineoverridevirtual |
Return TRUE.
Implements Aspect_XRSession.
|
protectedvirtual |
Init VR input.
|
static |
Return TRUE if an HMD may be presented on the system (e.g. to show VR checkbox in application GUI). This is fast check, and even if it returns TRUE, opening session may fail.
|
overridevirtual |
Return TRUE if session is opened.
Implements Aspect_XRSession.
|
overrideprotectedvirtual |
Return model for displaying device.
Implements Aspect_XRSession.
|
overridevirtual |
Return index of tracked device of known role.
Implements Aspect_XRSession.
|
protectedvirtual |
Handle tracked device activation.
|
protectedvirtual |
Handle tracked device deactivation.
|
protectedvirtual |
Handle tracked device update.
|
overridevirtual |
Initialize session.
Implements Aspect_XRSession.
|
overridevirtual |
Receive XR events.
Implements Aspect_XRSession.
|
overridevirtual |
Return projection matrix.
Implements Aspect_XRSession.
|
inlineoverridevirtual |
Return recommended viewport Width x Height for rendering into VR.
Implements Aspect_XRSession.
|
overridevirtual |
Set tracking origin.
Reimplemented from Aspect_XRSession.
|
overridevirtual |
Submit texture eye to XR Composer.
theTexture | [in] texture handle |
theGraphicsLib | [in] graphics library in which texture handle is defined |
theColorSpace | [in] texture color space; sRGB means no color conversion by composer; Linear means to sRGB color conversion by composer |
theEye | [in] eye to display |
Implements Aspect_XRSession.
|
overrideprotectedvirtual |
Trigger vibration.
Implements Aspect_XRSession.
|
protectedvirtual |
Update projection frustums.
|
overridevirtual |
Fetch actual poses of tracked devices.
Implements Aspect_XRSession.
|
protected |
|
protected |