Skip to content

Commit

Permalink
picviewer: settings fov wip
Browse files Browse the repository at this point in the history
  • Loading branch information
rmackay9 committed Sep 27, 2024
1 parent c8b3d0e commit 8838cca
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 5 deletions.
15 changes: 12 additions & 3 deletions MAVProxy/tools/mavpicviewer/mosaic_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@
class mosaic_window:
"""displays a mosaic of images"""

def __init__(self, filelist, image_select_cb):
def __init__(self, filelist, image_select_cb, image_fov_changed_cb):

# keep reference to callback
# keep reference to callbacks
self.image_select_cb = image_select_cb
self.image_fov_changed_cb = image_fov_changed_cb

# determine if filelist is a string or a list of strings
self.filenumber = 0
Expand All @@ -49,7 +50,7 @@ def __init__(self, filelist, image_select_cb):
self.update_title()

# add settings window
self.picviewer_settings = picviewer_settings()
self.picviewer_settings = picviewer_settings(self.settings_changed_cb)

# add menu
self.menu = wx.Menu()
Expand Down Expand Up @@ -333,3 +334,11 @@ def hide_image(self, filenumber):
panel = self.scrolled_panel_sizer.GetItem(self.filenumber).GetWindow()
self.scrolled_panel_sizer.Detach(panel)
self.scrolled_panel_sizer.Layout()

# handle settings changes callback
# this is called by the settings window when a setting is changed
def settings_changed_cb(self, name, value):
"""handle settings changes callback"""
print(f"settings_changed: {name} {value}")
if name == "FOV":
self.image_fov_changed_cb(float(value))
8 changes: 7 additions & 1 deletion MAVProxy/tools/mavpicviewer/picviewer_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
class picviewer_settings:
"""window to capture picviewer settings"""

def __init__(self):
def __init__(self, settings_changed_cb):

# add settings window
self.settings_frame = wx.Frame(None, title="Settings", size=(300, 50))
Expand All @@ -28,15 +28,21 @@ def __init__(self):
self.settings_frame.Bind(wx.EVT_TEXT_ENTER, self.settings_set_button_click, self.settings_fov_input)
self.settings_frame.Bind(wx.EVT_CLOSE, self.settings_close_button_click)

# record callback function
self.settings_changed_cb = settings_changed_cb

# show settings window
def show_settings_window(self, event):
"""show settings window"""
self.settings_frame.Show()
print("show_settings_window")
# need to call picviewer_window.set_fov

# settings window event handlers
def settings_set_button_click(self, event):
"""settings window event handlers"""
print("settings_set_button_click")
self.settings_changed_cb("FOV", self.settings_fov_input.GetValue())
self.settings_frame.Hide()

# close/hide settings window
Expand Down
16 changes: 15 additions & 1 deletion MAVProxy/tools/mavpicviewer/picviewer_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ def __init__(self, filelist):
self.update_map()

# create mosaic of images
self.mosaic = mosaic_window.mosaic_window(self.filelist, self.mosaic_image_select_cb)
self.mosaic = mosaic_window.mosaic_window(self.filelist, self.mosaic_image_select_cb, self.mosaic_image_fov_cb)

# create menu
self.menu = None
Expand Down Expand Up @@ -109,13 +109,27 @@ def mosaic_image_select_cb(self, filenumber):
self.update_image()
self.update_map()

# image FOV change callback
def mosaic_image_fov_cb(self, fov_deg):
self.set_fov(fov_deg)

# set window title
def set_title(self, title):
"""set image title"""
if self.im is None:
return
self.im.set_title(title)

# set FOV
def set_fov(self, fov_deg):
"""set image title"""
if self.cam1_params is None:
print("picviewer: failed to set FOV because camera params not set")
return
print("picviewer_window: setting FOV to %f" % fov_deg)
self.cam1_params.FOV = fov_deg
self.update_map()

# process window events
def check_events(self):
"""check for image events"""
Expand Down

0 comments on commit 8838cca

Please sign in to comment.