Skip to main content

Variable: planarProjection

const planarProjection: object

Experimental

Lower-level planar projection helpers for custom synchronizers and tooling that need resolved snapshots or renderer cameras without going through a viewport method. These are advertised as a tier below the core viewport API — signatures may change before 3.0 stable.

Advanced helper namespace; prefer viewportProjection for stable application-level presentation reads and writes.

Type declaration

adapter

adapter: ViewportProjectionAdapter<PlanarViewState, PlanarViewPresentation, PlanarProjectionSnapshot> = planarProjectionAdapter

Experimental

applyToRenderer()

applyToRenderer: (args) => PlanarResolvedICamera | undefined = applyPlanarICameraToRenderer

Experimental

Pushes a resolved ICamera onto a vtkRenderer's active camera. Returns the applied camera, or undefined if the camera was incomplete.

Exposed for custom synchronizers and tooling. Less stable than the core viewport API; signatures may change before 3.0 stable. Prefer the planarProjection namespace re-export over importing directly.

Parameters

args

args.activeSourceICamera?: PlanarResolvedICamera

The resolved ICamera to apply.

args.renderer: vtkRenderer

The VTK renderer whose camera will be updated.

Returns

PlanarResolvedICamera | undefined

The applied ICamera, or undefined if required fields were missing.

createImageSliceBasis()

createImageSliceBasis: (args) => PlanarSliceBasis = createPlanarImageSliceBasis

Parameters

args

args.canvasHeight: number

args.canvasWidth: number

args.image: IImage

Returns

PlanarSliceBasis

createVolumeSliceBasis()

createVolumeSliceBasis: (args) => object = createPlanarVolumeSliceBasis

Parameters

args

args.canvasHeight: number

args.canvasWidth: number

args.imageIdIndex?: number

args.imageVolume: ImageVolume

args.orientation?: PlanarOrientation

args.viewState?: PlanarViewState

Returns

object

currentImageIdIndex

currentImageIdIndex: number

maxImageIdIndex

maxImageIdIndex: number

sliceBasis

sliceBasis: PlanarSliceBasis

derivePresentation()

derivePresentation: (args) => DerivedPlanarPresentation = derivePlanarPresentation

Experimental

Derives canvas-space presentation values (pan, zoom, rotation) from a semantic PlanarViewState and a PlanarSliceBasis.

Pan is computed in two parts:

  1. panFromAnchorWorld — the offset caused by the anchor point being away from sliceCenterWorld, projected into canvas pixels.
  2. panFromAnchorCanvas — the offset caused by the anchor being placed at a non-center canvas location (e.g. zoom-to-cursor).

Exposed for custom synchronizers and tooling. Less stable than the core viewport API; signatures may change before 3.0 stable. Prefer the planarProjection namespace re-export over importing directly.

Parameters

args

args.camera?: PlanarViewState

The semantic camera (may be undefined for defaults).

args.canvasHeight: number

Current canvas height in CSS pixels.

args.canvasWidth: number

Current canvas width in CSS pixels.

args.sliceBasis: PlanarSliceBasis

The geometric basis for the current slice.

Returns

DerivedPlanarPresentation

Derived pan (pixels), zoom (scale factor), and rotation (degrees).

getPan()

getPan: (snapshot) => Point2 = getPlanarProjectionPan

Reads raw canvas-space pan from a projection snapshot.

Parameters

snapshot: PlanarProjectionSnapshot

Returns

Point2

getScale()

getScale: (snapshot) => Point2 = getPlanarProjectionScale

Reads the native two-axis Planar scale from a projection snapshot.

Parameters

snapshot: PlanarProjectionSnapshot

Returns

Point2

getSnapshot()

getSnapshot: (request) => PlanarProjectionSnapshot | undefined = getPlanarProjectionSnapshot

Builds the capability-based Planar projection snapshot for a viewport-like object or an explicit view-state request.

Parameters

request: PlanarProjectionRequest

Returns

PlanarProjectionSnapshot | undefined

getZoom()

getZoom: (snapshot) => number = getPlanarProjectionZoom

Reads the legacy uniform zoom value from a Planar projection snapshot.

Parameters

snapshot: PlanarProjectionSnapshot

Returns

number

resolveICamera()

resolveICamera: (args) => PlanarResolvedICamera = resolvePlanarICamera

Experimental

Produces a complete ICamera from a PlanarSliceBasis and an optional PlanarViewState. This is the main entry point for VTK-based render paths that need to set up a vtkRenderer camera.

The pipeline:

  1. derivePlanarPresentation extracts pan/zoom/rotation.
  2. getResolvedPanOffset converts canvas-space pan back to world offset.
  3. focalPoint = sliceCenterWorld - worldOffset.
  4. position = focalPoint + viewPlaneNormal * cameraDistance.

Exposed for custom synchronizers and tooling. Less stable than the core viewport API; signatures may change before 3.0 stable. Prefer the planarProjection namespace re-export over importing directly.

Parameters

args

args.camera?: PlanarViewState

The semantic camera (may be undefined for defaults).

args.canvasHeight: number

Current canvas height in CSS pixels.

args.canvasWidth: number

Current canvas width in CSS pixels.

args.sliceBasis: PlanarSliceBasis

The geometric basis for the current slice.

Returns

PlanarResolvedICamera

A fully resolved ICamera ready for a VTK renderer.

Defined in

packages/core/src/RenderingEngine/GenericViewport/Planar/index.ts:33