# Box-box contact information

I have two colliding boxes, How i can calculate contact information like (contact normal, contact point and penetration) .

Is there any simple algorithm .

Note: i'm using XNA .

– user13109
Feb 1 '12 at 21:15
• Are you using a physics engine, or creating your own implementation? Feb 1 '12 at 23:18
• I'm building physics engine Feb 1 '12 at 23:52
• Are the two boxes axis aligned (ie - the borders are aligned to the x and y axis?), or can they be on an angle (ie, defined by four arbitrary points?)? Feb 2 '12 at 7:47
• Google OBB (Oriented bounding boxes) algorithms if your boxes are arbitrarily aligned otherwise you can use AABB (Axis-aligned bounding boxes) algorithms. Also for extensive detail and algorithms I recommend the book "Real Time Collision Detection" by Christer Ericson. Feb 2 '12 at 15:49

I think this topic has been discussed a few times in the "Physics for Game Programmers" tutorial sessions at the Game Developers Conference.

This paper should at least give you some ideas: Contact Generation by Erwin Coumans.

There has definitely been at least one presentation by Erin Catto about how he does it in Box2d, but it's not clear whether the OP wants 2d or 3d. Anyway, his presentations are excellent and at least one of them (the 2008 one IIRC) mentions contact generation between two boxes via clipping: http://code.google.com/p/box2d/downloads/list

Maybe I'm not fully understanding your question, but if you're looking for general info on collision detection Microsoft has two MSDN pages available, one specifically for XNA:

Bounding Volumes and Collisions in XNA

Collision Detection Overview

You could also look at the Box2D physics engine to get more detailed info on the technical aspects.

• I think it's just for Collision Detection and it does not return any collision information Feb 3 '12 at 19:33