API

Interface AttachControlOptions

Optional hooks that let an attachControl caller defer pointer gestures to an external interactor (typically a gizmo pointer-drag dispatcher) so the camera doesn't orbit when the user is interacting with something else on top of it. All fields are optional; omit them to keep the default behavior (the camera always handles its own pointer input).

interface AttachControlOptions {
    isExternalDragActive?: () => boolean;
    isExternalPickPending?: () => boolean;
    keyboard?: boolean | ArcRotateKeyboardOptions;
    pointerMappings?: ArcRotatePointerMappings;
    shouldHandlePointerDown?: (event: PointerEvent) => boolean;
}
Index
isExternalDragActive?: () => boolean

Optional predicate consulted on pointer-move while a camera drag is in progress. When it returns true the camera ABORTS the current drag. Because gizmo picking is async, a press on a gizmo may not be known at pointer-down time (so the camera optimistically starts orbiting); once the gizmo drag is recognised a frame later this lets the gizmo reclaim the gesture and undo the (not-yet-applied) orbit.

isExternalPickPending?: () => boolean

Optional predicate consulted on pointer-move. While it returns true the camera DEFERS its orbit (consumes the move without applying it) — used to wait out an in-flight async gizmo pick so a press that lands on a gizmo never produces a stray orbit, regardless of pick latency.

keyboard?: boolean | ArcRotateKeyboardOptions

Keyboard controls after enableArcRotateKeyboardControls installs the opt-in module. Pass true for legacy-compatible Arrow-key defaults, a configuration object to customize them, or omit/false to disable them.

pointerMappings?: ArcRotatePointerMappings

Independent primary/secondary mappings for mouse and pen drags. Touch remains one-finger rotate plus two-finger pinch zoom.

shouldHandlePointerDown?: (event: PointerEvent) => boolean

Optional predicate consulted on every pointer-down. When it returns false the camera ignores that gesture (no rotate / pan). Used to defer to gizmo interaction so pressing or dragging a gizmo doesn't also orbit the camera.