public void VertexFind(NewEdgeDefinition vertexClick, MouseEventArgs e, List <VertexDraw> vertexDraws, List <EdgeDraw> edgeDraws, ref int startVertexId, ref int endVertexId,
                               ref AdjacencyList adjacencyList, AdjacencyListPanel adListPanel, MatrixWeightPanel matrixWeightPanel)
        {
            vertexClick.VertexRemember(ref startVertexId, ref endVertexId
                                       , e.X - (int)VertexParameters.Radius, e.Y - (int)VertexParameters.Radius
                                       , vertexDraws);


            if ((startVertexId != -1) && (endVertexId != -1) && (startVertexId != endVertexId) && (!IsDuplicate(edgeDraws, startVertexId, endVertexId)))
            {
                EdgeDraw edgeDraw = new EdgeDraw(BrushColor.Black, 0, startVertexId, endVertexId);

                edgeDraws.Add(edgeDraw);

                adjacencyList.AddNode(startVertexId, endVertexId, 1);

                adListPanel.UpdateNodesPanel(startVertexId, endVertexId);

                matrixWeightPanel.UpdateNodes(startVertexId, endVertexId);

                startVertexId = -1;
                endVertexId   = -1;
            }
            else if (IsDuplicate(edgeDraws, startVertexId, endVertexId))
            {
                startVertexId = -1;
                endVertexId   = -1;
            }
        }
Esempio n. 2
0
        public void DefinitionOfEdge(List <VertexDraw> vertexDraws, EdgeDraw edge, ref Point p1, ref Point p2)
        {
            p1.X = 0;
            p1.Y = 0;

            p2.X = 0;
            p2.Y = 0;

            foreach (var vertex in vertexDraws)
            {
                if (edge.Id == vertex.Id)
                {
                    p1.X = (int)vertex.X + (int)VertexParameters.Radius;
                    p1.Y = (int)vertex.Y + (int)VertexParameters.Radius;
                }
                else if (edge.ConnectabelVertex == vertex.Id)
                {
                    p2.X = (int)vertex.X + (int)VertexParameters.Radius;
                    p2.Y = (int)vertex.Y + (int)VertexParameters.Radius;
                }
            }
        }