internal void OnLinkMoving(object?sender, MouseOperator.LinkMovingEventArgs e) { var p = _parent.TransformPos(e.MousePos.X, e.MousePos.Y); _mousePos = Unsafe.As <Point, ImmutableVec2_double>(ref p); UpdateLinkTarget(_mousePos, (IEnumerable <IBiaNodeItem>?)_parent.NodesSource); Invalidate(); }
// ReSharper restore PrivateFieldCanBeConvertedToLocalVariable internal NodeSlotConnector(BiaNodeEditor parent, MouseOperator mouseOperator) { _parent = parent; for (var i = 0; i != RowCount * ColumnCount; ++i) { Children.Add(new LinkConnectorCell(this)); } mouseOperator.LinkMoving += OnLinkMoving; SizeChanged += (_, e) => UpdateChildren(e.NewSize.Width, e.NewSize.Height); _parent.PreviewMouseUp += (_, __) => _mousePos = new ImmutableVec2_double(double.NaN, double.NaN); _sourceNotifier = new PropertyChangeNotifier(_parent, BiaNodeEditor.SourceNodeSlotConnectingProperty); _targetNotifier = new PropertyChangeNotifier(_parent, BiaNodeEditor.TargetNodeSlotConnectingProperty); _sourceNotifier.ValueChanged += ConnectionChangedHandler; _targetNotifier.ValueChanged += ConnectionChangedHandler; }
internal static double Y(this ImmutableVec2_double self, bool isTrue) => isTrue ? self.Y : self.X;