private void tsBtnAddEdge_Click(object sender, EventArgs e)
        {
            if (sourceModel == null || stockModel == null ||
                sourceModel.Key == stockModel.Key)
            {
                return;
            }

            string weight = null;

            if (_field.IsWeighted)
            {
                SetWeightForm window = new SetWeightForm();
                window.Owner = this;
                window.ShowDialog();
                if (window.Ok)
                {
                    weight = window.Weight;
                }
            }
            AEdgeModel edgeModel;

            if (_field.IsOrgraph)
            {
                edgeModel = new OrientEdgeModel(sourceModel, stockModel, weight);
            }
            else
            {
                edgeModel = new NonOrientEdgeModel(sourceModel, stockModel, weight);
            }

            CommandEntered?.Invoke(this, new AddModelCommandArgs(edgeModel));
            _field.UnmarkGraphModels();
        }
示例#2
0
        private void DrawNonOrientEdge(Graphics g, NonOrientEdgeModel edge, vec2 min, vec2 max)
        {
            vec2 start = new vec2(edge.PosA);
            vec2 end   = new vec2(edge.PosB);

            if (Clip.RectangleClip(ref start, ref end, min, max))
            {
                g.DrawLine(pen, start.x, start.y, end.x, end.y);
            }
            if (edge.Weighted && Clip.SimpleClip(new vec2(edge.WeightPos.x + 5f, edge.WeightPos.y + 5f), max, min, GlobalParameters.Radius))
            {
                DrawWeight(g, edge, min, max);
            }
        }