The camera whose rays resolve pointer positions into the scene (§71).
OptionalclickClick movement tolerance in NDC. Defaults to DEFAULT_CLICK_MOVE_THRESHOLD.
OptionaldepthClip-space depth convention the camera's projection was built with (plan
D8). Defaults to "negative-one-to-one", matching
Camera.updateProjectionMatrix and the WebGL 2 MVP (§120); WebGPU callers
pass "zero-to-one".
The current picking candidates, called once per platform event.
A function rather than an array so the caller can rebuild the list when the set of candidates changes without re-creating the input; returning a stable array is the cheap case and is expected.
OptionalpickOptional GPU/pixel pick seam (§71 "gpu", RFC 0005). When omitted, every
platform handler stays fully synchronous — the ray/bounds pick
path only, which already skips hitTestMode === "gpu" nodes. Existing
callers observe byte-identical timing: no await, no microtask.
When present, each handler copies the event fields PointerInput
actually reads and enqueues work per pointerId: overlapping
down/move/up/cancel on one pointer cannot race or resolve the same node
twice (in-flight GPU picks must not reorder), independent pointers may
overlap, and a dispose that lands mid-await drops the dispatch. GPU-mode
nodes resolve only through this seam; a provider miss (undefined or an
id that is not in PointerInputOptions.pickables) falls back to
the ray tier. Capture still skips picking — the provider is not consulted
while a pointer is captured.
Construction options for PointerInput.