Skip to main content

Class: abstract GenericViewport<TViewState, TDataPresentation, TContext>

Generic GenericViewport controller.

The base class owns only shared viewport state and binding orchestration: loaded logical data, mounted renderings, view state, and per-dataset render-state forwarding. It does not know how CPU, VTK, DOM, image, volume, or media runtimes work internally.

Concrete viewport families are expected to stay thin and provide:

  • a render context for their render paths
  • a data provider
  • a render path resolver when the default is not enough
  • viewport-family-specific public APIs

Concrete render paths are expected to own:

  • runtime add/remove lifecycle
  • view-state interpretation for that render path
  • per-dataset render-state application
  • render-path-specific coordinate transforms

This split keeps migration from legacy viewports incremental without centralizing render-mode-specific behavior in the controller.

Extended by

Type Parameters

TViewState extends object

TDataPresentation = unknown

TContext extends BaseViewportRenderContext = BaseViewportRenderContext

Implements

  • ViewportController<TViewState, TDataPresentation>

Constructors

new GenericViewport()

new GenericViewport<TViewState, TDataPresentation, TContext>(args): GenericViewport<TViewState, TDataPresentation, TContext>

Parameters

args

args.element: HTMLDivElement

args.id: string

Returns

GenericViewport<TViewState, TDataPresentation, TContext>

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:89

Properties

_debug

readonly _debug: object

renderModes

renderModes: Record<string, string>

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:85


bindings

protected bindings: Map<string, ViewportDataBinding<TDataPresentation>>

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:75


dataPresentation

protected dataPresentation: Map<string, TDataPresentation>

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:79


dataProvider

protected dataProvider: DataProvider<object, unknown>

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:71


element

readonly element: HTMLDivElement

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:64


id

readonly id: string

Implementation of

ViewportController.id

Defined in

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


isDestroyed

protected isDestroyed: boolean = false

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:81


renderContext

protected renderContext: TContext

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:73


renderingEngineId

abstract readonly renderingEngineId: string

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:66


renderPathResolver

protected renderPathResolver: RenderPathResolver

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:72


type

abstract readonly type: ViewportType

Implementation of

ViewportController.type

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:65


viewportStatus

viewportStatus: ViewportStatus = ViewportStatus.NO_DATA

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:67


viewState

protected viewState: TViewState

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:80

Methods

addDisplaySet()

addDisplaySet(displaySetId, options): Promise<void>

Loads a logical display set through the viewport data provider and adds it through the render-path resolver.

Parameters

displaySetId: string

options: DataAddOptions

Returns

Promise<void>

Implementation of

ViewportController.addDisplaySet

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:128


addLoadedData()

protected addLoadedData(displaySetId, data, options, shouldIgnore?): Promise<boolean>

Converts loaded logical data into a mounted rendering binding.

The binding stores render-path callbacks so future per-dataset render state, camera, transform, resize, and render requests can be routed back to the correct render-path runtime.

Parameters

displaySetId: string

data: LoadedData

options: DataAddOptions

shouldIgnore?

Returns

Promise<boolean>

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:477


canvasToWorld()

canvasToWorld(canvasPos): Point3

Converts a canvas-space point to world-space coordinates using the computed camera.

Parameters

canvasPos: Point2

Returns

Point3

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:265


destroy()

destroy(): void

Releases mounted bindings and viewport-local resources.

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:367


destroyBindings()

protected destroyBindings(): void

Tears down all mounted dataset bindings by removing each one individually.

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:845


dispose()

dispose(): void

Alias for destroy. Provided for compatibility with disposable resource conventions.

Returns

void

Defined in

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


forEachBinding()

protected forEachBinding(visitor): void

Iterates mounted bindings without exposing the underlying map to subclasses.

Parameters

visitor

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:763


getAspectRatio()

getAspectRatio(): Point2

Returns the current axis-based stretch as [scaleX, scaleY]. The new generic viewport pipeline does not apply axis-based stretching for now, so this defaults to [1, 1]. Subclasses that support aspect-ratio stretching should override.

Returns

Point2

Defined in

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


getBinding()

protected getBinding(displaySetId): ViewportDataBinding<TDataPresentation>

Looks up a binding by dataset identifier.

Parameters

displaySetId: string

Returns

ViewportDataBinding<TDataPresentation>

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:717


getCameraForEvent()

protected getCameraForEvent(): ICamera<number>

Returns the camera representation used for event payloads. Delegates to the computed camera's ICamera projection when available, falling back to the raw view state.

Returns

ICamera<number>

Defined in

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


getCurrentBinding()

protected getCurrentBinding(): ViewportDataBinding<TDataPresentation>

Returns the binding used for generic transform and frame-of-reference queries when a viewport family does not override the selection logic.

Returns

ViewportDataBinding<TDataPresentation>

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:753


getDataPresentationState()

protected getDataPresentationState(displaySetId): TDataPresentation

Returns the last render state stored for a display set, even if that display set is not currently mounted.

Parameters

displaySetId: string

Returns

TDataPresentation

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:590


getDisplaySetPresentation()

getDisplaySetPresentation(displaySetId): TDataPresentation

Returns the stored presentation state for a specific dataset.

Parameters

displaySetId: string

Returns

TDataPresentation

Implementation of

ViewportController.getDisplaySetPresentation

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:192


getDisplaySetRenderMode()

protected getDisplaySetRenderMode(displaySetId): string

Internal helper: returns the mounted render mode for a specific dataset when present.

Parameters

displaySetId: string

Returns

string

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:727


getDisplaySetRole()

protected getDisplaySetRole(displaySetId): BindingRole

Internal helper: returns the binding role for a mounted dataset when present.

Parameters

displaySetId: string

Returns

BindingRole

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:735


getFirstBinding()

protected getFirstBinding(): ViewportDataBinding<TDataPresentation>

Returns the first mounted binding when a viewport family does not have a stronger notion of "current" selection.

Returns

ViewportDataBinding<TDataPresentation>

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:743


getFrameOfReferenceUID()

getFrameOfReferenceUID(): string

Returns the frame of reference UID from the computed camera when available, falling back to the current binding or a viewport-local identifier.

Returns

string

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:241


getReferenceViewContexts()

protected getReferenceViewContexts(_viewReference?): GenericViewportReferenceContext[]

Returns generic reference-compatibility contexts for mounted datasets. Subclasses can add image, volume, slice, plane, and dimension facts.

Parameters

_viewReference?: ViewReference

Returns

GenericViewportReferenceContext[]

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:775


getResolvedView()

abstract getResolvedView(): ResolvedViewportView<unknown, ICamera<unknown>>

Returns the viewport's computed camera snapshot for coordinate transforms and legacy ICamera interop. Subclasses must implement this to produce the viewport-family-specific computed camera.

Returns

ResolvedViewportView<unknown, ICamera<unknown>>

Implementation of

ViewportController.getResolvedView

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:257


getViewReference()

getViewReference(_specifier): ViewReference

Returns a spatial reference for the current viewport state.

Parameters

_specifier: ViewReferenceSpecifier = {}

Returns

ViewReference

Implementation of

ViewportController.getViewReference

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:201


getViewReferenceId()

getViewReferenceId(_specifier): string

Returns a stable string identifier for the current view reference.

Parameters

_specifier: ViewReferenceSpecifier = {}

Returns

string

Implementation of

ViewportController.getViewReferenceId

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:211


getViewState()

getViewState(): TViewState

Returns the controller's current shared view state.

Returns

TViewState

Implementation of

ViewportController.getViewState

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:329


isReferenceViewable()

isReferenceViewable(viewReference, options): boolean

Returns whether a spatial reference is compatible with this viewport.

Parameters

viewReference: ViewReference

options: ReferenceCompatibleOptions = {}

Returns

boolean

Implementation of

ViewportController.isReferenceViewable

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:225


mergeDataPresentation()

protected mergeDataPresentation(displaySetId, props): TDataPresentation

Merges object-like updates into the stored per-display-set render state and forwards the result immediately when mounted.

Parameters

displaySetId: string

props: Partial<TDataPresentation>

Returns

TDataPresentation

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:621


modified()

protected modified(previousCamera?): void

Pushes the current shared view state to every binding and schedules a render. Optionally fires a camera-modified event when a previous camera snapshot is provided.

Parameters

previousCamera?: ICamera<number>

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:655


normalizeViewState()

protected normalizeViewState(viewState): TViewState

Hook for subclasses to clamp or adjust view-state values before they are stored. The default implementation returns the view state unchanged.

Parameters

viewState: TViewState

Returns

TViewState

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:646


onDestroy()

protected onDestroy(): void

Hook for subclasses to release viewport-local resources during destroy. Called after bindings have been torn down but before the maps are cleared.

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:855


removeAllData()

protected removeAllData(): void

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:557


removeData()

removeData(displaySetId): void

Removes a dataset binding and its stored presentation state, then triggers a re-render so the viewport reflects the removal.

Parameters

displaySetId: string

Returns

void

Implementation of

ViewportController.removeData

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:144


removeWidgets()

removeWidgets(): void

Returns

void

Deprecated

Compatibility no-op retained during the V2 migration.

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:360


render()

abstract render(): void

Schedules a render pass for the viewport. Concrete viewport families implement this to delegate to their rendering runtime.

Returns

void

Implementation of

ViewportController.render

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:422


renderBindings()

protected renderBindings(): boolean

Invokes render on each binding and reports whether any binding handled the render request directly.

Returns

boolean

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:814


resetViewState()

resetViewState(_options?): boolean

Resets viewport-owned view state for viewport families that support a navigation reset.

Parameters

_options?: unknown

Returns

boolean

Implementation of

ViewportController.resetViewState

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:441


resize()

resize(): void

Recomputes viewport-owned runtime sizing. Concrete viewport families may override this when they need to resize canvases or external runtimes.

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:428


resizeBindings()

protected resizeBindings(): void

Invokes resize on each mounted binding.

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:832


resizeForRenderingEngine()

resizeForRenderingEngine(__namedParameters): void

RenderingEngine-owned resize hook for custom-pipeline viewports.

Generic viewports own semantic view state, so the rendering engine delegates resize behavior here instead of preserving legacy getCamera/setCamera snapshots around a reset.

Parameters

__namedParameters: RenderingEngineResizeOptions = {}

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:452


setDataPresentationState()

protected setDataPresentationState(displaySetId, props): void

Stores per-dataset render state and forwards it immediately when that dataset is already added.

Parameters

displaySetId: string

props: TDataPresentation

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:567


setDefaultDataPresentation()

protected setDefaultDataPresentation(displaySetId, defaults): TDataPresentation

Stores object-like defaults for a display set without clobbering any values already tracked for that display set.

Parameters

displaySetId: string

defaults: TDataPresentation

Returns

TDataPresentation

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:600


setDisplaySetPresentation()

setDisplaySetPresentation(props)

setDisplaySetPresentation(props): void

Updates the stored per-display-set presentation state. When called with just props, the update is applied to the current (source) binding. When called with an explicit displaySetId, the update targets that binding.

Parameters

props: Partial<TDataPresentation>

Returns

void

Implementation of

ViewportController.setDisplaySetPresentation

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:166

setDisplaySetPresentation(displaySetId, props)

setDisplaySetPresentation(displaySetId, props): void

Parameters

displaySetId: string

props: Partial<TDataPresentation>

Returns

void

Implementation of

ViewportController.setDisplaySetPresentation

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:167


setDisplaySets()

setDisplaySets(...entries): Promise<void>

Replaces all mounted display sets with the provided logical display sets. The first entry is mounted as the source binding; subsequent entries default to the overlay role unless they specify one explicitly.

Parameters

• ...entries: object[]

Returns

Promise<void>

Implementation of

ViewportController.setDisplaySets

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:103


setNeedsRender()

setNeedsRender(): void

Marks the viewport as waiting for a render pass without scheduling one.

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:414


setRendered()

setRendered(): void

Called by rendering engines after a frame is rendered.

Most GenericViewport families do not need to track this separately because their render paths own concrete runtime state.

Returns

void

Implementation of

ViewportController.setRendered

Defined in

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


setViewReference()

setViewReference(_viewReference): void

Applies a spatial reference to the current viewport state.

Parameters

_viewReference: ViewReference

Returns

void

Implementation of

ViewportController.setViewReference

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:218


setViewState()

setViewState(viewStatePatch): void

Merges partial view-state updates into the viewport source of truth and propagates the result to every active binding.

Parameters

viewStatePatch: Partial<TViewState>

Returns

void

Implementation of

ViewportController.setViewState

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:311


triggerCameraModifiedEvent()

protected triggerCameraModifiedEvent(previousCamera): void

Fires a Events.CAMERA_MODIFIED event on the viewport element.

Parameters

previousCamera: ICamera<number>

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:684


triggerCameraResetEvent()

protected triggerCameraResetEvent(): void

Fires a Events.CAMERA_RESET event on the viewport element.

Returns

void

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:699


updateViewState()

updateViewState(updater): void

Computes a view-state patch from the current state, then applies it through setViewState so normalization, events, and render invalidation stay in the canonical mutation path.

Parameters

updater: Partial<TViewState> | (viewState) => void | Partial<TViewState>

Returns

void

Implementation of

ViewportController.updateViewState

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:338


worldToCanvas()

worldToCanvas(worldPos): Point2

Converts a world-space point to canvas-space coordinates using the computed camera.

Parameters

worldPos: Point3

Returns

Point2

Defined in

packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:281