BS-JD-102 - Quick add and draw-brush tool #11
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#11
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 brush creation via menu/context actions and a modal draw tool that places vertices on a face or floor, then extrudes to convex brush output.
Why
Brushes need a direct authoring workflow in the viewport, not only data components in the inspector.
Implementation notes
Acceptance criteria
Tests/docs
cargo fmt --checkcargo test -p editor brush_toolcargo test -p shared brush_mathcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresDocs updated in README and docs/editor brush pages.
Committed locally as
48b1448(Improve quick brush creation workflow). Not pushed.Starting implementation for
BS-JD-102 - Quick add and draw-brush tool.Planned scope for this pass:
BrushDescand editor history/operator status.Will keep ticket comments updated as implementation and verification progress.
Completed and committed as
fcd34f9 Add draw brush tool.Implemented:
shared::brush_math.BrushDesc::extruded_prismfor floor-polygon prism brushes.B, toolbar pencil, commandbrush.draw).spawn_with_history, Esc/right-click cancels without scene mutation.Verification:
cargo fmt --checkcargo test -p shared brushcargo test -p editor brush_toolcargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresReopened during M1 QA.
QA finding: Draw Brush creates the actor and Backspace/cancel/commit flow works, but newly-created simple convex brushes are immediately flagged invalid. Inspector diagnostics report
Face plane normal is inverted relative to its verticeson generated faces such asface:+y.Likely root cause: generated prism face winding and stored plane normals disagree after the expanded validator added winding-vs-plane checks. Fixing validator/schema generation before continuing QA.
Local fix is implemented and staged for QA, but not committed or pushed per QA signoff rule.
What changed locally:
BrushDesc::extruded_prismtop/bottom face winding so valid draw-brush prisms no longer fail shared brush validation with inverted face-normal diagnostics.docs/editor/brushes.mdwith the new invalid-outline feedback behavior.Verification passed locally:
cargo fmt --checkcargo test -p editor brush_toolcargo test -p shared brushcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresAwaiting user QA before closing or pushing.
Scope decision from QA discussion:
Local implementation updated for the concave/duplicate draw-brush scope and staged for QA. Not committed or pushed.
What changed locally:
SpawnMany/spawn_many_with_historypath, with all generated parts selected after commit/redo.BrushDesc::extruded_prismnow normalizes floor points before building faces, while preserving convex brush storage/hydration.Verification passed locally:
cargo fmt --checkcargo test -p editor brush_toolcargo test -p shared brushcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresAwaiting user QA before closing, committing, or pushing.
Additional local update staged for QA: Draw Brush now shows viewport key hints while active.
Details:
Additional verification passed locally:
cargo fmt --checkcargo test -p editor brush_toolcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresStill awaiting user QA before closing, committing, or pushing.
Additional local update staged for QA: optimized convex composition generation.
Details:
Additional verification passed locally:
cargo fmt --checkcargo test -p shared brush_mathcargo test -p editor brush_toolcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresStill awaiting user QA before closing, committing, or pushing.
Additional local update staged for QA: two-step height setting for quick brush creation.
Details:
Verification passed locally:
cargo fmt --checkcargo test -p editor brush_toolcargo test -p shared brush_mathcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresStill awaiting user QA before closing, committing, or pushing.