Skip to main content

Class: SphereScissorsTool

Tool for manipulating segmentation data by drawing a sphere in 3d space. It acts on the active Segmentation on the viewport (enabled element) and requires an active segmentation to be already present. By default it will use the activeSegmentIndex for the segmentation to modify. You can use SegmentationModule to set the active segmentation and segmentIndex. Todo: sphere scissor has some memory problem which lead to ui blocking behavior that needs to be fixed.

Extends

Constructors

new SphereScissorsTool()

new SphereScissorsTool(toolProps, defaultToolProps): SphereScissorsTool

Parameters

toolProps: PublicToolProps = {}

defaultToolProps: SharedToolProp = ...

Returns

SphereScissorsTool

Overrides

LabelmapBaseTool.constructor

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:71

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


_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:77


configuration

configuration: Record<string, any>

Inherited from

LabelmapBaseTool.configuration

Defined in

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


editData

editData: object

annotation

annotation: Annotation

centerCanvas?

optional centerCanvas: number[]

handleIndex?

optional handleIndex: number

hasMoved?

optional hasMoved: boolean

imageId

imageId: string

movingTextBox

movingTextBox: boolean

newAnnotation?

optional newAnnotation: boolean

referencedVolumeId

referencedVolumeId: string

segmentationId

segmentationId: string

segmentColor

segmentColor: [number, number, number, number]

segmentIndex

segmentIndex: number

segmentsLocked

segmentsLocked: number[]

toolGroupId

toolGroupId: string

viewportIdsToRender

viewportIdsToRender: string[]

volumeId

volumeId: string

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:48


isDrawing

isDrawing: boolean

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:68


isHandleOutsideImage

isHandleOutsideImage: boolean

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:69


memo

protected memo: Memo

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/base/BaseTool.ts:28


mode

mode: ToolModes

Tool Mode - Active/Passive/Enabled/Disabled/

Inherited from

LabelmapBaseTool.mode

Defined in

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


supportedInteractionTypes

supportedInteractionTypes: InteractionTypes[]

Supported Interaction Types - currently only Mouse

Inherited from

LabelmapBaseTool.supportedInteractionTypes

Defined in

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


toolGroupId

toolGroupId: string

ToolGroup ID the tool instance belongs to

Inherited from

LabelmapBaseTool.toolGroupId

Defined in

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


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


previewData?

static optional previewData: PreviewData

Inherited from

LabelmapBaseTool.previewData

Defined in

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


toolName

static toolName: any

Overrides

LabelmapBaseTool.toolName

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:47

Accessors

_previewData

get protected _previewData(): PreviewData

Returns

PreviewData

Inherited from

LabelmapBaseTool._previewData

Defined in

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


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

Methods

_activateDraw()

_activateDraw(element): void

Add event handlers for the modify event loop, and prevent default event propagation.

Parameters

element: any

Returns

void

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:308


_deactivateDraw()

_deactivateDraw(element): void

Add event handlers for the modify event loop, and prevent default event prapogation.

Parameters

element: any

Returns

void

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:322


_dragCallback()

_dragCallback(evt): void

Parameters

evt: InteractionEventType

Returns

void

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:216


_endCallback()

_endCallback(evt): void

Parameters

evt: InteractionEventType

Returns

void

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:262


acceptPreview()

acceptPreview(element): void

Accepts a preview, marking it as the active segment.

Parameters

element: HTMLDivElement = ...

Returns

void

Inherited from

LabelmapBaseTool.acceptPreview

Defined in

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


addPreview()

addPreview(element, options?): unknown

Adds a preview that can be filled with data.

Parameters

element: HTMLDivElement = ...

options?

options.acceptReject?: boolean

Returns

unknown

Inherited from

LabelmapBaseTool.addPreview

Defined in

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


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


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


createEditData()

createEditData(element): object | object | object

Parameters

element: any

Returns

object | object | object

Inherited from

LabelmapBaseTool.createEditData

Defined in

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


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


createMemo()

createMemo(segmentId, segmentationVoxelManager, preview): LabelmapMemo

Creates a labelmap memo instance, which is a partially created memo object that stores the changes made to the labelmap rather than the initial state. This memo is then committed once done so that the

Parameters

segmentId: string

segmentationVoxelManager: any

preview: any

Returns

LabelmapMemo

Inherited from

LabelmapBaseTool.createMemo

Defined in

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


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


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


getOperationData()

protected getOperationData(element?): object | object | object | object

Parameters

element?: any

Returns

object | object | object | object

Inherited from

LabelmapBaseTool.getOperationData

Defined in

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


getTargetId()

protected getTargetId(viewport): 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 the viewportId, but for the volume viewport, the targetId will be grabbed from the volumeId if particularly specified in the tool configuration, or if not, the first actorUID in the viewport.

Parameters

viewport: Viewport

viewport to get the targetId for

Returns

string

targetId

Inherited from

LabelmapBaseTool.getTargetId

Defined in

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


getTargetImageData()

protected getTargetImageData(targetId): IImageData | CPUIImageData

Get the image that is displayed for the targetId in the cachedStats which can be

  • imageId:<imageId>
  • volumeId:<volumeId>
  • videoId:<basePathForVideo>/frames/<frameSpecifier>

Parameters

targetId: string

annotation targetId stored in the cached stats

Returns

IImageData | CPUIImageData

The image data for the target.

Inherited from

LabelmapBaseTool.getTargetImageData

Defined in

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


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


preMouseDownCallback()

preMouseDownCallback(evt): true

Based on the current position of the mouse and the enabledElement, it finds the active segmentation info and use it for the current tool.

Parameters

evt: InteractionEventType

EventTypes.NormalizedMouseEventType

Returns

true

The annotation object.

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:96


redo()

redo(): void

Redo an action (undo the undo)

Returns

void

Inherited from

LabelmapBaseTool.redo

Defined in

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


rejectPreview()

rejectPreview(element): void

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

Parameters

element: HTMLDivElement = ...

Returns

void

Inherited from

LabelmapBaseTool.rejectPreview

Defined in

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


renderAnnotation()

renderAnnotation(enabledElement, svgDrawingHelper): boolean

it is used to draw the sphereScissor annotation in each request animation frame. Note that the annotation are disappeared after the segmentation modification.

Parameters

enabledElement: IEnabledElement

The Cornerstone's enabledElement.

svgDrawingHelper: SVGDrawingHelper

The svgDrawingHelper providing the context for drawing.

Returns

boolean

Defined in

tools/src/tools/segmentation/SphereScissorsTool.ts:341


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


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


undo()

undo(): void

Undoes an action

Returns

void

Inherited from

LabelmapBaseTool.undo

Defined in

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


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


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


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