CrosshairsTool
Hierarchy
- AnnotationTool
- CrosshairsTool
Index
Constructors
Properties
Methods
- _activateModify
- _applyDeltaShiftToSelectedViewportCameras
- _applyDeltaShiftToViewportCamera
- _areViewportIdArraysEqual
- _autoPanViewportIfNecessary
- _checkIfViewportsRenderingSameScene
- _deactivateModify
- _dragCallback
- _endCallback
- _filterAnnotationsByUniqueViewportOrientations
- _filterViewportWithSameOrientation
- _getAnnotations
- _getAnnotationsForViewportsWithDifferentCameras
- _getRotationHandleNearImagePoint
- _getSlabThicknessHandleNearImagePoint
- _getViewportsInfo
- _isClockWise
- _jump
- _onNewVolume
- _pointNearReferenceLine
- _pointNearTool
- _subscribeToViewportNewVolumeSet
- _unsubscribeToViewportNewVolumeSet
- addNewAnnotation
- applyActiveStrategy
- applyActiveStrategyCallback
- cancel
- computeToolCenter
- filterInteractableAnnotationsForElement
- getHandleNearImagePoint
- getLinkedTextBoxStyle
- getStyle
- getToolName
- handleSelectedCallback
- initializeViewport
- isPointNearTool
- isSuvScaled
- mouseMoveCallback
- onCameraModified
- onImageSpacingCalibrated
- onResetCamera
- onSetToolActive
- onSetToolDisabled
- onSetToolEnabled
- onSetToolPassive
- renderAnnotation
- resetCrosshairs
- setActiveStrategy
- setConfiguration
- setSlabThickness
- toolSelectedCallback
- createAndAddAnnotation
- createAnnotation
- createAnnotationForViewport
Constructors
constructor
Parameters
toolProps: PublicToolProps = {}
defaultToolProps: SharedToolProp = ...
Returns CrosshairsTool
Properties
optional_getReferenceLineColor
Type declaration
Parameters
viewportId: string
Returns string
optional_getReferenceLineControllable
Type declaration
Parameters
viewportId: string
Returns boolean
optional_getReferenceLineDraggableRotatable
Type declaration
Parameters
viewportId: string
Returns boolean
optional_getReferenceLineSlabThicknessControlsOn
Type declaration
Parameters
viewportId: string
Returns boolean
publicconfiguration
editData
Type declaration
annotation: any
publicmode
Tool Mode - Active/Passive/Enabled/Disabled/
publicsupportedInteractionTypes
Supported Interaction Types - currently only Mouse
toolCenter
publictoolGroupId
ToolGroup ID the tool instance belongs to
statictoolName
Methods
_activateModify
Parameters
element: any
Returns void
_applyDeltaShiftToSelectedViewportCameras
Parameters
renderingEngine: any
viewportsAnnotationsToUpdate: any
delta: any
Returns void
_applyDeltaShiftToViewportCamera
Parameters
renderingEngine: default
annotation: any
delta: any
Returns void
_areViewportIdArraysEqual
Parameters
viewportIdArrayOne: any
viewportIdArrayTwo: any
Returns boolean
_autoPanViewportIfNecessary
Parameters
viewportId: string
renderingEngine: default
Returns void
_checkIfViewportsRenderingSameScene
Parameters
viewport: any
otherViewport: any
Returns boolean
_deactivateModify
Parameters
element: any
Returns void
_dragCallback
Parameters
evt: InteractionEventType
Returns void
_endCallback
Parameters
evt: InteractionEventType
Returns void
_filterAnnotationsByUniqueViewportOrientations
Parameters
enabledElement: any
annotations: any
Returns any[]
_filterViewportWithSameOrientation
Parameters
enabledElement: any
referenceAnnotation: any
annotations: any
Returns any
_getAnnotations
Parameters
enabledElement: IEnabledElement
Returns Annotation[]
_getAnnotationsForViewportsWithDifferentCameras
Parameters
enabledElement: any
annotations: any
Returns any
_getRotationHandleNearImagePoint
Parameters
viewport: any
annotation: any
canvasCoords: any
proximity: any
Returns any
_getSlabThicknessHandleNearImagePoint
Parameters
viewport: any
annotation: any
canvasCoords: any
proximity: any
Returns any
_getViewportsInfo
Returns any[]
_isClockWise
Parameters
a: any
b: any
c: any
Returns boolean
_jump
Parameters
enabledElement: any
jumpWorld: any
Returns boolean
_onNewVolume
Parameters
e: any
Returns void
_pointNearReferenceLine
Parameters
annotation: any
canvasCoords: any
proximity: any
lineViewport: any
Returns boolean
_pointNearTool
Parameters
element: any
annotation: any
canvasCoords: any
proximity: any
Returns boolean
_subscribeToViewportNewVolumeSet
Parameters
viewports: any
Returns void
_unsubscribeToViewportNewVolumeSet
Parameters
viewportsInfo: any
Returns void
addNewAnnotation
addNewAnnotation acts as jump for the crosshairs tool. It is called when the user clicks on the image. It does not store the annotation in the stateManager though.
Parameters
evt: InteractionEventType
The mouse event
Returns CrosshairsAnnotation
Crosshairs annotation
publicapplyActiveStrategy
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.
publicapplyActiveStrategyCallback
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
Returns any
The result of the strategy.
cancel
Returns void
computeToolCenter
When activated, it initializes the crosshairs. It begins by computing the intersection of viewports associated with the crosshairs instance. When all three views are accessible, the intersection (e.g., crosshairs tool centre) will be an exact point in space; however, with two viewports, because the intersection of two planes is a line, it assumes the last view is between the centre of the two rendering viewports.
Parameters
viewportsInfo: any
Array of viewportInputs which each item containing {viewportId, renderingEngineId}
Returns void
filterInteractableAnnotationsForElement
Given the element and annotations which is an array of annotation, it filters the annotations array to only include the annotation based on the viewportType. If the viewport is StackViewport, it filters based on the current imageId of the viewport, if the viewport is volumeViewport, it only returns those that are within the same slice as the current rendered slice in the volume viewport. imageId as the enabledElement.
Parameters
element: any
The HTML element
annotations: any
The annotations to filter (array of annotation)
Returns any
The filtered annotations
getHandleNearImagePoint
It checks if the mouse click is near crosshairs handles, if yes it returns the handle location. If the mouse click is not near any of the handles, it does not return anything.
Parameters
element: HTMLDivElement
The element that the tool is attached to.
annotation: Annotation
The annotation object associated with the annotation
canvasCoords: Point2
The coordinates of the mouse click on canvas
proximity: number
The distance from the mouse cursor to the point that is considered “near”.
Returns ToolHandle
The handle that is closest to the cursor, or null if the cursor is not near any of the handles.
publicgetLinkedTextBoxStyle
It returns the style for the text box
Parameters
specifications: StyleSpecifier
optionalannotation: Annotation
The annotation for the tool that is currently active.
Returns Record<string, unknown>
An object of the style settings for the text box.
publicgetStyle
It takes the property (color, lineDash, etc.) and based on the state of the annotation (selected, highlighted etc.) it returns the appropriate value based on the central toolStyle settings for each level of specification.
Parameters
property: string
The name of the style property to get.
specifications: StyleSpecifier
optionalannotation: Annotation
The annotation for the tool that is currently active.
Returns unknown
The value of the property.
publicgetToolName
Returns the name of the tool
Returns string
The name of the tool.
handleSelectedCallback
handleSelectedCallback Custom callback for when a handle is selected.
Parameters
evt: InteractionEventType
The normalized mouse event
annotation: Annotation
The annotation selected.
Returns void
initializeViewport
Gets the camera from the viewport, and adds crosshairs annotation for the viewport to the annotationManager. If any annotation is found in the annotationManager, it overwrites it.
Parameters
viewportInfo: default
The viewportInfo for the viewport to add the crosshairs
Returns { normal: Point3; point: Point3 }
viewPlaneNormal and center of viewport canvas in world space
normal: Point3
point: Point3
isPointNearTool
It returns if the canvas point is near the provided crosshairs annotation in the provided element or not. A proximity is passed to the function to determine the proximity of the point to the annotation in number of pixels.
Parameters
element: HTMLDivElement
HTML Element
annotation: CrosshairsAnnotation
Annotation
canvasCoords: Point2
Canvas coordinates
proximity: number
Proximity to tool to consider
Returns boolean
Boolean, whether the canvas point is near tool
isSuvScaled
Returns true if the viewport is scaled to SUV units
Parameters
viewport: default | default
The viewport
targetId: string
The annotation targetId
optionalimageId: string
The annotation imageId
Returns boolean
mouseMoveCallback
Event handler for Cornerstone MOUSE_MOVE event.
Parameters
evt: MouseMoveEventType
The normalized mouse event
filteredToolAnnotations: Annotations
The annotations to check for hover interactions
Returns boolean
True if the annotation needs to be re-drawn by the annotationRenderingEngine.
onCameraModified
Parameters
evt: any
Returns void
publiconImageSpacingCalibrated
On Image Calibration, take all the annotation from the AnnotationState manager, and invalidate them to force them to be re-rendered and their stats to be recalculated. Then use the old and new imageData (non-calibrated and calibrated) to calculate the new position for the annotations in the space of the new imageData.
Parameters
evt: ImageSpacingCalibratedEvent
The calibration event
Returns void
onResetCamera
Parameters
evt: any
Returns void
onSetToolActive
Returns void
onSetToolDisabled
Returns void
onSetToolEnabled
Returns void
onSetToolPassive
Returns void
renderAnnotation
renders the crosshairs lines and handles in the requestAnimationFrame callback
Parameters
enabledElement: IEnabledElement
The Cornerstone’s enabledElement.
svgDrawingHelper: SVGDrawingHelper
The svgDrawingHelper providing the context for drawing.
Returns boolean
resetCrosshairs
Returns void
publicsetActiveStrategy
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
publicsetConfiguration
merges the new configuration with the tool configuration
Parameters
newConfiguration: Record<string, any>
Returns void
setSlabThickness
Parameters
viewport: any
slabThickness: any
Returns void
toolSelectedCallback
Custom callback for when an annotation is selected
Parameters
evt: InteractionEventType
The normalized mouse event
annotation: Annotation
The
Annotation
to check.interactionType: InteractionTypes
The interaction type used to select the tool.
Returns void
publicstaticcreateAndAddAnnotation
Creates and adds an annotation of the given type, firing the annotation modified event on the new annotation. This implicitly uses the static class when you call it on the correct base class. For example, you can call the KeyImageTool.createAnnotation method on KeyImageTool.toolName by calling KeyImageTool.createAndAddAnnotation
Parameters
viewport: any
rest...annotationBaseData: any[]
Returns void
publicstaticcreateAnnotation
Creates a base annotation object, adding in any annotation base data provided
Parameters
rest...annotationBaseData: any[]
Returns Annotation
publicstaticcreateAnnotationForViewport
Creates a new annotation for the given viewport. This just adds the viewport reference data to the metadata, and otherwise returns the static class createAnnotation data.
Parameters
viewport: any
rest...annotationBaseData: any[]
Returns Annotation
CrosshairsTool is a tool that provides reference lines between different viewports of a toolGroup. Using crosshairs, you can jump to a specific location in one viewport and the rest of the viewports in the toolGroup will be aligned to that location. Crosshairs have grababble handles that can be used to rotate and translate the reference lines. They can also be used to set the slab thickness of the viewports by modifying the slab thickness handles.