Handle rotation in collision detection

Please don't post Bullet support questions here, use the above forums instead.
fish
Posts: 4
Joined: Sun Aug 12, 2007 8:10 pm

Handle rotation in collision detection

Post by fish »

Hi,
I am currently working at my own 2D physic engine. I've implemented GJK for the collision detection at the moment but how can I handle rotational movement?
I've read that there is a method which use the GJK-algorithm for it but I didn't found any papers about it.
Maybe there is another method which is easyer to implement or faster.

Hopefully that you can give me some helpful tips:
Thank you :)
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Post by Erwin Coumans »

GJK only deals with distance calculations between convex objects at a certain point in time, given their transform. There is no motion involved in GJK, or other interference detection / discrete collision detection.

If you meant you want swept collision detection (aka continuous collision detection), you'll need something else, like conservative advancement. This takes motion like translation and rotation into account.

See also:
http://graphics.ewha.ac.kr/catch/
http://graphics.ewha.ac.kr/fast/
http://www.continuousphysics.com/Bullet ... ection.pdf
or the papers at http://www.dtecta.com/interesting/
Continuous collision detection including rotation using GJK is implemented here and also in above Fast library and upcoming Catch (although using Swift++, instead of using GJK)
Thanks,
Erwin