Beispiel #1
0
        /// <summary>
        /// Recompoute join path for given join
        /// </summary>
        /// <param name="join">Join which path will be recomputed</param>
        private void refreshJoinPath(JoinDrawing join)
        {
            //TODO avoid uneccessary path finding
            Navigator = new SceneNavigator(Items);
            Navigator.EnsureGraphInitialized();

            if (Output.DiagramContext.Diagram.UseJoinAvoidance)
            {
                Navigator.Graph.Explore(join.From, join.To);
                join.PointPath = Navigator.Graph.FindPath(join.From, join.To);
            }
            else
            {
                join.PointPath = new[] { join.From.GlobalConnectPoint, join.To.GlobalConnectPoint };
            }
        }