mirror of
https://github.com/EyeTrackVR/EyeTrackVR.git
synced 2025-11-04 14:39:42 +08:00
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
from eye import EyeId
|
|
from utils.misc_utils import clamp
|
|
|
|
inverted_frames = int
|
|
cleared_frames = int
|
|
|
|
def smart_inversion(self, var, out_x, out_y):
|
|
|
|
#Updates eye positions with latest
|
|
if self.eye_id == EyeId.LEFT:
|
|
var.l_eye_x = out_x
|
|
var.left_y = out_y
|
|
|
|
if self.eye_id == EyeId.RIGHT:
|
|
var.r_eye_x = out_x
|
|
var.right_y = out_y
|
|
|
|
#Checks if eyes are inverted
|
|
if (var.l_eye_x > 0 and var.r_eye_x < 0) and (abs(var.l_eye_x - var.r_eye_x) > self.settings.gui_smartinversion_thresh):
|
|
is_inverted = True
|
|
else:
|
|
is_inverted = False
|
|
|
|
#Determines which eye is being tracked based off selection and sets values accordingly
|
|
if self.settings.gui_smartinversion_select_right:
|
|
tracked_eye_x = var.r_eye_x
|
|
tracked_eye_y = var.right_y
|
|
recessive_eye = EyeId.LEFT
|
|
else:
|
|
tracked_eye_x = var.l_eye_x
|
|
tracked_eye_y = var.left_y
|
|
recessive_eye = EyeId.RIGHT
|
|
|
|
out_x = tracked_eye_x
|
|
out_y = tracked_eye_y
|
|
|
|
#If eyes are inverted, and eye being processed is recessive, invert x value.
|
|
if self.eye_id == recessive_eye:
|
|
if is_inverted:
|
|
out_x = -tracked_eye_x
|
|
else:
|
|
out_x = tracked_eye_x
|
|
else:
|
|
out_x = tracked_eye_x
|
|
|
|
out_y = tracked_eye_y
|
|
|
|
return out_x, out_y
|