public double pl_ln_intersect_scale(Vector3Pair line) { // See https://en.wikipedia.org/wiki/Line%E2%80%93plane_intersection return((origin().dot(normal()) - normal().dot(line.origin())) / (line.normal().dot(normal()))); }