I get 'rid' of quads in the early stage of loading, so I only have to deal with triangles on this level. I must confess I didn't really understand your multi triangle split pseudo code so I ended up with sorting on the DIK values (per edge of to be fixed triangles) followed by building a new list of points for the needed poly.
So if you had a triangle of a b c that needs a split on e.g. ab=d and ca=e you would get a list of a, d, b, c, e which in turn is used in this loop (semi pseudo):
for i=newPnts.cnt-2
addTriangle(newPnts[i], newPnts[i+1], newPnts[lastone]);
Boils down to the same principle I ques..
So if you had a triangle of a b c that needs a split on e.g. ab=d and ca=e you would get a list of a, d, b, c, e which in turn is used in this loop (semi pseudo):
for i=newPnts.cnt-2
addTriangle(newPnts[i], newPnts[i+1], newPnts[lastone]);
Boils down to the same principle I ques..