private void SnapLineEndIfItIsCloseToAnotherLine(SnappableLineViewModel line, Point start, Point end) { foreach (var existingLine in _drawableLines) { var distance = LineUtilities.GetClosestPointOnLineSegment(end, existingLine.Line); if (!IsCloseEnoughToSnap(distance)) { continue; } SnapLineEndToPoint(line, start, distance.ClosestPointInLine); return; } line.Move(start, end); }
private void SnapLineEndToPoint(SnappableLineViewModel line, Point start, Point snapPoint) { line.Move(start, snapPoint, false); }