public static bool FromPoints(this Plane plane, Vector3 p1, Vector3 p2, Vector3 p3, bool fixDegenerate = true) { plane.Normal = Vector3.Cross(p1 - p2, p3 - p2); if(plane.Normalize(fixDegenerate) == 0.0f) { return false; } plane.D = -(plane.Normal * p2).Length(); return true; }