Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _glfw_init(self):
glfw.glfwInit()
window = glfw.glfwCreateWindow(
title="Head Pose Tracker Visualizer", share=glfw.glfwGetCurrentContext()
)
return window
and action == glfw.GLFW_RELEASE
):
self.mouse_drag = False
if self.depth_window is None:
self.pitch = 0
self.yaw = 0
win_size = glfw.glfwGetWindowSize(self.g_pool.main_window)
self.depth_window = glfw.glfwCreateWindow(
win_size[0], win_size[1], "3D Point Cloud"
)
glfw.glfwSetMouseButtonCallback(
self.depth_window, on_depth_mouse_button
)
active_window = glfw.glfwGetCurrentContext()
glfw.glfwMakeContextCurrent(self.depth_window)
gl_utils.basic_gl_setup()
gl_utils.make_coord_system_norm_based()
# refresh speed settings
glfw.glfwSwapInterval(0)
glfw.glfwMakeContextCurrent(active_window)
def on_resize(self, window, w, h):
self.trackball.set_window_size(w, h)
active_window = glfw.glfwGetCurrentContext()
glfw.glfwMakeContextCurrent(window)
gl_utils.adjust_gl_view(w, h)
glfw.glfwMakeContextCurrent(active_window)
def gl_display_in_window(self, world_tex):
"""
here we map a selected surface onto a separate window.
"""
if self._window and self.surface.detected:
active_window = glfw.glfwGetCurrentContext()
glfw.glfwMakeContextCurrent(self._window)
gl_utils.clear_gl_screen()
# cv uses 3x3 gl uses 4x4 transformation matrices
width, height = self.tracker.camera_model.resolution
img_corners = np.array(
[(0, height), (width, height), (width, 0), (0, 0)], dtype=np.float32
)
denorm_trans = _get_norm_to_points_trans(img_corners)
trans_mat = self.surface.dist_img_to_surf_trans @ denorm_trans
trans_mat = gl_utils.cvmat_to_glmat(trans_mat)
gl.glMatrixMode(gl.GL_PROJECTION)
gl.glPushMatrix()
gl.glLoadIdentity()
def recent_events(self, events):
frame = events.get("frame")
if not frame:
return
if self.drag_offset is not None:
pos = glfwGetCursorPos(glfwGetCurrentContext())
pos = normalize(pos, glfwGetWindowSize(glfwGetCurrentContext()))
pos = denormalize(
pos, (frame.img.shape[1], frame.img.shape[0])
) # Position in img pixels
self.pos[0] = pos[0] + self.drag_offset[0]
self.pos[1] = pos[1] + self.drag_offset[1]
if self.watermark is not None:
# keep in image bounds, do this even when not dragging because the image sizes could change.
self.pos[1] = max(
0,
min(frame.img.shape[0] - self.watermark.shape[0], max(self.pos[1], 0)),
)
self.pos[0] = max(
0,
min(frame.img.shape[1] - self.watermark.shape[1], max(self.pos[0], 0)),
)
if not self._window:
monitor = None
# open with same aspect ratio as surface
surface_aspect_ratio = (
self.surface.real_world_size["x"] / self.surface.real_world_size["y"]
)
win_h = 640
win_w = int(win_h / surface_aspect_ratio)
self._window = glfw.glfwCreateWindow(
win_h,
win_w,
"Reference Surface: " + self.surface.name,
monitor=monitor,
share=glfw.glfwGetCurrentContext(),
)
glfw.glfwSetWindowPos(
self._window,
self.window_position_default[0],
self.window_position_default[1],
)
self.trackball = gl_utils.trackball.Trackball()
self.input = {"down": False, "mouse": (0, 0)}
# Register callbacks
glfw.glfwSetFramebufferSizeCallback(self._window, self.on_resize)
glfw.glfwSetKeyCallback(self._window, self.on_window_key)
glfw.glfwSetWindowCloseCallback(self._window, self.on_close)
glfw.glfwSetMouseButtonCallback(self._window, self.on_window_mouse_button)
def on_click(self,img_pos,button,action):
"""
gets called when the user clicks in the window screen
"""
hdpi_factor = float(glfwGetFramebufferSize(glfwGetCurrentContext())[0]/glfwGetWindowSize(glfwGetCurrentContext())[0])
pos = glfwGetCursorPos(glfwGetCurrentContext())
pos = pos[0]*hdpi_factor,pos[1]*hdpi_factor
#drag the seek point
if action == GLFW_PRESS:
screen_in_mark_pos = self.bar_space_to_screen((self.in_mark,0))
screen_out_mark_pos = self.bar_space_to_screen((self.out_mark,0))
#in mark
dist = abs(pos[0]-screen_in_mark_pos[0])+abs(pos[1]-screen_in_mark_pos[1])
if dist < 10:
if self.distance_in_pix(self.in_mark,self.g_pool.capture.get_frame_index()) > 20:
self.drag_in=True
return
#out mark
dist = abs(pos[0]-screen_out_mark_pos[0])+abs(pos[1]-screen_out_mark_pos[1])
self.trackball = gl_utils.trackball.Trackball()
self.input = {"down": False, "mouse": (0, 0)}
# Register callbacks
glfw.glfwSetFramebufferSizeCallback(self._window, self.on_resize)
glfw.glfwSetKeyCallback(self._window, self.on_window_key)
glfw.glfwSetWindowCloseCallback(self._window, self.on_close)
glfw.glfwSetMouseButtonCallback(self._window, self.on_window_mouse_button)
glfw.glfwSetCursorPosCallback(self._window, self.on_pos)
glfw.glfwSetScrollCallback(self._window, self.on_scroll)
self.on_resize(self._window, *glfw.glfwGetFramebufferSize(self._window))
# gl_state settings
active_window = glfw.glfwGetCurrentContext()
glfw.glfwMakeContextCurrent(self._window)
gl_utils.basic_gl_setup()
gl_utils.make_coord_system_norm_based()
# refresh speed settings
glfw.glfwSwapInterval(0)
glfw.glfwMakeContextCurrent(active_window)