Integrated a Fast Box Intersection library into a geometry utility dll I have for various computational needs. The library is very rich in templates and depends on boost, which makes it a little less desirable to use, but I did anyway.
So, using this library, I can both test for self intersections, and bipartite intersections. Self intersections are particularly bad for creating solid structures, so we want to prevent those from being used.
Using the self intersection part, I can create a neighbor connection graph that can quickly tell me the neighbors of each triangle and if that neighbor is also intersecting the same polygon. Making it very easy to create an intersection path for all intersection pairs.
I can also use it to test for all my planar neighbors when I am finding polygons on the same plane to merge with and test for t-junctions.
But now, I am just getting all the data Marshaled between the native and managed environments. Ehhh!