Modelling - Fix infinite loop in IntWalk_IWalking::ComputeOpenLine()#1263
Open
AtheneNoctuaPt wants to merge 2 commits intoOpen-Cascade-SAS:IRfrom
Open
Modelling - Fix infinite loop in IntWalk_IWalking::ComputeOpenLine()#1263AtheneNoctuaPt wants to merge 2 commits intoOpen-Cascade-SAS:IRfrom
AtheneNoctuaPt wants to merge 2 commits intoOpen-Cascade-SAS:IRfrom
Conversation
Infinite loop occurred in IntWalk_IWalking::ComputeOpenLine() inside 'while (!Arrive)' loop. Fixed by checking for degenerate case after very large amount of iterations have passed.
There was a problem hiding this comment.
Pull request overview
This PR adds a retry cap to IntWalk_IWalking so the walking algorithms stop instead of looping indefinitely when root finding keeps failing during intersection-line construction. In the OCCT modeling pipeline, this affects how open and closed surface/surface intersection lines are advanced in IntWalk.
Changes:
- Hoists shared walk/deflection constants into a file-scope anonymous namespace.
- Adds
aNbBadRootIterguards inComputeOpenLine()to stop after too many consecutiveRoot() > Tolerance()iterations. - Applies the same retry-limit logic in
ComputeCloseLine().
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.
Infinite loop occurred in IntWalk_IWalking::ComputeOpenLine() inside 'while (!Arrive)' loop.
Fixed by checking for degenerate case after very large amount of iterations have passed.