Shape Healing - Optimize FixFaceOrientation#584
Merged
dpasukhi merged 18 commits intoOpen-Cascade-SAS:IRfrom Oct 11, 2025
Merged
Shape Healing - Optimize FixFaceOrientation#584dpasukhi merged 18 commits intoOpen-Cascade-SAS:IRfrom
dpasukhi merged 18 commits intoOpen-Cascade-SAS:IRfrom
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR reworks the shell construction algorithm by using efficient data structures and a graph-based connectivity analysis to optimize face orientation fixes.
- Introduces incremental memory allocation via NCollection_IncAllocator and indexed maps for O(1) access.
- Implements a graph-based DFS extraction for connected component analysis of face shells.
Comments suppressed due to low confidence (1)
src/ModelingAlgorithms/TKShHealing/ShapeFix/ShapeFix_Shell.cxx:258
- [nitpick] Adding inline comments to explain the edge orientation retrieval and reversal logic in this loop would help future maintainers understand the intent behind the connectivity analysis.
anExp1.Next())
AtheneNoctuaPt
approved these changes
Jun 25, 2025
589832b to
e03cefd
Compare
Rework algorithm with efficient data structures and graph-based connectivity analysis
… and memory management
…king in GetShells function
…ent tracking in GetShells function" This reverts commit 5a32593.
…ry management and performance using custom allocators
This reverts commit f08aabb.
…ndling in ShapeFix_Shell
…clarity and efficiency
… management and code clarity
…arity and efficiency with type aliases and consistent variable naming
5ad2f18 to
2c4c729
Compare
dpasukhi
added a commit
to dpasukhi/OCCT
that referenced
this pull request
Oct 20, 2025
Fixed issue with unstable shape order after fixing. Fixed reference data which was changed
dpasukhi
added a commit
that referenced
this pull request
Oct 21, 2025
dpasukhi
added a commit
to dpasukhi/OCCT
that referenced
this pull request
Oct 27, 2025
Second iteration of fixing regressions. Fixed issue with loops and incorrect shell created. Open-Cascade-SAS#584 affected some tests which were not updated on time. Now all test cases are passed.
dpasukhi
added a commit
that referenced
this pull request
Oct 27, 2025
dpasukhi
added a commit
to dpasukhi/OCCT
that referenced
this pull request
Dec 5, 2025
Refactor shell construction algorithm for improved performance: - Add GetConnectedFaceGroups function using DFS to identify topologically connected face groups before shell construction - Replace O(nˆ3) iterations with pre-built connectivity maps (FaceEdgesMap, EdgeFacesMap) using STL unordered_map with custom allocators for O(1) lookup. - Process only the largest connected component first, significantly reducing time complexity for large face sets
dpasukhi
added a commit
to dpasukhi/OCCT
that referenced
this pull request
Dec 5, 2025
…AS#753) Fixed issue with unstable shape order after fixing. Fixed reference data which was changed
dpasukhi
added a commit
to dpasukhi/OCCT
that referenced
this pull request
Dec 5, 2025
…AS#769) Second iteration of fixing regressions. Fixed issue with loops and incorrect shell created. Open-Cascade-SAS#584 affected some tests which were not updated on time. Now all test cases are passed.
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.
Rework algorithm with efficient data structures and graph-based connectivity analysis