BS-JD-103 - Brush element edit modes #12
Labels
No Label
area:assets
area:brushes
area:extensions
area:governance
area:inspector
area:operators
area:physics
area:project-ux
area:quality
area:runtime
area:scene-io
area:terrain
area:viewport
priority:P0
priority:P1
priority:P2
priority:P3
roadmap:jackdaw
type:architecture
type:docs
type:epic
type:feature
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Falling-Metal-Interactive/Blacksite#12
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Add vertex, edge, face, and clip edit modes for selected brushes.
Why
Useful blockout requires editing existing brush geometry without recreating whole shapes.
Implementation notes
Acceptance criteria
Tests/docs
Geometry edit tests, invalid edit tests, and undo invariants. Update brush editing docs.
Starting implementation for
BS-JD-103 - Brush element edit modes.Plan for the next slice:
BrushEditModeresource and hotkeys for Object / Vertex / Edge / Face / Clip.I will keep this ticket open until element dragging/edit commits are implemented and verified.
Progress checkpoint committed as
0bfc062 Add brush element edit modes.Implemented so far:
BrushEditModeresource: Object, Vertex, Edge, Face, Clip.BrushElementSelectionfor brush element selection independent of actor selection.1vertex,2edge,3face,4clip;Escreturns to Object mode.Brush: <mode>viewport badge.docs/editor/brushes.md.Verification:
cargo fmt --checkcargo test -p editor brush_editcargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresRemaining before closing this ticket:
Second progress checkpoint committed as
93ab6c2 Add brush element drag edits.Added:
SetBrushcommand.Verification:
cargo fmt --checkcargo test -p editor brush_editcargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresRemaining before closing #12:
BS-JD-104 - Brush CSG operations).Checkpoint pushed:
d9e52d7 Reject invalid brush element edits.Implemented:
BrushDescon LMB release before committing history.SetBrushoperation.Verification:
cargo fmt --checkcargo test -p editor brush_editcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresRemaining follow-up for the full ticket: clip mode still needs actual preview + commit behavior.
Completion checkpoint pushed:
f09d35e Add brush clip preview.Implemented:
Full #12 coverage now includes:
Verification:
cargo fmt --checkcargo test -p editor brush_editcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresKnown limitation: Clip is the documented bounds-based MVP, not arbitrary plane clipping or split-into-two output.
QA checklist hardening committed locally as
1b9fbeb(Group brush clip history edits). Not pushed.Fix:
SetBrushTransformhistory command instead of separate transform and brush history entries.Verification:
cargo fmt --checkcargo test -p editor brush_editcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresReopened after editor QA found brush element editing was not usable enough for acceptance: element modes did not clearly distinguish themselves, the actor transform gizmo stayed active, and press/drag behavior could move or snap geometry unpredictably.
Local QA-ready fix is implemented but not pushed:
GizmoTargets are removed while Vertex/Edge/Face/Clip brush element modes are active, so the actor gizmo no longer moves the whole brush during element editing.Actor gizmo offstate.Verification passed locally:
cargo fmt --checkcargo test -p editor brush_editcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresAwaiting user QA before commit/push/signoff.
Updated the local QA-ready fix after review: brush element editing now uses a real transform gizmo for the selected element set instead of viewport floor-plane click/drag.
Current local behavior:
W,E, andRdrive translate, rotate, and scale through the normal transform gizmo.SetBrushhistory operation when the gizmo releases.Verification passed locally:
cargo fmtcargo test -p editor brush_editcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresAwaiting user QA before commit/push/signoff.
Current Bevy 0.19 tree re-verification for BS-JD-103:
Implemented behavior present locally:
BrushEditModeandBrushElementSelection.BrushElementGizmo.Verification run on 2026-06-24:
cargo test -p editor brush_edit-> 5 passedcargo check -p editor --all-targets-> passedClosing the implementation ticket. The broader interactive acceptance pass remains tracked by #37.