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