public void Update() { BaseShape shape = CurrentShape; if (shape != null) { if (IsMoving) { ResizeManager.MoveCurrentArea(InputManager.MouseVelocity.X, InputManager.MouseVelocity.Y); } else if (IsCreating && !CurrentRectangle.IsEmpty) { CurrentPosition = InputManager.MousePosition0Based; Point newPosition = CurrentPosition; if (IsProportionalResizing) { newPosition = CaptureHelpers.ProportionalPosition(PositionOnClick, CurrentPosition); } if (IsSnapResizing) { newPosition = SnapPosition(PositionOnClick, newPosition); } shape.EndPosition = newPosition; } } CheckHover(); ResizeManager.Update(); }
public void Update() { BaseShape shape = CurrentShape; if (shape != null) { if (IsMoving) { ResizeManager.MoveCurrentArea(InputManager.MouseVelocity.X, InputManager.MouseVelocity.Y); } else if (IsCreating && !CurrentRectangle.IsEmpty) { Point currentPosition = InputManager.MousePosition0Based; if (IsProportionalResizing) { if (shape.NodeType == NodeType.Rectangle) { currentPosition = CaptureHelpers.SnapPositionToDegree(shape.StartPosition, currentPosition, 90, 45); } else if (shape.NodeType == NodeType.Line) { currentPosition = CaptureHelpers.SnapPositionToDegree(shape.StartPosition, currentPosition, 45, 0); } } else if (IsCornerMoving) { shape.StartPosition = shape.StartPosition.Add(InputManager.MouseVelocity.X, InputManager.MouseVelocity.Y); } else if (IsSnapResizing) { currentPosition = SnapPosition(shape.StartPosition, currentPosition); } shape.EndPosition = currentPosition; } } CheckHover(); ResizeManager.Update(); }