27 const char *action_name,
28 const char *profile_path,
29 XrPath subaction_path,
30 const char *subaction_path_str,
31 const GHOST_XrPose &pose);
37 XrSpace m_space = XR_NULL_HANDLE;
46 std::unique_ptr<GHOST_XrActionSpace> space =
nullptr;
57 GHOST_XrActionType type,
58 const GHOST_XrActionProfileInfo &info);
64 std::map<XrPath, std::vector<XrActionSuggestedBinding>> &r_bindings)
const;
67 XrPath m_profile = XR_NULL_PATH;
70 std::map<std::string, GHOST_XrSubactionData> m_subaction_data;
72 std::map<std::string, XrPath> m_bindings;
80 GHOST_XrAction(XrInstance instance, XrActionSet action_set,
const GHOST_XrActionInfo &info);
85 const GHOST_XrActionProfileInfo &info);
89 const char *action_name,
90 XrSpace reference_space,
91 const XrTime &predicted_display_time);
93 const char *action_name,
94 const char *subaction_path_str,
96 const float &frequency,
97 const float &litude);
99 const char *action_name,
100 const char *subaction_path_str);
103 void getBindings(std::map<XrPath, std::vector<XrActionSuggestedBinding>> &r_bindings)
const;
106 using SubactionIndexMap = std::map<std::string, uint32_t>;
108 XrAction m_action = XR_NULL_HANDLE;
109 GHOST_XrActionType m_type;
110 SubactionIndexMap m_subaction_indices;
111 std::vector<XrPath> m_subaction_paths;
115 float *m_float_thresholds;
118 std::unique_ptr<GHOST_C_CustomDataWrapper> m_custom_data_ =
nullptr;
121 std::map<std::string, GHOST_XrActionProfile> m_profiles;
132 bool createAction(XrInstance instance,
const GHOST_XrActionInfo &info);
137 XrSpace reference_space,
138 const XrTime &predicted_display_time);
144 void getBindings(std::map<XrPath, std::vector<XrActionSuggestedBinding>> &r_bindings)
const;
147 XrActionSet m_action_set = XR_NULL_HANDLE;
149 std::unique_ptr<GHOST_C_CustomDataWrapper> m_custom_data_ =
nullptr;
151 std::map<std::string, GHOST_XrAction> m_actions;
struct GHOST_XrSubactionData GHOST_XrSubactionData
const GHOST_XrSubactionData * getSubaction(XrPath subaction_path) const
XrPath getProfile() const
~GHOST_XrActionProfile()=default
GHOST_XrActionProfile()=delete
void getBindings(XrAction action, std::map< XrPath, std::vector< XrActionSuggestedBinding > > &r_bindings) const
GHOST_XrActionSet()=delete
void updateStates(XrSession session, XrSpace reference_space, const XrTime &predicted_display_time)
GHOST_XrAction * findAction(const char *action_name)
bool createAction(XrInstance instance, const GHOST_XrActionInfo &info)
void getBindings(std::map< XrPath, std::vector< XrActionSuggestedBinding > > &r_bindings) const
XrActionSet getActionSet() const
void getActionCustomdataArray(void **r_customdata_array)
uint32_t getActionCount() const
void destroyAction(const char *action_name)
GHOST_XrActionSpace()=delete
bool createBinding(XrInstance instance, XrSession session, const GHOST_XrActionProfileInfo &info)
void updateState(XrSession session, const char *action_name, XrSpace reference_space, const XrTime &predicted_display_time)
void getBindings(std::map< XrPath, std::vector< XrActionSuggestedBinding > > &r_bindings) const
void destroyBinding(const char *profile_path)
void applyHapticFeedback(XrSession session, const char *action_name, const char *subaction_path_str, const int64_t &duration, const float &frequency, const float &litude)
void stopHapticFeedback(XrSession session, const char *action_name, const char *subaction_path_str)