# Navigation

On touch devices, you can navigate like this:

### Two-finger parallel drag: pan

Place two fingers on the 3D view and move them in approximately the same direction. The camera pans by the average movement of both fingers.

Recognition requires both fingers to move more than 10 screen units and the angle between their movement vectors to be less than 90 degrees. When **Swap pan and rotate** is enabled, this gesture rotates instead.

### Pinch or spread: zoom

Move two fingers toward or away from each other to zoom around their midpoint.

- The gesture is recognized after the distance between the fingers changes by more than 20 screen units.
- The fingers must move in substantially opposing directions: the angle between their movement vectors must be greater than 90 degrees.
- Spreading and pinching produce opposite zoom directions.
- Zoom distance is normalized for display DPI.

If a two-finger movement does not satisfy either the pan or pinch thresholds, no navigation gesture starts. A gesture is classified once and keeps that mode until it ends; lift both fingers before switching from pan to pinch or vice versa.

### Tap: select

A tap on a selectable model object selects it exclusively. A tap on empty model space clears the selection. If multi-selection mode is already active, a tap toggles the touched object instead.

### Press and hold: add or remove from selection

On a device currently operating in touch-input mode, hold a finger on a selectable object for **0.75 seconds**. The touched object is toggled in the current selection. Moving into a drag or lifting before the threshold cancels the pending hold action.

### Double-tap: contextual model action

A double-tap is recognized from the platform tap count or from two taps occurring within approximately 0.3 seconds. In a focused 3D view it can:

- fit the camera to the selected object when that object permits move-to-on-double-click;
- enter the nearest visible projection sphere when a laser-scan element is selected;
- begin editing a selected comment;
- restart line tracking from the selected object while line tracking is active.

The applicable subsystem decides the result. Double-tap therefore has no effect when the selection or current mode does not support one of these actions.

### Window Zoom: one-finger rectangle

When **Window Zoom** is enabled, a one-finger drag draws a rectangular overlay instead of orbiting. Release the finger to zoom the 3D camera to that rectangle. An empty rectangle is ignored.

## Walk mode

Walk mode treats the centroid of up to three active touches as a floating joystick. The joystick appears after the touch centroid leaves a DPI-scaled dead zone. The number of fingers present when the gesture begins selects the joystick function.

| Fingers | Horizontal drag | Vertical drag |
| --- | --- | --- |
| One | Turn left/right | Move forward/backward |
| Two | Strafe left/right | Elevate down/up |
| Three | Turn left/right | Look vertically |

The joystick center is reset whenever fingers are added or removed. Lift all fingers to hide it. A pinch can also change the camera distance from a focused avatar, constrained by the walk camera's minimum and maximum distance.

## PDF documents

PDF gestures are active only while the PDF view owns the interaction and no PDF markup tool is active.

- **One-finger drag:** pans the page.
- **Two-finger parallel drag:** also pans the page.
- **Pinch or spread:** zooms around the midpoint of the fingers.
- **Window Zoom enabled:** one-finger drag draws a zoom rectangle; pinch zoom is disabled while this mode is enabled.

The PDF controller can optionally restrict zoom to positions inside the page. Releasing the final touch ends the PDF interaction and commits any post-gesture update.

## IntelliPID and other 2D drawing views

- **Two-finger parallel drag:** pans an IntelliPID view while the pointer is over it.
- **One-finger drag:** pans when the view's Pan tool is active.
- **Pinch or spread:** changes the orthographic zoom around the gesture midpoint, subject to the view's zoom limits.
- **Pinch or spread on a directional drawing image:** scales the image around the gesture midpoint when the image uses the `DirectionalZoom` component.

Touching with more than one finger suppresses ordinary IntelliPID element highlighting so navigation is not mistaken for element selection.

## UI gestures

### Tap

A tap is processed as the primary pointer action. It activates buttons, tabs, tree nodes, menu items, links, toggles, and similar controls. Tapping a text field focuses it and, on mobile or browser-streamed touch clients, can open the on-screen keyboard.

### Drag to scroll

Touch-dragging scrolls supported lists and toolbars. The main left-menu toolbars install explicit vertical drag-scrolling; standard Unity scroll views may also provide their normal touch scrolling.

For browser-streamed touch input, scrolling begins when the finger moves more than 5 panel units along the scroll view's permitted axis within 1 second. This threshold leaves room for a tap or long-press to be recognized.

### Streamed long-press: context menu

In the browser-streamed client, hold one finger on the same UI element for more than **1 second**, moving no farther than 5 panel units. On release, the element's context menu opens if that element exposes one. Scrolling, leaving the original element, or using more than one finger cancels the action.

This streamed UI long-press is separate from the native 0.75-second model-selection hold.

### Direct manipulation

Draggable controls continue to use pointer drag behavior on touch. Examples include movable tabs, splitters, sliders, and application-specific drag-and-drop targets. The exact result belongs to the touched control rather than to a global multi-touch gesture.
