Fix issue with 'Bodies.circle' usage. #1268
Open
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.
#1242
Bug reproduction path:
The issue arises when creating two circles with a
radius
of0
passed intoBodies.circle()
.In this scenario, the
body.mass
becomes0
, leading to aNaN
in the logic withinBody.js
as shown below:The occurrence of
NaN
in the above code subsequently triggers avertexA is undefined
error inCollision._findSupports()
.Fix:
To resolve this issue, throw an explicit
Error
message when aradius
of0
is provided as input inBodies.circle()
.Bodies.circle
must be non-zero."Trade-offs:
Performance:
constant-time
condition check inBodies.circle()
.Alternative:
Annotate only:
radius
of0
as input may lead to a bug.radius
of0
in dynamic logic; opt for uncalled logic instead."