private void OnTreeEdge(TEdge edge, bool reversed) { Debug.Assert(edge != null); TreeEdge?.Invoke( this, new UndirectedEdgeEventArgs <TVertex, TEdge>(edge, reversed)); }
/// <summary> /// Called on each <see cref="TreeEdge"/> event. /// </summary> /// <param name="edge">Concerned edge.</param> /// <param name="reversed">Indicates if the edge is reversed.</param> protected virtual void OnTreeEdge([NotNull] TEdge edge, bool reversed) { Debug.Assert(edge != null); TreeEdge?.Invoke( this, new UndirectedEdgeEventArgs <TVertex, TEdge>(edge, reversed)); }
/// <summary> /// Called on each <see cref="TreeEdge"/> event. /// </summary> /// <param name="edge">Concerned edge.</param> protected virtual void OnTreeEdge([NotNull] TEdge edge) { if (edge == null) { throw new ArgumentNullException(nameof(edge)); } TreeEdge?.Invoke(edge); }
/// <summary> /// Called on each <see cref="TreeEdge"/> event. /// </summary> /// <param name="edge">Concerned edge.</param> /// <param name="reversed">Indicates if the edge is reversed.</param> protected virtual void OnTreeEdge([NotNull] TEdge edge, bool reversed) { if (edge == null) { throw new ArgumentNullException(nameof(edge)); } TreeEdge?.Invoke( this, new UndirectedEdgeEventArgs <TVertex, TEdge>(edge, reversed)); }
private void OnTreeEdge([NotNull] TEdge edge) { Debug.Assert(edge != null); TreeEdge?.Invoke(edge); }
public void AddEdge(Object value, DecisionTree childNode) { TreeEdge edge = new TreeEdge(value, childNode); edges.Add(edge); }
/// <summary> /// Executes the actual algorithm. /// </summary> protected override void DoRun(CancellationToken cancellationToken) { _edges = new HashSet <uint>(); _treeEdges = new List <TreeEdge>(); _edgeVisitor.Visit += (path) => { var e = path.Edge; var weight2 = path.Weight; if (e == Constants.NO_EDGE) { return(false); } var previousEdgeId = Constants.NO_EDGE; var weight1 = 0f; if (path.From != null) { weight1 = path.From.Weight; if (path.From.Edge > 0) { previousEdgeId = (uint)path.From.Edge - 1; } else { previousEdgeId = (uint)((-path.From.Edge) - 1); } } uint edgeId; if (e > 0) { edgeId = (uint)e - 1; } else { edgeId = (uint)((-e) - 1); } var edge = _graph.GetEdge(edgeId); var shape = _graph.GetShape(edge); if (e < 0) { shape.Reverse(); } var shapeArray = new float[shape.Count][]; for (var i = 0; i < shapeArray.Length; i++) { shapeArray[i] = new float[2]; shapeArray[i][1] = shape[i].Latitude; shapeArray[i][0] = shape[i].Longitude; } var treeEdge = new TreeEdge() { EdgeId = edgeId, PreviousEdgeId = previousEdgeId, Shape = shapeArray, Weight1 = weight1, Weight2 = weight2 }; _treeEdges.Add(treeEdge); if (_max < weight2) { _max = weight2; } return(false); }; _edgeVisitor.Run(cancellationToken); _tree = new Tree() { Edges = _treeEdges.ToArray(), Max = _max }; this.HasSucceeded = true; }
protected void OnTreeEdge(EdgeType edge) { TreeEdge?.Invoke(edge); }
/// <summary> /// Called on each <see cref="TreeEdge"/> event. /// </summary> /// <param name="edge">Concerned edge.</param> protected virtual void OnTreeEdge([NotNull] TEdge edge) { Debug.Assert(edge != null); TreeEdge?.Invoke(edge); }
/// <inheritdoc/> public void OnTreeEdge(TGraph g, TEdge e) => TreeEdge?.Invoke(g, e);