Example #1
0
        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);
        }
Example #2
0
 private void SnapLineEndToPoint(SnappableLineViewModel line, Point start, Point snapPoint)
 {
     line.Move(start, snapPoint, false);
 }
Example #3
0
 public void MoveLine(SnappableLineViewModel line, Point start, Point end)
 {
     SnapLineEndIfItIsCloseToAnotherLine(line, start, end);
 }