fsleyes.views.orthopanel

This module provides the OrthoPanel class, which displays a 2D view of 3D overlays.

A couple of other classes are provided for convenience:

OrthoFrame

Convenience class for displaying an OrthoPanel in a standalone frame.

OrthoDialog

Convenience class for displaying an OrthoPanel in a (possibly modal) dialog window.

class fsleyes.views.orthopanel.OrthoPanel(parent, overlayList, displayCtx, frame)[source]

Bases: fsleyes.views.canvaspanel.CanvasPanel

The OrthoPanel class is a FSLeyes view which displays a 2D view of 3D overlays. The OrthoPanel is the primary point of user interaction in FSLeyes.

Overview

An OrthoPanel contains three SliceCanvas panels, each of which provide a 2D view of the overlays in the OverlayList along one axis. These SliceCanvas instances can be accessed through the getXCanvas(), getYCanvas(), getZCanvas(), and getGLCanvases() methods.

An OrthoPanel looks something like this:

_images/orthopanel.png

Anatomical labels

The OrthoPanel creates an OrthoLabels instance, which manages the display of anatomical orientation labels on each of the three SliceCanvas instances.

Display

The display of an OrthoPanel can be configured through all of the settings provided by the OrthoOpts class. The OrthoOpts instance for a given OrthoPanel can be accessed via the CanvasPanel.sceneOpts() method.

Interaction

The OrthoPanel uses the OrthoViewProfile to handle interaction with the user via the mouse and keyboard. Some control panels will activate other interaction profiles while they are open, such as:

OrthoEditToolBar

Simple editing of Image overlays, using the OrthoEditProfile (see also the editor package).

CropImagePanel

Allows the user to crop an Image overlay, using the OrthoCropProfile.

AnnotationPanel

Allows the user to draw text and shapes on the OrthoPanel canvases, using the OrthoAnnotatePanel.

See the ViewPanel, and the profiles package for more information on interaction profiles.

Actions and control panels

The OrthoPanel adds a few extra actions to those provided by the CanvasPanel class:

toggleEditMode

Shows/hides an OrthoEditToolBar.

resetDisplay

Calls OrthoViewProfile.resetDisplay().

centreCursor

Calls OrthoViewProfile.centreCursor().

centreCursorWorld

Calls OrthoViewProfile.centreCursorWorld().

toggleCursor

Toggles the value of SceneOpts.showCursor.

toggleLabels

Toggles the value of OrthoOpts.showLabels.

toggleXCanvas

Toggles the value of OrthoOpts.showXCanvas.

toggleYCanvas

Toggles the value of OrthoOpts.showYCanvas.

toggleZCanvas

Toggles the value of OrthoOpts.showZCanvas.

controlOptions(cpType)[source]

Returns some options to be used by ViewPanel.togglePanel() for certain control panel types.

static defaultLayout()[source]

Returns a list of control panel types to be added for the default ortho panel layout.

static controlOrder()[source]

Returns a list of control panel names, specifying the order in which they should appear in the FSLeyes ortho panel settings menu.

static toolOrder()[source]

Returns a list of tool names, specifying the order in which they should appear in the FSLeyes ortho panel settings menu.

__init__(parent, overlayList, displayCtx, frame)[source]

Create an OrthoPanel.

Parameters
destroy()[source]

Must be called when this OrthoPanel is closed.

Removes listeners from the DisplayContext and OverlayList instances, destroys each of the three SliceCanvas panels, and calls CanvasPanel.destroy().

toggleEditMode()[source]

Shows/hides an OrthoEditToolBar. This causes the interaction profile to be changed, and a call to __profileChanged(), which makes a few other changes to the interface.

__profileChanged(inst, topic, value)

Called when the interaction profile changes (see ViewPanel.events()). If entering or exiting edit mode, an edit menu is added/removed from the menu bar.

resetDisplay()[source]

Calls OrthoViewProfile.resetDisplay().

centreCursor()[source]

Calls OrthoViewProfile.centreCursor().

centreCursorWorld()[source]

Calls OrthoViewProfile.centreCursorWorld().

toggleCursor()[source]

Toggles the value of SceneOpts.showCursor.

toggleLabels()[source]

Toggles the value of OrthoOpts.showLabels.

toggleXCanvas()[source]

Toggles the value of OrthoOpts.showXCanvas.

toggleYCanvas()[source]

Toggles the value of OrthoOpts.showYCanvas.

toggleZCanvas()[source]

Toggles the value of OrthoOpts.showZCanvas.

getActions()[source]

Overrides ActionProvider.getActions(). Returns all of the actions that are defined on this OrthoPanel.

getTools()[source]

Returns a list of methods to be added to the FSLeyesFrame Tools menu for OrthoPanel views.

getGLCanvases()[source]

Returns all of the SliceCanvas instances contained within this OrthoPanel.

getXCanvas()[source]

Returns the SliceCanvas instance displaying the X axis.

getYCanvas()[source]

Returns the SliceCanvas instance displaying the Y axis.

getZCanvas()[source]

Returns the SliceCanvas instance displaying the Z axis.

lastFocusedCanvas()[source]

Return a reference to the SliceCanvas which most recently had focus. Will be None if called before any canvas gains focus.

__onCanvasFocus(ev)

Called when any SliceCanvas gains focus. Updates the last focused canvas reference.

__addEditMenu()

Called by __profleChanged() when the ViewPanel.profile is changed to 'edit'. Adds a menu to the FSLeyesFrame.

__removeEditMenu()

Called by __profleChanged() when the ViewPanel.profile is changed from 'edit'. If an edit menut has previously been added to the FSLeyesFrame, it is removed.

__toggleCanvas(*a)

Called when any of the OrthoOpts.showXCanvas, OrthoOpts.showYCanvas, or OrthoOpts.showZCanvas properties are changed.

Shows/hides each of the SliceCanvas panels accordingly.

__radioOrientationChanged(*a)

Called when the DisplayContext.radioOrientation or DisplayContext.displaySpace property changes. Figures out if the left-right canvas axes need to be flipped, and does so if necessary.

__overlayListChanged(*a)

Called when the OverlayList or DisplayContext.selectedOverlay is changed. Enables/disables various action methods based on the currently selected overlay.

__onResize(ev)

Called whenever the panel is resized. Makes sure that the SliceCanvas panels and Text annotations are drawn correctly.

__calcCanvasSizes(*a)

Sets the size for each displayed SliceCanvas.

The minimum/maximum size of each canvas is fixed so that they are scaled proportionally to each other, thus preserving the aspect ratio. The :mod:~fsl.utils.layout` module is used to perform the canvas size calculation.

__refreshLayout(*a, **kwa)

Called when the OrthoOpts.layout property changes, or the canvas layout needs to be refreshed. Updates the layout accordingly.

Parameters

refresh – Must be passed as a keyword argument. If True (the default), this OrthoPanel is refreshed.

__module__ = 'fsleyes.views.orthopanel'
class fsleyes.views.orthopanel.OrthoFrame(parent, overlayList, displayCtx, title=None)[source]

Bases: __main__.docbuilder.run.<locals>.MockClass

Convenience class for displaying an OrthoPanel in a standalone frame.

__init__(parent, overlayList, displayCtx, title=None)[source]

Create an OrthoFrame.

Parameters
  • parent – A wx parent object.

  • overlayList – An OverlayList instance.

  • displayCtx – A DisplayContext instance.

  • title – Dialog title.

__module__ = 'fsleyes.views.orthopanel'
class fsleyes.views.orthopanel.OrthoDialog(parent, overlayList, displayCtx, title=None, style=None)[source]

Bases: __main__.docbuilder.run.<locals>.MockClass

Convenience class for displaying an OrthoPanel in a (possibly modal) dialog window.

__init__(parent, overlayList, displayCtx, title=None, style=None)[source]

Create an OrthoDialog.

Parameters
  • parent – A wx parent object.

  • overlayList – An OverlayList instance.

  • displayCtx – A DisplayContext instance.

  • title – Dialog title.

  • style – Dialog style - defaults to wx.DEFAULT_DIALOG_STYLE.

__module__ = 'fsleyes.views.orthopanel'