Skip to main content

Class: ContextPoolRenderingEngine

ContextPoolRenderingEngine extends BaseRenderingEngine to provide parallel rendering capabilities using multiple WebGL contexts for improved performance.

Extends

Constructors

new ContextPoolRenderingEngine()

new ContextPoolRenderingEngine(id?): ContextPoolRenderingEngine

Parameters

id?: string

Returns

ContextPoolRenderingEngine

Overrides

BaseRenderingEngine.constructor

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:35

Properties

_animationFrameHandle

protected _animationFrameHandle: number = null

Inherited from

BaseRenderingEngine._animationFrameHandle

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:47


_animationFrameSet

protected _animationFrameSet: boolean = false

Inherited from

BaseRenderingEngine._animationFrameSet

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:46


_needsRender

protected _needsRender: Set<string>

Inherited from

BaseRenderingEngine._needsRender

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:45


_viewports

protected _viewports: Map<string, Viewport>

Inherited from

BaseRenderingEngine._viewports

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:44


hasBeenDestroyed

hasBeenDestroyed: boolean

A flag which tells if the renderingEngine has been destroyed or not

Inherited from

BaseRenderingEngine.hasBeenDestroyed

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:40


id

readonly id: string

Unique identifier for renderingEngine

Inherited from

BaseRenderingEngine.id

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:38


offScreenCanvasContainer

offScreenCanvasContainer: HTMLDivElement

Inherited from

BaseRenderingEngine.offScreenCanvasContainer

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:43


offscreenMultiRenderWindow

offscreenMultiRenderWindow: VtkOffscreenMultiRenderWindow

Inherited from

BaseRenderingEngine.offscreenMultiRenderWindow

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:42


useCPURendering

protected useCPURendering: boolean

Inherited from

BaseRenderingEngine.useCPURendering

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:48

Methods

_getViewportsAsArray()

protected _getViewportsAsArray(): Viewport[]

Returns

Viewport[]

Array of viewports.

Method

_getViewportsAsArray Returns an array of all viewports

Inherited from

BaseRenderingEngine._getViewportsAsArray

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:676


_renderFlaggedViewports()

protected _renderFlaggedViewports(): void

Renders all viewports.

Returns

void

Overrides

BaseRenderingEngine._renderFlaggedViewports

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:233


_renderViewportFromVtkCanvasToOnscreenCanvas()

protected _renderViewportFromVtkCanvasToOnscreenCanvas(viewport, offScreenCanvas): ImageRenderedEventDetail

Renders a particular Viewport's on screen canvas.

Parameters

viewport: Viewport

The Viewport to render.

offScreenCanvas: HTMLCanvasElement

The offscreen canvas to render from.

Returns

ImageRenderedEventDetail

Overrides

BaseRenderingEngine._renderViewportFromVtkCanvasToOnscreenCanvas

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:376


_resizeVTKViewports()

protected _resizeVTKViewports(vtkDrivenViewports, keepCamera, immediate): void

Resizes viewports that use VTK.js for rendering.

Parameters

vtkDrivenViewports: (VolumeViewport | IStackViewport)[]

keepCamera: boolean = true

immediate: boolean = true

Returns

void

Overrides

BaseRenderingEngine._resizeVTKViewports

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:182


_throwIfDestroyed()

protected _throwIfDestroyed(): void

Throws an error if trying to interact with the RenderingEngine instance after its destroy method has been called.

Returns

void

Inherited from

BaseRenderingEngine._throwIfDestroyed

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:764


addVtkjsDrivenViewport()

protected addVtkjsDrivenViewport(viewportInputEntry): void

Adds a viewport driven by vtk.js to the RenderingEngine.

Parameters

viewportInputEntry: InternalViewportInput

Information object used to construct and enable the viewport.

Returns

void

Overrides

BaseRenderingEngine.addVtkjsDrivenViewport

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:74


destroy()

destroy(): void

destroy the rendering engine. It will remove all the viewports and, if the rendering engine is using the GPU, it will also destroy the GPU resources.

Returns

void

Overrides

BaseRenderingEngine.destroy

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:519


disableElement()

disableElement(viewportId): void

Disables the requested viewportId from the rendering engine. Calls the base implementation and then handles context-specific cleanup.

Parameters

viewportId: string

viewport Id

Returns

void

Overrides

BaseRenderingEngine.disableElement

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:494


enableElement()

enableElement(viewportInputEntry): void

Enables the requested viewport and add it to the viewports. It will properly create the Stack viewport or Volume viewport:

  1. Checks if the viewport is defined already, if yes, remove it first
  2. Checks if the viewport is using a custom rendering pipeline, if no, it calculates a new offscreen canvas with the new requested viewport
  3. Adds the viewport
renderingEngine.enableElement({
viewportId: viewportId,
type: ViewportType.ORTHOGRAPHIC,
element,
defaultOptions: {
orientation: Enums.OrientationAxis.AXIAL,
background: [1, 0, 1],
},
})

fires Events.ELEMENT_ENABLED

Parameters

viewportInputEntry: PublicViewportInput

viewport specifications

Returns

void

Inherited from

BaseRenderingEngine.enableElement

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:95


enableVTKjsDrivenViewport()

protected enableVTKjsDrivenViewport(viewportInputEntry): void

Enables a viewport to be driven by the offscreen vtk.js rendering engine.

Parameters

viewportInputEntry: NormalizedViewportInput

Information object used to construct and enable the viewport.

Returns

void

Overrides

BaseRenderingEngine.enableVTKjsDrivenViewport

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:51


fillCanvasWithBackgroundColor()

fillCanvasWithBackgroundColor(canvas, backgroundColor): void

Fill the canvas with the background color

Parameters

canvas: HTMLCanvasElement

The canvas element to draw on.

backgroundColor: [number, number, number]

An array of three numbers between 0 and 1 that specify the red, green, and blue values of the background color.

Returns

void

Inherited from

BaseRenderingEngine.fillCanvasWithBackgroundColor

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:468


getOffscreenMultiRenderWindow()

getOffscreenMultiRenderWindow(viewportId): VtkOffscreenMultiRenderWindow

Returns the offscreen multi-render window used for rendering.

Parameters

viewportId: string

Returns

VtkOffscreenMultiRenderWindow

Overrides

BaseRenderingEngine.getOffscreenMultiRenderWindow

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:526


getRenderer()

getRenderer(viewportId): vtkRenderer

Get the renderer for a specific viewport

Parameters

viewportId: string

The ID of the viewport

Returns

vtkRenderer

The vtkRenderer instance or undefined

Overrides

BaseRenderingEngine.getRenderer

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:478


getStackViewport()

getStackViewport(viewportId): IStackViewport

Retrieves a stack viewport by its ID. used just for type safety

Parameters

viewportId: string

The ID of the viewport to retrieve.

Returns

IStackViewport

The stack viewport with the specified ID.

Throws

Error if the viewport with the given ID does not exist or is not a StackViewport.

Inherited from

BaseRenderingEngine.getStackViewport

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:335


getStackViewports()

getStackViewports(): IStackViewport[]

Filters all the available viewports and return the stack viewports

Returns

IStackViewport[]

stack viewports registered on the rendering Engine

Inherited from

BaseRenderingEngine.getStackViewports

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:355


getViewport()

getViewport(viewportId): Viewport

Returns the viewport by Id

Parameters

viewportId: string

Returns

Viewport

viewport

Inherited from

BaseRenderingEngine.getViewport

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:313


getViewports()

getViewports(): Viewport[]

getViewports Returns an array of all Viewports on the RenderingEngine instance.

Returns

Viewport[]

Array of viewports

Inherited from

BaseRenderingEngine.getViewports

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:322


getVolumeViewports()

getVolumeViewports(): VolumeViewport[]

Return all the viewports that are volume viewports

Returns

VolumeViewport[]

An array of VolumeViewport objects.

Inherited from

BaseRenderingEngine.getVolumeViewports

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:368


render()

render(): void

Renders all viewports on the next animation frame.

fires Events.IMAGE_RENDERED

Returns

void

Inherited from

BaseRenderingEngine.render

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:387


renderFrameOfReference()

renderFrameOfReference(FrameOfReferenceUID): void

Renders any viewports viewing the given Frame Of Reference.

Parameters

FrameOfReferenceUID: string

The unique identifier of the Frame Of Reference.

Returns

void

Inherited from

BaseRenderingEngine.renderFrameOfReference

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:400


renderViewport()

renderViewport(viewportId): void

Renders only a specific Viewport on the next animation frame.

Parameters

viewportId: string

The Id of the viewport.

Returns

void

Inherited from

BaseRenderingEngine.renderViewport

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:424


renderViewports()

renderViewports(viewportIds): void

Renders the provided Viewport IDs.

Parameters

viewportIds: string[]

Returns

void

Inherited from

BaseRenderingEngine.renderViewports

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:415


resize()

resize(immediate, keepCamera): void

Resizes the offscreen viewport and recalculates translations to on screen canvases. It is up to the parent app to call the resize of the on-screen canvas changes. This is left as an app level concern as one might want to debounce the changes, or the like.

Parameters

immediate: boolean = true

Whether all of the viewports should be rendered immediately.

keepCamera: boolean = true

Whether to keep the camera for other viewports while resizing the offscreen canvas

Returns

void

Inherited from

BaseRenderingEngine.resize

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:279


setViewports()

setViewports(publicViewportInputEntries): void

It takes an array of viewport input objects including element, viewportId, type and defaultOptions. It will add the viewport to the rendering engine and enables them.

renderingEngine.setViewports([
{
viewportId: axialViewportId,
type: ViewportType.ORTHOGRAPHIC,
element: document.getElementById('axialDiv'),
defaultOptions: {
orientation: Enums.OrientationAxis.AXIAL,
},
},
{
viewportId: sagittalViewportId,
type: ViewportType.ORTHOGRAPHIC,
element: document.getElementById('sagittalDiv'),
defaultOptions: {
orientation: Enums.OrientationAxis.SAGITTAL,
},
},
{
viewportId: customOrientationViewportId,
type: ViewportType.ORTHOGRAPHIC,
element: document.getElementById('customOrientationDiv'),
defaultOptions: {
orientation: { viewPlaneNormal: [0, 0, 1], viewUp: [0, 1, 0] },
},
},
])

fires Events.ELEMENT_ENABLED

Parameters

publicViewportInputEntries: PublicViewportInput[]

Returns

void

Inherited from

BaseRenderingEngine.setViewports

Defined in

packages/core/src/RenderingEngine/BaseRenderingEngine.ts:236


setVtkjsDrivenViewports()

protected setVtkjsDrivenViewports(viewportInputEntries): void

Sets multiple vtk.js driven viewports to the RenderingEngine.

Parameters

viewportInputEntries: NormalizedViewportInput[]

An array of information objects used to construct and enable the viewports.

Returns

void

Overrides

BaseRenderingEngine.setVtkjsDrivenViewports

Defined in

packages/core/src/RenderingEngine/ContextPoolRenderingEngine.ts:150