I'm trying to understand how to implement an algorithm similar to the one used by Magics' mark surface tool, you can see such behaviour on this video.
Quoting the video: "Basically with this tool you're able to select surfaces, which unlike planes, surfaces take curvature into account."
The first idea that come to my mind to implement something similar was starting by considering the adjacency information of the mesh and consider on the computation the angle adjacent triangle normals. My idea was that if such an angle wasn't on the range [pi/2-tol, pi/2+tol] two adjacent triangles would be "smooth". This thought was too naive and the idea would just work for a very limited of cases and it'd start fail for many of them.
After that, I've spent a little bit of time reading some papers talking about mesh segmentation and it seems this has been an area of research for many years... But before even considering implementing any of these one I'd like to ask here if you knew some basic&good enough algorithm I could implement that could behave in a similar fashion to Magic's.
So yeah, that's my question basically, assuming a triangular mesh that has adjacency information built (ie: you can check adjacent triangles from any given face) and a starting selected triangle, how would you detect the "surface" region associated to it?
Thanks in advance.