Hi Stoyan,
Thanks
I confirm that the crash has been fixed! It was quick!
-1- I got another crash while routing a single node (I'm not sure if I'm allowed to use NewRouter.RouteLink() however 8)).
Additional information: non-adjacent tiles in Tile.Merge!
at MindFusion.Diagramming.Tile.Merge(Tile tile1, Tile tile2)
at MindFusion.Diagramming.RoutingTree.x260baf72fdd85c7c()
at MindFusion.Diagramming.RoutingTree.CreateRoutingTree(Diagram diagram)
at MindFusion.Diagramming.NewRouter.RouteLink(DiagramLink link)
-2- Also, it's minor since I found only 1 occurrence in all my graphs, but I have one unecessary turn. I'll send the saved XML & screenshot for you.
-3- Once again something minor, but sometimes the path taken is weird. If it is easy to fix, it would make more sense that a link goes toward its destination where there is the appropriate place instead of going around an obstacle for no obvious reason. I'll send screenshots for that as well (it's the same XML).
-4- I noticed that manually routing some links can be quite long. I do it when a container gets moved, resized or unfolded (there might be other cases, I'm not sure). By example, the following code executed on a container that has about 50 nodes in it takes much longer than calling NewRouter.RouteAllLinks (on a diagram that has over 400 links):
public void RouteRelatedLinks(DiagramNode node)
{
foreach (DiagramLink link in this.diagram.Links)
{
if (link.Origin == node || link.Destination == node || link.Intersects(node))
{
NewRouter.RouteLink(link);
this.Invalidate();
}
}
if (node is ContainerNode)
{
ContainerNode comment = (ContainerNode)node;
if (comment != null && comment.SubordinateGroup != null && comment.SubordinateGroup.AttachedNodes != null)
{
foreach (DiagramNode childNode in comment.SubordinateGroup.AttachedNodes)
RouteRelatedLinks(childNode);
}
}
}
Could I use RoutingTree somehow? It seems to be used in RouteAllLinks...
Thanks a lot!
Marie