Skip to content

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

ts
// 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

Accessors

Methods

Constructors

constructor

new NrrdTools(container, options?)

Parameters

NameType
containerHTMLDivElement
options?Object
options.layers?string[]

Defined in

src/Utils/segmentation/NrrdTools.ts:97

Properties

_calculatorActive

Private _calculatorActive: boolean = false

Whether calculator mode is active (not part of gui_states interface)

Defined in

src/Utils/segmentation/NrrdTools.ts:70


_pendingSliceStep

Private _pendingSliceStep: number = 0

Defined in

src/Utils/segmentation/NrrdTools.ts:67


_sliceRAFId

Private _sliceRAFId: null | number = null

Defined in

src/Utils/segmentation/NrrdTools.ts:66


container

container: HTMLDivElement

Defined in

src/Utils/segmentation/NrrdTools.ts:55


dataLoader

Private dataLoader: DataLoader

Data loading (extracted module)

Defined in

src/Utils/segmentation/NrrdTools.ts:79


dragOperator

dragOperator: DragOperator

Drag operator for slice navigation.

Defined in

src/Utils/segmentation/NrrdTools.ts:62


drawCore

Private drawCore: DrawToolCore

Core drawing tool orchestrator.

Defined in

src/Utils/segmentation/NrrdTools.ts:60


guiCallbacks

Private guiCallbacks: null | { finishContrastAdjustment: () => void ; updateBrushAndEraserSize: () => 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:82


guiParameterSettings

Private guiParameterSettings: undefined | IGuiParameterSettings

Defined in

src/Utils/segmentation/NrrdTools.ts:65


layerChannelManager

Private layerChannelManager: LayerChannelManager

Layer/channel management (extracted module)

Defined in

src/Utils/segmentation/NrrdTools.ts:73


preTimer

Private preTimer: any

Defined in

src/Utils/segmentation/NrrdTools.ts:64


sliceRenderPipeline

Private sliceRenderPipeline: SliceRenderPipeline

Slice rendering pipeline (extracted module)

Defined in

src/Utils/segmentation/NrrdTools.ts:76


state

Private state: CanvasState

Shared state container.

Defined in

src/Utils/segmentation/NrrdTools.ts:58

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:1177

Methods

addSkip

addSkip(index): void

Parameters

NameType
indexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:783


adjustContrast

adjustContrast(type, delta): void

Parameters

NameType
type"windowLow" | "windowHigh"
deltanumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:416


appendLoadingbar

appendLoadingbar(loadingbar): void

Parameters

NameType
loadingbarHTMLDivElement

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:848


clearActiveLayer

clearActiveLayer(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1047


clearDictionary

Private clearDictionary(dic): void

Parameters

NameType
dicISkipSlicesDictType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1167


configMouseSliceWheel

configMouseSliceWheel(): (e: WheelEvent) => void

Returns

fn

▸ (e): void

Parameters
NameType
eWheelEvent
Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1107


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

NameTypeDescription
sourceLayerIdstringLayer to copy from (e.g. "layer2").
targetLayerIdstringLayer to copy into (e.g. "layer3").

Returns

void

Example

ts
nrrdTools.copyLayerData("layer2", "layer3");
nrrdTools.copyLayerData("layer2", "layer3");

Defined in

src/Utils/segmentation/NrrdTools.ts:1206


drag

drag(opts?): void

Parameters

NameType
opts?IDragOpts

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:614


draw

draw(opts?): void

Core drawing entry point.

Parameters

NameType
opts?any

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:621


drawCalculatorSphereOnEachViews

drawCalculatorSphereOnEachViews(axis): void

Expose drawCalculatorSphereOnEachViews for external use.

Parameters

NameType
axis"z" | "y" | "x"

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1184


enableContrastDragEvents

enableContrastDragEvents(callback): void

Parameters

NameType
callback(step: number, towards: "horizental" | "vertical") => void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:642


enterKeyboardConfig

enterKeyboardConfig(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:578


enterSphereMode

enterSphereMode(): void

Enter sphere mode.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1011


executeAction

executeAction(action, opts?): void

Parameters

NameType
action"undo" | "redo" | "resetZoom" | "downloadCurrentMask" | "clearActiveSliceMask" | "clearActiveLayerMask" | "gaussianSmooth"
opts?Object
opts.sigma?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:475


exitKeyboardConfig

exitKeyboardConfig(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:582


exitSphereMode

exitSphereMode(): void

Exit sphere mode.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1030


finishWindowAdjustment

finishWindowAdjustment(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:412


flipDisplayImageByAxis

flipDisplayImageByAxis(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:957


getActiveChannel

getActiveChannel(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:922


getActiveLayer

getActiveLayer(): string

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:920


getActiveSphereType

getActiveSphereType(): SphereType

Returns

SphereType

Defined in

src/Utils/segmentation/NrrdTools.ts:924


getBrushSize

getBrushSize(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:390


getChannelColor

getChannelColor(layerId, channel): RGBAColor

Parameters

NameType
layerIdstring
channelnumber

Returns

RGBAColor

Defined in

src/Utils/segmentation/NrrdTools.ts:935


getChannelCssColor

getChannelCssColor(layerId, channel): string

Parameters

NameType
layerIdstring
channelnumber

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:937


getChannelHexColor

getChannelHexColor(layerId, channel): string

Parameters

NameType
layerIdstring
channelnumber

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:936


getChannelVisibility

getChannelVisibility(): Record<string, Record<number, boolean>>

Returns

Record<string, Record<number, boolean>>

Defined in

src/Utils/segmentation/NrrdTools.ts:931


getContainer

getContainer(): HTMLElement

Returns

HTMLElement

Defined in

src/Utils/segmentation/NrrdTools.ts:872


getCurrentImageDimension

getCurrentImageDimension(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:856


getCurrentSliceIndex

getCurrentSliceIndex(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:902


getCurrentSlicesNumAndContrastNum

getCurrentSlicesNumAndContrastNum(): Object

Returns

Object

NameType
contrastIndexnumber
currentSliceIndexnumber

Defined in

src/Utils/segmentation/NrrdTools.ts:895


getDrawingCanvas

getDrawingCanvas(): HTMLCanvasElement

Returns

HTMLCanvasElement

Defined in

src/Utils/segmentation/NrrdTools.ts:876


getIsShowContrastState

getIsShowContrastState(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:908


getKeyboardSettings

getKeyboardSettings(): IKeyBoardSettings

Returns

IKeyBoardSettings

Defined in

src/Utils/segmentation/NrrdTools.ts:606


getLayerOpacity

getLayerOpacity(layerId): number

Parameters

NameType
layerIdstring

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:944


getLayerOpacityMap

getLayerOpacityMap(): Record<string, number>

Returns

Record<string, number>

Defined in

src/Utils/segmentation/NrrdTools.ts:945


getLayerVisibility

getLayerVisibility(): Record<string, boolean>

Returns

Record<string, boolean>

Defined in

src/Utils/segmentation/NrrdTools.ts:930


getMaskData

getMaskData(): IMaskData

Returns

IMaskData

Defined in

src/Utils/segmentation/NrrdTools.ts:868


getMaxSliceNum

getMaxSliceNum(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:884


getMode

getMode(): ToolMode

Returns

ToolMode

Defined in

src/Utils/segmentation/NrrdTools.ts:363


getNrrdToolsSettings

getNrrdToolsSettings(): NrrdState

Returns

NrrdState

Defined in

src/Utils/segmentation/NrrdTools.ts:880


getOpacity

getOpacity(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:381


getPencilColor

getPencilColor(): string

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:471


getSliderMeta

getSliderMeta(key): null | IGuiMeta

Parameters

NameType
keystring

Returns

null | IGuiMeta

Defined in

src/Utils/segmentation/NrrdTools.ts:433


getSpaceOrigin

getSpaceOrigin(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:864


getSphereBrushRadius

getSphereBrushRadius(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:398


getVoxelSpacing

getVoxelSpacing(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:860


hasLayerData

hasLayerData(layerId): boolean

Parameters

NameType
layerIdstring

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:932


init

Private init(): void

A initialise function for nrrd_tools

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:165


initNrrdToolsModules

Private initNrrdToolsModules(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:175


isCalculatorActive

isCalculatorActive(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:373


isChannelVisible

isChannelVisible(layerId, channel): boolean

Parameters

NameType
layerIdstring
channelChannelValue

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:929


isContrastShortcutEnabled

isContrastShortcutEnabled(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:590


isLayerVisible

isLayerVisible(layerId): boolean

Parameters

NameType
layerIdstring

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:927


redo

redo(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:574


redrawDisplayCanvas

redrawDisplayCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:959


redrawMianPreOnDisplayCanvas

redrawMianPreOnDisplayCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:955


refreshSphereOverlay

Private refreshSphereOverlay(): void

Refresh sphere canvas from sphereMaskVolume for the current slice/axis.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1004


reloadMasksFromVolume

Private reloadMasksFromVolume(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:960


removeSkip

removeSkip(index): void

Parameters

NameType
indexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:795


reset

reset(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1061


resetChannelColors

resetChannelColors(layerId?, channel?): void

Parameters

NameType
layerId?string
channel?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:940


resetLayerCanvas

resetLayerCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:954


resetPaintAreaUIPosition

resetPaintAreaUIPosition(l?, t?): void

Parameters

NameType
l?number
t?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:953


resizePaintArea

resizePaintArea(factor): void

Parameters

NameType
factornumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:956


setActiveChannel

setActiveChannel(channel): void

Parameters

NameType
channelChannelValue

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:921


setActiveLayer

setActiveLayer(layerId): void

Parameters

NameType
layerIdstring

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:916


setActiveSphereType

setActiveSphereType(type): void

Parameters

NameType
typeSphereType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:923


setAllLayersChannelColor

setAllLayersChannelColor(channel, color): void

Parameters

NameType
channelnumber
colorRGBAColor

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:939


setAllSlices

setAllSlices(allSlices): void

Parameters

NameType
allSlicesnrrdSliceType[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:966


setBaseDrawDisplayCanvasesSize

setBaseDrawDisplayCanvasesSize(size): void

Set the Draw Display Canvas base size

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:628


setBrushSize

setBrushSize(size): void

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:385


setCalculateDistanceSphere

setCalculateDistanceSphere(x, y, sliceIndex, cal_position): void

Parameters

NameType
xnumber
ynumber
sliceIndexnumber
cal_position"tumour" | "skin" | "nipple" | "ribcage"

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:974


setChannelColor

setChannelColor(layerId, channel, color): void

Parameters

NameType
layerIdstring
channelnumber
colorRGBAColor

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:934


setChannelColors

setChannelColors(layerId, colorMap): void

Parameters

NameType
layerIdstring
colorMapPartial<ChannelColorMap>

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:938


setChannelVisible

setChannelVisible(layerId, channel, visible): void

Parameters

NameType
layerIdstring
channelChannelValue
visibleboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:928


setContrastShortcutEnabled

setContrastShortcutEnabled(enabled): void

Parameters

NameType
enabledboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:586


setDisplaySliceIndexPanel

setDisplaySliceIndexPanel(panel): void

Parameters

NameType
panelHTMLDivElement

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:638


setEmptyCanvasSize

setEmptyCanvasSize(axis?): void

Parameters

NameType
axis?"z" | "y" | "x"

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:958


setEraserUrls

setEraserUrls(urls): void

Parameters

NameType
urlsstring[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:646


setIsDrawFalse

setIsDrawFalse(target): void

Parameters

NameType
targetnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1153


setKeyboardSettings

setKeyboardSettings(settings): void

Parameters

NameType
settingsPartial<IKeyBoardSettings>

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:594


setLayerOpacity

setLayerOpacity(layerId, opacity): void

Parameters

NameType
layerIdstring
opacitynumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:943


setLayerVisible

setLayerVisible(layerId, visible): void

Parameters

NameType
layerIdstring
visibleboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:926


setMainAreaSize

setMainAreaSize(factor): void

Parameters

NameType
factornumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:820


setMasksData

setMasksData(masksData, loadingBar?): void

Parameters

NameType
masksDatastoreExportPaintImageType
loadingBar?loadingBarType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:967


setMasksFromNIfTI

setMasksFromNIfTI(layerVoxels, loadingBar?): void

Parameters

NameType
layerVoxelsMap<string, Uint8Array>
loadingBar?loadingBarType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:968


setMode

setMode(mode): void

Set the current tool mode.

Parameters

NameType
modeToolMode

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:292


setOpacity

setOpacity(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:377


setPencilColor

setPencilColor(hex): void

Parameters

NameType
hexstring

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:467


setPencilIconUrls

setPencilIconUrls(urls): void

Parameters

NameType
urlsstring[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:650


setShowInMainArea

Private setShowInMainArea(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1163


setSliceMoving

setSliceMoving(step): void

Parameters

NameType
stepnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:801


setSliceOrientation

setSliceOrientation(axisTo): void

Switch all contrast slices' orientation

Parameters

NameType
axisTo"z" | "y" | "x"

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:657


setSphereBrushRadius

setSphereBrushRadius(radius): void

Parameters

NameType
radiusnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:394


setSyncsliceNum

setSyncsliceNum(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:952


setWindowHigh

setWindowHigh(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:402


setWindowLow

setWindowLow(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:407


setupGUI

setupGUI(gui): void

Set up GUI for drawing panel

Parameters

NameTypeDescription
guiGUIGUI

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:221


switchAllSlicesArrayData

switchAllSlicesArrayData(allSlices): void

Parameters

NameType
allSlicesnrrdSliceType[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:832


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

NameType
allSlicesnrrdSliceType[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:842


syncGuiParameterSettings

Private syncGuiParameterSettings(): void

Sync guiParameterSettings with current volume metadata.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:277


undo

undo(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:570


updateMouseWheelEvent

updateMouseWheelEvent(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1127


updateOriginAndChangedWH

updateOriginAndChangedWH(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:951


wireDrawCoreMethods

Private wireDrawCoreMethods(): void

Wire DrawToolCore's overridable methods to NrrdTools implementations. This replaces the old inheritance approach.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:145