Rebel Fork Framework
Urho3D::VirtualReality Class Referenceabstract

#include <Urho3D/XR/VirtualReality.h>

Inheritance diagram for Urho3D::VirtualReality:
Urho3D::Object Urho3D::RefCounted Urho3D::OpenXR

Public Member Functions

 VirtualReality (Context *context)
 
virtual bool InitializeSession (const VRSessionParameters &params)=0
 Initializes the VR session.
 
virtual void ShutdownSession ()=0
 Shuts down the VR session.
 
virtual void ConnectToRig (const VRRigDesc &rig)
 Connects session to the rig.
 
bool IsRoomScale () const
 Returns true if this VR configuration is running at room scale.
 
const VRRigDescGetRig () const
 Returns currently connected rig.
 
float GetIPDCorrection () const
 IPD correction factor in millimeters.
 
float GetScaleCorrection () const
 Scale correction factor, premultiplied into all transforms.
 
void SetIPDCorrection (float value)
 
void SetScaleCorrection (float value)
 Scale correction can also be done on the VRRig node.
 
int GetRecommendedMultiSample () const
 Returns recommended MSAA level.
 
int GetMultiSample () const
 Returns the currently chosen MSAA level.
 
IntRect GetLeftEyeRect () const
 Viewport rectangle for left eye, required for multipass single-RT.
 
IntRect GetRightEyeRect () const
 Viewport rectangle for right eye, required for multipass single-RT.
 
virtual VRRuntime GetRuntime () const =0
 Return the classification of VR runtime being used,.
 
virtual const char * GetRuntimeName () const =0
 Return a string name for the runtime, spaces are not allowed as this will be passed along to shaders.
 
virtual void TriggerHaptic (VRHand hand, float durationSeconds, float cyclesPerSec, float amplitude)=0
 Activates a haptic for a given hand.
 
virtual Matrix3x4 GetHandTransform (VRHand hand) const =0
 Returns the transform for a given hand in head relative space.
 
virtual Matrix3x4 GetHandAimTransform (VRHand hand) const =0
 Transform matrix of the hand aim base position.
 
virtual Ray GetHandAimRay (VRHand hand) const =0
 Returns the aiming ray for a given hand.
 
virtual void GetHandVelocity (VRHand hand, Vector3 *linear, Vector3 *angular) const =0
 Return linear and/or angular velocity of a hand.
 
virtual Matrix3x4 GetHeadTransform () const =0
 Return the head transform in stage space (or local if no stage).
 
virtual Matrix3x4 GetEyeLocalTransform (VREye eye) const =0
 Return the head-relative eye transform.
 
virtual Matrix4 GetProjection (VREye eye, float nearDist, float farDist) const =0
 Return the projection matrix for an eye.
 
virtual bool IsConnected () const =0
 Returns whether the engine is connected to VR session.
 
virtual bool IsRunning () const =0
 Returns whether the VR frame loop is running.
 
virtual bool IsVisible () const =0
 Returns whether the VR session is presented to the user.
 
virtual bool IsFocused () const =0
 Return whether the VR session accepts user input.
 
XRBindingGetInputBinding (const ea::string &path) const
 Attempts to retrieve an input binding.
 
XRBindingGetInputBinding (const ea::string &path, VRHand hand) const
 Attempts to retrieve a hand specific input binding.
 
XRActionGroupGetCurrentActionSet () const
 Returns the currently bound action set, null if no action set.
 
virtual void SetCurrentActionSet (const ea::string &setName)
 Sets the current action set by name.
 
virtual void SetCurrentActionSet (SharedPtr< XRActionGroup > set)=0
 
ea::string GetSystemName () const
 Returns the system name, ie. Windows Mixed Reality.
 
- Public Member Functions inherited from Urho3D::Object
 Object (Context *context)
 Construct.
 
 ~Object () override
 Destruct. Clean up self from event sender & receiver structures.
 
virtual StringHash GetType () const =0
 
virtual const ea::string & GetTypeName () const =0
 
virtual const TypeInfoGetTypeInfo () const =0
 Return type info.
 
virtual bool IsInstanceOf (StringHash type) const =0
 Check whether current instance implements specified type.
 
virtual void OnEvent (Object *sender, StringHash eventType, VariantMap &eventData)
 Handle event.
 
virtual void SerializeInBlock (Archive &archive)
 Serialize content from/to archive. May throw ArchiveException.
 
template<typename T >
bool IsInstanceOf () const
 Check current instance is type of specified class.
 
template<typename T >
T * Cast ()
 Cast the object to specified most derived class.
 
template<typename T >
const T * Cast () const
 Cast the object to specified most derived class.
 
void SubscribeToEventManual (StringHash eventType, EventHandler *handler)
 Subscribe to an event that can be sent by any sender.
 
void SubscribeToEventManual (Object *sender, StringHash eventType, EventHandler *handler)
 Subscribe to a specific sender's event.
 
template<class T >
void SubscribeToEvent (StringHash eventType, T handler)
 Subscribe to an event that can be sent by any sender.
 
template<class T >
void SubscribeToEvent (Object *sender, StringHash eventType, T handler)
 Subscribe to a specific sender's event.
 
void UnsubscribeFromEvent (StringHash eventType)
 Unsubscribe from an event.
 
void UnsubscribeFromEvent (Object *sender, StringHash eventType)
 Unsubscribe from a specific sender's event.
 
void UnsubscribeFromEvents (Object *sender)
 Unsubscribe from a specific sender's events.
 
void UnsubscribeFromAllEvents ()
 Unsubscribe from all events.
 
void UnsubscribeFromAllEventsExcept (const ea::vector< StringHash > &exceptions)
 Unsubscribe from all events except those listed.
 
void UnsubscribeFromAllEventsExcept (const ea::vector< Object * > &exceptions)
 Unsubscribe from all events except those with listed senders.
 
void SendEvent (StringHash eventType)
 Send event to all subscribers.
 
void SendEvent (StringHash eventType, VariantMap &eventData)
 Send event with parameters to all subscribers.
 
VariantMapGetEventDataMap () const
 Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps.
 
template<typename... Args>
void SendEvent (StringHash eventType, const Args &... args)
 Send event with variadic parameter pairs to all subscribers. The parameters are (paramID, paramValue) pairs.
 
ContextGetContext () const
 Return execution context.
 
const VariantGetGlobalVar (StringHash key) const
 
const VariantMapGetGlobalVars () const
 
void SetGlobalVar (StringHash key, const Variant &value)
 
ObjectGetSubsystem (StringHash type) const
 Return subsystem by type.
 
ObjectGetEventSender () const
 Return active event sender. Null outside event handling.
 
EventHandlerGetEventHandler () const
 Return active event handler. Null outside event handling.
 
bool HasSubscribedToEvent (StringHash eventType) const
 Return whether has subscribed to an event without specific sender.
 
bool HasSubscribedToEvent (Object *sender, StringHash eventType) const
 Return whether has subscribed to a specific sender's event.
 
bool HasEventHandlers () const
 Return whether has subscribed to any event.
 
template<class T >
T * GetSubsystem () const
 Template version of returning a subsystem.
 
const ea::string & GetCategory () const
 
void SendEvent (StringHash eventType, const VariantMap &eventData)
 Send event with parameters to all subscribers.
 
void SetBlockEvents (bool block)
 Block object from sending and receiving events.
 
bool GetBlockEvents () const
 Return sending and receiving events blocking status.
 
- Public Member Functions inherited from Urho3D::RefCounted
 RefCounted ()
 Construct. Allocate the reference count structure and set an initial self weak reference.
 
virtual ~RefCounted ()
 Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist.
 
 RefCounted (const RefCounted &rhs)=delete
 Prevent copy construction.
 
RefCountedoperator= (const RefCounted &rhs)=delete
 Prevent assignment.
 
int AddRef ()
 
int ReleaseRef ()
 
int Refs () const
 
int WeakRefs () const
 
RefCountRefCountPtr () const
 Return pointer to the reference count structure.
 
bool HasScriptObject () const
 Return true if script runtime object wrapping this native object exists.
 
bool IsScriptStrongRef () const
 Return true if script reference is strong.
 

Protected Member Functions

void CreateDefaultRig ()
 
void ValidateCurrentRig ()
 
void UpdateCurrentRig ()
 

Protected Attributes

ea::string systemName_
 Name of the system being run, ie. Windows Mixed Reality.
 
int recommendedMultiSample_ {1}
 MSAA level recommended by API.
 
IntVector2 recommendedEyeTextureSize_
 Texture size recommended by API.
 
int multiSample_ {}
 Effective MSAA level to use.
 
IntVector2 eyeTextureSize_
 Effective texture size.
 
float ipdCorrection_ = 0.0f
 External IPD adjustment.
 
float scaleCorrection_ = 1.0f
 Scaling factor correct by.
 
bool autoClearMasks_ = true
 
bool isRoomScale_ = false
 Indicates we have room scale tracking.
 
SharedPtr< ScenedefaultScene_
 Default scene for rendering.
 
SharedPtr< VRRigdefaultRig_
 Default rig to use.
 
VRRigDesc rig_
 Link to currently used rig.
 
SharedPtr< Texture2DcurrentBackBufferColor_
 Back buffer textures active in current frame.
 
SharedPtr< Texture2DcurrentBackBufferDepth_
 
SharedPtr< XRActionGroupactiveActionSet_
 Currently bound action-set.
 
ea::map< ea::string, SharedPtr< XRActionGroup > > actionSets_
 Table of action sets registered.
 
- Protected Attributes inherited from Urho3D::Object
WeakPtr< Contextcontext_
 Execution context.
 

Private Member Functions

 URHO3D_OBJECT (VirtualReality, Object)
 

Additional Inherited Members

- Static Public Member Functions inherited from Urho3D::Object
static const TypeInfoGetTypeInfoStatic ()
 Return type info static.
 
- Static Public Attributes inherited from Urho3D::Object
static constexpr ea::array< StringHash, 0 > TypeHierarchy {}
 

Detailed Description

Base interface for a VR related subsystem. This is not expected to be utilized for mobile AR, it would be best to implement something else for that purpose.

Member Function Documentation

◆ SetIPDCorrection()

void Urho3D::VirtualReality::SetIPDCorrection ( float  value)
inline

Set a software IPD adjustment in millimeters, applied by translating each eye in local space on the X axis by half the specified amount. Only intended for small corrective changes of ~2mm.

Member Data Documentation

◆ autoClearMasks_

bool Urho3D::VirtualReality::autoClearMasks_ = true
protected

Whether to automatically invoke the hidden area masks, if on then renderpath must not clear (or not clear depth at least)


The documentation for this class was generated from the following files: