Repository navigation
Paint Groups brush: paint face groups with a stroke - #245
Merged
Merged
Conversation
Making face groups meant masking first and then grouping from the mask (Ctrl+W), two steps for something testers expect to paint directly. Add a Paint Groups brush to the shelf after Paint. Each stroke makes a new group, and Alt+stroke grows the group under the start of the stroke. It paints whole triangles whose centre is within the brush radius, mirrored by symmetry, honouring Front faces only, leaving hidden faces alone and never moving the surface. Dabs are filled along the path, so fast strokes leave no gaps. The whole stroke is one face-edit undo step, and Escape puts the groups back. The stroke is driven by the app, like Tube, rather than by the dab kernels. Mesh::paint_group visits only the chunks the sphere touches and bumps the face version without recomputing visibility: 0.07 to 0.2 ms per dab on a 1.3M-triangle sphere. The brush panel hides the strength and dab settings, which don't apply. Agents get a clear error rather than a no-op stroke. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GEttLK8THCkZ7KHELbSp7g Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com> # Conflicts: # docs/ROADMAP.md
Signed-off-by: Claude <noreply@anthropic.com> # Conflicts: # CHANGELOG.md # docs/ROADMAP.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a Paint Groups brush (requested by the maintainer): paint face groups directly instead of masking and then grouping.
Behaviour
How
Mesh::paint_groupvisits only chunks whose bounds meet the brush sphere.Drag::GroupPaint,crates/oxy-app/src/group_paint.rs), like Tube, not a dab kernel.BrushKind::PaintGroupsis added everywhere brush kinds are listed: preset and settings keys, icon (amber tint), description, and gravity exclusion.Performance
Per dab on a 1,310,720-triangle sphere (release build, 4 cores, from a throwaway timing loop not in this PR):
Sculpting brushes are untouched.
Verified
cargo fmt --check,clippy -D warnings,cargo test --workspace,check_corpus_ip.py.Not done / limitations
Generated by Claude Code