public void TranslateConnectionsIn(Vector _offset)
 {
     foreach (Polyline ncpl_in in this.node_connections_in)
     {
         // rebuild the polyline
         Point startP_new = ncpl_in.Points[0];
         Point endP_old   = ncpl_in.Points[ncpl_in.Points.Count - 1];
         Point endP_new   = new Point(endP_old.X + _offset.X, endP_old.Y + _offset.Y);
         ncpl_in.Points = NodeVisualization.CreateStepPointCollection(startP_new, endP_new);
     }
 }
        protected Polyline CreateStepConnectingPolyline(Point _startP, Point _endP)
        {
            if (this.parent_canvas == null)
            {
                return(null);
            }

            Polyline pline = new Polyline();

            pline.Stroke          = new SolidColorBrush(NodeVisualization.NODE_COLOR_NO);
            pline.StrokeThickness = 2;
            pline.FillRule        = FillRule.EvenOdd;

            PointCollection pointCollection = NodeVisualization.CreateStepPointCollection(_startP, _endP);

            pline.Points = pointCollection;

            this.parent_canvas.Children.Add(pline);
            return(pline);
        }