Hi Jared, I wrote some python libraries, but these are generic and works outside of xsi. Sort of a ray tracer if you may. But they don't really solve your problem, because I was just looking at each object as a full and not polygon. The code works on files saved on disk as camera data and bounding box data.
That does not solve your problem, but you can take a took into them in case you wish to write your code in python. Some of the methods might help you. I will post the libraries link as soon as I reach work.

