Skip to main content

Class: abstract BaseRenderingEngine

Extended by​

Constructors​

new BaseRenderingEngine()​

new BaseRenderingEngine(id?): BaseRenderingEngine

Parameters​

• id?: string

Returns​

BaseRenderingEngine

Defined in​

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

Properties​

_animationFrameHandle​

protected _animationFrameHandle: number = null

Defined in​

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


_animationFrameSet​

protected _animationFrameSet: boolean = false

Defined in​

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


_needsRender​

protected _needsRender: Set<string>

Defined in​

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


_viewports​

protected _viewports: Map<string, Viewport>

Defined in​

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


hasBeenDestroyed​

hasBeenDestroyed: boolean

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

Defined in​

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


id​

readonly id: string

Unique identifier for renderingEngine

Defined in​

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


offScreenCanvasContainer​

offScreenCanvasContainer: HTMLDivElement

Defined in​

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


offscreenMultiRenderWindow​

offscreenMultiRenderWindow: VtkOffscreenMultiRenderWindow

Defined in​

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


useCPURendering​

protected useCPURendering: boolean

Defined in​

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

Methods​

_getViewportsAsArray()​

protected _getViewportsAsArray(): Viewport[]

Returns​

Viewport[]

Array of viewports.

Method​

_getViewportsAsArray Returns an array of all viewports

Defined in​

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


_renderFlaggedViewports()​

abstract protected _renderFlaggedViewports(): void

Renders all viewports. This method must be implemented by subclasses to define their specific rendering strategy

Returns​

void

Defined in​

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


_renderViewportFromVtkCanvasToOnscreenCanvas()​

abstract protected _renderViewportFromVtkCanvasToOnscreenCanvas(viewport, offScreenCanvas): ImageRenderedEventDetail

Renders a particular Viewport's on screen canvas. This method must be implemented by subclasses to define how to copy from the offscreen canvas to the onscreen canvas.

Parameters​

• viewport: Viewport

The Viewport to render.

• offScreenCanvas: HTMLCanvasElement

The offscreen canvas to render from.

Returns​

ImageRenderedEventDetail

Defined in​

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


_resizeVTKViewports()​

abstract protected _resizeVTKViewports(vtkDrivenViewports, keepCamera, immediate): void

Resizes viewports that use VTK.js for rendering. This method must be implemented by subclasses to define their specific resizing strategy.

Parameters​

• vtkDrivenViewports: (IStackViewport | VolumeViewport)[]

• keepCamera: boolean

• immediate: boolean

Returns​

void

Defined in​

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


_throwIfDestroyed()​

protected _throwIfDestroyed(): void

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

Returns​

void

Defined in​

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


addVtkjsDrivenViewport()​

abstract protected addVtkjsDrivenViewport(viewportInputEntry, offscreenCanvasProperties?): void

Adds a viewport driven by vtk.js to the RenderingEngine. This method must be implemented by subclasses to define their specific approach to adding VTK.js driven viewports.

Parameters​

• viewportInputEntry: InternalViewportInput

Information object used to construct and enable the viewport.

• offscreenCanvasProperties?: unknown

Optional properties for configuring the offscreen canvas.

Returns​

void

Defined in​

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


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

Defined in​

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


disableElement()​

disableElement(viewportId): void

Disables the requested viewportId from the rendering engine:

  1. It removes the viewport from the the list of viewports
  2. remove the renderer from the offScreen render window if using vtk.js driven rendering pipeline
  3. resetting the viewport to remove the canvas attributes and canvas data
  4. resize the offScreen appropriately (if using vtk.js driven rendering pipeline)

fires Events.ELEMENT_ENABLED

Parameters​

• viewportId: string

viewport Id

Returns​

void

Defined in​

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


disableViewport()​

disableViewport(viewportId): void

Parameters​

• viewportId: string

Returns​

void

Defined in​

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


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

Defined in​

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


enableVTKjsDrivenViewport()​

abstract protected enableVTKjsDrivenViewport(viewportInputEntry): void

Enables a viewport to be driven by the offscreen vtk.js rendering engine. This method must be implemented by subclasses to define their specific viewport enabling strategy.

Parameters​

• viewportInputEntry: NormalizedViewportInput

Information object used to construct and enable the viewport.

Returns​

void

Defined in​

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


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

Defined in​

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


getOffscreenMultiRenderWindow()​

getOffscreenMultiRenderWindow(_viewportId?): VtkOffscreenMultiRenderWindow

Returns the offscreen multi-render window used for rendering.

Parameters​

• _viewportId?: string

Returns​

VtkOffscreenMultiRenderWindow

Defined in​

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


getRenderer()​

getRenderer(viewportId): vtkRenderer

Returns the renderer for a given viewportId.

Parameters​

• viewportId: any

The Id of the viewport.

Returns​

vtkRenderer

The renderer for the viewport.

Defined in​

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


getViewport()​

getViewport<T>(viewportId): T

Returns the viewport by Id

Type Parameters​

• T = Viewport

Parameters​

• viewportId: string

Returns​

T

viewport

Defined in​

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


getViewports()​

getViewports(): Viewport[]

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

Returns​

Viewport[]

Array of viewports

Defined in​

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


render()​

render(): void

Renders all viewports on the next animation frame.

fires Events.IMAGE_RENDERED

Returns​

void

Defined in​

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


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

Defined in​

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


renderViewport()​

renderViewport(viewportId): void

Renders only a specific Viewport on the next animation frame.

Parameters​

• viewportId: string

The Id of the viewport.

Returns​

void

Defined in​

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


renderViewports()​

renderViewports(viewportIds): void

Renders the provided Viewport IDs.

Parameters​

• viewportIds: string[]

Returns​

void

Defined in​

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


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

Defined in​

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


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

Defined in​

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


setVtkjsDrivenViewports()​

abstract protected setVtkjsDrivenViewports(viewportInputEntries): void

Sets multiple vtk.js driven viewports to the RenderingEngine. This method must be implemented by subclasses to define their specific approach to setting multiple VTK.js driven viewports.

Parameters​

• viewportInputEntries: NormalizedViewportInput[]

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

Returns​

void

Defined in​

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