Lines3dDialog

class controllers.Lines3dDialog

Bases: handle

LINES3DDIALOG - Lines3dDialog is a controller class for the Lines3D table view dialog.

Displays and edits 3D line trees, nodes and edges via interactive tables. Opened from the segmentation panel’s “Table View” button.

obj.startController('controllers.Lines3dDialog'); // as GUI tool
Constructor Summary
Lines3dDialog(mibModel, varargin)

LINES3DDIALOG - Initialize Lines3D table view dialog controller.

Syntax:
obj = Lines3dDialog(mibModel)
obj = Lines3dDialog(mibModel, BatchOpt)

Display and edit 3D line trees, nodes and edges via interactive tables.

Input Arguments:
  • mibModel - [MibModel] handle to main MIB model

  • varargin{1} (optional) - [handle] controller handle (unused, for startController compatibility)

Output Arguments:
  • obj - [Lines3dDialog] initialized dialog controller instance

Property Summary
childControllers

indices of selected tree in treesViewTable

childControllersIds

cell array of open child controllers

hAx

a cell array with handles to listeners

hFig

axes for the 3D visualization figure

hPlot

a handle to the 3D visualization figure

imarisOptions

a handle to a plot on the 3D visualization figure

indicesEdges

a structure with export options for imaris .radii - default radius scaling factor .color - default color [R G B A] in range 0..1 .name - default spot name

indicesNodes

indices of selected cell in edgesViewTable

indicesTrees

indices of selected cell in nodesViewTable

listener

handle to the view / views.Lines3dDialog (core.ChildView)

mibModel
view

handle to the MibModel

Method Summary
static ViewListner_Callback2(src, evnt)

VIEWLISTNER_CALLBACK2 - ViewListner_Callback2(obj, src, evnt).

Syntax:
obj.ViewListner_Callback2(src, evnt)

Static callback for model event listeners.

addCallbacks()

ADDCALLBACKS - Wire all widget callbacks for table and button interactions.

Syntax:
obj.addCallbacks()

Connect UI widgets to callback functions. Called once from constructor to set up callbacks for tables (cell edit, selection), buttons (settings, load, save, delete, visualize), dropdowns, and context menus.

closeWindow()

CLOSEWINDOW - Close dialog window and clean up resources.

Syntax:
obj.closeWindow()

Close the Lines3dDialog window, delete child controllers, and clean up model listeners.

deleteBtn_Callback()

DELETEBTN_CALLBACK - Delete all Lines3D data after user confirmation.

Syntax:
obj.deleteBtn_Callback()

Prompt user for confirmation, create backup, and clear all Lines3D data from current dataset.

edgesViewTable_CellEditCallback(eventdata)

EDGESVIEWTABLE_CELLEDITCALLBACK - Handle cell edits in edges table.

Syntax:
obj.edgesViewTable_CellEditCallback(eventdata)

Update edge properties (weight or additional field) when user modifies edgesViewTable cells.

Input Arguments:
  • eventdata - [CellEditData] cell edit event with .Indices and .NewData properties

edgesViewTable_CellSelectionCallback(Indices, forceJump)

EDGESVIEWTABLE_CELLSELECTIONCALLBACK - Handle cell selection in edges table.

Syntax:
obj.edgesViewTable_CellSelectionCallback(Indices, forceJump)

Update internal selection tracking and optionally jump to selected edge’s target node.

Input Arguments:
  • Indices - [numeric array] selected cell indices from table

  • forceJump (optional) - [logical] force jump to edge endpoint; defaults to value of jumpCheck widget

edgesViewTable_cb(parameter)

EDGESVIEWTABLE_CB - Handle context menu actions on edges table.

Syntax:
obj.edgesViewTable_cb(parameter)

Execute context menu actions: jump to node or set as active node.

Input Arguments:
  • parameter - [char] action: 'Jump' (jump to node) or 'Active' (set as active node)

loadBtn_Callback()

LOADBTN_CALLBACK - Load or import Lines3D from file or MATLAB workspace.

Syntax:
obj.loadBtn_Callback()

Prompt user to load Lines3D from .lines3d file or import from base workspace. Validates graph structure and updates pixel sizes to match current dataset. Creates backup before loading.

nodesViewTable_CellEditCallback(eventdata)

NODESVIEWTABLE_CELLEDITCALLBACK - Handle cell edits in nodes table.

Syntax:
obj.nodesViewTable_CellEditCallback(eventdata)

Update node properties (name, radius/extra field, or XYZ coordinates) when user modifies nodesViewTable cells. Triggers image re-render for coordinate changes.

Input Arguments:
  • eventdata - [CellEditData] cell edit event with .Indices and .NewData properties

nodesViewTable_CellSelectionCallback(Indices, forceJump)

NODESVIEWTABLE_CELLSELECTIONCALLBACK - Handle cell selection in nodes table.

Syntax:
obj.nodesViewTable_CellSelectionCallback(Indices, forceJump)

Update internal selection tracking and optionally jump to selected node position if jumpCheck is enabled.

Input Arguments:
  • Indices - [numeric array] selected cell indices from table

  • forceJump (optional) - [logical] force jump to node; defaults to value of jumpCheck widget

nodesViewTable_cb(parameter, nodeId)

NODESVIEWTABLE_CB - Handle context menu actions on nodes table.

Syntax:
obj.nodesViewTable_cb(parameter)
obj.nodesViewTable_cb(parameter, nodeId)

Execute context menu actions: jump to node, set active, rename, edit pixels, or manage annotations.

Input Arguments:
  • parameter - [char] action: 'Jump', 'Active', 'Rename', 'Pixels', 'AnnotationsNew', 'AnnotationsAdd', 'AnnotationsDelete', or 'Delete'

  • nodeId (optional) - [numeric] specific node to operate on; if omitted, uses selected row

saveBtn_Callback(treeIds)

SAVEBTN_CALLBACK - Save or export Lines3D to file or MATLAB workspace.

Syntax:
obj.saveBtn_Callback()
obj.saveBtn_Callback(treeIds)

Export selected trees to .lines3d file or to base workspace as Lines3D variable. Supports optional export to Imaris format.

Input Arguments:
  • treeIds (optional) - [numeric array] tree indices to export; if empty, exports all trees

settingsBtn_Callback()

SETTINGSBTN_CALLBACK - Open dialog to configure Lines3D visual settings.

Syntax:
obj.settingsBtn_Callback()

Prompt user for visual settings: edge color, active tree color, node color, active node color, edge thickness, node radius, and clipping thickness. Updates obj.mibModel.I{id}.lines3D with new settings.

treesViewTable_CellEditCallback(Indices)

TREESVIEWTABLE_CELLEDITCALLBACK - Handle cell edits in trees table (reserved for future use).

Syntax:
obj.treesViewTable_CellEditCallback(Indices)

Callback for cell edit in treesViewTable. Currently reserved for potential tree renaming or annotation edits in future versions.

Input Arguments:
  • Indices - [numeric array] edited cell indices [row, column]

treesViewTable_CellSelectionCallback(Indices)

TREESVIEWTABLE_CELLSELECTIONCALLBACK - Handle cell selection in trees table.

Syntax:
obj.treesViewTable_CellSelectionCallback(Indices)

Update active tree, refresh nodes/edges tables, and mark the selected tree node as active.

Input Arguments:
  • Indices - [numeric array] selected tree row index

treesViewTable_cb(parameter)

TREESVIEWTABLE_CB - Handle context menu actions on trees table.

Syntax:
obj.treesViewTable_cb(parameter)

Execute context menu actions: rename, find, visualize, save, or delete selected tree(s).

Input Arguments:
  • parameter - [char] action: 'rename', 'find', 'visualize', 'save', or 'delete'

updateEdgesViewTable(activeTreeIndex, nodeByTree)

UPDATEEDGESVIEWTABLE - Populate edges table for the active tree.

Syntax:
obj.updateEdgesViewTable(activeTreeIndex, nodeByTree)

Update the edges view table with edges from the specified tree, including weight and any additional edge fields configured via dropdown.

Input Arguments:
  • activeTreeIndex - [numeric] index of active tree to display

  • nodeByTree (optional) - [numeric array] assignment of nodes to trees; automatically computed if omitted

updateNodesViewTable(activeTreeIndex, nodeByTree)

UPDATENODESVIEWTABLE - Populate nodes table for the active tree.

Syntax:
activeIndex = obj.updateNodesViewTable(activeTreeIndex, nodeByTree)

Update the nodes view table with nodes from the specified tree, including node name, radius (or other field), and XYZ coordinates. Auto-scroll to active node.

Input Arguments:
  • activeTreeIndex - [numeric] index of active tree to display

  • nodeByTree (optional) - [numeric array] assignment of nodes to trees; automatically computed if omitted

Output Arguments:
  • activeIndex - [numeric] index of the active node in the displayed table (for auto-scroll)

updateWidgets()

UPDATEWIDGETS - Refresh all dialog tables and status indicators.

Syntax:
obj.updateWidgets()

Update trees table, nodes table, and edges table from current dataset. Also refresh active tree/node status indicators. Called on model events and after user actions.

visualizeBtn_Callback(treeId)

VISUALIZEBTN_CALLBACK - Visualize Lines3D graph in separate 3D figure.

Syntax:
obj.visualizeBtn_Callback()
obj.visualizeBtn_Callback(treeId)

Create or update a 3D visualization figure showing the graph edges and nodes. Optionally overlay an orthoslice from the current dataset.

Input Arguments:
  • treeId (optional) - [numeric] specific tree ID to visualize; if 0 or omitted, visualizes all trees