Intersection and selection

Hi everyone.

I feel like a jerk coming here and asking someone else to do something for me like this, but I could really do with this soon and it'll take me a while to learn enough to be able to do it myself. So if anyone can help me out then that'd be great.

I want to be able to find intersections between separate objects and highlight those if possible. A selection of the offending edges would seem to make the most sense to me, of course that'd only work on a single object at a time but I can live with selecting an object and testing that, then moving on to the next.

My thoughts were that a ray cast from each vertex on a face to every other vertex on that face would be able to find more or less every intersection. Perhaps there would be a better method though.

I have googled this a fair amount and while there's some promising results, nothing seems to quite do what I want and I lack the skills to adapt them.

I think this is close but I'm not really sure what it's returning in the listener...

Also some similar stuff here but again, it's not quite what I want (or is too inefficient at least).