From 43b481c1855b9d49225c49ef9b36ca5489b5c1eb Mon Sep 17 00:00:00 2001 From: misyaguziya <53165965+misyaguziya@users.noreply.github.com> Date: Fri, 13 Dec 2024 17:32:32 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B[bugfix]=20Model=20:=20=E8=B5=B7?= =?UTF-8?q?=E5=8B=95=E5=87=A6=E7=90=86/=E7=B5=82=E4=BA=86=E5=87=A6?= =?UTF-8?q?=E7=90=86=E3=82=92=E4=BF=AE=E6=AD=A3=20=20=E6=9C=AA=E8=B5=B7?= =?UTF-8?q?=E5=8B=95=E3=81=A7=E3=81=AE=E3=83=91=E3=83=A9=E3=83=A1=E3=83=BC?= =?UTF-8?q?=E3=82=BF=E5=A4=89=E6=9B=B4=E6=99=82=E3=81=AE=E3=82=A8=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-python/models/overlay/overlay.py | 65 ++++++++++++++-------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/src-python/models/overlay/overlay.py b/src-python/models/overlay/overlay.py index f31b25dc..cf179f54 100644 --- a/src-python/models/overlay/overlay.py +++ b/src-python/models/overlay/overlay.py @@ -177,26 +177,26 @@ class Overlay: self.settings[size]["z_rotation"] = z_rotation self.settings[size]["tracker"] = tracker - match tracker: - case "HMD": - base_matrix = getHMDBaseMatrix() - trackerIndex = openvr.k_unTrackedDeviceIndex_Hmd - case "LeftHand": - base_matrix = getLeftHandBaseMatrix() - trackerIndex = self.overlay_system.getTrackedDeviceIndexForControllerRole(openvr.TrackedControllerRole_LeftHand) - case "RightHand": - base_matrix = getRightHandBaseMatrix() - trackerIndex = self.overlay_system.getTrackedDeviceIndexForControllerRole(openvr.TrackedControllerRole_RightHand) - case _: - base_matrix = getHMDBaseMatrix() - trackerIndex = openvr.k_unTrackedDeviceIndex_Hmd - - translation = (self.settings[size]["x_pos"], self.settings[size]["y_pos"], - self.settings[size]["z_pos"]) - rotation = (self.settings[size]["x_rotation"], self.settings[size]["y_rotation"], self.settings[size]["z_rotation"]) - transform = utils.transform_matrix(base_matrix, translation, rotation) - transform = mat34Id(transform) - if self.initialized is True: + match tracker: + case "HMD": + base_matrix = getHMDBaseMatrix() + trackerIndex = openvr.k_unTrackedDeviceIndex_Hmd + case "LeftHand": + base_matrix = getLeftHandBaseMatrix() + trackerIndex = self.overlay_system.getTrackedDeviceIndexForControllerRole(openvr.TrackedControllerRole_LeftHand) + case "RightHand": + base_matrix = getRightHandBaseMatrix() + trackerIndex = self.overlay_system.getTrackedDeviceIndexForControllerRole(openvr.TrackedControllerRole_RightHand) + case _: + base_matrix = getHMDBaseMatrix() + trackerIndex = openvr.k_unTrackedDeviceIndex_Hmd + + translation = (self.settings[size]["x_pos"], self.settings[size]["y_pos"], - self.settings[size]["z_pos"]) + rotation = (self.settings[size]["x_rotation"], self.settings[size]["y_rotation"], self.settings[size]["z_rotation"]) + transform = utils.transform_matrix(base_matrix, translation, rotation) + transform = mat34Id(transform) + self.overlay.setOverlayTransformTrackedDeviceRelative( self.handle[size], trackerIndex, @@ -261,19 +261,20 @@ class Overlay: self.thread_overlay.start() def shutdownOverlay(self): - if isinstance(self.thread_overlay, Thread): - self.loop = False - self.thread_overlay.join() - self.thread_overlay = None - if isinstance(self.overlay, openvr.IVROverlay): - for size in self.settings.keys(): - if isinstance(self.handle[size], int): - self.overlay.destroyOverlay(self.handle[size]) - self.overlay = None - if isinstance(self.system, openvr.IVRSystem): - openvr.shutdown() - self.system = None - self.initialized = False + if self.initialized is True and self.init_process is False: + if isinstance(self.thread_overlay, Thread): + self.loop = False + self.thread_overlay.join() + self.thread_overlay = None + if isinstance(self.overlay, openvr.IVROverlay): + for size in self.settings.keys(): + if isinstance(self.handle[size], int): + self.overlay.destroyOverlay(self.handle[size]) + self.overlay = None + if isinstance(self.system, openvr.IVRSystem): + openvr.shutdown() + self.system = None + self.initialized = False def reStartOverlay(self): self.shutdownOverlay()