コード例 #1
0
ファイル: NodeSlotConnector.cs プロジェクト: zxbe/Biaui
        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();
        }
コード例 #2
0
ファイル: NodeSlotConnector.cs プロジェクト: zxbe/Biaui
        // 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;
        }
コード例 #3
0
 internal static double Y(this ImmutableVec2_double self, bool isTrue)
 => isTrue
         ? self.Y
         : self.X;