Distinguishing touching and intersecting geometries

Let’s say I have that two geometries that do collide. How can I tell if they’re intersecting or just touching each other, by touching I mean share single point, line, or plane. I’ve tried variety of methods using CollisionResults or BoundingVolume but all I can think of is just buggy functions that assume properties about the geometries form and size.

The second thing, if the geometries sharing a same plane, how can I find it?

Thanks again for helping :0