rendered paste body public bool Intersect()
{
float t = 0, u = 0, v = 0;
Vector3 ray_direction = new Vector3(0, -1, 0);
Vector3 edge1 = four[1] - four[0];
Vector3 edge2 = four[2] - four[0];
Vector3 tvec, pvec, qvec;
float det, inv_det;
pvec = Vector3.Cross(ray_direction, edge2);
det = Vector3.Dot(edge1, pvec);
inv_det = 1.0f / det;
tvec = posi - four[0];
u = Vector3.Dot(tvec, pvec) * inv_det;
if (u < -0.001f || u > 1.001f)
return false;
qvec = Vector3.Cross(tvec, edge1);
v = Vector3.Dot(ray_direction, qvec) * inv_det;
if (v < -0.001f || u + v > 1.001f)
return false;
t = Vector3.Dot(edge2, qvec) * inv_det;
if (t <= 0)
return false;
return true;
}