public Edge(Graph graph) { this.Graph = graph; EdgeParts = new ObservableCollection <EdgePart>(); EdgeBreaks = new ObservableCollection <EdgeBreak>(); IsSelected = false; HeadSymbolCanvas = null; TailSymbolCanvas = null; HeadSymbol = Graph.DefaultHeadSymbol; TailSymbol = Graph.DefaultTailSymbol; edgeBrushType = Graph.DefaultEdgeBrushType; }
public void UpdateStructure() { int lastIndex = EdgeParts.Count - 1; if (HeadSymbolCanvas == null) { HeadSymbolCanvas = new Canvas(); Graph.UICanvas.Children.Add(HeadSymbolCanvas); Canvas.SetZIndex(HeadSymbolCanvas, Statics.EndSymbolZIndex); } else { HeadSymbolCanvas.Children.Clear(); } if (TailSymbolCanvas == null) { TailSymbolCanvas = new Canvas(); Graph.UICanvas.Children.Add(TailSymbolCanvas); Canvas.SetZIndex(TailSymbolCanvas, Statics.EndSymbolZIndex); } else { TailSymbolCanvas.Children.Clear(); } if (HeadSymbol != EndSymbol.None) { Line line = EdgeParts[0].UILine; Point startPoint = new Point(line.X1, line.Y1); Point linePoint = new Point(line.X2, line.Y2); DrawEndSymbol(HeadSymbolCanvas, HeadSymbol, startPoint, linePoint); } if (TailSymbol != EndSymbol.None) { Line line = EdgeParts[lastIndex].UILine; Point startPoint = new Point(line.X2, line.Y2); Point linePoint = new Point(line.X1, line.Y1); DrawEndSymbol(TailSymbolCanvas, TailSymbol, startPoint, linePoint); } EdgeBrushType = edgeBrushType; }