docs: def intersect (self, line):
       """intersect(line) -> Point | None
  
       Returns the point at which the line segment and Plane intersect
       or None if they do not intersect.
       """
       eps   = 1e-8
       d     = (line.q - line.p)
       dn    = d.dot(self.n)
       point = None
  
       if abs(dn) >= eps:
         mu = self.n.dot(self.p - line.p) / dn
         if mu >= 0 and mu <= 1:
           point = line.p + mu * d
  
       return point