SDK UI Python bindings API
- class metavision_sdk_ui.BaseWindow
Base class for displaying images and handling events in a window, deriving from BaseGLFWUI.
This class cannot directly be used as is, instead, one needs to instantiate one of its derived class (i.e. Window or MTWindow).
- note
Each window has its own events queue that needs to be regularly processed, either explicitly by calling BaseWindow::poll_events or implicitly by calling Window::show or MTWindow::show_async with auto_poll = true (default behavior). Events are polled from the system and push to the windows’ internal queue by calling EventLoop::poll_and_dispatch.
- warning
The constructor and destructor of this class must only be called from the main thread
- get_rendering_mode(self: metavision_sdk_ui.BaseWindow) Metavision::BaseWindow::RenderMode
Gets the window’s color rendering mode.
- return
The window’s color rendering mode (Either RenderMode::GRAY or RenderMode::BGR)
- get_size(self: metavision_sdk_ui.BaseWindow) tuple
Returns the tuple (widh, height)
- poll_events(self: metavision_sdk_ui.BaseWindow) None
Dequeues events in this window’s queue and calls corresponding callbacks.
- note
Calling this method is not mandatory when Window::show and MTWindow::show_async are called with auto_poll = true (i.e. default behavior). However, when the image to display is somehow generated from input events (e.g. drawing ROIs from mouse inputs), then it might be useful to call this method before both generating the image and calling Window::show or MTWindow::show_async (with auto_poll = false) to reduce the latency between the moment when the events are generated and the moment when the image is actually displayed.
- warning
The callbacks are called in the same thread as this method’s calling one. This means that if this method is called from a different thread than the one calling Window::show or MTWindow::show_async, a special care must be taken, in the callbacks, to avoid concurrency problems.
- set_close_flag(self: metavision_sdk_ui.BaseWindow) None
Asks the window to close.
- note
This only sets the window’s close flag to True but doesn’t actually close the window. The window will effectively be closed when the destructor is called.
- set_cursor_pos_callback(self: metavision_sdk_ui.BaseWindow, arg0: object) None
Sets a callback that will be called when the mouse’s cursor moves on the current window.
- cb
The callback to call on a mouse cursor event
- note
See GLFW’s documentation (GLFWcursorposfun) for more information
- set_keyboard_callback(self: metavision_sdk_ui.BaseWindow, arg0: object) None
Sets a callback that will be called when a key is pressed.
- cb
The callback to call on a key event
- warning
Due to a GLFW’s limitation, this callback returns key codes corresponding to the standard US keyboard layout. However, keys corresponding to unicode characters are mapped internally to match the current keyboard layout.
- note
See GLFW’s documentation (GLFWkeyfun) for more information
- set_mouse_callback(self: metavision_sdk_ui.BaseWindow, arg0: object) None
Sets a callback that will be called when a mouse’s button is pressed.
- cb
The callback to call on a mouse event
- note
See GLFW’s documentation (GLFWmousebuttonfun) for more information
- should_close(self: metavision_sdk_ui.BaseWindow) bool
Indicates whether the window has been asked to close.
- return
True if the window should close, False otherwise
- note
This returns the window’s close flag
- class metavision_sdk_ui.EventLoop(self: metavision_sdk_ui.EventLoop) None
A static class used to dispatch system events to the windows they belong to.
- static poll_and_dispatch(sleep_time_ms: int = 0) None
Polls events from the system and pushes them into the corresponding windows’ internal queue.
- sleep_time_ms
Amount of time in ms this call will wait after polling and dispatching the events
- warning
Must only be called from the main thread
- class metavision_sdk_ui.MTWindow(self: metavision_sdk_ui.MTWindow, title: str, width: int, height: int, mode: metavision_sdk_ui.BaseWindow.RenderMode, open_directly: bool = False) None
Window using its own rendering thread to render images.
Images are displayed at a fixed frequency (i.e. the screen’s refresh one) by the internal rendering thread.
- warning
The constructor and destructor of this class must only be called from the main thread
- destroy(self: metavision_sdk_ui.MTWindow) None
Destroys the window. This method has to be called after closing the window if this class has been constructed using open_directly=True.
- show_async(self: metavision_sdk_ui.MTWindow, image: numpy.ndarray, auto_poll: bool = True) None
Asynchronously displays an image.
Here asynchronously means that the image is not immediately displayed, but will be done later on by the internal rendering thread. This window uses a front/back buffers mechanism to avoid copying images.
- image
The image to display. The image is passed as a non constant reference in order to be swapped with the front buffer and thus avoid useless copies.
- auto_poll
If True, events in this window’s queue are dequeued and processed. If false, BaseWindow::poll_events must explicitly be called.
- warning
If auto_poll is True, the events are processed in this method’s calling thread, not in the internal rendering one.
- class metavision_sdk_ui.Window(self: metavision_sdk_ui.Window, title: str, width: int, height: int, mode: metavision_sdk_ui.BaseWindow.RenderMode, open_directly: bool = False) None
A window that can be used to display images from any thread.
This window has no internal rendering thread, meaning that the images are displayed at the same frequency as the one of the Window::show method.
- warning
The constructor and destructor of this class must only be called from the main thread
- destroy(self: metavision_sdk_ui.Window) None
Destroys the window. This method has to be called after closing the window if this class has been constructed using open_directly=True.
- show(self: metavision_sdk_ui.Window, image: numpy.ndarray, auto_poll: bool = True) None
Displays an image.
- image
The image to display
- auto_poll
If True, events in this window’s queue are dequeued and processed. If false, BaseWindow::poll_events must explicitly be called.
- class metavision_sdk_ui.BaseWindow.RenderMode(self: metavision_sdk_ui.BaseWindow.RenderMode, value: int) None
Members:
GRAY
BGR