public IEnumerable <KtSegment2D> CutBy(KtSegment2D other) { var intersection = IntersectionWith(other); if (intersection is null || intersection == Start || intersection == End) { return new[] { this } } ; return(new[] { new KtSegment2D(Start, intersection), new KtSegment2D(intersection, End) }); }
public bool Equals(KtSegment2D other) => this.TestNullBeforeEquals(other, () => Start == other.Start && End == other.End);
internal static List <KtPoint2D> PointsToList(this KtSegment2D segment) => new()
private static IEnumerableSegments AggregateInternalMethod(IEnumerableSegments results, KtSegment2D segment) => results.Select(result => result.CutBy(segment)).SelectMany(cuts => cuts);