diff options
Diffstat (limited to 'servers/xr_server.cpp')
-rw-r--r-- | servers/xr_server.cpp | 11 |
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) { |