Skip to main content

Class: BrushTool

Extends

Constructors

new BrushTool()

new BrushTool(toolProps, defaultToolProps): BrushTool

Parameters

toolProps: PublicToolProps = {}

defaultToolProps: SharedToolProp = ...

Returns

BrushTool

Overrides

LabelmapBaseTool.constructor

Defined in

tools/src/tools/segmentation/BrushTool.ts:53

Properties

_editData

protected _editData: object

imageId?

optional imageId: string

imageIds?

optional imageIds: string[]

override

override: object

override.imageData

imageData: vtkImageData

override.voxelManager

voxelManager: IVoxelManager<number>

referencedVolumeId?

optional referencedVolumeId: string

segmentsLocked

segmentsLocked: number[]

volumeId?

optional volumeId: string

Inherited from

LabelmapBaseTool._editData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:99


_hoverData?

protected optional _hoverData: object

brushCursor

brushCursor: any

centerCanvas?

optional centerCanvas: number[]

segmentationId

segmentationId: string

segmentColor

segmentColor: [number, number, number, number]

segmentIndex

segmentIndex: number

viewport

viewport: Viewport

viewportIdsToRender

viewportIdsToRender: string[]

Inherited from

LabelmapBaseTool._hoverData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:118


acceptedMemoIds

protected acceptedMemoIds: Map<string, object>

Inherited from

LabelmapBaseTool.acceptedMemoIds

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:152


centerSegmentIndexInfo

protected centerSegmentIndexInfo: object

changedIndices

changedIndices: number[]

hasPreviewIndex

hasPreviewIndex: boolean

hasSegmentIndex

hasSegmentIndex: boolean

segmentIndex

segmentIndex: number

Inherited from

LabelmapBaseTool.centerSegmentIndexInfo

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:111


configuration

configuration: Record<string, any>

The configuration for this tool. IBaseTool contains some default configuration values, and you can use configurationTyped to get the typed version of this.

Inherited from

LabelmapBaseTool.configuration

Defined in

tools/src/tools/base/BaseTool.ts:111


editData?

protected optional editData: object

In-progress draw state. Declared here only with the members the shared touch-cancellation path needs; the drawing tools narrow it to their own (richer) shape.

viewportIdsToRender?

optional viewportIdsToRender: string[]

Inherited from

LabelmapBaseTool.editData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:149


handlesMultiTouchGestures

handlesMultiTouchGestures: boolean = false

Whether this tool implements its own handling for touch points that arrive after a gesture has already started.

When false (the default), an extra finger during an in-progress gesture releases the tool through cancel() so the gesture can re-resolve to the tool bound to the new finger count - normally pinch zoom or multi-finger scroll. See releaseToolForMultiTouchGesture.

Multi-part tools set this to true: cancelling them would discard points the user has already placed, and they instead ignore the extra finger for the duration of the gesture. Declaring it also keeps the manipulation tools reachable, since the dispatcher bypasses the interaction guard for such tools rather than clearing it.

Inherited from

LabelmapBaseTool.handlesMultiTouchGestures

Defined in

tools/src/tools/base/BaseTool.ts:104


isDrawing?

protected optional isDrawing: boolean

Whether a draw loop is currently in progress. Declared here so the shared touch-cancellation path can reason about it; the drawing tools narrow it.

Inherited from

LabelmapBaseTool.isDrawing

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:142


isPrimary

isPrimary: boolean = false

Primary tool - this is set to true when this tool is primary

Inherited from

LabelmapBaseTool.isPrimary

Defined in

tools/src/tools/base/BaseTool.ts:121


memo

protected memo: LabelmapMemo

A memo recording the starting state of a tool. This will be updated as changes are made, and reflects the fact that a memo has been created.

Inherited from

LabelmapBaseTool.memo

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:156


memoMap

protected memoMap: Map<string, LabelmapMemo>

Inherited from

LabelmapBaseTool.memoMap

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:151


mode

mode: ToolModes

Tool Mode - Active/Passive/Enabled/Disabled/

Inherited from

LabelmapBaseTool.mode

Defined in

tools/src/tools/base/BaseTool.ts:119


supportedInteractionTypes

supportedInteractionTypes: InteractionTypes[]

Supported Interaction Types - currently only Mouse

Inherited from

LabelmapBaseTool.supportedInteractionTypes

Defined in

tools/src/tools/base/BaseTool.ts:87


toolGroupId

toolGroupId: string

ToolGroup ID the tool instance belongs to

Inherited from

LabelmapBaseTool.toolGroupId

Defined in

tools/src/tools/base/BaseTool.ts:117


activeCursorTool

static activeCursorTool: any

Set to the tool that is currently drawing the active cursor. This will be either primary mouse button tool if no tool is currently being directly interacted with, OR the tool that is directly interacted with. This logic ensures that there is only a single tool at a time drawing, which prevents tools not getting mouse updates from over-writing the cursor.

  • If the tool bound to the primary button is a cursor drawing tool, use that tool and there is NOT a tool currently drawing directly
  • If there is a tool currently drawing directly, then that tool should display a cursor EVEN if it normally doesn't have a custom cursor
  • When a tool finishes drawing direct, it should stop being the active cursor tool unless it is also the primary tool

Inherited from

LabelmapBaseTool.activeCursorTool

Defined in

tools/src/tools/base/BaseTool.ts:54


defaults

static defaults: object

Has the defaults associated with the base tool.

configuration

configuration: object

configuration.activeStrategy

activeStrategy: any = undefined

configuration.defaultStrategy

defaultStrategy: any = undefined

configuration.strategies

strategies: object = {}

configuration.strategyOptions

strategyOptions: object = {}

Inherited from

LabelmapBaseTool.defaults

Defined in

tools/src/tools/base/BaseTool.ts:132


MOUSE_PROXIMITY

readonly static MOUSE_PROXIMITY: 6

Canvas-pixel radius used to hit-test annotations and handles for mouse interactions.

Inherited from

LabelmapBaseTool.MOUSE_PROXIMITY

Defined in

tools/src/tools/base/BaseTool.ts:69


previewData?

static optional previewData: PreviewData

Inherited from

LabelmapBaseTool.previewData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:129


toolName

static toolName: any

Overrides

LabelmapBaseTool.toolName

Defined in

tools/src/tools/segmentation/BrushTool.ts:41


TOUCH_PROXIMITY

readonly static TOUCH_PROXIMITY: 36

Canvas-pixel radius used to hit-test annotations and handles for touch interactions. A fingertip covers far more screen than a cursor hotspot, so touch targets are much larger than BaseTool.MOUSE_PROXIMITY. Tools that need to widen an in-draw target for touch should use this rather than restating the number.

Inherited from

LabelmapBaseTool.TOUCH_PROXIMITY

Defined in

tools/src/tools/base/BaseTool.ts:63


TOUCH_TAP_MAX_CANVAS_DISTANCE

readonly static TOUCH_TAP_MAX_CANVAS_DISTANCE: 24

Maximum canvas-pixel distance a gesture may travel and still be counted as a tap by the touch start listener. Tools that commit a gesture on TOUCH_END need this to recognize the trailing TOUCH_TAP echo.

Inherited from

LabelmapBaseTool.TOUCH_TAP_MAX_CANVAS_DISTANCE

Defined in

tools/src/tools/base/BaseTool.ts:76


TOUCH_TAP_TOLERANCE_MS

readonly static TOUCH_TAP_TOLERANCE_MS: 300

Window in milliseconds within which successive taps are aggregated into a single multi-tap TOUCH_TAP. The tap is emitted one tolerance after the chain's last touchend.

Inherited from

LabelmapBaseTool.TOUCH_TAP_TOLERANCE_MS

Defined in

tools/src/tools/base/BaseTool.ts:84

Accessors

_previewData

get protected _previewData(): PreviewData

Returns

PreviewData

Inherited from

LabelmapBaseTool._previewData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:241


configurationTyped

get configurationTyped(): ToolConfiguration

Returns

ToolConfiguration

Inherited from

LabelmapBaseTool.configurationTyped

Defined in

tools/src/tools/base/BaseTool.ts:112


toolName

get toolName(): string

Newer method for getting the tool name as a property

Returns

string

Inherited from

LabelmapBaseTool.toolName

Defined in

tools/src/tools/base/BaseTool.ts:205

Methods

_cancelTouchDraw()

protected _cancelTouchDraw(element): void

Cancels an in-progress touch stroke: rolls back the voxel writes recorded so far and tears the draw loop down, so a gesture that turns out to be multi-finger does not leave paint behind. The memo is committed only to materialize its undo state and is discarded without reaching the history stack.

Overrides the base teardown rather than extending it: a brush stroke has already written to the labelmap, and the preview/lazy-edit state has no counterpart on the scissors tools.

Parameters

element: HTMLDivElement

Returns

void

Overrides

LabelmapBaseTool._cancelTouchDraw

Defined in

tools/src/tools/segmentation/BrushTool.ts:588


_historyRedoHandler()

protected _historyRedoHandler(evt): void

Parameters

evt: any

Returns

void

Inherited from

LabelmapBaseTool._historyRedoHandler

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:202


_isTouchInteraction()

protected _isTouchInteraction(evt?): boolean

Whether an interaction event came in through the touch pipeline rather than the mouse pipeline.

Note this is a property of the gesture, not of the device: hybrid hardware (touchscreen laptops, tablets with a mouse attached) delivers both, so tools must branch on the event rather than on a device probe such as isMobile().

Parameters

evt?: InteractionEventType

The interaction event, or undefined when a caller has no event to attribute (treated as not-touch).

Returns

boolean

Inherited from

LabelmapBaseTool._isTouchInteraction

Defined in

tools/src/tools/base/BaseTool.ts:316


acceptPreview()

acceptPreview(element): void

Accepts a preview, marking it as the active segment.

Parameters

element: HTMLDivElement = ...

Returns

void

Overrides

LabelmapBaseTool.acceptPreview

Defined in

tools/src/tools/segmentation/BrushTool.ts:761


addPreview()

addPreview(element, options?): any

Adds a preview that can be filled with data.

Parameters

element: HTMLDivElement = ...

options?

options.acceptReject?: boolean

Returns

any

Inherited from

LabelmapBaseTool.addPreview

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:547


applyActiveStrategy()

applyActiveStrategy(enabledElement, operationData): any

Applies the active strategy function to the enabled element with the specified operation data.

Parameters

enabledElement: IEnabledElement

The element that is being operated on.

operationData: unknown

The data that needs to be passed to the strategy.

Returns

any

The result of the strategy.

Inherited from

LabelmapBaseTool.applyActiveStrategy

Defined in

tools/src/tools/base/BaseTool.ts:225


applyActiveStrategyCallback()

applyActiveStrategyCallback(enabledElement, operationData, callbackType, ...extraArgs): any

Applies the active strategy, with a given event type being applied. The event type function is found by indexing it on the active strategy function.

Parameters

enabledElement: IEnabledElement

The element that is being operated on.

operationData: unknown

The data that needs to be passed to the strategy.

callbackType: string

the type of the callback

• ...extraArgs: any[]

Returns

any

The result of the strategy.

Inherited from

LabelmapBaseTool.applyActiveStrategyCallback

Defined in

tools/src/tools/base/BaseTool.ts:249


createEditData()

protected createEditData(element): EditDataReturnType

Parameters

element: any

Returns

EditDataReturnType

Inherited from

LabelmapBaseTool.createEditData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:303


createHoverData()

protected createHoverData(element, centerCanvas?): object

Parameters

element: any

centerCanvas?: any

Returns

object

brushCursor

brushCursor: object

brushCursor.data

data: object = {}

brushCursor.metadata

metadata: object

brushCursor.metadata.FrameOfReferenceUID

FrameOfReferenceUID: string

brushCursor.metadata.referencedImageId

referencedImageId: string = ''

brushCursor.metadata.segmentColor

segmentColor: Color

brushCursor.metadata.toolName

toolName: string

brushCursor.metadata.viewPlaneNormal

viewPlaneNormal: Point3

brushCursor.metadata.viewUp

viewUp: Point3

centerCanvas

centerCanvas: any

segmentationId

segmentationId: string

segmentColor

segmentColor: Color

segmentIndex

segmentIndex: number

viewport

viewport: StackViewport | VolumeViewport

viewportIdsToRender

viewportIdsToRender: string[]

Inherited from

LabelmapBaseTool.createHoverData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:409


createMemo()

createMemo(segmentationId, segmentationVoxelManager): LabelmapMemo

Creates a labelmap memo instance, which stores the changes made to the labelmap rather than the initial state.

Parameters

segmentationId: string

segmentationVoxelManager: any

Returns

LabelmapMemo

Inherited from

LabelmapBaseTool.createMemo

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:270


doneEditMemo()

doneEditMemo(): void

This clears and edit memo storage to allow for further history functions to be called. Calls the complete function if present, and pushes the memo to the history memo stack.

This should be called when a tool has finished making a change which should be separated from future/other changes in terms of the history. Usually that means on endCallback (mouse up), but some tools also make changes on the initial creation of an object or have alternate flows and the doneEditMemo has to be called on mouse down or other initiation events to ensure that new changes are correctly recorded.

If the tool has no end callback, then the doneEditMemo is called from the pre mouse down callback. See ZoomTool for an example of this usage.

Returns

void

Inherited from

LabelmapBaseTool.doneEditMemo

Defined in

tools/src/tools/base/BaseTool.ts:771


ensureCachedStatsTargets()

protected ensureCachedStatsTargets(data, targetIds, needsUpdate?): boolean

Ensures a cachedStats entry exists for every measurement target, so that the tool stats calculators (which iterate the cachedStats keys) compute statistics for each of them. This is what allows a single fusion viewport to compute the statistics of several display sets at once, even when no other viewport has computed them.

Parameters

data: AnnotationData

the annotation data containing the cachedStats

targetIds: string[]

the targets to seed (see getMeasurementTargets)

needsUpdate?

optional test flagging an existing entry as incomplete (eg hydrated annotations missing units) and needing to be recalculated

Returns

boolean

true if any entry was added or flagged, meaning the stats need to be (re)calculated

Inherited from

LabelmapBaseTool.ensureCachedStatsTargets

Defined in

tools/src/tools/base/BaseTool.ts:688


getActiveSegmentationData()

protected getActiveSegmentationData(viewport): object

Parameters

viewport: any

Returns

object

segmentationId

segmentationId: string

segmentColor

segmentColor: Color

segmentIndex

segmentIndex: number

Inherited from

LabelmapBaseTool.getActiveSegmentationData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:455


getEditData()

protected getEditData(__namedParameters): EditDataReturnType

Parameters

__namedParameters

__namedParameters.representationData: any

__namedParameters.segmentationId: any

__namedParameters.segmentsLocked: any

__namedParameters.viewport: any

Returns

EditDataReturnType

Inherited from

LabelmapBaseTool.getEditData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:328


getMeasurementTargetCandidates()

protected getMeasurementTargetCandidates(viewport, data?): MeasurementTargetCandidate[]

Builds the list of candidate measurement targets for the given viewport: one per volume actor being displayed (including segmentation representations, which carry a representationUID and are excluded by the default filter rather than skipped here), falling back to a single candidate for the default view reference when there are none. The candidates are what the targetsFilter tool configuration chooses from - each carries the display set related parameters (display set, uid, exemplar instance and index) where they are known.

The candidate modality is taken from the display set where available - the exemplar instance or volume metadata for volume backed candidates, or the registered display set of the viewport for the fallback candidate. When the display set is unknown (eg a stack viewport using the legacy set image ids), the candidate has none of the display set fields, and filters can choose whether to include it based on that.

When the annotation already has a cachedStats entry for a candidate's volume (possibly created by another viewport with a different view reference), the existing key is reused as the targetId so statistics are shared rather than recomputed per view.

Parameters

viewport: Viewport

data?: AnnotationData

Returns

MeasurementTargetCandidate[]

Inherited from

LabelmapBaseTool.getMeasurementTargetCandidates

Defined in

tools/src/tools/base/BaseTool.ts:498


getMeasurementTargets()

protected getMeasurementTargets(viewport, data?): string[]

Gets the array of targetIds the tool should compute and display measurement statistics for on the given viewport.

The targets are selected by the targetsFilter tool configuration option (see measurementTargetFilters for ready made filters). The filter receives the viewport's candidate display sets and the viewport, and returns the subset to measure.

Each returned targetId reuses an existing cachedStats key when statistics were already computed for the same volume (possibly by a different viewport), and is otherwise the view reference id of this viewport for that volume - so a single fusion viewport can seed and compute the statistics of every filtered target itself, even when no other viewport has computed them.

A configured filter's result is authoritative: when it returns no candidates (eg a PT-only filter on a CT viewport, or the default allPixelData filter when only a SEG is shown), an empty array is returned and no statistics are computed or displayed.

The deprecated isPreferredTargetId configuration is honoured before the filter, so existing configurations keep their behaviour. When neither selects anything and no filter is configured, the viewport's default view reference id is the single target.

Multi-target selection only works for volumes displayed on screen

TODO: Fix this for other fusion types on stack and also for inclusion of annotation measurements which are not currently on screen.

Parameters

viewport: Viewport

data?: AnnotationData

Returns

string[]

Inherited from

LabelmapBaseTool.getMeasurementTargets

Defined in

tools/src/tools/base/BaseTool.ts:435


getOperationData()

protected getOperationData(element?): ModifiedLabelmapToolOperationData

Parameters

element?: any

Returns

ModifiedLabelmapToolOperationData

Inherited from

LabelmapBaseTool.getOperationData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:483


getStatistics()

getStatistics(element, segmentIndices?): any

Parameters

element: any

segmentIndices?: any

Returns

any

Defined in

tools/src/tools/segmentation/BrushTool.ts:708


getTargetId()

protected getTargetId(viewport, data?): string

Get the target Id for the viewport which will be used to store the cached statistics scoped to that target in the annotations. For StackViewport, targetId is usually derived from the imageId. For VolumeViewport, it's derived from the volumeId.

This is the primary (first) entry of getMeasurementTargets, so it honours the targetsFilter tool configuration - configuring, for example, measurementTargetFilters.forModality('PT') makes the PT volume of a fusion viewport the target the statistics are stored/read for.

Parameters

viewport: Viewport

viewport to get the targetId for

data?: AnnotationData

Optional: The annotation's data object, containing cachedStats.

Returns

string

targetId, or undefined when a configured filter selects no targets for this viewport

Inherited from

LabelmapBaseTool.getTargetId

Defined in

tools/src/tools/base/BaseTool.ts:397


getTargetImageData()

protected getTargetImageData(targetId): IImageData | CPUIImageData

Parameters

targetId: string

Returns

IImageData | CPUIImageData

Inherited from

LabelmapBaseTool.getTargetImageData

Defined in

tools/src/tools/base/BaseTool.ts:330


getToolName()

getToolName(): string

Returns the name of the tool

Returns

string

The name of the tool.

Inherited from

LabelmapBaseTool.getToolName

Defined in

tools/src/tools/base/BaseTool.ts:213


hasPreviewData()

hasPreviewData(): boolean

Checks if the tool has a preview data associated.

Returns

boolean

True if the tool has preview data, false otherwise.

Inherited from

LabelmapBaseTool.hasPreviewData

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:249


interpolate()

interpolate(element, config): void

Performs interpolation on the active segment index

Parameters

element: any

config: any

Returns

void

Defined in

tools/src/tools/segmentation/BrushTool.ts:773


invalidateBrushCursor()

invalidateBrushCursor(): void

Returns

void

Defined in

tools/src/tools/segmentation/BrushTool.ts:855


mouseMoveCallback()

mouseMoveCallback(evt): void

This call will be made when the mouse moves and the tool is active, but not actually drawing at the moment. The behavior is:

  1. Update the cursor
  2. Call the active strategy event 'preview' and 'rejectPreview' on the mouse cursor position on a periodic basis to create a preview when configured to do so.

The preview will be shown after the mouse has been stationary for 250 ms. Any preview will be cancelled (immediately) after moving outside the center distance. As well, if the mouse moves but stays inside the center area for 250 ms, then the cancel will happen with a new preview being added.

See mouse up details for how the preview gets accepted.

The preview also needs to be cancelled on changing tools.

Parameters

evt: InteractionEventType

Returns

void

Defined in

tools/src/tools/segmentation/BrushTool.ts:344


onSetToolDisabled()

onSetToolDisabled(_evt): void

Parameters

_evt: any

Returns

void

Defined in

tools/src/tools/segmentation/BrushTool.ts:182


onSetToolEnabled()

onSetToolEnabled(): void

Returns

void

Defined in

tools/src/tools/segmentation/BrushTool.ts:178


onSetToolPassive()

onSetToolPassive(_evt): void

Parameters

_evt: any

Returns

void

Defined in

tools/src/tools/segmentation/BrushTool.ts:174


preMouseDownCallback()

preMouseDownCallback(evt): boolean

Parameters

evt: MouseDownActivateEventType

Returns

boolean

Defined in

tools/src/tools/segmentation/BrushTool.ts:246


previewCallback()

previewCallback(): void

Returns

void

Defined in

tools/src/tools/segmentation/BrushTool.ts:390


redo()

redo(): void

Redo an action (undo the undo)

Returns

void

Inherited from

LabelmapBaseTool.redo

Defined in

tools/src/tools/base/BaseTool.ts:718


rejectPreview()

rejectPreview(element): void

Cancels any preview view being shown, resetting any segments being shown.

Parameters

element: HTMLDivElement = ...

Returns

void

Overrides

LabelmapBaseTool.rejectPreview

Defined in

tools/src/tools/segmentation/BrushTool.ts:732


renderAnnotation()

renderAnnotation(enabledElement, svgDrawingHelper): void

Parameters

enabledElement: IEnabledElement

svgDrawingHelper: SVGDrawingHelper

Returns

void

Defined in

tools/src/tools/segmentation/BrushTool.ts:870


setActiveStrategy()

setActiveStrategy(strategyName): void

Sets the active strategy for a tool. Strategies are multiple implementations of tool behavior that can be switched by tool configuration.

Parameters

strategyName: string

name of the strategy to be set as active

Returns

void

Inherited from

LabelmapBaseTool.setActiveStrategy

Defined in

tools/src/tools/base/BaseTool.ts:290


setConfiguration()

setConfiguration(newConfiguration): void

merges the new configuration with the tool configuration

Parameters

newConfiguration: Record<string, any>

Returns

void

Inherited from

LabelmapBaseTool.setConfiguration

Defined in

tools/src/tools/base/BaseTool.ts:276


shouldResolvePreviewRequests()

shouldResolvePreviewRequests(): boolean

Checks if the tool should resolve preview requests. This is used to determine if the tool is in a state where it can handle preview requests.

Returns

boolean

True if the tool should resolve preview requests, false otherwise.

Inherited from

LabelmapBaseTool.shouldResolvePreviewRequests

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:259


undo()

undo(): void

Undoes an action

Returns

void

Inherited from

LabelmapBaseTool.undo

Defined in

tools/src/tools/base/BaseTool.ts:708


updateCursor()

protected updateCursor(evt): void

Updates the cursor position and whether it is showing or not. Can be over-ridden to add more cursor details or a preview.

Parameters

evt: InteractionEventType

Returns

void

Defined in

tools/src/tools/segmentation/BrushTool.ts:445


calculateLengthInIndex()

static calculateLengthInIndex(calibrate, indexPoints, closed): number

Calculates the length between two index coordinates using the calibrate information for scaling information.

Parameters

calibrate: any

indexPoints: any

closed: boolean = false

set to true to calculate the closed length, including the line between the first/last index

Returns

number

Inherited from

LabelmapBaseTool.calculateLengthInIndex

Defined in

tools/src/tools/base/BaseTool.ts:794


createZoomPanMemo()

static createZoomPanMemo(viewport): object

Creates a zoom/pan memo that remembers the original zoom/pan position for the given viewport.

Parameters

viewport: any

Returns

object

restoreMemo()

restoreMemo: () => void

Returns

void

Inherited from

LabelmapBaseTool.createZoomPanMemo

Defined in

tools/src/tools/base/BaseTool.ts:726


endGroupRecording()

static endGroupRecording(): void

Ends a group recording of history memo

Returns

void

Inherited from

LabelmapBaseTool.endGroupRecording

Defined in

tools/src/tools/base/BaseTool.ts:784


findCachedStatsTargetId()

protected static findCachedStatsTargetId(data, referencedId): string

Finds an existing cachedStats key for the given referenced volume id, if statistics were already computed for that volume - the keys are view reference ids of the form volumeId:<volumeId>?..., so entries created by other viewports (with a different slice/orientation) still match.

Parameters

data: AnnotationData

referencedId: string

Returns

string

Inherited from

LabelmapBaseTool.findCachedStatsTargetId

Defined in

tools/src/tools/base/BaseTool.ts:660


getExemplarInstance()

protected static getExemplarInstance(imageIds?): Record<string, unknown>

Resolves an exemplar (first) instance - naturalized DICOM metadata - from the image ids of a display set/volume, when available.

Parameters

imageIds?: string[]

Returns

Record<string, unknown>

Inherited from

LabelmapBaseTool.getExemplarInstance

Defined in

tools/src/tools/base/BaseTool.ts:643


getViewportDisplaySets()

protected static getViewportDisplaySets(viewport): object[]

Resolves the display sets a viewport is displaying, when known. Viewports displaying registered display sets (see setDisplaySets on the generic viewports) resolve through the displaySetModule metadata (an IDisplaySet from @cornerstonejs/metadata) falling back to the generic viewport display set registration; legacy viewports (setStack with plain image ids) have no display set, so an empty list is returned and their candidates carry no display set fields.

Parameters

viewport: Viewport

Returns

object[]

Inherited from

LabelmapBaseTool.getViewportDisplaySets

Defined in

tools/src/tools/base/BaseTool.ts:572


isInsideVolume()

static isInsideVolume(dimensions, indexPoints): boolean

Return true if all the index points are within the dimensions provided.

Parameters

dimensions: any

indexPoints: any

Returns

boolean

Inherited from

LabelmapBaseTool.isInsideVolume

Defined in

tools/src/tools/base/BaseTool.ts:816


isSpecifiedTargetId()

static isSpecifiedTargetId(desiredVolumeId): (_viewport, __namedParameters) => any

A function generator to test if the target id is the desired one. Used for deciding which set of cached stats is appropriate to display for a given viewport.

This relies on the fact that the target id contains a substring which is the desired volume id when the target is a volume. It is also possible to use series query parameters such as /series/{seriesUID}/ to generate specific series selections within a stack viewport.

Parameters

desiredVolumeId: string

Returns

Function

Parameters

_viewport: any

__namedParameters

__namedParameters.targetId: any

Returns

any

Deprecated

Use the targetsFilter configuration option with measurementTargetFilters.forId instead.

Inherited from

LabelmapBaseTool.isSpecifiedTargetId

Defined in

tools/src/tools/base/BaseTool.ts:191


mergeDefaultProps()

static mergeDefaultProps(defaultProps, additionalProps?): any

Does a deep merge of property options. Allows extending the default values for a child class.

Parameters

defaultProps = {}

this is a base set of defaults to merge into

additionalProps?: any

the additional properties to merge into the default props

Returns

any

defaultProps if additional props not defined, or a merge into a new object containing additionalProps adding onto and overriding defaultProps.

Inherited from

LabelmapBaseTool.mergeDefaultProps

Defined in

tools/src/tools/base/BaseTool.ts:171


startGroupRecording()

static startGroupRecording(): void

Starts a group recording of history memo, so that with a single undo you can undo multiple actions that are related to each other

Returns

void

Inherited from

LabelmapBaseTool.startGroupRecording

Defined in

tools/src/tools/base/BaseTool.ts:779


viewportContoursToLabelmap()

static viewportContoursToLabelmap(viewport, options?): void

This function converts contours on this view into labelmap data, using the handle[0] state

Parameters

viewport: Viewport

options?

options.removeContours?: boolean

Returns

void

Inherited from

LabelmapBaseTool.viewportContoursToLabelmap

Defined in

tools/src/tools/segmentation/LabelmapBaseTool.ts:647