summaryrefslogtreecommitdiffstats
path: root/servers/xr_server.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-02-02 12:03:09 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-02-02 12:03:09 +0100
commitfb5f34a75a4b2e2becb97448b2bfcaf9ae214cd5 (patch)
treee30d48e7eedbe80357ee9a0ae5d2d5be0e94b934 /servers/xr_server.cpp
parent24a2560d3050ce5fd978e0c37871852340003a4a (diff)
parent5935bfa8603b7c22df4ea777a688723a408e6c5d (diff)
downloadredot-engine-fb5f34a75a4b2e2becb97448b2bfcaf9ae214cd5.tar.gz
Merge pull request #87745 from dsnopek/openxr-change-reference-space
OpenXR: Allow changing play area mode during active session
Diffstat (limited to 'servers/xr_server.cpp')
-rw-r--r--servers/xr_server.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/servers/xr_server.cpp b/servers/xr_server.cpp
index 0bc8dbee18..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);
@@ -158,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) {