tricheck method
Check the triangle for intersections
Implementation
bool tricheck(Vector3 p,Vector3 p0,Vector3 p1,Vector3 p2){
double A = 0.5 * (-p1.y * p2.x + p0.y * (-p1.x + p2.x) + p0.x * (p1.y - p2.y) + p1.x * p2.y);
int sg = A < 0 ? -1 : 1;
double s = (p0.y * p2.x - p0.x * p2.y + (p2.y - p0.y) * p.x + (p0.x - p2.x) * p.y) * sg;
double t = (p0.x * p1.y - p0.y * p1.x + (p0.y - p1.y) * p.x + (p1.x - p0.x) * p.y) * sg;
return s > 0 && t > 0 && (s + t) < 2 * A * sg;
}