SubdivideSettings::onlyNearNotFlippable - #6956
Merged
Merged
Conversation
If true, only the edges having a vertex of their left or right triangle incident to a notFlippable edge can be split. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fails without queuing the edges opposite to a new vertex on a notFlippable edge: after a cascade of flips such edge becomes near notFlippable only via the new vertex. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…re already in the queue Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…to subdivide-near-not-flippable
After makeDeloneOriginRing their triangles are different, so an edge rejected before (e.g. by maxSplittableTriAspectRatio) can become splittable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Grantim
approved these changes
Sep 29, 2026
… notFlippable instead of null Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
New
SubdivideSettings::onlyNearNotFlippable: if true, only the edges having a vertex of their left or right triangle incident to anotFlippableedge can be split, so subdivision is localized nearnotFlippableedges.notFlippablemust not be null then (asserted; nothing is split in release otherwise), while an emptynotFlippableis fine and splits nothing.notFlippableedges are collected once and extended with the new vertex whenever anotFlippableedge is split (such edges are never flipped, so no other update is needed).makeDeloneOriginRingsome of them become near only via the new vertex.subdivideMesh( ObjectMeshData & )the flag applies tonotFlippable | selectedEdges | creases.New tests:
MRMesh.SubdivideMeshOnlyNearNotFlippable: on a subdivided plane with one boundary edge marked, far fewer splits than without the flag (39 vs 8240 locally), and none with emptynotFlippable.MRMesh.SubdivideMeshOnlyNearNotFlippableOpposite: a small jittered plane where one long near edge is left unsplit if the opposite edges are not queued; checks that no long edge nearnotFlippableremains.🤖 Generated with Claude Code