Hmm... I do believe when you cut a triangle, you either get two triangles, or a triangle and a convex quad. To divide a convex quad into two triangles, you draw a line from one vertex to another vertex not directly touching it.
So, FOR EACH triangle, get the points on the triangle V1, V2, and V3. Then get the two points of intersection, I1 and I2.
If I1 and I2 BOTH are vertices of the triangle, DONT cut anything (endfunction)
else if I1 or I2 are vertices of the triangle, divide up the triangle into two triangles. (So if I1=V1, you would get two triangles: V1,V2,I2; V1,V3,I2) (endfunction)
else, neither I2 or I1 are vertices of the triangle. This means that line I1/I2 divides the vertices such that one vertex lies on one side of I1/I2, and two vertices lie on the other side of I2.
-let A be the lone vertex, let B be the vertice that lies on line A/I1, and let C be the vertice that lies on line A/I2.
-return three triangles: A/I1/I2, I2/I1/B, I2/C/B;
(endfunction)
image of what I mean:
[edit]
o_o I thought i got rid of that whitespace...
Oh well, too late. (me being lazy)

Why does blue text appear every time you are near?