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


_animationFrameSet​

protected _animationFrameSet: boolean = false

Inherited from​

BaseRenderingEngine._animationFrameSet

Defined in​

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


_needsRender​

protected _needsRender: Set<string>

Inherited from​

BaseRenderingEngine._needsRender

Defined in​

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


_viewports​

protected _viewports: Map<string, Viewport>

Inherited from​

BaseRenderingEngine._viewports

Defined in​

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


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


id​

readonly id: string

Unique identifier for renderingEngine

Inherited from​

BaseRenderingEngine.id

Defined in​

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


offScreenCanvasContainer​

offScreenCanvasContainer: HTMLDivElement

Inherited from​

BaseRenderingEngine.offScreenCanvasContainer

Defined in​

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


offscreenMultiRenderWindow​

offscreenMultiRenderWindow: VtkOffscreenMultiRenderWindow

Inherited from​

BaseRenderingEngine.offscreenMultiRenderWindow

Defined in​

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


useCPURendering​

protected useCPURendering: boolean

Inherited from​

BaseRenderingEngine.useCPURendering

Defined in​

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

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


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


_resizeVTKViewports()​

protected _resizeVTKViewports(vtkDrivenViewports, keepCamera, immediate): void

Resizes viewports that use VTK.js for rendering.

Parameters​

• vtkDrivenViewports: (IStackViewport | VolumeViewport)[]

• 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:777


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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