10#include "evan/EvanPlatform.hpp"
12#include "evan/openxr/InteractionProfile.hpp"
14#include <utility/event/hand_motion_event.hpp>
16#include <utility/logging/loggable.hpp>
17#include <utility/logging/default_logger.hpp>
19#include <openxr/openxr.h>
24 class XrDeviceBackend;
40 protected utility::logging::Loggable<XrHandsMotionActions,
41 utility::logging::DefaultLogger>
85 std::vector<std::shared_ptr<utility::event::Event>>
173 void createHandsMotionActions(
XrActionSet actionSet,
192 std::shared_ptr<utility::event::HandMotionEvent>
The XrDeviceBackend class is responsible for managing the OpenXR device backend, including instance c...
The XrHandsMotionActions class is responsible for managing hand tracking actions in an OpenXR applica...
void createHandsMotionSpaces(XrDeviceBackend &deviceBackend)
Creates the hand motion actions and their corresponding spaces.
~XrHandsMotionActions()
Destructor for the XrHandsMotionActions class.
std::vector< std::shared_ptr< utility::event::Event > > getEvents(XrDeviceBackend &deviceBackend)
Retrieves the current state of the hand motion actions and generates corresponding events.
XrAction _handAimAction
The XrAction handle for hand aim tracking.
XrSpace _handAimSpace[2]
Action spaces for hand aim and grip tracking.
std::shared_ptr< utility::event::HandMotionEvent > _leftHandEvent
Shared pointer to the left hand motion event.
XrSpace _handGripSpace[2]
Action spaces for hand aim and grip tracking.
std::shared_ptr< utility::event::HandMotionEvent > _rightHandEvent
Shared pointer to the right hand motion event.
XrAction _handGripAction
The XrAction handle for hand grip tracking.
Small result wrapper used by helpers that must return both a status and a value (e....