mirror of https://github.com/wayvr-org/wayvr.git
persist static overlays in world space
This commit is contained in:
parent
42a7175b7f
commit
6a24399a9c
|
|
@ -222,20 +222,20 @@ impl OverlayWindowConfig {
|
||||||
.saved_transform
|
.saved_transform
|
||||||
.unwrap_or(self.default_state.transform);
|
.unwrap_or(self.default_state.transform);
|
||||||
|
|
||||||
let (parent_transform, align_to_hmd) = match state.positioning {
|
let (parent_transform, align_to_hmd) = match state.positioning {
|
||||||
Positioning::Floating | Positioning::FollowHead { .. } => (app.input_state.hmd, false),
|
Positioning::Floating | Positioning::FollowHead { .. } => (app.input_state.hmd, false),
|
||||||
Positioning::FollowHand {
|
Positioning::FollowHand {
|
||||||
hand, align_to_hmd, ..
|
hand, align_to_hmd, ..
|
||||||
} => (app.input_state.pointers[hand as usize].pose, align_to_hmd),
|
} => (app.input_state.pointers[hand as usize].pose, align_to_hmd),
|
||||||
Positioning::Anchored => (app.anchor, false),
|
Positioning::Anchored => (app.anchor, false),
|
||||||
Positioning::Static => {
|
Positioning::Static => {
|
||||||
if hard_reset {
|
if hard_reset {
|
||||||
(app.input_state.hmd, false)
|
(app.input_state.hmd, false)
|
||||||
} else {
|
} else {
|
||||||
return;
|
(Affine3A::IDENTITY, false)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
};
|
||||||
|
|
||||||
if hard_reset {
|
if hard_reset {
|
||||||
state.saved_transform = None;
|
state.saved_transform = None;
|
||||||
|
|
@ -295,7 +295,7 @@ pub fn save_transform(state: &mut OverlayWindowState, app: &mut AppState) {
|
||||||
Positioning::FollowHead { .. } => app.input_state.hmd,
|
Positioning::FollowHead { .. } => app.input_state.hmd,
|
||||||
Positioning::FollowHand { hand, .. } => app.input_state.pointers[hand as usize].pose,
|
Positioning::FollowHand { hand, .. } => app.input_state.pointers[hand as usize].pose,
|
||||||
Positioning::Anchored => snap_upright(app.anchor, Vec3A::Y),
|
Positioning::Anchored => snap_upright(app.anchor, Vec3A::Y),
|
||||||
Positioning::Static => return,
|
Positioning::Static => Affine3A::IDENTITY,
|
||||||
};
|
};
|
||||||
|
|
||||||
state.saved_transform = Some(parent_transform.inverse() * state.transform);
|
state.saved_transform = Some(parent_transform.inverse() * state.transform);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue