New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TimeOfImpact loop fixes #36
Merged
Merged
Conversation
This file contains 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
Awesome! Small nit: can you break the '50' iterations into a constant at the top of the file? And use it for the other '50' right above it? Thanks! |
Done. All these constants seem to be public for no reason...but I'm just gonna be consistent :p |
Looks great, thanks! |
filiph
added a commit
to filiph/box2d.dart
that referenced
this pull request
Dec 5, 2017
filiph
added a commit
to google/box2d.dart
that referenced
this pull request
Dec 7, 2017
* Make velocityThreshold mutable - See jbox2d/jbox2d#1 * TimeOfImpact loop fixes - See jbox2d/jbox2d#36 * fix ropejoint pool leak bug - See jbox2d/jbox2d#59
spydon
pushed a commit
to flame-engine/forge2d
that referenced
this pull request
Dec 26, 2020
* Make velocityThreshold mutable - See jbox2d/jbox2d#1 * TimeOfImpact loop fixes - See jbox2d/jbox2d#36 * fix ropejoint pool leak bug - See jbox2d/jbox2d#59
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.
These are some small fixes for the TimeOfImpact class. I was experiencing occasional stalls in the main loop under certain circumstances. These changes seem to fix those.
I compared the TimeOfImpact class to the latest C++ Box2D source and ported some of the changes found there.
b83f937 is not based on the Box2D source and is probably the most important change here as it prevents a whole lot of useless loop iterations under certain conditions. If the root loop is exhausted (performs 50 iterations without reaching a solution) nothing will have changed in the enclosing loop (since neither
t1
nort2
will have changed), so the enclosing loop will continue looping and calculating the same thing without reaching a solution.