public int GetHalfLifeDegree(AVertexModel vertex) { TVertex v = new TVertex(); v.SetFromString(vertex.VertexStr); return(Graph.GetHalfLifeDegree(v)); }
public WayNoMoreThenLCommandArgs(AVertexModel source, AVertexModel stock, int l) : base("WayNoMoreThenLCommand") { Source = source; Stock = stock; L = l; }
public List <GraphModel> RemoveVertexModel(AVertexModel vertexModel, bool raise = true) { var vertex = new TVertex(); vertex.SetFromString(vertexModel.VertexStr); var retVal = Graph.RemoveVertex(vertex); List <GraphModel> removeModels = new List <GraphModel>(); if (retVal == ReturnValue.Succsess) { removeModels.Add(vertexModel); _models.Remove(vertexModel.Key); _models.Values.ToList().ForEach(m => { var edge = m as AEdgeModel; if (edge != null && (edge.Source.Key == vertexModel.Key || edge.Stock.Key == vertexModel.Key)) { removeModels.Add(edge); _models.Remove(edge.Key); } }); if (raise) { FieldUpdate?.Invoke(this, new ModelFieldUpdateArgs(FieldEvents.RemoveModel)); } return(removeModels); } else { throw new Exception(retVal.ToString()); } }
public void AddVertexModel(AVertexModel vertexModel, bool raise = true) { var vertex = new TVertex(); vertex.SetFromString(vertexModel.VertexStr); var res = Graph.AddVertex(vertex); if (res == ReturnValue.Succsess) { _models.Add(vertexModel.Key, vertexModel); if (raise) { FieldUpdate?.Invoke(this, new ModelFieldUpdateArgs(FieldEvents.AddModel)); } } }
public DijkstraCommandArgs(AVertexModel model) : base("DijkstraAlgorithm") { StockModel = model; }
public EdmondsKarpCommandArgs(AVertexModel source, AVertexModel stock) : base("EdmondsKarpAlgorithm") { Source = source; Stock = stock; }
public HalfLifeDegreeCommandArgs(AVertexModel vertex) : base(nameof(HalfLifeDegreeCommand)) { Vertex = vertex; }
// --------------------------------- !From events --------------------------------- // //public Edges makeEdges(vec2 posSource, string source, vec2 posStock, string stock, float r, string weight) //{ // if (oriented) return new OrientedEdges(posSource, source, posStock, stock, r, weight); // else return new NonOrientedEdges(posSource, source, posStock, stock, r, weight); //} // ----------------------------- Mouse Events ----------------------------- // private void MainForm_MouseClick(object sender, MouseEventArgs e) { try { if (!_field.Status || tsbtnMove.Checked) { return; } switch (e.Button) { case MouseButtons.Left: { vec2 pos = new vec2((float)e.X, (float)e.Y); if (max.x - pos.x < R || pos.x - left < R || max.y - pos.y < R || pos.y - top < R) { _field.UnmarkGraphModels(); } else if ((selectedKey = _field.GetPosKey(pos, R)) != null && !tsBtnAddVertex.Checked) { _field.MarkGraphModel(selectedKey); var model = _field[selectedKey]; if (model is AVertexModel && _field.MarkedModelsCount <= 2) { if (_field.MarkedVertexModelCount == 1) { sourceModel = (AVertexModel)model; } else if (_field.MarkedVertexModelCount == 2) { stockModel = (AVertexModel)model; } } } else if (_field.GetPosKey(pos, R + R + R / 2) == null && tsBtnAddVertex.Checked) { if (_field.MarkedVertexModelCount > 0 || _field.MarkedEdgeModelCount > 0) { _field.UnmarkGraphModels(); break; } string v = i++.ToString(); var model = new VertexDrawModel(v, pos); AddModelCommandArgs command = new AddModelCommandArgs(model); CommandEntered?.Invoke(this, command); } else { _field.UnmarkGraphModels(); sourceModel = stockModel = null; } break; } default: break; } } catch (Exception ex) { PostErrorMessage(ex.Message); } }
public DFScommandArgs(AVertexModel model) : base("DFSalgorithm") { VertexModel = model; }
public NPeripheryCommandArgs(AVertexModel vertex, int n) : base("NPeripheryCommand") { Vertex = vertex; N = n; }
public ShortcutBFSCommandArgs(AVertexModel source, AVertexModel stock) : base("ShortcutBFSalgorithm") { SourceModel = source; StockModel = stock; }