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
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
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
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
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:
- Checks if the viewport is defined already, if yes, remove it first
- Checks if the viewport is using a custom rendering pipeline, if no, it calculates a new offscreen canvas with the new requested viewport
- 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
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
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
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
Inherited from
BaseRenderingEngine
.getViewport
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:313
getViewports()
getViewports():
Viewport
[]
getViewports Returns an array of all Viewport
s 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
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
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
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