Mesh Bisect Algorithm: How does it actually work? So Ive been writing some C# algorithms for bisecting a mesh in Unity but I had a hard time finding any information on the best way to do this.  I love blender's mesh bisect tool and this is basically exactly what I want to implement in C#.  Im wondering if anyone knows how blenders algorithm works in terms of performing the cut (projecting the vertices, reconnecting edges and rectifying the new triangle normals), filling in the created holes with new faces and preserving the UVs as well as mapping the newly created UVs.  Not sure if blender's script for this is available but if anyone can even outline the process in pseudocode id really really appreciate it!  Im particularly interested in how it handles concave meshes and how it deals with filling multiple holes (such as bisecting a torus) as my current algorithm can handle convex meshes only.

Thanks guys!
As you might have heard, blender is open source software, which means the full source code is public. You can download the source code for example from blender's official download page. (Link on the same page above source download leads to info about setting up dev environment and such, if you have more interest on project)

For particular file inside the project, bisect tool is found under source / blender / bmesh / tools / bmesh_bisect_plane.c/h.