visualization.system.interaction

Interaction Manager Module

This module provides the InteractionManager class for handling user interactions with Matplotlib-based visualizations of optical systems.

Kramer Harrison, 2025

Classes

InteractionManager(fig, ax, optic[, ...])

Manages user interactions for optical system visualizations.

class InteractionManager(fig, ax, optic, tooltip_format=None)[source]

Manages user interactions for optical system visualizations.

This class connects to a Matplotlib figure’s event loop to handle mouse events, such as hovering and clicking, on plotted artists.

Parameters:
  • fig (matplotlib.figure.Figure) – The Matplotlib figure to connect to.

  • ax (matplotlib.axes.Axes) – The Matplotlib axes containing the artists.

clear_hover_effects()[source]

Clears any active hover effects.

close_info_panel(event=None)[source]

Closes the information panel.

connect()[source]

Connects to the Matplotlib event loop.

default_tooltip_format(optiland_object)[source]

Default formatter for the tooltip text.

disconnect()[source]

Disconnects from the Matplotlib event loop.

get_info_text(optiland_object)[source]

Gets the detailed information text for the given object.

highlight_artist(artist)[source]

Highlights the given artist.

on_hover(event)[source]

Handles hover events to show tooltips and highlight artists.

on_info_panel_click(event)[source]

Handles click events on the info panel.

register_artist(artist, optiland_object)[source]

Registers a Matplotlib artist with its corresponding Optiland object.

show_info_panel(optiland_object)[source]

Shows an information panel for the given object.

show_tooltip(artist, event)[source]

Shows a tooltip for the given artist.