You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Collisions only - no gravity, rigid body handling, or complex solvers
Is data-oriented and functional
Conventions
"Sweep" tests indicate at least 1 of the objects is moving.
The number indicates how many objects are moving. e.g., box-box-sweep2 means we are comparing 2 aabbs, both of which are moving.
"Overlap" tests don't take movement into account, and this is a static check to see if the 2 entities overlap.
plural forms imply a collection. e.g., BoxSegmentsSweep1Indexed() checks one box segment against a set of line segments.
If there is more than one collision, the closest collision is set in the h *Hit argument.
Visualization of some (but not all) functions
Box-Box overlap
Box-Box sweep 1
Box-Box sweep 2
Box-OrientedBox overlap
Box-Segment sweep 1
Box-Segments sweep 1 indexed
Box-Segment overlap
Line-Circle overlap
Segment-Circle overlap
Examples (Ebitengine)
Clone this repository
In the terminal, change to the examples directory cd examples
Run a folder with go run ./foldername. Example: go run ./box_box_sweep1
Credits
Most of these collision checks were adapted from existing open source repos: