Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

setanarut/coll

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoDoc

coll - 2d collision library for Go

Features

  • 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-overlap

Box-Box sweep 1

Box-Box sweep 1

Box-Box sweep 2

Box-Box sweep 2

Box-OrientedBox overlap

abb-obb-overlap

Box-Segment sweep 1

Box-Segment sweep 1

Box-Segments sweep 1 indexed

Box-Segments sweep 1

Box-Segment overlap

Box-Segment overlap

Line-Circle overlap

alt text

Segment-Circle overlap

alt text

Examples (Ebitengine)

  1. Clone this repository
  2. In the terminal, change to the examples directory cd examples
  3. 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:

Morty Proxy This is a proxified and sanitized view of the page, visit original site.