Quintiq file version 2.0 #parent: #root Method PopulateEdgePositions ( output owning shadow[SCVConfiguration] scvConfig ) id:Method_FormSupplyChainVisualization_PopulateEdgePositions { #keys: '[134266.2.4972183]' Body: [* // Populate edge positions using node positions // Populate SCVEdge starting and target positions traverse( scvConfig, SCVNode.SCVEdge, edge ) { node1 := select( scvConfig, SCVNode, node, edge.DestinationKey() = node.Key().AsQUILL() ); node2 := select( scvConfig, SCVNode, node, edge.OriginKey() = node.Key().AsQUILL() ); sourceNode := ifexpr( edge.IsUpstream(), node1, node2 ); targetNode := ifexpr( edge.IsUpstream(), node2, node1 ); adjustmentX := scvConfig.NodeSize(); adjustmentY := floor( scvConfig.NodeSize() / 2 ); edge.FromX( sourceNode.X() + adjustmentX ); edge.FromY( sourceNode.Y() + adjustmentY ); edge.ToX( targetNode.X() ); edge.ToY( targetNode.Y() + adjustmentY ); // Assign label to the edge quantity := 0.0; label := this.ReturnEdgeLabel( &scvConfig, sourceNode, targetNode, quantity ); edge.Quantity( quantity ); edge.Label( label ); } *] }