public bool Collides(EdgeEntity edge) =>
 Difference(edge) >= 0;
 private double Difference(EdgeEntity edge) =>
 Math.Min(end, edge.end) - Math.Max(start, edge.start);
 public double Overlap(EdgeEntity edge) =>
 Math.Max(0, Difference(edge));