Class: abstract BaseRenderingEngine
Extended by
Constructors
new BaseRenderingEngine()
new BaseRenderingEngine(
id?):BaseRenderingEngine
Parameters
• id?: string
Returns
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:73
Properties
_animationFrameHandle
protected_animationFrameHandle:number=null
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:67
_animationFrameSet
protected_animationFrameSet:boolean=false
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:66
_needsRender
protected_needsRender:Set<string>
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:65
_viewports
protected_viewports:Map<string,Viewport>
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:64
hasBeenDestroyed
hasBeenDestroyed:
boolean
A flag which tells if the renderingEngine has been destroyed or not
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:60
id
readonlyid:string
Unique identifier for renderingEngine
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:58
offScreenCanvasContainer
offScreenCanvasContainer:
HTMLDivElement
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:63
offscreenMultiRenderWindow
offscreenMultiRenderWindow:
VtkOffscreenMultiRenderWindow
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:62
useCPURendering
protecteduseCPURendering:boolean
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:68
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:682
_notifyFidelityOfRenderedViewports()
protected_notifyFidelityOfRenderedViewports(viewports):void
Fires the fidelity event of each rendered viewport, after
IMAGE_RENDERED (FIDELITY-EVENT-2..4). An IMAGE_RENDERED listener can
disable a viewport or destroy this engine, so a viewport that this engine
no longer holds is skipped: it has no renderer and no camera.
Parameters
• viewports: Viewport[]
Returns
void
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:692
_renderFlaggedViewports()
abstractprotected_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:874
_renderViewportFromVtkCanvasToOnscreenCanvas()
abstractprotected_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
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:897
_resizeVTKViewports()
abstractprotected_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:838
_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:825
_waitsForStorage()
protected_waitsForStorage(viewport,renderStart):boolean
Whether the render of this viewport that started at renderStart
(performance.now()) drew no actor, because every actor waits for its
texture storage (see actorsWaitingForStorage). The engine then fires no
IMAGE_RENDERED and no fidelity event for that empty frame. When any actor
drew, for example a small PET over a waiting CT, the engine fires the
events, so the annotations follow the camera of the frame that shows.
Parameters
• viewport: Viewport
• renderStart: number
Returns
boolean
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:713
addVtkjsDrivenViewport()
abstractprotectedaddVtkjsDrivenViewport(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:864
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:414
disableElement()
disableElement(
viewportId):void
Disables the requested viewportId from the rendering engine:
- It removes the viewport from the the list of viewports
- remove the renderer from the offScreen render window if using vtk.js driven rendering pipeline
- resetting the viewport to remove the canvas attributes and canvas data
- 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:184
disableViewport()
disableViewport(
viewportId):void
Parameters
• viewportId: string
Returns
void
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:227
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
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:121
enableVTKjsDrivenViewport()
abstractprotectedenableVTKjsDrivenViewport(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:852
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:454
getOffscreenMultiRenderWindow()
getOffscreenMultiRenderWindow(
_viewportId?):VtkOffscreenMultiRenderWindow
Returns the offscreen multi-render window used for rendering.
Parameters
• _viewportId?: string
Returns
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:655
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:648
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:348
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:357
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:368
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:381
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:405
renderViewports()
renderViewports(
viewportIds):void
Renders the provided Viewport IDs.
Parameters
• viewportIds: string[]
Returns
void
Defined in
packages/core/src/RenderingEngine/BaseRenderingEngine.ts:396
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:314
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:270
setVtkjsDrivenViewports()
abstractprotectedsetVtkjsDrivenViewports(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:885