In the previous post we covered the basics of the half-edge data structure and how to traverse its elements using OpenMesh. This time, we’ll look under the hood of add_face – the function that builds the entire structure on the fly. When you call: mesh.add_face(vh0, vh1, vh2);...
I’ve looked at a lot of triangle-triangle intersection code across different projects. And every time, one thing stood out: there’s no single implementation that covers all the edge cases. That’s not surprising. The requirements vary wildly depending on the use case – fast-and-loose for games,...
Today we’re tackling something that seems simple: how do you tell if a point is inside a triangle? I’ve got five things I want to do here: Make it a storyThis post will be long, with some detours and extra thoughts. But I think that’s the best way to get tricky stuff. A story keeps it...