Merge pull request #62033 from V-Sekai/openxr-angular-velocity
Expose XRPose's get angular velocity.
This commit is contained in:
commit
36ff7292bc
2 changed files with 6 additions and 6 deletions
|
@ -1102,7 +1102,7 @@ Size2 OpenXRAPI::get_recommended_target_size() {
|
||||||
return target_size;
|
return target_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
XRPose::TrackingConfidence OpenXRAPI::get_head_center(Transform3D &r_transform, Vector3 &r_linear_velocity, const Vector3 &r_angular_velocity) {
|
XRPose::TrackingConfidence OpenXRAPI::get_head_center(Transform3D &r_transform, Vector3 &r_linear_velocity, Vector3 &r_angular_velocity) {
|
||||||
XrResult result;
|
XrResult result;
|
||||||
|
|
||||||
ERR_FAIL_COND_V(!running, XRPose::XR_TRACKING_CONFIDENCE_NONE);
|
ERR_FAIL_COND_V(!running, XRPose::XR_TRACKING_CONFIDENCE_NONE);
|
||||||
|
@ -1730,7 +1730,7 @@ XRPose::TrackingConfidence OpenXRAPI::transform_from_location(const XrHandJointL
|
||||||
return _transform_from_location(p_location, r_transform);
|
return _transform_from_location(p_location, r_transform);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenXRAPI::parse_velocities(const XrSpaceVelocity &p_velocity, Vector3 &r_linear_velocity, Vector3 r_angular_velocity) {
|
void OpenXRAPI::parse_velocities(const XrSpaceVelocity &p_velocity, Vector3 &r_linear_velocity, Vector3 &r_angular_velocity) {
|
||||||
if (p_velocity.velocityFlags & XR_SPACE_VELOCITY_LINEAR_VALID_BIT) {
|
if (p_velocity.velocityFlags & XR_SPACE_VELOCITY_LINEAR_VALID_BIT) {
|
||||||
XrVector3f linear_velocity = p_velocity.linearVelocity;
|
XrVector3f linear_velocity = p_velocity.linearVelocity;
|
||||||
r_linear_velocity = Vector3(linear_velocity.x, linear_velocity.y, linear_velocity.z);
|
r_linear_velocity = Vector3(linear_velocity.x, linear_velocity.y, linear_velocity.z);
|
||||||
|
@ -2303,7 +2303,7 @@ Vector2 OpenXRAPI::get_action_vector2(RID p_action, RID p_tracker) {
|
||||||
return result_state.isActive ? Vector2(result_state.currentState.x, result_state.currentState.y) : Vector2();
|
return result_state.isActive ? Vector2(result_state.currentState.x, result_state.currentState.y) : Vector2();
|
||||||
}
|
}
|
||||||
|
|
||||||
XRPose::TrackingConfidence OpenXRAPI::get_action_pose(RID p_action, RID p_tracker, Transform3D &r_transform, Vector3 &r_linear_velocity, const Vector3 &r_angular_velocity) {
|
XRPose::TrackingConfidence OpenXRAPI::get_action_pose(RID p_action, RID p_tracker, Transform3D &r_transform, Vector3 &r_linear_velocity, Vector3 &r_angular_velocity) {
|
||||||
ERR_FAIL_COND_V(session == XR_NULL_HANDLE, XRPose::XR_TRACKING_CONFIDENCE_NONE);
|
ERR_FAIL_COND_V(session == XR_NULL_HANDLE, XRPose::XR_TRACKING_CONFIDENCE_NONE);
|
||||||
Action *action = action_owner.get_or_null(p_action);
|
Action *action = action_owner.get_or_null(p_action);
|
||||||
ERR_FAIL_NULL_V(action, XRPose::XR_TRACKING_CONFIDENCE_NONE);
|
ERR_FAIL_NULL_V(action, XRPose::XR_TRACKING_CONFIDENCE_NONE);
|
||||||
|
|
|
@ -225,7 +225,7 @@ protected:
|
||||||
// helper method to get a valid Transform3D from an openxr space location
|
// helper method to get a valid Transform3D from an openxr space location
|
||||||
XRPose::TrackingConfidence transform_from_location(const XrSpaceLocation &p_location, Transform3D &r_transform);
|
XRPose::TrackingConfidence transform_from_location(const XrSpaceLocation &p_location, Transform3D &r_transform);
|
||||||
XRPose::TrackingConfidence transform_from_location(const XrHandJointLocationEXT &p_location, Transform3D &r_transform);
|
XRPose::TrackingConfidence transform_from_location(const XrHandJointLocationEXT &p_location, Transform3D &r_transform);
|
||||||
void parse_velocities(const XrSpaceVelocity &p_velocity, Vector3 &r_linear_velocity, Vector3 r_angular_velocity);
|
void parse_velocities(const XrSpaceVelocity &p_velocity, Vector3 &r_linear_velocity, Vector3 &r_angular_velocity);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static bool openxr_is_enabled(bool p_check_run_in_editor = true);
|
static bool openxr_is_enabled(bool p_check_run_in_editor = true);
|
||||||
|
@ -247,7 +247,7 @@ public:
|
||||||
bool can_render() { return instance != XR_NULL_HANDLE && session != XR_NULL_HANDLE && running && view_pose_valid && frame_state.shouldRender; };
|
bool can_render() { return instance != XR_NULL_HANDLE && session != XR_NULL_HANDLE && running && view_pose_valid && frame_state.shouldRender; };
|
||||||
|
|
||||||
Size2 get_recommended_target_size();
|
Size2 get_recommended_target_size();
|
||||||
XRPose::TrackingConfidence get_head_center(Transform3D &r_transform, Vector3 &r_linear_velocity, const Vector3 &r_angular_velocity);
|
XRPose::TrackingConfidence get_head_center(Transform3D &r_transform, Vector3 &r_linear_velocity, Vector3 &r_angular_velocity);
|
||||||
bool get_view_transform(uint32_t p_view, Transform3D &r_transform);
|
bool get_view_transform(uint32_t p_view, Transform3D &r_transform);
|
||||||
bool get_view_projection(uint32_t p_view, double p_z_near, double p_z_far, CameraMatrix &p_camera_matrix);
|
bool get_view_projection(uint32_t p_view, double p_z_near, double p_z_far, CameraMatrix &p_camera_matrix);
|
||||||
bool process();
|
bool process();
|
||||||
|
@ -285,7 +285,7 @@ public:
|
||||||
bool get_action_bool(RID p_action, RID p_tracker);
|
bool get_action_bool(RID p_action, RID p_tracker);
|
||||||
float get_action_float(RID p_action, RID p_tracker);
|
float get_action_float(RID p_action, RID p_tracker);
|
||||||
Vector2 get_action_vector2(RID p_action, RID p_tracker);
|
Vector2 get_action_vector2(RID p_action, RID p_tracker);
|
||||||
XRPose::TrackingConfidence get_action_pose(RID p_action, RID p_tracker, Transform3D &r_transform, Vector3 &r_linear_velocity, const Vector3 &r_angular_velocity);
|
XRPose::TrackingConfidence get_action_pose(RID p_action, RID p_tracker, Transform3D &r_transform, Vector3 &r_linear_velocity, Vector3 &r_angular_velocity);
|
||||||
bool trigger_haptic_pulse(RID p_action, RID p_tracker, float p_frequency, float p_amplitude, XrDuration p_duration_ns);
|
bool trigger_haptic_pulse(RID p_action, RID p_tracker, float p_frequency, float p_amplitude, XrDuration p_duration_ns);
|
||||||
|
|
||||||
OpenXRAPI();
|
OpenXRAPI();
|
||||||
|
|
Loading…
Reference in a new issue