Here's a tricky one - my project (Skyscraper, www.skyscrapersim.com
) is currently stuck on Thing meshes (really just for walls and floors; objects are not affected and I'll eventually be migrating those to genmeshes) due to a Cut function I made that creates holes in polygons by simply chopping up each poly into 5 pieces, discarding the 5th (which results in 4 polygons, and a hole), and then remapping the texture across the resulting 4 polygons. This is vital because, for example, if you create an elevator shaft in my app, first you'll have all of the floors/ceilings for each level already in place, and then the Cut function will automatically cut holes vertically in every polygon within the shaft's area, making room for the shaft. This is by design, since buildings are written in a scripting language I designed, and I've tried to minimize the overall complexity (so for a square-shaped floor, you'd only have to specify a single polygon, instead of creating dozens of polygons to fit around all of the shaftwork, stairwells, etc, since all of that is done automatically). This is also done with doors (including elevator doors), since a wall is created, and then later on when a door is placed, a hole is cut in the area for the door.
That stuff is fairly simple because the polygons are basic and non-triangulated. But in order to move to genmeshes, I'd need to make (or have someone make) a mesh-based variant of the csPoly3D::SplitWithPlane functions, which is what my Cut function uses. I was thinking over some of it recently, and the main problem is that I'm not good (yet) with working with triangulated objects. Basically for a split, either the triangles at the edge of the plane would have to be modified and retriangulated, or the function would have to determine the edge vertices of the full-size triangulated polygon (or meshed polygon? don't really know what that would be called) and would cut and retriangulate the entire thing. This isn't that urgent right now (since Thing meshes are working great, even though they've been dropped in the CS trunk), but I was wondering if anyone has thought about this or has tried doing anything like this yet.
Here's an old pic from July '07 when I first got my Cut function working, showing a vertical cut.