OptionalgetGet the current camera position in world space (Y-up). Used for depth-based scaling. Optional — markers render at uniform size if not provided.
Get the canvas/viewport dimensions in pixels
Get the axis-aligned bounding box for an entity by its expressId. Returns null if the entity is not found.
Subscribe to camera/render changes. The callback is invoked synchronously inside the polling RAF so the overlay can re-project in the same animation frame for zero-lag tracking during orbit/pan/zoom. Returns an unsubscribe function.
Project a world-space position to screen coordinates (pixels). Returns null if the point is behind the camera.
Viewer-agnostic projection interface. Each renderer (WebGPU, Three.js, Babylon.js, etc.) provides an implementation of this interface to enable BCF 3D overlays.