openxr: separate release threshold for grab, click, altclick
This commit is contained in:
@@ -131,19 +131,31 @@ impl OpenXrHand {
|
|||||||
pointer.pose = Affine3A::from_rotation_translation(quat, pos);
|
pointer.pose = Affine3A::from_rotation_translation(quat, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let click_sensitivity = if pointer.before.click {
|
||||||
|
session.config.xr_click_sensitivity_release
|
||||||
|
} else {
|
||||||
|
session.config.xr_click_sensitivity
|
||||||
|
};
|
||||||
|
|
||||||
pointer.now.click = self
|
pointer.now.click = self
|
||||||
.source
|
.source
|
||||||
.action_click
|
.action_click
|
||||||
.state(&xr.session, xr::Path::NULL)?
|
.state(&xr.session, xr::Path::NULL)?
|
||||||
.current_state
|
.current_state
|
||||||
> session.config.xr_click_sensitivity;
|
> click_sensitivity;
|
||||||
|
|
||||||
|
let grab_sensitivity = if pointer.before.grab {
|
||||||
|
session.config.xr_grab_sensitivity_release
|
||||||
|
} else {
|
||||||
|
session.config.xr_grab_sensitivity
|
||||||
|
};
|
||||||
|
|
||||||
pointer.now.grab = self
|
pointer.now.grab = self
|
||||||
.source
|
.source
|
||||||
.action_grab
|
.action_grab
|
||||||
.state(&xr.session, xr::Path::NULL)?
|
.state(&xr.session, xr::Path::NULL)?
|
||||||
.current_state
|
.current_state
|
||||||
> session.config.xr_grab_sensitivity;
|
> grab_sensitivity;
|
||||||
|
|
||||||
pointer.now.scroll = self
|
pointer.now.scroll = self
|
||||||
.source
|
.source
|
||||||
@@ -151,12 +163,18 @@ impl OpenXrHand {
|
|||||||
.state(&xr.session, xr::Path::NULL)?
|
.state(&xr.session, xr::Path::NULL)?
|
||||||
.current_state;
|
.current_state;
|
||||||
|
|
||||||
|
let alt_click_sensitivity = if pointer.before.alt_click {
|
||||||
|
session.config.xr_alt_click_sensitivity_release
|
||||||
|
} else {
|
||||||
|
session.config.xr_alt_click_sensitivity
|
||||||
|
};
|
||||||
|
|
||||||
pointer.now.alt_click = self
|
pointer.now.alt_click = self
|
||||||
.source
|
.source
|
||||||
.action_alt_click
|
.action_alt_click
|
||||||
.state(&xr.session, xr::Path::NULL)?
|
.state(&xr.session, xr::Path::NULL)?
|
||||||
.current_state
|
.current_state
|
||||||
> session.config.xr_alt_click_sensitivity;
|
> alt_click_sensitivity;
|
||||||
|
|
||||||
pointer.now.show_hide = self
|
pointer.now.show_hide = self
|
||||||
.source
|
.source
|
||||||
|
|||||||
@@ -126,6 +126,15 @@ pub struct GeneralConfig {
|
|||||||
|
|
||||||
#[serde(default = "def_point7")]
|
#[serde(default = "def_point7")]
|
||||||
pub xr_alt_click_sensitivity: f32,
|
pub xr_alt_click_sensitivity: f32,
|
||||||
|
|
||||||
|
#[serde(default = "def_half")]
|
||||||
|
pub xr_grab_sensitivity_release: f32,
|
||||||
|
|
||||||
|
#[serde(default = "def_half")]
|
||||||
|
pub xr_click_sensitivity_release: f32,
|
||||||
|
|
||||||
|
#[serde(default = "def_half")]
|
||||||
|
pub xr_alt_click_sensitivity_release: f32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GeneralConfig {
|
impl GeneralConfig {
|
||||||
|
|||||||
Reference in New Issue
Block a user