Relative Velocity Calculation Adjustment #1
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.
In translating this code to a VB.Net implementation, it was found that objects would build up angular velocity until they "exploded" against one another. This is most evident if you create an open "box" of fixed colliders and then drop an assortment of polygons and circles into the box.
Thanks to assistance from this thread (https://social.msdn.microsoft.com/Forums/vstudio/en-US/65526d49-5107-4ffc-b25e-1b5a619afcb3/2d-rigidbody-physics-engine-bug?forum=vbgeneral) it was determined that the rv values should be calculated with subtraction on both terms:
"And both minus (b.vel - ... and a.vel - ...) (not both plus), because of viewing from A to B (standing on the edge of A looking at the mass-point of B moving by -> standing on earth watching a shootingstar)"
The two changes proposed in this file solved the issue and the translated code works exactly as expected now.
PS. Thanks so much for creating this and the associated articles on your blog! Amazing, wonderful, outstanding work!!