Use geodesic walk for MeshDomain particle splitting instead of Euclidean offset#2502
Merged
akenmorris merged 10 commits intomasterfrom Mar 2, 2026
Merged
Use geodesic walk for MeshDomain particle splitting instead of Euclidean offset#2502akenmorris merged 10 commits intomasterfrom
akenmorris merged 10 commits intomasterfrom
Conversation
…ean offset The split particle was previously placed at a raw Euclidean offset (potentially off-surface or on the other side), now it walks along the mesh surface via geodesic_walk.
Surface construction and geodesic remeshing during optimize setup are now done in parallel using tbb::parallel_for, with SW_PROGRESS updates showing "Loading meshes" or "Loading and remeshing meshes" with a count and progress bar. Pre-built Surface overloads added to MeshDomain, Sampler, and Optimize to support the three-phase approach (collect, parallel compute, sequential register).
UpdateParticlePosition negates the update vector before calling geodesic_walk, so we need to negate it here to match the base class behavior (moving in the positive local_direction).
Parallelize mesh loading with TBB and add progress reporting
…ean offset The split particle was previously placed at a raw Euclidean offset (potentially off-surface or on the other side), now it walks along the mesh surface via geodesic_walk.
UpdateParticlePosition negates the update vector before calling geodesic_walk, so we need to negate it here to match the base class behavior (moving in the positive local_direction).
…/SCIInstitute/ShapeWorks into amorris/2501-mesh-particle-split
…mization iterations to 500 to resolve particle swap from geodesic walk splitting
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.
The split particle was previously placed at a raw Euclidean offset (potentially off-surface or on the other side), now it walks along the mesh surface via geodesic_walk. This prevents particle splits from jumping to the other side of a very thing object area.