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
protectedbindings:Map<string,ViewportDataBinding<TDataPresentation>>
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:75
dataPresentation
protecteddataPresentation:Map<string,TDataPresentation>
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:79
dataProvider
protecteddataProvider:DataProvider<object,unknown>
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:71
element
readonlyelement:HTMLDivElement
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:64
id
readonlyid:string
Implementation of
ViewportController.id
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:63
isDestroyed
protectedisDestroyed:boolean=false
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:81
renderContext
protectedrenderContext:TContext
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:73
renderingEngineId
abstractreadonlyrenderingEngineId:string
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:66
renderPathResolver
protectedrenderPathResolver:RenderPathResolver
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:72
type
abstractreadonlytype: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
protectedviewState: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()
protectedaddLoadedData(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
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()
protecteddestroyBindings():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()
protectedforEachBinding(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
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:299
getBinding()
protectedgetBinding(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()
protectedgetCameraForEvent():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()
protectedgetCurrentBinding():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()
protectedgetDataPresentationState(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()
protectedgetDisplaySetRenderMode(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()
protectedgetDisplaySetRole(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()
protectedgetFirstBinding():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()
protectedgetReferenceViewContexts(_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()
abstractgetResolvedView():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
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()
protectedmergeDataPresentation(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()
protectedmodified(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()
protectednormalizeViewState(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()
protectedonDestroy():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()
protectedremoveAllData():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()
abstractrender():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()
protectedrenderBindings():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()
protectedresizeBindings():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()
protectedsetDataPresentationState(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()
protectedsetDefaultDataPresentation(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()
protectedtriggerCameraModifiedEvent(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()
protectedtriggerCameraResetEvent():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
Defined in
packages/core/src/RenderingEngine/GenericViewport/GenericViewport.ts:281