protected void AddEdges(DotGraphWriter g, NodeIndex index) { Node nd = nodeOf[index]; if (nd == null) { return; } foreach (EdgeIndex edge in dg.EdgesInto(index)) { NodeIndex sourceIndex = dg.SourceOf(edge); Node nd2 = nodeOf[sourceIndex]; if (nd2 == null) { continue; } GVEdgeStyle style = GetEdgeStyle(edge); Edge e; if ((style & GVEdgeStyle.Back) > 0) { e = g.AddEdge(nd.ID, nd2.ID); e.Color = Color.Red; e.ArrowheadAtSource = ArrowheadStyle.Normal; e.ArrowheadAtTarget = ArrowheadStyle.None; if ((style & GVEdgeStyle.Blue) > 0) { e.Color = Color.Purple; } } else { e = g.AddEdge(nd2.ID, nd.ID); if ((style & GVEdgeStyle.Blue) > 0) { e.Color = Color.Blue; } if ((style & GVEdgeStyle.Dimmed) > 0) { e.Color = Color.LightGray; } } if (edgeName != null) { e.Label = edgeName(edge); } if ((style & GVEdgeStyle.Bold) > 0) { e.Width = 2; } if ((style & GVEdgeStyle.Dashed) > 0) { e.Style = DOTEdgeStyle.Dashed; } } }
protected GVEdgeStyle GetEdgeStyle(EdgeIndex index) { GVEdgeStyle style = GVEdgeStyle.Black; if (edgeStyles != null) { foreach (var esp in edgeStyles) { if (esp.Predicate(index)) { style |= esp.Style; } } } return(style); }