> For the complete documentation index, see [llms.txt](https://2yeet.gitbook.io/anvilcsg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://2yeet.gitbook.io/anvilcsg/geometry/selection-and-transform.md).

# Selection and transform

The Select tool is used for choosing, moving, rotating, and resizing map objects. Clicking the active tool button again returns to Select. `Escape` cancels the active operation or returns to Select.

## Selecting objects

* Left click selects a brush or entity.
* Hold `Shift` to add or remove objects from the current selection.
* Click empty space to clear the selection.
* Clicking the only selected loose brush again deselects it.
* `Ctrl/Cmd+A` selects all selectable map objects.

When a brush belongs to a user group, a normal click selects the outer group. Double-click can drill into grouped content where that operation is supported.

### Overlapping objects

In an orthographic pane, use `Alt+left click` to cycle through objects under the cursor. Use `Shift+Alt+left click` to cycle while adding or toggling the result.

This is useful when several brushes share the same outline.

## Marquee selection

Drag from empty space in an orthographic pane to draw a selection rectangle.

In Perspective, hold `Shift` and drag from empty space. Perspective marquee selection is additive. An entity is included only when its bounds are fully inside the rectangle.

## Moving a selection

Drag selected geometry to move it. For a multi-selection, drag inside its combined bounds to move everything together.

Hold `Shift` while dragging to clone the selection and move the copy.

In an orthographic pane:

* Arrow keys move by one grid step.
* `Shift+Arrow` clones and moves by one grid step.
* `Ctrl/Cmd+Arrow` moves by a fixed unit instead of the current grid size.

### Magnet Snap

Magnet Snap aligns moving geometry with nearby vertices, edges, and faces. Use it when two shapes must meet but their positions are not easy to match from the grid alone.

### Texture Lock

Texture Lock compensates face UVs while geometry is moved, rotated, or resized. With it enabled, a wall texture can stay in place while the brush changes.

## Orthographic handles

Selected geometry has handles in the Top, Front, and Side panes:

* Drag the body to move.
* Drag a corner rotation handle to rotate.
* Drag an edge or corner square to resize.

The current grid controls normal movement and resizing.

## Perspective gizmo

Perspective supports three transform modes:

* Move
* Rotate
* Scale

It also supports three transform spaces:

* **Global** follows the world axes.
* **Normal** follows the selected surface normal where available.
* **Local** follows the selected object's rotation.

Drag an axis handle to constrain the operation to that axis.

## Transform commands

The context menu provides these common commands:

* Flip X, Y, or Z
* Rotate 90 degrees around X, Y, or Z
* Align To Grid on Top, Bottom, Left, Right, Front, or Back
* Snap To Grid
* Resize To Grid
* Set Pivot

**Snap To Grid** moves a loose brush or an outer group as one rigid object.

**Resize To Grid** changes the bounds. On a generated primitive, Anvil also updates the generator settings to match the new size.

## Numeric transform

Shortcut: `Ctrl/Cmd+M`

**Transform Selection** lets you enter:

* World Pivot Position
* Delta Rotation

Numeric scale is not available in this window.

## Set Pivot

Set Pivot works on one brush or one group. It changes the authored origin without moving the geometry.

The window provides bounds-based pivot positions and a live preview. This is useful before rotation or a radial array.

## Array Over Pivot

Array Over Pivot creates rotated copies around the current pivot.

Settings include:

* Count, including the original
* Step Angle
* Fill 360
* Total Sweep
* X, Y, or Z axis
* Radius
* Left or Right pivot side

The window shows a live ghost preview. **Create Array** keeps the original selection, creates the rotated copies, and groups the result.

The current UI supports up to 64 elements.

## Groups and transforms

A normal click on grouped geometry selects the outer group. Moving, rotating, snapping, or cloning it keeps the group together.

`Ctrl/Cmd+G` groups two or more selection units. `Ctrl/Cmd+Shift+G` ungroups a normal user group. Generated shape wrappers are protected and cannot be dissolved by mistake.
