copper3d / Modules / Utils/segmentation/NrrdTools / NrrdTools
Class: NrrdTools
Utils/segmentation/NrrdTools.NrrdTools
Core NRRD annotation tool for medical image segmentation.
Acts as a Facade that delegates to composed modules:
- CanvasState — pure state container
- DrawToolCore — tool orchestration, event routing
- LayerChannelManager — layer/channel/sphere-type management
- SliceRenderPipeline — slice rendering, canvas flip, mask reload
- DataLoader — NRRD slice loading, legacy mask loading, NIfTI loading
No longer extends DrawToolCore — uses composition instead.
Example
// Default 3 layers: layer1, layer2, layer3
const tools = new NrrdTools(container);
// Custom layers
const tools = new NrrdTools(container, { layers: ["layer1", "layer2"] });// Default 3 layers: layer1, layer2, layer3
const tools = new NrrdTools(container);
// Custom layers
const tools = new NrrdTools(container, { layers: ["layer1", "layer2"] });Table of contents
Constructors
Properties
- _aiAssistActive
- _aiPrevVisibility
- _calculatorActive
- _pendingSliceStep
- _sliceRAFId
- container
- dataLoader
- dragOperator
- drawCore
- guiCallbacks
- guiParameterSettings
- layerChannelManager
- notifyUser
- preTimer
- sliceRenderPipeline
- state
Accessors
Methods
- addSkip
- adjustContrast
- aiApplyMask
- aiCancelLasso
- aiClearPrompts
- aiClearSegment
- aiCommitRegion
- aiCommitToLayer
- aiCommitToLayerMapped
- aiDiscard
- aiFinishLasso
- aiGetScratchSegments
- aiGetScratchSlices
- aiHasData
- aiIsLassoEditing
- aiLassoRedo
- aiLassoUndo
- aiLassoVertCount
- aiNewSegment
- aiOnLassoChange
- aiOnPrompt
- aiSetActiveSegment
- aiSetPolarity
- aiSetPromptTool
- aiSetScribbleSize
- aiSetSegmentColor
- appendLoadingbar
- clearActiveLayer
- clearDictionary
- commitSeriesLoad
- commitSkipsAndContrast
- configMouseSliceWheel
- copyLayerData
- drag
- draw
- drawCalculatorSphereOnEachViews
- enableContrastDragEvents
- enterAiAssistMode
- enterKeyboardConfig
- enterSphereMode
- executeAction
- exitAiAssistMode
- exitKeyboardConfig
- exitSphereMode
- finishWindowAdjustment
- flipDisplayImageByAxis
- getActiveChannel
- getActiveLayer
- getActiveSphereType
- getBrushSize
- getChannelColor
- getChannelCssColor
- getChannelHexColor
- getChannelVisibility
- getContainer
- getCurrentImageDimension
- getCurrentSliceIndex
- getCurrentSlicesNumAndContrastNum
- getDrawingCanvas
- getIsShowContrastState
- getKeyboardSettings
- getLayerOpacity
- getLayerOpacityMap
- getLayerVisibility
- getMaskData
- getMaxSliceNum
- getMode
- getNrrdToolsSettings
- getOpacity
- getPencilColor
- getSliderMeta
- getSpaceOrigin
- getSphereBrushRadius
- getVoxelSpacing
- hasLayerData
- init
- initNrrdToolsModules
- isAiAssistActive
- isAnnotationSuspended
- isCalculatorActive
- isChannelVisible
- isContrastShortcutEnabled
- isLayerVisible
- redo
- redrawDisplayCanvas
- redrawMianPreOnDisplayCanvas
- refreshSphereOverlay
- reloadMasksFromVolume
- removeSkip
- replaceLayerVolume
- reset
- resetChannelColors
- resetLayerCanvas
- resetPaintAreaUIPosition
- resizePaintArea
- setActiveChannel
- setActiveLayer
- setActiveSphereType
- setAllLayersChannelColor
- setAllSlices
- setAnnotationSuspended
- setBaseDrawDisplayCanvasesSize
- setBrushSize
- setCalculateDistanceSphere
- setChannelColor
- setChannelColors
- setChannelVisible
- setContrastIndex
- setContrastShortcutEnabled
- setDisplaySliceIndexPanel
- setEmptyCanvasSize
- setIsDrawFalse
- setKeyboardSettings
- setLayerOpacity
- setLayerVisible
- setMainAreaSize
- setMasksData
- setMasksFromNIfTI
- setMode
- setOpacity
- setPencilColor
- setPencilIconUrls
- setShowInMainArea
- setSkips
- setSliceMoving
- setSliceOrientation
- setSphereBrushRadius
- setSyncsliceNum
- setWindowHigh
- setWindowLow
- setupGUI
- switchAllSlicesArrayData
- switchSlicesPreservingView
- syncGuiParameterSettings
- undo
- updateMouseWheelEvent
- updateOriginAndChangedWH
- wireDrawCoreMethods
Constructors
constructor
• new NrrdTools(container, options?)
Parameters
| Name | Type |
|---|---|
container | HTMLDivElement |
options? | Object |
options.layers? | string[] |
Defined in
src/Utils/segmentation/NrrdTools.ts:112
Properties
_aiAssistActive
• Private _aiAssistActive: boolean = false
Whether AI-assist mode is currently active.
Defined in
src/Utils/segmentation/NrrdTools.ts:1177
_aiPrevVisibility
• Private _aiPrevVisibility: null | Record<string, boolean> = null
Layer visibility snapshot taken on enter, restored on exit.
Defined in
src/Utils/segmentation/NrrdTools.ts:1179
_calculatorActive
• Private _calculatorActive: boolean = false
Whether calculator mode is active (not part of gui_states interface)
Defined in
src/Utils/segmentation/NrrdTools.ts:72
_pendingSliceStep
• Private _pendingSliceStep: number = 0
Defined in
src/Utils/segmentation/NrrdTools.ts:69
_sliceRAFId
• Private _sliceRAFId: null | number = null
Defined in
src/Utils/segmentation/NrrdTools.ts:68
container
• container: HTMLDivElement
Defined in
src/Utils/segmentation/NrrdTools.ts:57
dataLoader
• Private dataLoader: DataLoader
Data loading (extracted module)
Defined in
src/Utils/segmentation/NrrdTools.ts:81
dragOperator
• dragOperator: DragOperator
Drag operator for slice navigation.
Defined in
src/Utils/segmentation/NrrdTools.ts:64
drawCore
• Private drawCore: DrawToolCore
Core drawing tool orchestrator.
Defined in
src/Utils/segmentation/NrrdTools.ts:62
guiCallbacks
• Private guiCallbacks: null | { finishContrastAdjustment: () => void ; updateCalDistance: (val: "tumour" | "skin" | "nipple" | "ribcage") => void ; updateEraserState: () => void ; updatePencilState: () => void ; updateSphereState: () => void ; updateWindowHigh: (value: number) => void ; updateWindowLow: (value: number) => void } = null
Stored closure callbacks from gui.ts setupGui()
Defined in
src/Utils/segmentation/NrrdTools.ts:98
guiParameterSettings
• Private guiParameterSettings: undefined | IGuiParameterSettings
Defined in
src/Utils/segmentation/NrrdTools.ts:67
layerChannelManager
• Private layerChannelManager: LayerChannelManager
Layer/channel management (extracted module)
Defined in
src/Utils/segmentation/NrrdTools.ts:75
notifyUser
• notifyUser: (message: string, level: "error" | "warning" | "info") => void
Type declaration
▸ (message, level): void
How a message reaches the reader. Defaults to the console: this package ships without a UI and must not import the host application's, or it cannot be built on its own. A host that has a toast or a banner assigns this after construction.
Parameters
| Name | Type |
|---|---|
message | string |
level | "error" | "warning" | "info" |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:88
preTimer
• Private preTimer: any
Defined in
src/Utils/segmentation/NrrdTools.ts:66
sliceRenderPipeline
• Private sliceRenderPipeline: SliceRenderPipeline
Slice rendering pipeline (extracted module)
Defined in
src/Utils/segmentation/NrrdTools.ts:78
state
• Private state: CanvasState
Shared state container.
Defined in
src/Utils/segmentation/NrrdTools.ts:60
Accessors
start
• get start(): () => void
Get the DrawToolCore's start() render loop callback. This is called by DragSliceTool's requestAnimationFrame loop.
Returns
fn
▸ (): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1495
Methods
addSkip
▸ addSkip(index): void
Parameters
| Name | Type |
|---|---|
index | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:818
adjustContrast
▸ adjustContrast(type, delta): void
Parameters
| Name | Type |
|---|---|
type | "windowLow" | "windowHigh" |
delta | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:446
aiApplyMask
▸ aiApplyMask(result): void
Apply a backend mask result into the scratch volume (overlay repaints next frame).
Parameters
| Name | Type |
|---|---|
result | AiMaskResult |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1263
aiCancelLasso
▸ aiCancelLasso(): void
Abandon the in-progress lasso (Esc).
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1274
aiClearPrompts
▸ aiClearPrompts(): void
Clear the in-progress prompt set (e.g. slice change).
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1265
aiClearSegment
▸ aiClearSegment(label): void
Delete a Segmentation: erase all its label's voxels from scratch + committed.
Parameters
| Name | Type |
|---|---|
label | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1255
aiCommitRegion
▸ aiCommitRegion(): void
"New region": freeze current regions (they persist) + start a fresh prompt set.
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1280
aiCommitToLayer
▸ aiCommitToLayer(targetLayer?): void
Back-compat shim: merge with an IDENTITY mapping (each AI label → the same channel number) via the mapped path above. Newer callers should use aiCommitToLayerMapped with an explicit per-segmentation mapping.
Parameters
| Name | Type | Default value |
|---|---|---|
targetLayer | string | "layer1" |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1354
aiCommitToLayerMapped
▸ aiCommitToLayerMapped(targetLayer, mapping): void
Merge the AI scratch into a target layer with an explicit per-segmentation mapping, as a single undoable group (sandbox merge — non-destructive + one Ctrl+Z). mapping is { AI scratch label -> target channel(1-8) }; any label absent from the mapping (or mapped to 0) is DISCARDED (not merged). Several AI labels MAY map to the SAME channel — after merge the channel is the identity (CLAUDE.md decision M2), so the merged voxels take that channel's fixed colour.
UNION semantics (M4): an AI voxel only fills a target voxel that is currently EMPTY (0) — existing manual annotation is NEVER erased. Where two AI labels map to different channels and overlap the same voxel, the first one written wins (iteration order), an accepted edge case for a single-value-per-voxel mask. Scans all z-slices, so voxels painted from any view are caught.
Parameters
| Name | Type |
|---|---|
targetLayer | string |
mapping | Record<number, number> |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1309
aiDiscard
▸ aiDiscard(): void
Discard all AI scratch painting since enter (sandbox discard).
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1282
aiFinishLasso
▸ aiFinishLasso(): void
Close + send the in-progress lasso to the backend (needs ≥3 vertices).
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1268
aiGetScratchSegments
▸ aiGetScratchSegments(): null | { axis: "z" ; height: number ; segments: { label: number ; slices: { rle: number[] ; sliceIndex: number }[] }[] ; width: number }
Per-segmentation serialization (one binary RLE per label per z-slice) for the multi-label / per-colour 3D build.
Returns
null | { axis: "z" ; height: number ; segments: { label: number ; slices: { rle: number[] ; sliceIndex: number }[] }[] ; width: number }
Defined in
src/Utils/segmentation/NrrdTools.ts:1291
aiGetScratchSlices
▸ aiGetScratchSlices(): null | { axis: "z" ; height: number ; slices: { rle: number[] ; sliceIndex: number }[] ; width: number }
Serialize the AI scratch as per-slice RLE for persisting to ai_generated_nii_LPS.
Returns
null | { axis: "z" ; height: number ; slices: { rle: number[] ; sliceIndex: number }[] ; width: number }
Defined in
src/Utils/segmentation/NrrdTools.ts:1286
aiHasData
▸ aiHasData(): boolean
True if the scratch volume holds any predicted voxels.
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:1284
aiIsLassoEditing
▸ aiIsLassoEditing(): boolean
True while the user is placing lasso vertices.
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:1276
aiLassoRedo
▸ aiLassoRedo(): void
Redo the last undone lasso vertex change.
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1272
aiLassoUndo
▸ aiLassoUndo(): void
Undo the last lasso vertex add/delete.
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1270
aiLassoVertCount
▸ aiLassoVertCount(): number
Number of placed lasso vertices (drives the Finish button).
Returns
number
Defined in
src/Utils/segmentation/NrrdTools.ts:1278
aiNewSegment
▸ aiNewSegment(label): void
"New segmentation": freeze current regions + switch to a new label.
Parameters
| Name | Type |
|---|---|
label | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1253
aiOnLassoChange
▸ aiOnLassoChange(cb): void
Register the callback fired when the lasso vertex set changes (drives the Finish button).
Parameters
| Name | Type |
|---|---|
cb | (count: number, editing: boolean) => void |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1261
aiOnPrompt
▸ aiOnPrompt(cb): void
Register the callback invoked when a prompt gesture completes (app → backend).
Parameters
| Name | Type |
|---|---|
cb | (payload: AiPromptPayload) => void |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1259
aiSetActiveSegment
▸ aiSetActiveSegment(label): void
Select the active Segmentation by its label value (the AI paints into it).
Parameters
| Name | Type |
|---|---|
label | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1247
aiSetPolarity
▸ aiSetPolarity(label): void
Parameters
| Name | Type |
|---|---|
label | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1245
aiSetPromptTool
▸ aiSetPromptTool(tool): void
Parameters
| Name | Type |
|---|---|
tool | AiPromptTool |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1244
aiSetScribbleSize
▸ aiSetScribbleSize(size): void
Set the scribble brush radius (px).
Parameters
| Name | Type |
|---|---|
size | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1257
aiSetSegmentColor
▸ aiSetSegmentColor(label, color): void
Set a Segmentation's colour (its label's colorMap entry; 2D overlay repaints).
Parameters
| Name | Type |
|---|---|
label | number |
color | Object |
color.a | number |
color.b | number |
color.g | number |
color.r | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1249
appendLoadingbar
▸ appendLoadingbar(loadingbar): void
Parameters
| Name | Type |
|---|---|
loadingbar | HTMLDivElement |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:977
clearActiveLayer
▸ clearActiveLayer(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1365
clearDictionary
▸ Private clearDictionary(dic): void
Parameters
| Name | Type |
|---|---|
dic | ISkipSlicesDictType |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1485
commitSeriesLoad
▸ commitSeriesLoad(allSlices, skipEntries, contrastIndex): void
Case-load completion, fully batched: swap in the acquisition-ordered slice array, reconcile skip state, and land on the target contrast -- one resetDisplaySlicesStatus() instead of three (switchAllSlicesArrayData + setSkips + setContrastIndex used to each pay their own full refresh here; see commitSkipsAndContrast above for why only the batched form's single refresh is needed).
Parameters
| Name | Type |
|---|---|
allSlices | nrrdSliceType[] |
skipEntries | { index: number ; skip: boolean }[] |
contrastIndex | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:957
commitSkipsAndContrast
▸ commitSkipsAndContrast(skipEntries, contrastIndex): void
Batched form of setSkips + setContrastIndex for a load that ends by reconciling skip state and landing on a phase in the same turn (see useCaseManagement.handleAllImagesLoaded). Calling them separately is correct but wasteful: each pays resetDisplaySlicesStatus()'s full display/canvas/mask refresh, and with nothing reading the display in between, only the second call's paint was ever visible -- measured at two ~300ms refreshes back-to-back once setSkips had already absorbed the earlier per-phase addSkip/removeSkip loop cost.
contrastIndex is set before the single resetDisplaySlicesStatus() call, not after: the resulting displaySlices length/order depends only on skipSlicesDic, which is already written by the time it runs, so the callbacks inside that one refresh (repraintCurrentContrastSlice etc.) paint the target contrast directly. The clamp below still runs after, against the freshly rebuilt displaySlices, for parity with setContrastIndex's own bounds check.
Parameters
| Name | Type |
|---|---|
skipEntries | { index: number ; skip: boolean }[] |
contrastIndex | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:933
configMouseSliceWheel
▸ configMouseSliceWheel(): (e: WheelEvent) => void
Returns
fn
▸ (e): void
Parameters
| Name | Type |
|---|---|
e | WheelEvent |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1425
copyLayerData
▸ copyLayerData(sourceLayerId, targetLayerId): void
Copy all voxel data from one layer's MaskVolume to another.
After the copy the target layer's display is refreshed so the UI shows the updated data immediately. The target layer's color map is preserved — only the raw voxel buffer is overwritten.
Use case: when editing layer2 cascades to layer3 on the backend, call this to keep the frontend in sync without a network round-trip.
Parameters
| Name | Type | Description |
|---|---|---|
sourceLayerId | string | Layer to copy from (e.g. "layer2"). |
targetLayerId | string | Layer to copy into (e.g. "layer3"). |
Returns
void
Example
nrrdTools.copyLayerData("layer2", "layer3");nrrdTools.copyLayerData("layer2", "layer3");Defined in
src/Utils/segmentation/NrrdTools.ts:1524
drag
▸ drag(opts?): void
Parameters
| Name | Type |
|---|---|
opts? | IDragOpts |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:644
draw
▸ draw(opts?): void
Core drawing entry point.
Parameters
| Name | Type |
|---|---|
opts? | any |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:651
drawCalculatorSphereOnEachViews
▸ drawCalculatorSphereOnEachViews(axis): void
Expose drawCalculatorSphereOnEachViews for external use.
Parameters
| Name | Type |
|---|---|
axis | "x" | "y" | "z" |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1502
enableContrastDragEvents
▸ enableContrastDragEvents(callback): void
Parameters
| Name | Type |
|---|---|
callback | (step: number, towards: "horizental" | "vertical") => void |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:672
enterAiAssistMode
▸ enterAiAssistMode(): void
Enter AI-assist mode (sandbox): hides the existing layer masks so ONLY the AI overlay is shown, takes canvas ownership (left-click = prompt), and creates the scratch volume. Right-drag still pans; wheel/slider still scrub slices. The hidden masks are restored on exit (merge writes into them first if asked).
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1207
enterKeyboardConfig
▸ enterKeyboardConfig(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:608
enterSphereMode
▸ enterSphereMode(): void
Enter sphere mode.
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1140
executeAction
▸ executeAction(action, opts?): void
Parameters
| Name | Type |
|---|---|
action | "undo" | "redo" | "resetZoom" | "downloadCurrentMask" | "clearActiveSliceMask" | "clearActiveLayerMask" | "gaussianSmooth" |
opts? | Object |
opts.sigma? | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:505
exitAiAssistMode
▸ exitAiAssistMode(): void
Exit AI-assist mode: drop the scratch volume, restore normal tooling AND the layer-mask visibility hidden on enter. If the caller merged first, the merged result is now part of the layer volume and reappears with the restored masks.
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1227
exitKeyboardConfig
▸ exitKeyboardConfig(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:612
exitSphereMode
▸ exitSphereMode(): void
Exit sphere mode.
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1159
finishWindowAdjustment
▸ finishWindowAdjustment(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:442
flipDisplayImageByAxis
▸ flipDisplayImageByAxis(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1086
getActiveChannel
▸ getActiveChannel(): number
Returns
number
Defined in
src/Utils/segmentation/NrrdTools.ts:1051
getActiveLayer
▸ getActiveLayer(): string
Returns
string
Defined in
src/Utils/segmentation/NrrdTools.ts:1049
getActiveSphereType
▸ getActiveSphereType(): SphereType
Returns
Defined in
src/Utils/segmentation/NrrdTools.ts:1053
getBrushSize
▸ getBrushSize(): number
Returns
number
Defined in
src/Utils/segmentation/NrrdTools.ts:420
getChannelColor
▸ getChannelColor(layerId, channel): RGBAColor
Parameters
| Name | Type |
|---|---|
layerId | string |
channel | number |
Returns
Defined in
src/Utils/segmentation/NrrdTools.ts:1064
getChannelCssColor
▸ getChannelCssColor(layerId, channel): string
Parameters
| Name | Type |
|---|---|
layerId | string |
channel | number |
Returns
string
Defined in
src/Utils/segmentation/NrrdTools.ts:1066
getChannelHexColor
▸ getChannelHexColor(layerId, channel): string
Parameters
| Name | Type |
|---|---|
layerId | string |
channel | number |
Returns
string
Defined in
src/Utils/segmentation/NrrdTools.ts:1065
getChannelVisibility
▸ getChannelVisibility(): Record<string, Record<number, boolean>>
Returns
Record<string, Record<number, boolean>>
Defined in
src/Utils/segmentation/NrrdTools.ts:1060
getContainer
▸ getContainer(): HTMLElement
Returns
HTMLElement
Defined in
src/Utils/segmentation/NrrdTools.ts:1001
getCurrentImageDimension
▸ getCurrentImageDimension(): number[]
Returns
number[]
Defined in
src/Utils/segmentation/NrrdTools.ts:985
getCurrentSliceIndex
▸ getCurrentSliceIndex(): number
Returns
number
Defined in
src/Utils/segmentation/NrrdTools.ts:1031
getCurrentSlicesNumAndContrastNum
▸ getCurrentSlicesNumAndContrastNum(): Object
Returns
Object
| Name | Type |
|---|---|
contrastIndex | number |
currentSliceIndex | number |
Defined in
src/Utils/segmentation/NrrdTools.ts:1024
getDrawingCanvas
▸ getDrawingCanvas(): HTMLCanvasElement
Returns
HTMLCanvasElement
Defined in
src/Utils/segmentation/NrrdTools.ts:1005
getIsShowContrastState
▸ getIsShowContrastState(): boolean
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:1037
getKeyboardSettings
▸ getKeyboardSettings(): IKeyBoardSettings
Returns
Defined in
src/Utils/segmentation/NrrdTools.ts:636
getLayerOpacity
▸ getLayerOpacity(layerId): number
Parameters
| Name | Type |
|---|---|
layerId | string |
Returns
number
Defined in
src/Utils/segmentation/NrrdTools.ts:1073
getLayerOpacityMap
▸ getLayerOpacityMap(): Record<string, number>
Returns
Record<string, number>
Defined in
src/Utils/segmentation/NrrdTools.ts:1074
getLayerVisibility
▸ getLayerVisibility(): Record<string, boolean>
Returns
Record<string, boolean>
Defined in
src/Utils/segmentation/NrrdTools.ts:1059
getMaskData
▸ getMaskData(): IMaskData
Returns
Defined in
src/Utils/segmentation/NrrdTools.ts:997
getMaxSliceNum
▸ getMaxSliceNum(): number[]
Returns
number[]
Defined in
src/Utils/segmentation/NrrdTools.ts:1013
getMode
▸ getMode(): ToolMode
Returns
Defined in
src/Utils/segmentation/NrrdTools.ts:392
getNrrdToolsSettings
▸ getNrrdToolsSettings(): NrrdState
Returns
Defined in
src/Utils/segmentation/NrrdTools.ts:1009
getOpacity
▸ getOpacity(): number
Returns
number
Defined in
src/Utils/segmentation/NrrdTools.ts:410
getPencilColor
▸ getPencilColor(): string
Returns
string
Defined in
src/Utils/segmentation/NrrdTools.ts:501
getSliderMeta
▸ getSliderMeta(key): null | IGuiMeta
Parameters
| Name | Type |
|---|---|
key | string |
Returns
null | IGuiMeta
Defined in
src/Utils/segmentation/NrrdTools.ts:463
getSpaceOrigin
▸ getSpaceOrigin(): number[]
Returns
number[]
Defined in
src/Utils/segmentation/NrrdTools.ts:993
getSphereBrushRadius
▸ getSphereBrushRadius(): number
Returns
number
Defined in
src/Utils/segmentation/NrrdTools.ts:428
getVoxelSpacing
▸ getVoxelSpacing(): number[]
Returns
number[]
Defined in
src/Utils/segmentation/NrrdTools.ts:989
hasLayerData
▸ hasLayerData(layerId): boolean
Parameters
| Name | Type |
|---|---|
layerId | string |
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:1061
init
▸ Private init(): void
A initialise function for nrrd_tools
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:180
initNrrdToolsModules
▸ Private initNrrdToolsModules(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:190
isAiAssistActive
▸ isAiAssistActive(): boolean
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:1181
isAnnotationSuspended
▸ isAnnotationSuspended(): boolean
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:1197
isCalculatorActive
▸ isCalculatorActive(): boolean
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:402
isChannelVisible
▸ isChannelVisible(layerId, channel): boolean
Parameters
| Name | Type |
|---|---|
layerId | string |
channel | ChannelValue |
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:1058
isContrastShortcutEnabled
▸ isContrastShortcutEnabled(): boolean
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:620
isLayerVisible
▸ isLayerVisible(layerId): boolean
Parameters
| Name | Type |
|---|---|
layerId | string |
Returns
boolean
Defined in
src/Utils/segmentation/NrrdTools.ts:1056
redo
▸ redo(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:604
redrawDisplayCanvas
▸ redrawDisplayCanvas(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1088
redrawMianPreOnDisplayCanvas
▸ redrawMianPreOnDisplayCanvas(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1084
refreshSphereOverlay
▸ Private refreshSphereOverlay(): void
Refresh sphere canvas from sphereMaskVolume for the current slice/axis.
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1133
reloadMasksFromVolume
▸ Private reloadMasksFromVolume(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1089
removeSkip
▸ removeSkip(index): void
Parameters
| Name | Type |
|---|---|
index | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:830
replaceLayerVolume
▸ replaceLayerVolume(layerId, data, opts?): void
Replace a layer's entire voxel buffer.
This call itself does NOT fire onLayerVolumeReplaced - callers (e.g. the mask upload flow) must persist the new volume themselves. The callback fires only later, if the clinician undoes or redoes this replacement, because at that point the backend still holds the newer volume and needs to be told to fall back to the old one.
Parameters
| Name | Type | Description |
|---|---|---|
layerId | string | Layer to overwrite. |
data | Uint8Array | Voxels, exactly the layer volume's length. |
opts | Object | undoable: true records one Ctrl+Z step for the whole volume. |
opts.undoable? | boolean | - |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1564
reset
▸ reset(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1379
resetChannelColors
▸ resetChannelColors(layerId?, channel?): void
Parameters
| Name | Type |
|---|---|
layerId? | string |
channel? | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1069
resetLayerCanvas
▸ resetLayerCanvas(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1083
resetPaintAreaUIPosition
▸ resetPaintAreaUIPosition(l?, t?): void
Parameters
| Name | Type |
|---|---|
l? | number |
t? | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1082
resizePaintArea
▸ resizePaintArea(factor): void
Parameters
| Name | Type |
|---|---|
factor | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1085
setActiveChannel
▸ setActiveChannel(channel): void
Parameters
| Name | Type |
|---|---|
channel | ChannelValue |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1050
setActiveLayer
▸ setActiveLayer(layerId): void
Parameters
| Name | Type |
|---|---|
layerId | string |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1045
setActiveSphereType
▸ setActiveSphereType(type): void
Parameters
| Name | Type |
|---|---|
type | SphereType |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1052
setAllLayersChannelColor
▸ setAllLayersChannelColor(channel, color): void
Parameters
| Name | Type |
|---|---|
channel | number |
color | RGBAColor |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1068
setAllSlices
▸ setAllSlices(allSlices): void
Parameters
| Name | Type |
|---|---|
allSlices | nrrdSliceType[] |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1095
setAnnotationSuspended
▸ setAnnotationSuspended(suspended): void
Suspend or resume annotation input.
While suspended the reader may still scrub slices, zoom, pan and place the crosshair, but no input can write into a mask. This is the enforcement behind "during loading you may preview, not annotate": greying the Operation panel's buttons does not achieve it, because a tool selected before the load began stays armed on the canvas -- and a stroke made then cannot even be undone, since afterLoadSlice clears the undo stack each time a slice arrives.
Parameters
| Name | Type |
|---|---|
suspended | boolean |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1193
setBaseDrawDisplayCanvasesSize
▸ setBaseDrawDisplayCanvasesSize(size): void
Set the Draw Display Canvas base size
Parameters
| Name | Type |
|---|---|
size | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:658
setBrushSize
▸ setBrushSize(size): void
Parameters
| Name | Type |
|---|---|
size | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:414
setCalculateDistanceSphere
▸ setCalculateDistanceSphere(x, y, sliceIndex, cal_position): void
Parameters
| Name | Type |
|---|---|
x | number |
y | number |
sliceIndex | number |
cal_position | "tumour" | "skin" | "nipple" | "ribcage" |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1103
setChannelColor
▸ setChannelColor(layerId, channel, color): void
Parameters
| Name | Type |
|---|---|
layerId | string |
channel | number |
color | RGBAColor |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1063
setChannelColors
▸ setChannelColors(layerId, colorMap): void
Parameters
| Name | Type |
|---|---|
layerId | string |
colorMap | Partial<ChannelColorMap> |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1067
setChannelVisible
▸ setChannelVisible(layerId, channel, visible): void
Parameters
| Name | Type |
|---|---|
layerId | string |
channel | ChannelValue |
visible | boolean |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1057
setContrastIndex
▸ setContrastIndex(index): void
Move to a specific contrast without moving the slice.
index addresses displaySlices — the SELECTED subset — not the full contrast list. With three of five phases selected, valid values are 0..2. Callers that think in phase names must convert first.
Parameters
| Name | Type |
|---|---|
index | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:873
setContrastShortcutEnabled
▸ setContrastShortcutEnabled(enabled): void
Parameters
| Name | Type |
|---|---|
enabled | boolean |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:616
setDisplaySliceIndexPanel
▸ setDisplaySliceIndexPanel(panel): void
Parameters
| Name | Type |
|---|---|
panel | HTMLDivElement |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:668
setEmptyCanvasSize
▸ setEmptyCanvasSize(axis?): void
Parameters
| Name | Type |
|---|---|
axis? | "x" | "y" | "z" |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1087
setIsDrawFalse
▸ setIsDrawFalse(target): void
Parameters
| Name | Type |
|---|---|
target | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1471
setKeyboardSettings
▸ setKeyboardSettings(settings): void
Parameters
| Name | Type |
|---|---|
settings | Partial<IKeyBoardSettings> |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:624
setLayerOpacity
▸ setLayerOpacity(layerId, opacity): void
Parameters
| Name | Type |
|---|---|
layerId | string |
opacity | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1072
setLayerVisible
▸ setLayerVisible(layerId, visible): void
Parameters
| Name | Type |
|---|---|
layerId | string |
visible | boolean |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1055
setMainAreaSize
▸ setMainAreaSize(factor): void
Parameters
| Name | Type |
|---|---|
factor | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:899
setMasksData
▸ setMasksData(masksData, loadingBar?): void
Parameters
| Name | Type |
|---|---|
masksData | storeExportPaintImageType |
loadingBar? | loadingBarType |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1096
setMasksFromNIfTI
▸ setMasksFromNIfTI(layerVoxels, loadingBar?): void
Parameters
| Name | Type |
|---|---|
layerVoxels | Map<string, Uint8Array> |
loadingBar? | loadingBarType |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1097
setMode
▸ setMode(mode): void
Set the current tool mode.
Parameters
| Name | Type |
|---|---|
mode | ToolMode |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:313
setOpacity
▸ setOpacity(value): void
Parameters
| Name | Type |
|---|---|
value | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:406
setPencilColor
▸ setPencilColor(hex): void
Parameters
| Name | Type |
|---|---|
hex | string |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:497
setPencilIconUrls
▸ setPencilIconUrls(urls): void
Parameters
| Name | Type |
|---|---|
urls | string[] |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:676
setShowInMainArea
▸ Private setShowInMainArea(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1481
setSkips
▸ setSkips(entries): void
Batched form of addSkip/removeSkip for reconciling many positions at once (e.g. a case load's initial phase selection, see useCaseManagement.reconcileSkips) without paying resetDisplaySlicesStatus()'s full display/canvas/mask refresh once per position.
Calling addSkip/removeSkip in a loop is correct but wasteful here: every entry but the last is immediately superseded (this always runs synchronously, with nothing reading the display in between, and the caller's own follow-up -- landOn's setContrastIndex -- overwrites contrastNum again right after). Measured at over 1 second of main-thread time for a 5-phase series once per-volume extraction stopped dominating the case-load block (narrower axes, see copperNrrdLoader) -- this was always there, just smaller than the cost it used to sit next to.
Parameters
| Name | Type |
|---|---|
entries | { index: number ; skip: boolean }[] |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:849
setSliceMoving
▸ setSliceMoving(step): void
Parameters
| Name | Type |
|---|---|
step | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:880
setSliceOrientation
▸ setSliceOrientation(axisTo): void
Switch all contrast slices' orientation
Parameters
| Name | Type |
|---|---|
axisTo | "x" | "y" | "z" |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:683
setSphereBrushRadius
▸ setSphereBrushRadius(radius): void
Parameters
| Name | Type |
|---|---|
radius | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:424
setSyncsliceNum
▸ setSyncsliceNum(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1081
setWindowHigh
▸ setWindowHigh(value): void
Parameters
| Name | Type |
|---|---|
value | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:432
setWindowLow
▸ setWindowLow(value): void
Parameters
| Name | Type |
|---|---|
value | number |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:437
setupGUI
▸ setupGUI(gui): void
Set up GUI for drawing panel
Parameters
| Name | Type | Description |
|---|---|---|
gui | GUI | GUI |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:237
switchAllSlicesArrayData
▸ switchAllSlicesArrayData(allSlices): void
Parameters
| Name | Type |
|---|---|
allSlices | nrrdSliceType[] |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:911
switchSlicesPreservingView
▸ switchSlicesPreservingView(allSlices): void
Swap slice data while preserving current slice index, zoom, and pan position. Used for register/origin image switching where the view state should persist.
Parameters
| Name | Type |
|---|---|
allSlices | nrrdSliceType[] |
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:971
syncGuiParameterSettings
▸ Private syncGuiParameterSettings(): void
Sync guiParameterSettings with current volume metadata.
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:298
undo
▸ undo(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:600
updateMouseWheelEvent
▸ updateMouseWheelEvent(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1445
updateOriginAndChangedWH
▸ updateOriginAndChangedWH(): void
Returns
void
Defined in
src/Utils/segmentation/NrrdTools.ts:1080
wireDrawCoreMethods
▸ Private wireDrawCoreMethods(): void
Wire DrawToolCore's overridable methods to NrrdTools implementations. This replaces the old inheritance approach.
Returns
void