SAT: Separating Axis Theorem

BlitzMax Forums/BlitzMax Beginners Area/SAT: Separating Axis Theorem

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

I think you do it like so:

For every line in mesh A:
For every point in mesh B:
Find the plane that passes through these three points.

If every point in mesh A is on one side of this plane,
and every point in mesh B is on the other side of this plane,
then you have found a seperating plane, and the meshes are definitely not intersecting.

Next
Next

Then swap mesh A and B and do it again if you haven't found a seperating plane.


I'm pretty sure this only works for convex meshes. It won't work for concave meshes. You'd have to split the concave meshes into a bunch of convex meshes and test each seperately.


There's probably other methods which work for convex meshes, but are slower.