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

Methods

addSkip

addSkip(index): void

Parameters

NameType
indexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:779


adjustContrast

adjustContrast(type, delta): void

Parameters

NameType
type"windowLow" | "windowHigh"
deltanumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:412


appendLoadingbar

appendLoadingbar(loadingbar): void

Parameters

NameType
loadingbarHTMLDivElement

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:834


clearActiveLayer

clearActiveLayer(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1030


clearDictionary

Private clearDictionary(dic): void

Parameters

NameType
dicISkipSlicesDictType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1150


configMouseSliceWheel

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

Returns

fn

▸ (e): void

Parameters
NameType
eWheelEvent
Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1090


drag

drag(opts?): void

Parameters

NameType
opts?IDragOpts

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:610


draw

draw(opts?): void

Core drawing entry point.

Parameters

NameType
opts?any

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:617


drawCalculatorSphereOnEachViews

drawCalculatorSphereOnEachViews(axis): void

Expose drawCalculatorSphereOnEachViews for external use.

Parameters

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1167


enableContrastDragEvents

enableContrastDragEvents(callback): void

Parameters

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:638


enterKeyboardConfig

enterKeyboardConfig(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:574


enterSphereMode

enterSphereMode(): void

Enter sphere mode.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:994


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


exitKeyboardConfig

exitKeyboardConfig(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:578


exitSphereMode

exitSphereMode(): void

Exit sphere mode.

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1013


finishWindowAdjustment

finishWindowAdjustment(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:408


flipDisplayImageByAxis

flipDisplayImageByAxis(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:940


getActiveChannel

getActiveChannel(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:905


getActiveLayer

getActiveLayer(): string

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:903


getActiveSphereType

getActiveSphereType(): SphereType

Returns

SphereType

Defined in

src/Utils/segmentation/NrrdTools.ts:907


getBrushSize

getBrushSize(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:386


getChannelColor

getChannelColor(layerId, channel): RGBAColor

Parameters

NameType
layerIdstring
channelnumber

Returns

RGBAColor

Defined in

src/Utils/segmentation/NrrdTools.ts:918


getChannelCssColor

getChannelCssColor(layerId, channel): string

Parameters

NameType
layerIdstring
channelnumber

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:920


getChannelHexColor

getChannelHexColor(layerId, channel): string

Parameters

NameType
layerIdstring
channelnumber

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:919


getChannelVisibility

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

Returns

Record<string, Record<number, boolean>>

Defined in

src/Utils/segmentation/NrrdTools.ts:914


getContainer

getContainer(): HTMLElement

Returns

HTMLElement

Defined in

src/Utils/segmentation/NrrdTools.ts:858


getCurrentImageDimension

getCurrentImageDimension(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:842


getCurrentSliceIndex

getCurrentSliceIndex(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:888


getCurrentSlicesNumAndContrastNum

getCurrentSlicesNumAndContrastNum(): Object

Returns

Object

NameType
contrastIndexnumber
currentSliceIndexnumber

Defined in

src/Utils/segmentation/NrrdTools.ts:881


getDrawingCanvas

getDrawingCanvas(): HTMLCanvasElement

Returns

HTMLCanvasElement

Defined in

src/Utils/segmentation/NrrdTools.ts:862


getIsShowContrastState

getIsShowContrastState(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:894


getKeyboardSettings

getKeyboardSettings(): IKeyBoardSettings

Returns

IKeyBoardSettings

Defined in

src/Utils/segmentation/NrrdTools.ts:602


getLayerOpacity

getLayerOpacity(layerId): number

Parameters

NameType
layerIdstring

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:927


getLayerOpacityMap

getLayerOpacityMap(): Record<string, number>

Returns

Record<string, number>

Defined in

src/Utils/segmentation/NrrdTools.ts:928


getLayerVisibility

getLayerVisibility(): Record<string, boolean>

Returns

Record<string, boolean>

Defined in

src/Utils/segmentation/NrrdTools.ts:913


getMaskData

getMaskData(): IMaskData

Returns

IMaskData

Defined in

src/Utils/segmentation/NrrdTools.ts:854


getMaxSliceNum

getMaxSliceNum(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:870


getMode

getMode(): ToolMode

Returns

ToolMode

Defined in

src/Utils/segmentation/NrrdTools.ts:359


getNrrdToolsSettings

getNrrdToolsSettings(): NrrdState

Returns

NrrdState

Defined in

src/Utils/segmentation/NrrdTools.ts:866


getOpacity

getOpacity(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:377


getPencilColor

getPencilColor(): string

Returns

string

Defined in

src/Utils/segmentation/NrrdTools.ts:467


getSliderMeta

getSliderMeta(key): null | IGuiMeta

Parameters

NameType
keystring

Returns

null | IGuiMeta

Defined in

src/Utils/segmentation/NrrdTools.ts:429


getSpaceOrigin

getSpaceOrigin(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:850


getSphereBrushRadius

getSphereBrushRadius(): number

Returns

number

Defined in

src/Utils/segmentation/NrrdTools.ts:394


getVoxelSpacing

getVoxelSpacing(): number[]

Returns

number[]

Defined in

src/Utils/segmentation/NrrdTools.ts:846


hasLayerData

hasLayerData(layerId): boolean

Parameters

NameType
layerIdstring

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:915


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


isChannelVisible

isChannelVisible(layerId, channel): boolean

Parameters

NameType
layerIdstring
channelChannelValue

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:912


isContrastShortcutEnabled

isContrastShortcutEnabled(): boolean

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:586


isLayerVisible

isLayerVisible(layerId): boolean

Parameters

NameType
layerIdstring

Returns

boolean

Defined in

src/Utils/segmentation/NrrdTools.ts:910


redo

redo(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:570


redrawDisplayCanvas

redrawDisplayCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:942


redrawMianPreOnDisplayCanvas

redrawMianPreOnDisplayCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:938


refreshSphereOverlay

Private refreshSphereOverlay(): void

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:987


reloadMasksFromVolume

Private reloadMasksFromVolume(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:943


removeSkip

removeSkip(index): void

Parameters

NameType
indexnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:791


reset

reset(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1044


resetChannelColors

resetChannelColors(layerId?, channel?): void

Parameters

NameType
layerId?string
channel?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:923


resetLayerCanvas

resetLayerCanvas(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:937


resetPaintAreaUIPosition

resetPaintAreaUIPosition(l?, t?): void

Parameters

NameType
l?number
t?number

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:936


resizePaintArea

resizePaintArea(factor): void

Parameters

NameType
factornumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:939


setActiveChannel

setActiveChannel(channel): void

Parameters

NameType
channelChannelValue

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:904


setActiveLayer

setActiveLayer(layerId): void

Parameters

NameType
layerIdstring

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:902


setActiveSphereType

setActiveSphereType(type): void

Parameters

NameType
typeSphereType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:906


setAllLayersChannelColor

setAllLayersChannelColor(channel, color): void

Parameters

NameType
channelnumber
colorRGBAColor

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:922


setAllSlices

setAllSlices(allSlices): void

Parameters

NameType
allSlicesnrrdSliceType[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:949


setBaseDrawDisplayCanvasesSize

setBaseDrawDisplayCanvasesSize(size): void

Set the Draw Display Canvas base size

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:624


setBrushSize

setBrushSize(size): void

Parameters

NameType
sizenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:381


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


setChannelColor

setChannelColor(layerId, channel, color): void

Parameters

NameType
layerIdstring
channelnumber
colorRGBAColor

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:917


setChannelColors

setChannelColors(layerId, colorMap): void

Parameters

NameType
layerIdstring
colorMapPartial<ChannelColorMap>

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:921


setChannelVisible

setChannelVisible(layerId, channel, visible): void

Parameters

NameType
layerIdstring
channelChannelValue
visibleboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:911


setContrastShortcutEnabled

setContrastShortcutEnabled(enabled): void

Parameters

NameType
enabledboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:582


setDisplaySliceIndexPanel

setDisplaySliceIndexPanel(panel): void

Parameters

NameType
panelHTMLDivElement

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:634


setEmptyCanvasSize

setEmptyCanvasSize(axis?): void

Parameters

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:941


setEraserUrls

setEraserUrls(urls): void

Parameters

NameType
urlsstring[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:642


setIsDrawFalse

setIsDrawFalse(target): void

Parameters

NameType
targetnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1136


setKeyboardSettings

setKeyboardSettings(settings): void

Parameters

NameType
settingsPartial<IKeyBoardSettings>

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:590


setLayerOpacity

setLayerOpacity(layerId, opacity): void

Parameters

NameType
layerIdstring
opacitynumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:926


setLayerVisible

setLayerVisible(layerId, visible): void

Parameters

NameType
layerIdstring
visibleboolean

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:909


setMainAreaSize

setMainAreaSize(factor): void

Parameters

NameType
factornumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:816


setMasksData

setMasksData(masksData, loadingBar?): void

Parameters

NameType
masksDatastoreExportPaintImageType
loadingBar?loadingBarType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:950


setMasksFromNIfTI

setMasksFromNIfTI(layerVoxels, loadingBar?): void

Parameters

NameType
layerVoxelsMap<string, Uint8Array>
loadingBar?loadingBarType

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:951


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


setPencilColor

setPencilColor(hex): void

Parameters

NameType
hexstring

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:463


setPencilIconUrls

setPencilIconUrls(urls): void

Parameters

NameType
urlsstring[]

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:646


setShowInMainArea

Private setShowInMainArea(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1146


setSliceMoving

setSliceMoving(step): void

Parameters

NameType
stepnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:797


setSliceOrientation

setSliceOrientation(axisTo): void

Switch all contrast slices' orientation

Parameters

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

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:653


setSphereBrushRadius

setSphereBrushRadius(radius): void

Parameters

NameType
radiusnumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:390


setSyncsliceNum

setSyncsliceNum(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:935


setWindowHigh

setWindowHigh(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:398


setWindowLow

setWindowLow(value): void

Parameters

NameType
valuenumber

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:403


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


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


updateMouseWheelEvent

updateMouseWheelEvent(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:1110


updateOriginAndChangedWH

updateOriginAndChangedWH(): void

Returns

void

Defined in

src/Utils/segmentation/NrrdTools.ts:934


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