void ReprojectNewVerticesOntoTriangles(List<Triangle> res,Triangle[] clippingTriangles)
{
foreach (var tri in res){
for (int i=0;i<3;i++){
var point = tri.points[i];
if (!ContainsVertex2D(point)){
foreach (var cp in clippingTriangles){
var lineSegments = cp.GetLineSegments();
bool found = false;
for (int j = 0;j<3;j++){
var ls = lineSegments[j];
double t;
if (ls.MinimumDistance(new Vector2D(point.x, point.z),out t)< 0.00000001f){
var from = cp.Vertex(j);
var to = cp.Vertex(j);
tri.points[i].y = (from + t*(to-from)).y;
found = true;
break;
}
}
if (found){
break;
}
}
}
}
}
}