summaryrefslogtreecommitdiffstats
path: root/servers/xr_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'servers/xr_server.cpp')
-rw-r--r--servers/xr_server.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/servers/xr_server.cpp b/servers/xr_server.cpp
index dae342a037..e7f644d53f 100644
--- a/servers/xr_server.cpp
+++ b/servers/xr_server.cpp
@@ -55,6 +55,7 @@ void XRServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_world_origin"), &XRServer::get_world_origin);
ClassDB::bind_method(D_METHOD("set_world_origin", "world_origin"), &XRServer::set_world_origin);
ClassDB::bind_method(D_METHOD("get_reference_frame"), &XRServer::get_reference_frame);
+ ClassDB::bind_method(D_METHOD("clear_reference_frame"), &XRServer::get_reference_frame);
ClassDB::bind_method(D_METHOD("center_on_hmd", "rotation_mode", "keep_height"), &XRServer::center_on_hmd);
ClassDB::bind_method(D_METHOD("get_hmd_transform"), &XRServer::get_hmd_transform);
@@ -129,12 +130,6 @@ void XRServer::center_on_hmd(RotationMode p_rotation_mode, bool p_keep_height) {
return;
}
- if (primary_interface->get_play_area_mode() == XRInterface::XR_PLAY_AREA_STAGE) {
- // center_on_hmd is not available in this mode
- reference_frame = Transform3D();
- return;
- }
-
// clear our current reference frame or we'll end up double adjusting it
reference_frame = Transform3D();
@@ -164,6 +159,10 @@ void XRServer::center_on_hmd(RotationMode p_rotation_mode, bool p_keep_height) {
reference_frame = new_reference_frame.inverse();
};
+void XRServer::clear_reference_frame() {
+ reference_frame = Transform3D();
+}
+
Transform3D XRServer::get_hmd_transform() {
Transform3D hmd_transform;
if (primary_interface != nullptr) {