Skip to main content

VolumeViewport3D

An object representing a 3-dimensional volume viewport. VolumeViewport3Ds are used to render 3D volumes in their entirety, and not just load a single slice at a time.

For setting volumes on viewports you need to use addVolumesToViewports which will add volumes to the specified viewports.

Hierarchy

Index

Constructors

constructor

  • Parameters

    • props: ViewportInput

    Returns VolumeViewport3D

Properties

_actors

_actors: Map<string, any>

a Map containing the actor uid and actors

readonlycanvas

canvas: HTMLCanvasElement

an internal canvas that is created on the provided HTML element

customRenderViewportToCanvas

customRenderViewportToCanvas: () => unknown

Type declaration

    • (): unknown
    • Returns unknown

readonlydefaultOptions

defaultOptions: any

Default options for the viewport which includes orientation, viewPlaneNormal and backgroundColor

readonlyelement

element: HTMLDivElement

HTML element in DOM that is used for rendering the viewport

readonlyid

id: string

unique identifier for the viewport

publicisDisabled

isDisabled: boolean

if the viewport has been disabled

options

options for the viewport which includes orientation axis, backgroundColor and displayArea

readonlyrenderingEngineId

renderingEngineId: string

RenderingEngine id that the viewport belongs to

resize

resize: () => void

Type declaration

    • (): void
    • Returns void

sHeight

sHeight: number

sHeight of viewport on the offscreen canvas

sWidth

sWidth: number

sWidth of viewport on the offscreen canvas

readonlysuppressEvents

suppressEvents: boolean

A flag representing if viewport methods should fire events or not

sx

sx: number

sx of viewport on the offscreen canvas

sy

sy: number

sy of viewport on the offscreen canvas

readonlytype

Type of viewport

updateRenderingPipeline

updateRenderingPipeline: () => void

Type declaration

    • (): void
    • Returns void

use16BitTexture

use16BitTexture: boolean = false

useCPURendering

useCPURendering: boolean = false

Accessors

staticuseCustomRenderingPipeline

  • get useCustomRenderingPipeline(): boolean
  • Returns boolean

Methods

_getCorners

  • _getCorners(bounds: number[]): number[][]
  • Parameters

    • bounds: number[]

    Returns number[][]

_getEdges

  • _getEdges(bounds: number[]): [number[], number[]][]
  • Returns a list of edges for the imageData bounds, which are the cube edges in the case of volumeViewport edges. p1: front, bottom, left p2: front, top, left p3: back, bottom, left p4: back, top, left p5: front, bottom, right p6: front, top, right p7: back, bottom, right p8: back, top, right


    Parameters

    • bounds: number[]

      Bounds of the renderer

    Returns [number[], number[]][]

    Edges of the containing bounds

_getFocalPointForResetCamera

  • _getFocalPointForResetCamera(centeredFocalPoint: Point3, previousCamera: ICamera, __namedParameters: Object): Point3
  • Parameters

    • centeredFocalPoint: Point3
    • previousCamera: ICamera
    • __namedParameters: Object

    Returns Point3

_isInBounds

  • _isInBounds(point: Point3, bounds: number[]): boolean
  • Determines whether or not the 3D point position is inside the boundaries of the 3D imageData.


    Parameters

    • point: Point3

      3D coordinate

    • bounds: number[]

      Bounds of the image

    Returns boolean

    boolean

_removeActor

  • _removeActor(actorUID: string): void
  • Remove the actor from the viewport


    Parameters

    • actorUID: string

      The unique identifier for the actor.

    Returns void

publicaddActor

  • Add an actor to the viewport including its id, its actor and slabThickness if defined


    Parameters

    Returns void

publicaddActors

  • addActors(actors: ActorEntry[], resetCameraPanAndZoom?: boolean): void
  • Add a list of actors (actor entries) to the viewport


    Parameters

    • actors: ActorEntry[]

      An array of ActorEntry objects.

    • resetCameraPanAndZoom: boolean = false

      force reset pan and zoom of the camera, default value is false.

    Returns void

publicaddVolumes

  • addVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>
  • Creates and adds volume actors for all volumes defined in the volumeInputArray. For each entry, if a callback is supplied, it will be called with the new volume actor as input.


    Parameters

    • volumeInputArray: IVolumeInput[]

      The array of VolumeInputs which define the volumes to add.

    • immediate: boolean = false

      Whether the Viewport should be rendered as soon as volumes are added.

    • suppressEvents: boolean = false

    Returns Promise<void>

publiccanvasToWorld

  • canvasToWorld Returns the world coordinates of the given canvasPos projected onto the plane defined by the Viewport‘s vtkCamera‘s focal point and the direction of projection.


    Parameters

    • canvasPos: Point2

      The position in canvas coordinates.

    Returns Point3

    The corresponding world coordinates.

publicflip

  • Flip the viewport along the desired axis


    Parameters

    Returns void

publicgetActor

  • Get an actor by its UID


    Parameters

    • actorUID: string

      The unique ID of the actor.

    Returns ActorEntry

    An ActorEntry object.

publicgetActorByIndex

  • Get an actor by its index


    Parameters

    • index: number

      array index.

    Returns ActorEntry

    actorUID

publicgetActorUIDByIndex

  • getActorUIDByIndex(index: number): string
  • Get an actor UID by its index


    Parameters

    • index: number

      array index.

    Returns string

    actorUID

publicgetActors

  • Get all the actors in the viewport


    Returns ActorEntry[]

    An array of ActorEntry objects.

publicgetBounds

  • getBounds(): number[]
  • gets the visible bounds of the viewport in the world coordinate system


    Returns number[]

publicgetCamera

  • Get the camera’s current state


    Returns ICamera

    The camera object.

publicgetCanvas

  • getCanvas(): HTMLCanvasElement
  • Gets the target output canvas for the Viewport.


    Returns HTMLCanvasElement

    an HTMLCanvasElement.

publicgetCurrentImageId

  • getCurrentImageId(): string
  • Uses viewport camera and volume actor to decide if the viewport is looking at the volume in the direction of acquisition (imageIds). If so, it uses the origin and focalPoint to find which imageId is currently being viewed.


    Returns string

publicgetCurrentImageIdIndex

  • getCurrentImageIdIndex(): number
  • Uses viewport camera and volume actor to decide if the viewport is looking at the volume in the direction of acquisition (imageIds). If so, it uses the origin and focalPoint to calculate the slice index.


    Returns number

publicgetDefaultActor

  • Get the default actor


    Returns ActorEntry

    An actor entry.

publicgetDisplayArea

  • returns the displayArea


    Returns DisplayArea

publicgetFrameOfReferenceUID

  • getFrameOfReferenceUID(): string
  • Returns string

publicgetImageData

  • Returns the image and its properties that is being shown inside the stack viewport. It returns, the image dimensions, image direction, image scalar data, vtkImageData object, metadata, and scaling (e.g., PET suvbw) Note: since the volume viewport supports fusion, to get the image data for a specific volume, use the optional volumeId argument.


    Parameters

    • optionalvolumeId: string

      The volumeId of the volume to get the image for.

    Returns IImageData

    IImageData: {dimensions, direction, scalarData, vtkImageData, metadata, scaling}

getIntensityFromWorld

  • getIntensityFromWorld(point: Point3): number
  • Given a point in world coordinates, return the intensity at that point


    Parameters

    Returns number

publicgetPan

  • Helper function to return the current canvas pan value.


    Returns Point2

    a Point2 containing the current pan values on the canvas, computed from the current camera, where the initial pan value is [0,0].

publicgetProperties

  • Retrieve the viewport properties


    Returns VolumeViewportProperties

    viewport properties including voi, interpolation type: TODO: slabThickness, invert, rotation, flip

publicgetRenderer

  • getRenderer(): any
  • Returns the vtkRenderer responsible for rendering the Viewport.


    Returns any

    The vtkRenderer for the Viewport.

publicgetRenderingEngine

  • Returns the rendering engine driving the Viewport.


    Returns default

    The RenderingEngine instance.

getRotation

  • getRotation(): number
  • Returns number

getSlabThickness

  • getSlabThickness(): number
  • Gets the slab thickness option in the Viewport‘s options.


    Returns number

publicgetZoom

  • getZoom(): number
  • Returns a current zoom level relative to the initial parallel scale originally applied to the image. That is, on initial display, the zoom level is 1. Computed as a function of the camera.


    Returns number

publichasImageURI

  • hasImageURI(imageURI: string): boolean
  • if the volume viewport has imageURI (no loader schema) in one of its volume actors


    Parameters

    • imageURI: string

    Returns boolean

publichasVolumeId

  • hasVolumeId(volumeId: string): boolean
  • Checks if the viewport has a volume actor with the given volumeId


    Parameters

    • volumeId: string

      the volumeId to look for

    Returns boolean

    Boolean indicating if the volume is present in the viewport

publicremoveActors

  • removeActors(actorUIDs: string[]): void
  • Remove the actors with the given UIDs from the viewport


    Parameters

    • actorUIDs: string[]

      An array of actor UIDs to remove.

    Returns void

publicremoveAllActors

  • removeAllActors(): void
  • Remove all actors from the renderer


    Returns void

publicremoveVolumeActors

  • removeVolumeActors(actorUIDs: string[], immediate?: boolean): void
  • It removes the volume actor from the Viewport. If the volume actor is not in the viewport, it does nothing.


    Parameters

    • actorUIDs: string[]

      Array of actor UIDs to remove. In case of simple volume it will be the volume Id, but in case of Segmentation it will be {volumeId}-{representationType} since the same volume can be rendered in multiple representations.

    • immediate: boolean = false

      If true, the Viewport will be rendered immediately

    Returns void

publicrender

  • render(): void
  • Renders the Viewport using the RenderingEngine.


    Returns void

publicreset

  • reset(immediate?: boolean): void
  • Resets the options the Viewport‘s defaultOptions


    Parameters

    • immediate: boolean = false

      If true, renders the viewport after the options are reset.

    Returns void

publicresetCamera

  • resetCamera(resetPan?: boolean, resetZoom?: boolean, resetToCenter?: boolean): boolean
  • Reset the camera for the volume viewport


    Parameters

    • resetPan: boolean = true
    • resetZoom: boolean = true
    • resetToCenter: boolean = true

    Returns boolean

publicsetActors

  • It removes all actors from the viewport and then adds the actors from the array.


    Parameters

    • actors: ActorEntry[]

      An array of ActorEntry objects.

    Returns void

setBlendMode

  • setBlendMode(blendMode: BlendModes, filterActorUIDs?: string[], immediate?: boolean): void
  • Sets the blendMode for actors of the viewport.


    Parameters

    • blendMode: BlendModes
    • optionalfilterActorUIDs: string[]
    • optionalimmediate: boolean

    Returns void

publicsetCamera

  • setCamera(cameraInterface: ICamera, storeAsInitialCamera?: boolean): void
  • Set the camera parameters


    Parameters

    • cameraInterface: ICamera

      ICamera

    • storeAsInitialCamera: boolean = false

      to set the provided camera as the initial one, used to compute differences for things like pan and zoom.

    Returns void

publicsetDisplayArea

  • setDisplayArea(displayArea: DisplayArea, suppressEvents?: boolean): void
  • Sets the camera to an initial bounds. If resetPan and resetZoom are true it places the focal point at the center of the volume (or slice); otherwise, only the camera zoom and camera Pan or Zoom is reset for the current view.


    Parameters

    • displayArea: DisplayArea

      The display area of interest.

    • suppressEvents: boolean = false

      If true, don’t fire displayArea event.

    Returns void

publicsetOptions

  • Sets new options and (TODO) applies them.


    Parameters

    • options: ViewportInputOptions

      The viewport options to set.

    • immediate: boolean = false

      If true, renders the viewport after the options are set.

    Returns void

publicsetOrientation

  • It sets the orientation for the camera, the orientation can be one of the following: axial, sagittal, coronal, default. Use the Enums.OrientationAxis to set the orientation. The “default” orientation is the orientation that the volume was acquired in (scan axis)


    Parameters

    • orientation: OrientationAxis

      The orientation to set the camera to.

    • immediate: boolean = true

      Whether the Viewport should be rendered as soon as the camera is set.

    Returns void

publicsetOrientationOfClippingPlanes

  • setOrientationOfClippingPlanes(vtkPlanes: vtkPlane[], slabThickness: number, viewPlaneNormal: Point3, focalPoint: Point3): void
  • Parameters

    • vtkPlanes: vtkPlane[]
    • slabThickness: number
    • viewPlaneNormal: Point3
    • focalPoint: Point3

    Returns void

publicsetPan

  • setPan(pan: Point2, storeAsInitialCamera?: boolean): void
  • Sets the canvas pan value relative to the initial view position of 0,0 Modifies the camera to perform the pan.


    Parameters

    • pan: Point2
    • storeAsInitialCamera: boolean = false

    Returns void

publicsetProperties

  • Sets the properties for the volume viewport on the volume (if fusion, it sets it for the first volume in the fusion)


    Parameters

    • VolumeViewportProperties: VolumeViewportProperties = {}

      The properties to set

    • optionalvolumeId: string

      The volume id to set the properties for (if undefined, the first volume)

    • suppressEvents: boolean = false

      If true, the viewport will not emit events

    Returns void

setSlabThickness

  • setSlabThickness(slabThickness: number, filterActorUIDs?: string[]): void
  • Sets the slab thickness for actors of the viewport.


    Parameters

    • slabThickness: number
    • optionalfilterActorUIDs: string[]

    Returns void

publicsetVolumes

  • setVolumes(volumeInputArray: IVolumeInput[], immediate?: boolean, suppressEvents?: boolean): Promise<void>
  • Creates volume actors for all volumes defined in the volumeInputArray. For each entry, if a callback is supplied, it will be called with the new volume actor as input. For each entry, if a blendMode and/or slabThickness is defined, this will be set on the actor’s VolumeMapper.


    Parameters

    • volumeInputArray: IVolumeInput[]

      The array of VolumeInputs which define the volumes to add.

    • immediate: boolean = false

      Whether the Viewport should be rendered as soon as volumes are added.

    • suppressEvents: boolean = false

    Returns Promise<void>

publicsetZoom

  • setZoom(value: number, storeAsInitialCamera?: boolean): void
  • Zooms the image using parallel scale by updating the camera value.


    Parameters

    • value: number

      The relative parallel scale to apply. It is relative to the initial offsets value.

    • storeAsInitialCamera: boolean = false

      can be set to true to reset the camera after applying this zoom as the initial camera. A subsequent getZoom call will return “1”, but the zoom will have been applied.

    Returns void

publictriggerCameraModifiedEventIfNecessary

  • triggerCameraModifiedEventIfNecessary(previousCamera: ICamera, updatedCamera: ICamera): void
  • Trigger camera modified event


    Parameters

    Returns void

publicworldToCanvas

  • Returns the canvas coordinates of the given worldPos projected onto the Viewport‘s canvas.


    Parameters

    • worldPos: Point3

      The position in world coordinates.

    Returns Point2

    The corresponding canvas coordinates.