I have a pre-defined flowchart which have links going back to certain points. The links are crossing over other nodes and this doesn't look good. Please can anyone help with some examples that avoid this? See the code below
' create shape nodes
Dim start As ShapeNode = CreateNode(Shapes.Start, "Client Job Request")
Dim briefsummary As ShapeNode = CreateNode(Shapes.Process, "Job Definition & Brief Summary")
Dim assessrisk As ShapeNode = CreateNode(Shapes.Process, "Assess risk & Complexity")
Dim planjob As ShapeNode = CreateNode(Shapes.Terminator, "PLAN Job")
Dim acceptjob As ShapeNode = CreateNode(Shapes.Decision, "EHS 4D Accept Brief Summary")
Dim clarify As ShapeNode = CreateNode(Shapes.Process, "Clarify/amend Job Definition")
Dim jobbrief As ShapeNode = CreateNode(Shapes.Process, "Create detailed job brief")
Dim submitbrief As ShapeNode = CreateNode(Shapes.Process, "Submit Brief")
Dim briefqa As ShapeNode = CreateNode(Shapes.Process, "Brief QA & Content Review")
Dim acceptbrief As ShapeNode = CreateNode(Shapes.Decision, "EHS 4D Accept Brief")
Dim revisebrief As ShapeNode = CreateNode(Shapes.Process, "Query/revise Brief")
Dim dojob As ShapeNode = CreateNode(Shapes.Terminator, "DO Job")
Dim developextract As ShapeNode = CreateNode(Shapes.Process, "Develop Extract")
Dim testplan As ShapeNode = CreateNode(Shapes.Process, "Create Testplan")
Dim unittest As ShapeNode = CreateNode(Shapes.Process, "Unit Test")
Dim peerreview As ShapeNode = CreateNode(Shapes.Process, "Peer Review")
start.TextWrapping = TextWrapping.Wrap
start.ResizeToFitText()
' connect the nodes
diagram.Factory.CreateDiagramLink(start, briefsummary)
diagram.Factory.CreateDiagramLink(briefsummary, assessrisk)
diagram.Factory.CreateDiagramLink(assessrisk, planjob)
diagram.Factory.CreateDiagramLink(planjob, acceptjob)
' no
diagram.Factory.CreateDiagramLink(acceptjob, clarify)
diagram.Factory.CreateDiagramLink(clarify, briefsummary)
'yes
diagram.Factory.CreateDiagramLink(acceptjob, jobbrief)
diagram.Factory.CreateDiagramLink(jobbrief, submitbrief)
diagram.Factory.CreateDiagramLink(submitbrief, briefqa)
diagram.Factory.CreateDiagramLink(briefqa, acceptbrief)
'no
diagram.Factory.CreateDiagramLink(acceptbrief, revisebrief)
diagram.Factory.CreateDiagramLink(revisebrief, jobbrief)
'yes
diagram.Factory.CreateDiagramLink(acceptbrief, dojob)
'side by side with development
diagram.Factory.CreateDiagramLink(dojob, testplan)
diagram.Factory.CreateDiagramLink(testplan, peerreview)
diagram.Factory.CreateDiagramLink(dojob, developextract)
diagram.Factory.CreateDiagramLink(developextract, unittest)
diagram.Factory.CreateDiagramLink(unittest, peerreview)
diagram.LinkCrossings = LinkCrossings.Cut
planjob.Tag = NodeType.Home
AddHandler planjob.MouseLeftButtonUp, AddressOf NodeClick
' arrange the flowchart
Dim layout As FlowchartLayout = New FlowchartLayout()
layout.NodeDistance = 15
layout.Orientation = MindFusion.Diagramming.Silverlight.Layout.Orientation.Vertical
layout.Arrange(diagram)
Dim x As New DropShadowEffect()
x.Color = Color.FromArgb(0, 0, 100, 100)
x.ShadowDepth = 5
x.Direction = 320
x.Opacity = 0.5
' apply shader effects
For Each item As DiagramItem In diagram.Items
item.Effect = x
Next
diagram.ResizeToFitItems(5)
diagram.Background.Opacity = 2
diagram.EndEdit(True)