public NodeDragProcess(int id, NodeViewModel node, Vector2 cursorStartPosition, IVirtualStudioController virtualStudioController = null)
 {
     Id        = id;
     this.node = node ?? throw new ArgumentNullException(nameof(node));
     this.cursorStartPosition     = cursorStartPosition;
     this.nodeStartPosition       = new Vector2(node.PositionX, node.PositionY);
     this.virtualStudioController = virtualStudioController;
 }
 public void OnStartNodeDrag(NodeViewModel nodeToDrag, MouseEventArgs e, IVirtualStudioController virtualStudioController = null)
 {
     dragProcess = new NodeDragProcess(0, nodeToDrag, e.GetClientPos(), virtualStudioController);
 }