cigvis.gui.gui3d.plot_canvas module#

3D vispy canvas using VolumeImage.

Key changes from old gui3d:
  • Uses VolumeImage instead of cigvis.create_slices

  • Prompt-decoder interaction can be wired in by the GUI shell

class cigvis.gui.gui3d.plot_canvas.BaseVolumeMixin#

Bases: object

Manage the base VolumeImage node.

set_base_data(data: ndarray, display_range: Dict[str, Tuple[int, int]] | None = None) None#
set_cmap(cmap_name: str) None#
set_interp(interp: str) None#
set_vmax(vmax_str: str) None#
set_vmin(vmin_str: str) None#
class cigvis.gui.gui3d.plot_canvas.CameraMixin3D#

Bases: object

Camera control helpers.

get_camera_params() list | None#
set_aspectx(v: float) None#
set_aspecty(v: float) None#
set_aspectz(v: float) None#
set_azimuth(v: int) None#
set_elevation(v: int) None#
set_fov(v: int) None#
set_xpos(pos: int) None#
set_ypos(pos: int) None#
set_zpos(pos: int) None#
class cigvis.gui.gui3d.plot_canvas.DragDropMixin3D#

Bases: object

dragEnterEvent(event) None#
dragMoveEvent(event) None#
dropEvent(event) None#
enable_drop() None#
eventFilter(obj, event)#
class cigvis.gui.gui3d.plot_canvas.HorizonMixin3D#

Bases: object

Manage horizon surface nodes.

add_horizon(data: ndarray) None#
horz_clear() None#
remove_horizon(idx: int) None#
set_horz_params(params: list) None#
class cigvis.gui.gui3d.plot_canvas.MaskMixin3D#

Bases: object

Manage overlay mask volumes via VolumeImage.

add_mask(data: ndarray) None#
mask_clear() None#
remove_mask(idx: int) None#
set_mask_params(params: list) None#
class cigvis.gui.gui3d.plot_canvas.PlotCanvas3D(parent=None, visual_nodes=None, grid: Tuple[int, int] | None = None, share: bool = False, canvas_kwargs: Dict[str, Any] | None = None)#

Bases: DragDropMixin3D, QWidget, CameraMixin3D, BaseVolumeMixin, MaskMixin3D, HorizonMixin3D, SplatMixin3D

3D vispy canvas widget using VolumeImage.

Embed a VisCanvas inside a QWidget so it plays nicely with PySide6 layouts.

clear(close_data: bool = True) None#
get_base_display_params() Dict[str, Any]#
get_mask_display_params() List[Dict[str, Any]]#
get_slice_limits() Dict[str, Tuple[int, int]]#
get_slice_positions() Dict[str, int]#
staticMetaObject = PySide6.QtCore.QMetaObject("PlotCanvas3D" inherits "QWidget": )#
class cigvis.gui.gui3d.plot_canvas.SplatMixin3D#

Bases: object

Manage Gaussian splat overlay nodes.

add_splat(data: ndarray, params: dict | None = None) bool#
remove_splat(idx: int) None#
set_splat_params(params: list) None#
splat_clear() None#