I'm open to suggestions for better approaches rather than casting each entity to the type of object I am dealing with and then running the same collision filtering method (as written in previous posts) if it is not null.
If there's a known set of objects which you want to test, you can keep that set handy and sample it directly just like when it wasn't in the space stage. The context of the event handler does not prevent the usage of external data.
I would like to prevent all objects from tunnelling at high velocities when contained within DoubleSided triangles. I thought that by limiting/clamping their momentum this could be a brute force approach to achieve that goal?
Clamping velocity could help, yes, but just setting the fast entity's PositionUpdateMode to Continuous would stop it from going through a wall unless there's lots of speedy rotation or if it's already in contact and being forcefully shoved out.
Having a strong penetration correction helps too; it's not screwing up the bounciness or anything like that (unless you feel the collisions are
too bouncy).
As a last resort for situations where there's high speeds, large forces, and fast rotation such that continuous collision detection can't save you, making the mesh into a solid MobileMesh could help. That way, when an object starts to escape and enters the 'shell,' there will still be a contact pulling it back in rather than the infinitely thin wall alternative.