Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
        }