BS-JD-104 - Brush CSG operations #13
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#13
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
Implement subtract, intersect, and convex merge for selected brushes.
Why
CSG operations make brushes practical for blockout beyond primitive placement.
Implementation notes
Acceptance criteria
Tests/docs
CSG fixture tests for common and degenerate cases. Update docs/editor brush workflow.
Starting implementation for
BS-JD-104 - Brush CSG operations.Initial scope:
brush.intersect,brush.merge_convex, and a staged path for subtract.Will update this issue and #12 as the shared geometry work lands.
Progress checkpoint committed as
02beeb7 Add brush CSG commands.Implemented MVP:
brush.subtract,brush.intersect, andbrush.merge_convexcommand palette commands.Verification:
cargo fmt --checkcargo test -p editor brush_csgcargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresLeaving this issue open for full arbitrary-face CSG: multi-output subtraction, convex plane clipping, material-preserving face matching, and tighter single-undo grouping.
Checkpoint pushed:
8abe470 Validate brush CSG inputs.Implemented:
Verification:
cargo fmt --checkcargo test -p editor brush_csgcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresRemaining follow-up for the full ticket: true preview/commit/cancel UX and full arbitrary-face CSG instead of the current bounds-based MVP.
Completion checkpoint pushed:
4b6617f Preview brush CSG operations.Implemented:
BrushCsgPluginand updated brush docs.Full #13 coverage now includes:
brush.subtract,brush.intersect, andbrush.merge_convexon selected brushes.Verification:
cargo fmt --checkcargo test -p editor brush_csgcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-featuresKnown limitation: this remains the documented bounds-based MVP, not arbitrary-face CSG.
Follow-up scope note:
This M1 ticket remains the MVP CSG path for selected brushes. First-class concave authored brushes and robust arbitrary CSG are now split into the post-Jackdaw geometry-kernel roadmap so the M1 implementation can stay focused on convex/bounds-safe blockout operations.
QA checklist hardening committed locally as
3f85d25(Group brush CSG history edits). Not pushed.Fix:
ApplyBrushCsghistory command.Verification:
cargo fmt --checkcargo test -p editor brush_csgcargo check -p editor --all-targetscargo check --workspace --all-targetscargo check --workspace --all-targets --all-features