diff --git a/d2layouts/d2cycle/layout.go b/d2layouts/d2cycle/layout.go index a2999b1d4..0e9036f74 100644 --- a/d2layouts/d2cycle/layout.go +++ b/d2layouts/d2cycle/layout.go @@ -3,6 +3,7 @@ package d2cycle import ( "context" "math" + "sort" "oss.terrastruct.com/d2/d2graph" "oss.terrastruct.com/d2/lib/geo" @@ -14,11 +15,10 @@ const ( MIN_RADIUS = 200 PADDING = 20 MIN_SEGMENT_LEN = 10 - ARC_STEPS = 30 - EPSILON = 1e-10 // Small value for floating point comparisons + ARC_STEPS = 100 ) -// Layout computes node positions and generates curved edge routes. +// Layout lays out the graph and computes curved edge routes. func Layout(ctx context.Context, g *d2graph.Graph, layout d2graph.LayoutGraph) error { objects := g.Root.ChildrenArray if len(objects) == 0 { @@ -33,7 +33,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, layout d2graph.LayoutGraph) e positionObjects(objects, radius) for _, edge := range g.Edges { - createPreciseCircularArc(edge) + createCircularArc(edge) } return nil @@ -58,7 +58,6 @@ func positionObjects(objects []*d2graph.Object, radius float64) { angle := angleOffset + (2*math.Pi*float64(i)/numObjects) x := radius * math.Cos(angle) y := radius * math.Sin(angle) - obj.TopLeft = geo.NewPoint( x-obj.Box.Width/2, y-obj.Box.Height/2, @@ -66,8 +65,7 @@ func positionObjects(objects []*d2graph.Object, radius float64) { } } -// createPreciseCircularArc computes a curved edge path that touches the node boundaries exactly. -func createPreciseCircularArc(edge *d2graph.Edge) { +func createCircularArc(edge *d2graph.Edge) { if edge.Src == nil || edge.Dst == nil { return } @@ -75,7 +73,6 @@ func createPreciseCircularArc(edge *d2graph.Edge) { srcCenter := edge.Src.Center() dstCenter := edge.Dst.Center() - // Compute angles for the circular arc. srcAngle := math.Atan2(srcCenter.Y, srcCenter.X) dstAngle := math.Atan2(dstCenter.Y, dstCenter.X) if dstAngle < srcAngle { @@ -84,7 +81,6 @@ func createPreciseCircularArc(edge *d2graph.Edge) { arcRadius := math.Hypot(srcCenter.X, srcCenter.Y) - // Generate the initial arc path. path := make([]*geo.Point, 0, ARC_STEPS+1) for i := 0; i <= ARC_STEPS; i++ { t := float64(i) / float64(ARC_STEPS) @@ -93,134 +89,170 @@ func createPreciseCircularArc(edge *d2graph.Edge) { y := arcRadius * math.Sin(angle) path = append(path, geo.NewPoint(x, y)) } + path[0] = srcCenter + path[len(path)-1] = dstCenter - // Compute precise intersection points so the arrow touches the node boundaries. - // For the source, the segment goes from the center (inside) to the next point (outside). - srcIntersection := findPreciseBoxIntersection(edge.Src.Box, path[0], path[1]) - // For the destination, the segment goes from the center to the previous point (outside). - dstIntersection := findPreciseBoxIntersection(edge.Dst.Box, path[len(path)-1], path[len(path)-2]) + // Clamp endpoints to the boundaries of the source and destination boxes. + _, newSrc := clampPointOutsideBox(edge.Src.Box, path, 0) + _, newDst := clampPointOutsideBoxReverse(edge.Dst.Box, path, len(path)-1) + path[0] = newSrc + path[len(path)-1] = newDst - // Update the endpoints with the snapped intersection points. - path[0] = srcIntersection - path[len(path)-1] = dstIntersection + // Trim redundant path points that fall inside node boundaries. + path = trimPathPoints(path, edge.Src.Box) + path = trimPathPoints(path, edge.Dst.Box) - // Trim intermediate points that still fall inside the boxes. - startIdx := 0 - endIdx := len(path) - 1 - for i := 1; i < len(path); i++ { - if !boxContains(edge.Src.Box, path[i]) { - startIdx = i - 1 - break - } - } - for i := len(path) - 2; i >= 0; i-- { - if !boxContains(edge.Dst.Box, path[i]) { - endIdx = i + 1 - break - } - } - - edge.Route = path[startIdx : endIdx+1] + edge.Route = path edge.IsCurve = true } -// findPreciseBoxIntersection returns the intersection point of the line (from p1 to p2) with the box boundary, -// snapped exactly to the nearest edge. -func findPreciseBoxIntersection(box *geo.Box, p1, p2 *geo.Point) *geo.Point { - // Define the four box edges. - edges := []geo.Segment{ - *geo.NewSegment( - geo.NewPoint(box.TopLeft.X, box.TopLeft.Y), - geo.NewPoint(box.TopLeft.X+box.Width, box.TopLeft.Y), - ), // Top - *geo.NewSegment( - geo.NewPoint(box.TopLeft.X+box.Width, box.TopLeft.Y), - geo.NewPoint(box.TopLeft.X+box.Width, box.TopLeft.Y+box.Height), - ), // Right - *geo.NewSegment( - geo.NewPoint(box.TopLeft.X, box.TopLeft.Y+box.Height), - geo.NewPoint(box.TopLeft.X+box.Width, box.TopLeft.Y+box.Height), - ), // Bottom - *geo.NewSegment( - geo.NewPoint(box.TopLeft.X, box.TopLeft.Y), - geo.NewPoint(box.TopLeft.X, box.TopLeft.Y+box.Height), - ), // Left +// clampPointOutsideBox walks forward along the path until it finds a point outside the box, +// then replaces the point with a precise intersection. +func clampPointOutsideBox(box *geo.Box, path []*geo.Point, startIdx int) (int, *geo.Point) { + if startIdx >= len(path)-1 { + return startIdx, path[startIdx] + } + if !boxContains(box, path[startIdx]) { + return startIdx, path[startIdx] } - // Construct the line from p1 (inside) to p2 (outside). - line := *geo.NewSegment(p1, p2) - var closestIntersection *geo.Point - minDist := math.MaxFloat64 - - // Find the intersection among the four edges that is closest to p1. - for _, seg := range edges { - if intersection := findSegmentIntersection(line, seg); intersection != nil { - dist := math.Hypot(intersection.X-p1.X, intersection.Y-p1.Y) - if dist < minDist { - minDist = dist - closestIntersection = intersection - } + for i := startIdx + 1; i < len(path); i++ { + if boxContains(box, path[i]) { + continue } + seg := geo.NewSegment(path[i-1], path[i]) + inter := findPreciseIntersection(box, *seg) + if inter != nil { + return i, inter + } + return i, path[i] } - - if closestIntersection != nil { - return snapToBoundary(box, closestIntersection) - } - return p1 + return len(path)-1, path[len(path)-1] } -// findSegmentIntersection computes the intersection between two line segments s1 and s2 using their parametric form. -func findSegmentIntersection(s1, s2 geo.Segment) *geo.Point { - x1, y1 := s1.Start.X, s1.Start.Y - x2, y2 := s1.End.X, s1.End.Y - x3, y3 := s2.Start.X, s2.Start.Y - x4, y4 := s2.End.X, s2.End.Y - - denom := (x1-x2)*(y3-y4) - (y1-y2)*(x3-x4) - if math.Abs(denom) < EPSILON { - return nil +// clampPointOutsideBoxReverse works similarly but in reverse order. +func clampPointOutsideBoxReverse(box *geo.Box, path []*geo.Point, endIdx int) (int, *geo.Point) { + if endIdx <= 0 { + return endIdx, path[endIdx] + } + if !boxContains(box, path[endIdx]) { + return endIdx, path[endIdx] } - t := ((x1-x3)*(y3-y4) - (y1-y3)*(x3-x4)) / denom - u := -((x1-x2)*(y1-y3) - (y1-y2)*(x1-x3)) / denom - - if t >= 0 && t <= 1 && u >= 0 && u <= 1 { - x := x1 + t*(x2-x1) - y := y1 + t*(y2-y1) - return geo.NewPoint(x, y) + for j := endIdx - 1; j >= 0; j-- { + if boxContains(box, path[j]) { + continue + } + seg := geo.NewSegment(path[j], path[j+1]) + inter := findPreciseIntersection(box, *seg) + if inter != nil { + return j, inter + } + return j, path[j] } - return nil + return 0, path[0] } -// snapToBoundary adjusts point p so that it lies exactly on the nearest boundary of box. -func snapToBoundary(box *geo.Box, p *geo.Point) *geo.Point { +// findPreciseIntersection calculates intersection points between seg and all four sides of the box, +// then returns the intersection closest to seg.Start. +func findPreciseIntersection(box *geo.Box, seg geo.Segment) *geo.Point { + intersections := []struct { + point *geo.Point + t float64 + }{} + left := box.TopLeft.X right := box.TopLeft.X + box.Width top := box.TopLeft.Y bottom := box.TopLeft.Y + box.Height - dLeft := math.Abs(p.X - left) - dRight := math.Abs(p.X - right) - dTop := math.Abs(p.Y - top) - dBottom := math.Abs(p.Y - bottom) + dx := seg.End.X - seg.Start.X + dy := seg.End.Y - seg.Start.Y - if dLeft < dRight && dLeft < dTop && dLeft < dBottom { - return geo.NewPoint(left, p.Y) - } else if dRight < dLeft && dRight < dTop && dRight < dBottom { - return geo.NewPoint(right, p.Y) - } else if dTop < dBottom { - return geo.NewPoint(p.X, top) - } else { - return geo.NewPoint(p.X, bottom) + // Check vertical boundaries. + if dx != 0 { + // Left boundary. + t := (left - seg.Start.X) / dx + if t >= 0 && t <= 1 { + y := seg.Start.Y + t*dy + if y >= top && y <= bottom { + intersections = append(intersections, struct { + point *geo.Point + t float64 + }{geo.NewPoint(left, y), t}) + } + } + // Right boundary. + t = (right - seg.Start.X) / dx + if t >= 0 && t <= 1 { + y := seg.Start.Y + t*dy + if y >= top && y <= bottom { + intersections = append(intersections, struct { + point *geo.Point + t float64 + }{geo.NewPoint(right, y), t}) + } + } } + + // Check horizontal boundaries. + if dy != 0 { + // Top boundary. + t := (top - seg.Start.Y) / dy + if t >= 0 && t <= 1 { + x := seg.Start.X + t*dx + if x >= left && x <= right { + intersections = append(intersections, struct { + point *geo.Point + t float64 + }{geo.NewPoint(x, top), t}) + } + } + // Bottom boundary. + t = (bottom - seg.Start.Y) / dy + if t >= 0 && t <= 1 { + x := seg.Start.X + t*dx + if x >= left && x <= right { + intersections = append(intersections, struct { + point *geo.Point + t float64 + }{geo.NewPoint(x, bottom), t}) + } + } + } + + if len(intersections) == 0 { + return nil + } + + // Sort intersections by t (distance from seg.Start) and return the closest. + sort.Slice(intersections, func(i, j int) bool { + return intersections[i].t < intersections[j].t + }) + return intersections[0].point } -// boxContains returns true if point p is inside the box (using EPSILON for floating point tolerance). +// trimPathPoints removes intermediate points that fall inside the given box while preserving endpoints. +func trimPathPoints(path []*geo.Point, box *geo.Box) []*geo.Point { + if len(path) <= 2 { + return path + } + trimmed := []*geo.Point{path[0]} + for i := 1; i < len(path)-1; i++ { + if !boxContains(box, path[i]) { + trimmed = append(trimmed, path[i]) + } + } + trimmed = append(trimmed, path[len(path)-1]) + return trimmed +} + +// boxContains uses strict inequalities so that points exactly on the boundary are considered outside. func boxContains(b *geo.Box, p *geo.Point) bool { - return p.X >= b.TopLeft.X-EPSILON && - p.X <= b.TopLeft.X+b.Width+EPSILON && - p.Y >= b.TopLeft.Y-EPSILON && - p.Y <= b.TopLeft.Y+b.Height+EPSILON + return p.X > b.TopLeft.X && + p.X < b.TopLeft.X+b.Width && + p.Y > b.TopLeft.Y && + p.Y < b.TopLeft.Y+b.Height } func positionLabelsIcons(obj *d2graph.Object) { @@ -258,4 +290,4 @@ func positionLabelsIcons(obj *d2graph.Object) { } } } -} +} \ No newline at end of file diff --git a/e2etests/testdata/txtar/cycle-diagram/dagre/board.exp.json b/e2etests/testdata/txtar/cycle-diagram/dagre/board.exp.json index 1a8d4250a..78ed2dffe 100644 --- a/e2etests/testdata/txtar/cycle-diagram/dagre/board.exp.json +++ b/e2etests/testdata/txtar/cycle-diagram/dagre/board.exp.json @@ -540,108 +540,336 @@ "link": "", "route": [ { - "x": 20.905000686645508, - "y": -198.9040069580078 + "x": 26.5, + "y": -198.22999572753906 + }, + { + "x": 28.18000030517578, + "y": -198.00399780273438 }, { "x": 31.285999298095703, "y": -197.53700256347656 }, { - "x": 41.582000732421875, - "y": -195.62899780273438 + "x": 34.3849983215332, + "y": -197.02099609375 }, { - "x": 51.76300048828125, - "y": -193.18499755859375 + "x": 37.47600173950195, + "y": -196.45700073242188 + }, + { + "x": 40.55699920654297, + "y": -195.843994140625 + }, + { + "x": 43.62799835205078, + "y": -195.18299865722656 + }, + { + "x": 46.68899917602539, + "y": -194.47300720214844 + }, + { + "x": 49.73699951171875, + "y": -193.71600341796875 + }, + { + "x": 52.77399826049805, + "y": -192.91099548339844 + }, + { + "x": 55.79800033569336, + "y": -192.05799865722656 + }, + { + "x": 58.80799865722656, + "y": -191.1580047607422 }, { "x": 61.803001403808594, "y": -190.21099853515625 }, { - "x": 71.6729965209961, - "y": -186.71600341796875 + "x": 64.78299713134766, + "y": -189.2169952392578 }, { - "x": 81.34700012207031, - "y": -182.70899963378906 + "x": 67.74700164794922, + "y": -188.17599487304688 + }, + { + "x": 70.69400024414062, + "y": -187.08799743652344 + }, + { + "x": 73.6240005493164, + "y": -185.9550018310547 + }, + { + "x": 76.53600311279297, + "y": -184.77499389648438 + }, + { + "x": 79.42900085449219, + "y": -183.5500030517578 + }, + { + "x": 82.302001953125, + "y": -182.27999877929688 + }, + { + "x": 85.15499877929688, + "y": -180.96499633789062 + }, + { + "x": 87.98699951171875, + "y": -179.60499572753906 }, { "x": 90.7979965209961, "y": -178.2010040283203 }, { - "x": 99.9990005493164, - "y": -173.2050018310547 + "x": 93.58499908447266, + "y": -176.7530059814453 }, { - "x": 108.927001953125, - "y": -167.73399353027344 + "x": 96.3499984741211, + "y": -175.26100158691406 + }, + { + "x": 99.09100341796875, + "y": -173.7259979248047 + }, + { + "x": 101.80799865722656, + "y": -172.1479949951172 + }, + { + "x": 104.4990005493164, + "y": -170.5279998779297 + }, + { + "x": 107.16500091552734, + "y": -168.86500549316406 + }, + { + "x": 109.80400085449219, + "y": -167.16099548339844 + }, + { + "x": 112.41600036621094, + "y": -165.41600036621094 + }, + { + "x": 115.0009994506836, + "y": -163.62899780273438 }, { "x": 117.55699920654297, "y": -161.80299377441406 }, { - "x": 125.86399841308594, - "y": -155.4290008544922 + "x": 120.08399963378906, + "y": -159.93600463867188 }, { - "x": 133.8260040283203, - "y": -148.6280059814453 + "x": 122.58100128173828, + "y": -158.031005859375 + }, + { + "x": 125.0479965209961, + "y": -156.08599853515625 + }, + { + "x": 127.48400115966797, + "y": -154.1020050048828 + }, + { + "x": 129.88900756835938, + "y": -152.08099365234375 + }, + { + "x": 132.26199340820312, + "y": -150.02200317382812 + }, + { + "x": 134.6020050048828, + "y": -147.92599487304688 + }, + { + "x": 136.90899658203125, + "y": -145.79299926757812 + }, + { + "x": 139.1820068359375, + "y": -143.625 }, { "x": 141.42100524902344, "y": -141.42100524902344 }, { - "x": 148.6280059814453, - "y": -133.8260040283203 + "x": 143.625, + "y": -139.1820068359375 }, { - "x": 155.4290008544922, - "y": -125.86399841308594 + "x": 145.79299926757812, + "y": -136.90899658203125 + }, + { + "x": 147.92599487304688, + "y": -134.6020050048828 + }, + { + "x": 150.02200317382812, + "y": -132.26199340820312 + }, + { + "x": 152.08099365234375, + "y": -129.88900756835938 + }, + { + "x": 154.1020050048828, + "y": -127.48400115966797 + }, + { + "x": 156.08599853515625, + "y": -125.0479965209961 + }, + { + "x": 158.031005859375, + "y": -122.58100128173828 + }, + { + "x": 159.93600463867188, + "y": -120.08399963378906 }, { "x": 161.80299377441406, "y": -117.55699920654297 }, { - "x": 167.73399353027344, - "y": -108.927001953125 + "x": 163.62899780273438, + "y": -115.0009994506836 }, { - "x": 173.2050018310547, - "y": -100 + "x": 165.41600036621094, + "y": -112.41600036621094 + }, + { + "x": 167.16099548339844, + "y": -109.80400085449219 + }, + { + "x": 168.86500549316406, + "y": -107.16500091552734 + }, + { + "x": 170.5279998779297, + "y": -104.4990005493164 + }, + { + "x": 172.1479949951172, + "y": -101.80799865722656 + }, + { + "x": 173.7259979248047, + "y": -99.09100341796875 + }, + { + "x": 175.26100158691406, + "y": -96.3499984741211 + }, + { + "x": 176.7530059814453, + "y": -93.58499908447266 }, { "x": 178.2010040283203, "y": -90.7979965209961 }, { - "x": 182.70899963378906, - "y": -81.34700012207031 + "x": 179.60499572753906, + "y": -87.98699951171875 }, { - "x": 186.71600341796875, - "y": -71.6729965209961 + "x": 180.96499633789062, + "y": -85.15499877929688 + }, + { + "x": 182.27999877929688, + "y": -82.302001953125 + }, + { + "x": 183.5500030517578, + "y": -79.42900085449219 + }, + { + "x": 184.77499389648438, + "y": -76.53600311279297 + }, + { + "x": 185.9550018310547, + "y": -73.6240005493164 + }, + { + "x": 187.08799743652344, + "y": -70.69400024414062 + }, + { + "x": 188.17599487304688, + "y": -67.74700164794922 + }, + { + "x": 189.2169952392578, + "y": -64.78299713134766 }, { "x": 190.21099853515625, "y": -61.803001403808594 }, { - "x": 193.18499755859375, - "y": -51.76300048828125 + "x": 191.1580047607422, + "y": -58.80799865722656 }, { - "x": 195.62899780273438, - "y": -41.582000732421875 + "x": 192.05799865722656, + "y": -55.79800033569336 }, { - "x": 197.53700256347656, - "y": -31.285999298095703 + "x": 192.91099548339844, + "y": -52.77399826049805 + }, + { + "x": 193.71600341796875, + "y": -49.73699951171875 + }, + { + "x": 194.47300720214844, + "y": -46.68899917602539 + }, + { + "x": 195.18299865722656, + "y": -43.62799835205078 + }, + { + "x": 195.843994140625, + "y": -40.55699920654297 + }, + { + "x": 196.45700073242188, + "y": -37.47600173950195 + }, + { + "x": 197.02099609375, + "y": -34.3849983215332 + }, + { + "x": 197.2519989013672, + "y": -33 } ], "isCurve": true, @@ -676,108 +904,336 @@ "link": "", "route": [ { - "x": 197.53700256347656, - "y": 31.285999298095703 + "x": 197.2519989013672, + "y": 33 }, { - "x": 195.62899780273438, - "y": 41.582000732421875 + "x": 197.02099609375, + "y": 34.3849983215332 }, { - "x": 193.18499755859375, - "y": 51.76300048828125 + "x": 196.45700073242188, + "y": 37.47600173950195 + }, + { + "x": 195.843994140625, + "y": 40.55699920654297 + }, + { + "x": 195.18299865722656, + "y": 43.62799835205078 + }, + { + "x": 194.47300720214844, + "y": 46.68899917602539 + }, + { + "x": 193.71600341796875, + "y": 49.73699951171875 + }, + { + "x": 192.91099548339844, + "y": 52.77399826049805 + }, + { + "x": 192.05799865722656, + "y": 55.79800033569336 + }, + { + "x": 191.1580047607422, + "y": 58.80799865722656 }, { "x": 190.21099853515625, "y": 61.803001403808594 }, { - "x": 186.71600341796875, - "y": 71.6729965209961 + "x": 189.2169952392578, + "y": 64.78299713134766 }, { - "x": 182.70899963378906, - "y": 81.34700012207031 + "x": 188.17599487304688, + "y": 67.74700164794922 + }, + { + "x": 187.08799743652344, + "y": 70.69400024414062 + }, + { + "x": 185.9550018310547, + "y": 73.6240005493164 + }, + { + "x": 184.77499389648438, + "y": 76.53600311279297 + }, + { + "x": 183.5500030517578, + "y": 79.42900085449219 + }, + { + "x": 182.27999877929688, + "y": 82.302001953125 + }, + { + "x": 180.96499633789062, + "y": 85.15499877929688 + }, + { + "x": 179.60499572753906, + "y": 87.98699951171875 }, { "x": 178.2010040283203, "y": 90.7979965209961 }, { - "x": 173.2050018310547, - "y": 99.9990005493164 + "x": 176.7530059814453, + "y": 93.58499908447266 }, { - "x": 167.73399353027344, - "y": 108.927001953125 + "x": 175.26100158691406, + "y": 96.3499984741211 + }, + { + "x": 173.7259979248047, + "y": 99.09100341796875 + }, + { + "x": 172.1479949951172, + "y": 101.80799865722656 + }, + { + "x": 170.5279998779297, + "y": 104.4990005493164 + }, + { + "x": 168.86500549316406, + "y": 107.16500091552734 + }, + { + "x": 167.16099548339844, + "y": 109.80400085449219 + }, + { + "x": 165.41600036621094, + "y": 112.41600036621094 + }, + { + "x": 163.62899780273438, + "y": 115.0009994506836 }, { "x": 161.80299377441406, "y": 117.55699920654297 }, { - "x": 155.4290008544922, - "y": 125.86399841308594 + "x": 159.93600463867188, + "y": 120.08399963378906 }, { - "x": 148.6280059814453, - "y": 133.8260040283203 + "x": 158.031005859375, + "y": 122.58100128173828 + }, + { + "x": 156.08599853515625, + "y": 125.0479965209961 + }, + { + "x": 154.1020050048828, + "y": 127.48400115966797 + }, + { + "x": 152.08099365234375, + "y": 129.88900756835938 + }, + { + "x": 150.02200317382812, + "y": 132.26199340820312 + }, + { + "x": 147.92599487304688, + "y": 134.6020050048828 + }, + { + "x": 145.79299926757812, + "y": 136.90899658203125 + }, + { + "x": 143.625, + "y": 139.1820068359375 }, { "x": 141.42100524902344, "y": 141.42100524902344 }, { - "x": 133.8260040283203, - "y": 148.6280059814453 + "x": 139.1820068359375, + "y": 143.625 }, { - "x": 125.86399841308594, - "y": 155.4290008544922 + "x": 136.90899658203125, + "y": 145.79299926757812 + }, + { + "x": 134.6020050048828, + "y": 147.92599487304688 + }, + { + "x": 132.26199340820312, + "y": 150.02200317382812 + }, + { + "x": 129.88900756835938, + "y": 152.08099365234375 + }, + { + "x": 127.48400115966797, + "y": 154.1020050048828 + }, + { + "x": 125.0479965209961, + "y": 156.08599853515625 + }, + { + "x": 122.58100128173828, + "y": 158.031005859375 + }, + { + "x": 120.08399963378906, + "y": 159.93600463867188 }, { "x": 117.55699920654297, "y": 161.80299377441406 }, { - "x": 108.927001953125, - "y": 167.73399353027344 + "x": 115.0009994506836, + "y": 163.62899780273438 }, { - "x": 100, - "y": 173.2050018310547 + "x": 112.41600036621094, + "y": 165.41600036621094 + }, + { + "x": 109.80400085449219, + "y": 167.16099548339844 + }, + { + "x": 107.16500091552734, + "y": 168.86500549316406 + }, + { + "x": 104.4990005493164, + "y": 170.5279998779297 + }, + { + "x": 101.80799865722656, + "y": 172.1479949951172 + }, + { + "x": 99.09100341796875, + "y": 173.7259979248047 + }, + { + "x": 96.3499984741211, + "y": 175.26100158691406 + }, + { + "x": 93.58499908447266, + "y": 176.7530059814453 }, { "x": 90.7979965209961, "y": 178.2010040283203 }, { - "x": 81.34700012207031, - "y": 182.70899963378906 + "x": 87.98699951171875, + "y": 179.60499572753906 }, { - "x": 71.6729965209961, - "y": 186.71600341796875 + "x": 85.15499877929688, + "y": 180.96499633789062 + }, + { + "x": 82.302001953125, + "y": 182.27999877929688 + }, + { + "x": 79.42900085449219, + "y": 183.5500030517578 + }, + { + "x": 76.53600311279297, + "y": 184.77499389648438 + }, + { + "x": 73.6240005493164, + "y": 185.9550018310547 + }, + { + "x": 70.69400024414062, + "y": 187.08799743652344 + }, + { + "x": 67.74700164794922, + "y": 188.17599487304688 + }, + { + "x": 64.78299713134766, + "y": 189.2169952392578 }, { "x": 61.803001403808594, "y": 190.21099853515625 }, { - "x": 51.76300048828125, - "y": 193.18499755859375 + "x": 58.80799865722656, + "y": 191.1580047607422 }, { - "x": 41.582000732421875, - "y": 195.62899780273438 + "x": 55.79800033569336, + "y": 192.05799865722656 + }, + { + "x": 52.77399826049805, + "y": 192.91099548339844 + }, + { + "x": 49.73699951171875, + "y": 193.71600341796875 + }, + { + "x": 46.68899917602539, + "y": 194.47300720214844 + }, + { + "x": 43.62799835205078, + "y": 195.18299865722656 + }, + { + "x": 40.55699920654297, + "y": 195.843994140625 + }, + { + "x": 37.47600173950195, + "y": 196.45700073242188 + }, + { + "x": 34.3849983215332, + "y": 197.02099609375 }, { "x": 31.285999298095703, "y": 197.53700256347656 }, { - "x": 20.905000686645508, - "y": 198.9040069580078 + "x": 28.18000030517578, + "y": 198.00399780273438 + }, + { + "x": 26.5, + "y": 198.22999572753906 } ], "isCurve": true, @@ -812,108 +1268,336 @@ "link": "", "route": [ { - "x": -20.905000686645508, - "y": 198.9040069580078 + "x": -26.499000549316406, + "y": 198.22999572753906 + }, + { + "x": -28.18000030517578, + "y": 198.00399780273438 }, { "x": -31.285999298095703, "y": 197.53700256347656 }, { - "x": -41.582000732421875, - "y": 195.62899780273438 + "x": -34.3849983215332, + "y": 197.02099609375 }, { - "x": -51.76300048828125, - "y": 193.18499755859375 + "x": -37.47600173950195, + "y": 196.45700073242188 + }, + { + "x": -40.55699920654297, + "y": 195.843994140625 + }, + { + "x": -43.62799835205078, + "y": 195.18299865722656 + }, + { + "x": -46.68899917602539, + "y": 194.47300720214844 + }, + { + "x": -49.73699951171875, + "y": 193.71600341796875 + }, + { + "x": -52.77399826049805, + "y": 192.91099548339844 + }, + { + "x": -55.79800033569336, + "y": 192.05799865722656 + }, + { + "x": -58.80799865722656, + "y": 191.1580047607422 }, { "x": -61.803001403808594, "y": 190.21099853515625 }, { - "x": -71.6729965209961, - "y": 186.71600341796875 + "x": -64.78299713134766, + "y": 189.2169952392578 }, { - "x": -81.34700012207031, - "y": 182.70899963378906 + "x": -67.74700164794922, + "y": 188.17599487304688 + }, + { + "x": -70.69400024414062, + "y": 187.08799743652344 + }, + { + "x": -73.6240005493164, + "y": 185.9550018310547 + }, + { + "x": -76.53600311279297, + "y": 184.77499389648438 + }, + { + "x": -79.42900085449219, + "y": 183.5500030517578 + }, + { + "x": -82.302001953125, + "y": 182.27999877929688 + }, + { + "x": -85.15499877929688, + "y": 180.96499633789062 + }, + { + "x": -87.98699951171875, + "y": 179.60499572753906 }, { "x": -90.7979965209961, "y": 178.2010040283203 }, { - "x": -99.9990005493164, - "y": 173.2050018310547 + "x": -93.58499908447266, + "y": 176.7530059814453 }, { - "x": -108.927001953125, - "y": 167.73399353027344 + "x": -96.3499984741211, + "y": 175.26100158691406 + }, + { + "x": -99.09100341796875, + "y": 173.7259979248047 + }, + { + "x": -101.80799865722656, + "y": 172.1479949951172 + }, + { + "x": -104.4990005493164, + "y": 170.5279998779297 + }, + { + "x": -107.16500091552734, + "y": 168.86500549316406 + }, + { + "x": -109.80400085449219, + "y": 167.16099548339844 + }, + { + "x": -112.41600036621094, + "y": 165.41600036621094 + }, + { + "x": -115.0009994506836, + "y": 163.62899780273438 }, { "x": -117.55699920654297, "y": 161.80299377441406 }, { - "x": -125.86399841308594, - "y": 155.4290008544922 + "x": -120.08399963378906, + "y": 159.93600463867188 }, { - "x": -133.8260040283203, - "y": 148.6280059814453 + "x": -122.58100128173828, + "y": 158.031005859375 + }, + { + "x": -125.0479965209961, + "y": 156.08599853515625 + }, + { + "x": -127.48400115966797, + "y": 154.1020050048828 + }, + { + "x": -129.88900756835938, + "y": 152.08099365234375 + }, + { + "x": -132.26199340820312, + "y": 150.02200317382812 + }, + { + "x": -134.6020050048828, + "y": 147.92599487304688 + }, + { + "x": -136.90899658203125, + "y": 145.79299926757812 + }, + { + "x": -139.1820068359375, + "y": 143.625 }, { "x": -141.42100524902344, "y": 141.42100524902344 }, { - "x": -148.6280059814453, - "y": 133.8260040283203 + "x": -143.625, + "y": 139.1820068359375 }, { - "x": -155.4290008544922, - "y": 125.86399841308594 + "x": -145.79299926757812, + "y": 136.90899658203125 + }, + { + "x": -147.92599487304688, + "y": 134.6020050048828 + }, + { + "x": -150.02200317382812, + "y": 132.26199340820312 + }, + { + "x": -152.08099365234375, + "y": 129.88900756835938 + }, + { + "x": -154.1020050048828, + "y": 127.48400115966797 + }, + { + "x": -156.08599853515625, + "y": 125.0479965209961 + }, + { + "x": -158.031005859375, + "y": 122.58100128173828 + }, + { + "x": -159.93600463867188, + "y": 120.08399963378906 }, { "x": -161.80299377441406, "y": 117.55699920654297 }, { - "x": -167.73399353027344, - "y": 108.927001953125 + "x": -163.62899780273438, + "y": 115.0009994506836 }, { - "x": -173.2050018310547, - "y": 100 + "x": -165.41600036621094, + "y": 112.41600036621094 + }, + { + "x": -167.16099548339844, + "y": 109.80400085449219 + }, + { + "x": -168.86500549316406, + "y": 107.16500091552734 + }, + { + "x": -170.5279998779297, + "y": 104.4990005493164 + }, + { + "x": -172.1479949951172, + "y": 101.80799865722656 + }, + { + "x": -173.7259979248047, + "y": 99.09100341796875 + }, + { + "x": -175.26100158691406, + "y": 96.3499984741211 + }, + { + "x": -176.7530059814453, + "y": 93.58499908447266 }, { "x": -178.2010040283203, "y": 90.7979965209961 }, { - "x": -182.70899963378906, - "y": 81.34700012207031 + "x": -179.60499572753906, + "y": 87.98699951171875 }, { - "x": -186.71600341796875, - "y": 71.6729965209961 + "x": -180.96499633789062, + "y": 85.15499877929688 + }, + { + "x": -182.27999877929688, + "y": 82.302001953125 + }, + { + "x": -183.5500030517578, + "y": 79.42900085449219 + }, + { + "x": -184.77499389648438, + "y": 76.53600311279297 + }, + { + "x": -185.9550018310547, + "y": 73.6240005493164 + }, + { + "x": -187.08799743652344, + "y": 70.69400024414062 + }, + { + "x": -188.17599487304688, + "y": 67.74700164794922 + }, + { + "x": -189.2169952392578, + "y": 64.78299713134766 }, { "x": -190.21099853515625, "y": 61.803001403808594 }, { - "x": -193.18499755859375, - "y": 51.76300048828125 + "x": -191.1580047607422, + "y": 58.80799865722656 }, { - "x": -195.62899780273438, - "y": 41.582000732421875 + "x": -192.05799865722656, + "y": 55.79800033569336 }, { - "x": -197.53700256347656, - "y": 31.285999298095703 + "x": -192.91099548339844, + "y": 52.77399826049805 + }, + { + "x": -193.71600341796875, + "y": 49.73699951171875 + }, + { + "x": -194.47300720214844, + "y": 46.68899917602539 + }, + { + "x": -195.18299865722656, + "y": 43.62799835205078 + }, + { + "x": -195.843994140625, + "y": 40.55699920654297 + }, + { + "x": -196.45700073242188, + "y": 37.47600173950195 + }, + { + "x": -197.02099609375, + "y": 34.3849983215332 + }, + { + "x": -197.2519989013672, + "y": 33 } ], "isCurve": true, @@ -948,116 +1632,352 @@ "link": "", "route": [ { - "x": 526.9509887695312, - "y": -149.51199340820312 + "x": 539.5, + "y": -148.2259979248047 }, { - "x": 540.833984375, - "y": -148.05299377441406 + "x": 542.2160034179688, + "y": -147.85400390625 + }, + { + "x": 546.35302734375, + "y": -147.19900512695312 + }, + { + "x": 550.4760131835938, + "y": -146.45700073242188 }, { "x": 554.5819702148438, "y": -145.62899780273438 }, { - "x": 568.1270141601562, - "y": -142.2519989013672 + "x": 558.6699829101562, + "y": -144.71499633789062 }, { - "x": 581.4039916992188, - "y": -137.93800354003906 + "x": 562.7369995117188, + "y": -143.71600341796875 + }, + { + "x": 566.7830200195312, + "y": -142.6320037841797 + }, + { + "x": 570.8060302734375, + "y": -141.46299743652344 + }, + { + "x": 574.802978515625, + "y": -140.21099853515625 + }, + { + "x": 578.7730102539062, + "y": -138.875 + }, + { + "x": 582.7139892578125, + "y": -137.45599365234375 + }, + { + "x": 586.6240234375, + "y": -135.9550018310547 + }, + { + "x": 590.5029907226562, + "y": -134.3719940185547 }, { "x": 594.3469848632812, "y": -132.70899963378906 }, { - "x": 606.8939819335938, - "y": -126.58899688720703 + "x": 598.155029296875, + "y": -130.96499633789062 }, { - "x": 618.9829711914062, - "y": -119.60900115966797 + "x": 601.927001953125, + "y": -129.14199829101562 + }, + { + "x": 605.6589965820312, + "y": -127.23999786376953 + }, + { + "x": 609.3499755859375, + "y": -125.26100158691406 + }, + { + "x": 613, + "y": -123.20500183105469 + }, + { + "x": 616.60498046875, + "y": -121.0719985961914 + }, + { + "x": 620.1649780273438, + "y": -118.86499786376953 + }, + { + "x": 623.677978515625, + "y": -116.58399963378906 + }, + { + "x": 627.1420288085938, + "y": -114.22899627685547 }, { "x": 630.5570068359375, "y": -111.8030014038086 }, { - "x": 641.5570068359375, - "y": -103.20800018310547 + "x": 633.9190063476562, + "y": -109.30500030517578 }, { - "x": 651.9310302734375, - "y": -93.86699676513672 + "x": 637.22900390625, + "y": -106.73799896240234 + }, + { + "x": 640.4840087890625, + "y": -104.10199737548828 + }, + { + "x": 643.6840209960938, + "y": -101.39900207519531 + }, + { + "x": 646.8259887695312, + "y": -98.62799835205078 + }, + { + "x": 649.9089965820312, + "y": -95.79299926757812 + }, + { + "x": 652.9320068359375, + "y": -92.89399719238281 + }, + { + "x": 655.8939819335938, + "y": -89.93199920654297 + }, + { + "x": 658.7930297851562, + "y": -86.90899658203125 }, { "x": 661.6279907226562, "y": -83.82599639892578 }, { - "x": 670.6019897460938, - "y": -73.13200378417969 + "x": 664.3989868164062, + "y": -80.68399810791016 }, { - "x": 678.8070068359375, - "y": -61.8380012512207 + "x": 667.1019897460938, + "y": -77.48400115966797 + }, + { + "x": 669.7379760742188, + "y": -74.22899627685547 + }, + { + "x": 672.3049926757812, + "y": -70.91899871826172 + }, + { + "x": 674.802978515625, + "y": -67.55699920654297 + }, + { + "x": 677.22900390625, + "y": -64.14199829101562 + }, + { + "x": 679.583984375, + "y": -60.678001403808594 + }, + { + "x": 681.864990234375, + "y": -57.165000915527344 + }, + { + "x": 684.072021484375, + "y": -53.60499954223633 }, { "x": 686.2050170898438, "y": -50 }, { - "x": 692.7579956054688, - "y": -37.67399978637695 + "x": 688.260986328125, + "y": -46.349998474121094 }, { - "x": 698.4359741210938, - "y": -24.92099952697754 + "x": 690.239990234375, + "y": -42.659000396728516 + }, + { + "x": 692.1420288085938, + "y": -38.926998138427734 + }, + { + "x": 693.9650268554688, + "y": -35.154998779296875 + }, + { + "x": 695.708984375, + "y": -31.347000122070312 + }, + { + "x": 697.3720092773438, + "y": -27.503000259399414 + }, + { + "x": 698.9550170898438, + "y": -23.624000549316406 + }, + { + "x": 700.4559936523438, + "y": -19.714000701904297 + }, + { + "x": 701.875, + "y": -15.77299976348877 }, { "x": 703.2109985351562, "y": -11.803000450134277 }, { - "x": 707.0590209960938, - "y": 1.6150000095367432 + "x": 704.4630126953125, + "y": -7.806000232696533 }, { - "x": 709.9609985351562, - "y": 15.270000457763672 + "x": 705.6320190429688, + "y": -3.7829999923706055 + }, + { + "x": 706.7160034179688, + "y": 0.2619999945163727 + }, + { + "x": 707.7150268554688, + "y": 4.328999996185303 + }, + { + "x": 708.6290283203125, + "y": 8.416999816894531 + }, + { + "x": 709.4569702148438, + "y": 12.52299976348877 + }, + { + "x": 710.198974609375, + "y": 16.645999908447266 + }, + { + "x": 710.85400390625, + "y": 20.783000946044922 + }, + { + "x": 711.4219970703125, + "y": 24.933000564575195 }, { "x": 711.9039916992188, "y": 29.0939998626709 }, { - "x": 712.8779907226562, - "y": 43.02000045776367 + "x": 712.2979736328125, + "y": 33.263999938964844 }, { - "x": 712.8779907226562, - "y": 56.979000091552734 + "x": 712.60498046875, + "y": 37.441001892089844 + }, + { + "x": 712.823974609375, + "y": 41.624000549316406 + }, + { + "x": 712.9559936523438, + "y": 45.81100082397461 + }, + { + "x": 713, + "y": 50 + }, + { + "x": 712.9559936523438, + "y": 54.1879997253418 + }, + { + "x": 712.823974609375, + "y": 58.375 + }, + { + "x": 712.60498046875, + "y": 62.55799865722656 + }, + { + "x": 712.2979736328125, + "y": 66.73500061035156 }, { "x": 711.9039916992188, "y": 70.90499877929688 }, { - "x": 709.9609985351562, - "y": 84.72899627685547 + "x": 711.4219970703125, + "y": 75.06600189208984 }, { - "x": 707.0590209960938, - "y": 98.38400268554688 + "x": 710.85400390625, + "y": 79.21600341796875 + }, + { + "x": 710.198974609375, + "y": 83.35299682617188 + }, + { + "x": 709.4569702148438, + "y": 87.47599792480469 + }, + { + "x": 708.6290283203125, + "y": 91.58200073242188 + }, + { + "x": 707.7150268554688, + "y": 95.66999816894531 + }, + { + "x": 706.7160034179688, + "y": 99.73699951171875 + }, + { + "x": 705.6320190429688, + "y": 103.78299713134766 + }, + { + "x": 704.4630126953125, + "y": 107.80599975585938 }, { "x": 703.2109985351562, "y": 111.8030014038086 }, { - "x": 698.4359741210938, - "y": 124.9209976196289 + "x": 701.875, + "y": 115.77300262451172 + }, + { + "x": 701.4329833984375, + "y": 116.9990005493164 } ], "isCurve": true, @@ -1092,112 +2012,336 @@ "link": "", "route": [ { - "x": 670.6019897460938, - "y": 173.1320037841797 + "x": 662.3569946289062, + "y": 182.99899291992188 }, { "x": 661.6279907226562, "y": 183.8260040283203 }, { - "x": 651.9310302734375, - "y": 193.86700439453125 + "x": 658.7930297851562, + "y": 186.90899658203125 }, { - "x": 641.5570068359375, - "y": 203.20799255371094 + "x": 655.8939819335938, + "y": 189.9320068359375 + }, + { + "x": 652.9320068359375, + "y": 192.8939971923828 + }, + { + "x": 649.9089965820312, + "y": 195.79299926757812 + }, + { + "x": 646.8259887695312, + "y": 198.6280059814453 + }, + { + "x": 643.6840209960938, + "y": 201.3990020751953 + }, + { + "x": 640.4840087890625, + "y": 204.1020050048828 + }, + { + "x": 637.22900390625, + "y": 206.73800659179688 + }, + { + "x": 633.9190063476562, + "y": 209.30499267578125 }, { "x": 630.5570068359375, "y": 211.80299377441406 }, { - "x": 618.9829711914062, - "y": 219.60899353027344 + "x": 627.1420288085938, + "y": 214.22900390625 }, { - "x": 606.8939819335938, - "y": 226.58900451660156 + "x": 623.677978515625, + "y": 216.58399963378906 + }, + { + "x": 620.1649780273438, + "y": 218.86500549316406 + }, + { + "x": 616.60498046875, + "y": 221.07200622558594 + }, + { + "x": 613, + "y": 223.2050018310547 + }, + { + "x": 609.3499755859375, + "y": 225.26100158691406 + }, + { + "x": 605.6589965820312, + "y": 227.24000549316406 + }, + { + "x": 601.927001953125, + "y": 229.14199829101562 + }, + { + "x": 598.155029296875, + "y": 230.96499633789062 }, { "x": 594.3469848632812, "y": 232.70899963378906 }, { - "x": 581.4039916992188, - "y": 237.93800354003906 + "x": 590.5029907226562, + "y": 234.3719940185547 }, { - "x": 568.1270141601562, - "y": 242.2519989013672 + "x": 586.6240234375, + "y": 235.9550018310547 + }, + { + "x": 582.7139892578125, + "y": 237.45599365234375 + }, + { + "x": 578.7730102539062, + "y": 238.875 + }, + { + "x": 574.802978515625, + "y": 240.21099853515625 + }, + { + "x": 570.8060302734375, + "y": 241.46299743652344 + }, + { + "x": 566.7830200195312, + "y": 242.6320037841797 + }, + { + "x": 562.7369995117188, + "y": 243.71600341796875 + }, + { + "x": 558.6699829101562, + "y": 244.71499633789062 }, { "x": 554.5819702148438, "y": 245.62899780273438 }, { - "x": 540.833984375, - "y": 248.05299377441406 + "x": 550.4760131835938, + "y": 246.45700073242188 }, { - "x": 526.9509887695312, - "y": 249.51199340820312 + "x": 546.35302734375, + "y": 247.19900512695312 + }, + { + "x": 542.2160034179688, + "y": 247.85400390625 + }, + { + "x": 538.0659790039062, + "y": 248.4219970703125 + }, + { + "x": 533.905029296875, + "y": 248.9040069580078 + }, + { + "x": 529.7349853515625, + "y": 249.29800415039062 + }, + { + "x": 525.5579833984375, + "y": 249.60499572753906 + }, + { + "x": 521.375, + "y": 249.82400512695312 + }, + { + "x": 517.18798828125, + "y": 249.95599365234375 }, { "x": 513, "y": 250 }, { - "x": 499.0480041503906, - "y": 249.51199340820312 + "x": 508.8110046386719, + "y": 249.95599365234375 }, { - "x": 485.1650085449219, - "y": 248.05299377441406 + "x": 504.6239929199219, + "y": 249.82400512695312 + }, + { + "x": 500.4410095214844, + "y": 249.60499572753906 + }, + { + "x": 496.2640075683594, + "y": 249.29800415039062 + }, + { + "x": 492.093994140625, + "y": 248.9040069580078 + }, + { + "x": 487.9330139160156, + "y": 248.4219970703125 + }, + { + "x": 483.7829895019531, + "y": 247.85400390625 + }, + { + "x": 479.64599609375, + "y": 247.19900512695312 + }, + { + "x": 475.52301025390625, + "y": 246.45700073242188 }, { "x": 471.4169921875, "y": 245.62899780273438 }, { - "x": 457.87200927734375, - "y": 242.2519989013672 + "x": 467.3290100097656, + "y": 244.71499633789062 }, { - "x": 444.5950012207031, - "y": 237.93800354003906 + "x": 463.2619934082031, + "y": 243.71600341796875 + }, + { + "x": 459.21600341796875, + "y": 242.6320037841797 + }, + { + "x": 455.1929931640625, + "y": 241.46299743652344 + }, + { + "x": 451.1960144042969, + "y": 240.21099853515625 + }, + { + "x": 447.22601318359375, + "y": 238.875 + }, + { + "x": 443.2850036621094, + "y": 237.45599365234375 + }, + { + "x": 439.375, + "y": 235.9550018310547 + }, + { + "x": 435.4960021972656, + "y": 234.3719940185547 }, { "x": 431.6520080566406, "y": 232.70899963378906 }, { - "x": 419.1050109863281, - "y": 226.58900451660156 + "x": 427.843994140625, + "y": 230.96499633789062 }, { - "x": 407.0159912109375, - "y": 219.60899353027344 + "x": 424.0719909667969, + "y": 229.14199829101562 + }, + { + "x": 420.3399963378906, + "y": 227.24000549316406 + }, + { + "x": 416.64898681640625, + "y": 225.26100158691406 + }, + { + "x": 413, + "y": 223.2050018310547 + }, + { + "x": 409.3940124511719, + "y": 221.07200622558594 + }, + { + "x": 405.8340148925781, + "y": 218.86500549316406 + }, + { + "x": 402.3210144042969, + "y": 216.58399963378906 + }, + { + "x": 398.85699462890625, + "y": 214.22900390625 }, { "x": 395.4419860839844, "y": 211.80299377441406 }, { - "x": 384.4419860839844, - "y": 203.20799255371094 + "x": 392.0799865722656, + "y": 209.30499267578125 }, { - "x": 374.0679931640625, - "y": 193.86700439453125 + "x": 388.7699890136719, + "y": 206.73800659179688 + }, + { + "x": 385.5150146484375, + "y": 204.1020050048828 + }, + { + "x": 382.31500244140625, + "y": 201.3990020751953 + }, + { + "x": 379.1730041503906, + "y": 198.6280059814453 + }, + { + "x": 376.0899963378906, + "y": 195.79299926757812 + }, + { + "x": 373.0669860839844, + "y": 192.8939971923828 + }, + { + "x": 370.1050109863281, + "y": 189.9320068359375 + }, + { + "x": 367.20599365234375, + "y": 186.90899658203125 }, { "x": 364.3710021972656, "y": 183.8260040283203 }, { - "x": 355.3970031738281, - "y": 173.1320037841797 + "x": 363.6419982910156, + "y": 183 } ], "isCurve": true, @@ -1232,120 +2376,376 @@ "link": "", "route": [ { - "x": 992.905029296875, - "y": -198.9040069580078 + "x": 998.5, + "y": -198.21800231933594 }, { - "x": 1013.5819702148438, - "y": -195.62899780273438 + "x": 1003.2860107421875, + "y": -197.53700256347656 + }, + { + "x": 1009.4760131835938, + "y": -196.45700073242188 + }, + { + "x": 1015.6279907226562, + "y": -195.18299865722656 + }, + { + "x": 1021.7369995117188, + "y": -193.71600341796875 + }, + { + "x": 1027.7979736328125, + "y": -192.05799865722656 }, { "x": 1033.802978515625, "y": -190.21099853515625 }, { - "x": 1053.3470458984375, - "y": -182.70899963378906 + "x": 1039.7469482421875, + "y": -188.17599487304688 }, { - "x": 1072, - "y": -173.2050018310547 + "x": 1045.6240234375, + "y": -185.9550018310547 + }, + { + "x": 1051.428955078125, + "y": -183.5500030517578 + }, + { + "x": 1057.155029296875, + "y": -180.96499633789062 + }, + { + "x": 1062.7979736328125, + "y": -178.2010040283203 + }, + { + "x": 1068.3499755859375, + "y": -175.26100158691406 + }, + { + "x": 1073.8079833984375, + "y": -172.1479949951172 + }, + { + "x": 1079.1650390625, + "y": -168.86500549316406 + }, + { + "x": 1084.416015625, + "y": -165.41600036621094 }, { "x": 1089.5570068359375, "y": -161.80299377441406 }, { - "x": 1105.8260498046875, - "y": -148.6280059814453 + "x": 1094.5810546875, + "y": -158.031005859375 }, { - "x": 1120.6280517578125, - "y": -133.8260040283203 + "x": 1099.4840087890625, + "y": -154.1020050048828 + }, + { + "x": 1104.261962890625, + "y": -150.02200317382812 + }, + { + "x": 1108.9090576171875, + "y": -145.79299926757812 + }, + { + "x": 1113.4210205078125, + "y": -141.42100524902344 + }, + { + "x": 1117.79296875, + "y": -136.90899658203125 + }, + { + "x": 1122.02197265625, + "y": -132.26199340820312 + }, + { + "x": 1126.10205078125, + "y": -127.48400115966797 + }, + { + "x": 1130.031005859375, + "y": -122.58100128173828 }, { "x": 1133.802978515625, "y": -117.55699920654297 }, { - "x": 1145.2049560546875, - "y": -100 + "x": 1137.416015625, + "y": -112.41600036621094 }, { - "x": 1154.708984375, - "y": -81.34700012207031 + "x": 1140.864990234375, + "y": -107.16500091552734 + }, + { + "x": 1144.14794921875, + "y": -101.80799865722656 + }, + { + "x": 1147.260986328125, + "y": -96.3499984741211 + }, + { + "x": 1150.2010498046875, + "y": -90.7979965209961 + }, + { + "x": 1152.9649658203125, + "y": -85.15499877929688 + }, + { + "x": 1155.550048828125, + "y": -79.42900085449219 + }, + { + "x": 1157.9549560546875, + "y": -73.6240005493164 + }, + { + "x": 1160.176025390625, + "y": -67.74700164794922 }, { "x": 1162.2110595703125, "y": -61.803001403808594 }, { - "x": 1167.6290283203125, - "y": -41.582000732421875 + "x": 1164.0579833984375, + "y": -55.79800033569336 }, { - "x": 1170.904052734375, - "y": -20.905000686645508 + "x": 1165.7159423828125, + "y": -49.73699951171875 + }, + { + "x": 1167.1829833984375, + "y": -43.62799835205078 + }, + { + "x": 1168.45703125, + "y": -37.47600173950195 + }, + { + "x": 1169.5369873046875, + "y": -31.285999298095703 + }, + { + "x": 1170.4219970703125, + "y": -25.06599998474121 + }, + { + "x": 1171.112060546875, + "y": -18.820999145507812 + }, + { + "x": 1171.60498046875, + "y": -12.557999610900879 + }, + { + "x": 1171.9010009765625, + "y": -6.2820000648498535 }, { "x": 1172, "y": 0 }, { - "x": 1170.904052734375, - "y": 20.905000686645508 + "x": 1171.9010009765625, + "y": 6.2820000648498535 }, { - "x": 1167.6290283203125, - "y": 41.582000732421875 + "x": 1171.60498046875, + "y": 12.557999610900879 + }, + { + "x": 1171.112060546875, + "y": 18.820999145507812 + }, + { + "x": 1170.4219970703125, + "y": 25.06599998474121 + }, + { + "x": 1169.5369873046875, + "y": 31.285999298095703 + }, + { + "x": 1168.45703125, + "y": 37.47600173950195 + }, + { + "x": 1167.1829833984375, + "y": 43.62799835205078 + }, + { + "x": 1165.7159423828125, + "y": 49.73699951171875 + }, + { + "x": 1164.0579833984375, + "y": 55.79800033569336 }, { "x": 1162.2110595703125, "y": 61.803001403808594 }, { - "x": 1154.708984375, - "y": 81.34700012207031 + "x": 1160.176025390625, + "y": 67.74700164794922 }, { - "x": 1145.2049560546875, - "y": 99.9990005493164 + "x": 1157.9549560546875, + "y": 73.6240005493164 + }, + { + "x": 1155.550048828125, + "y": 79.42900085449219 + }, + { + "x": 1152.9649658203125, + "y": 85.15499877929688 + }, + { + "x": 1150.2010498046875, + "y": 90.7979965209961 + }, + { + "x": 1147.260986328125, + "y": 96.3499984741211 + }, + { + "x": 1144.14794921875, + "y": 101.80799865722656 + }, + { + "x": 1140.864990234375, + "y": 107.16500091552734 + }, + { + "x": 1137.416015625, + "y": 112.41600036621094 }, { "x": 1133.802978515625, "y": 117.55699920654297 }, { - "x": 1120.6280517578125, - "y": 133.8260040283203 + "x": 1130.031005859375, + "y": 122.58100128173828 }, { - "x": 1105.8260498046875, - "y": 148.6280059814453 + "x": 1126.10205078125, + "y": 127.48400115966797 + }, + { + "x": 1122.02197265625, + "y": 132.26199340820312 + }, + { + "x": 1117.79296875, + "y": 136.90899658203125 + }, + { + "x": 1113.4210205078125, + "y": 141.42100524902344 + }, + { + "x": 1108.9090576171875, + "y": 145.79299926757812 + }, + { + "x": 1104.261962890625, + "y": 150.02200317382812 + }, + { + "x": 1099.4840087890625, + "y": 154.1020050048828 + }, + { + "x": 1094.5810546875, + "y": 158.031005859375 }, { "x": 1089.5570068359375, "y": 161.80299377441406 }, { - "x": 1072, - "y": 173.2050018310547 + "x": 1084.416015625, + "y": 165.41600036621094 }, { - "x": 1053.3470458984375, - "y": 182.70899963378906 + "x": 1079.1650390625, + "y": 168.86500549316406 + }, + { + "x": 1073.8079833984375, + "y": 172.1479949951172 + }, + { + "x": 1068.3499755859375, + "y": 175.26100158691406 + }, + { + "x": 1062.7979736328125, + "y": 178.2010040283203 + }, + { + "x": 1057.155029296875, + "y": 180.96499633789062 + }, + { + "x": 1051.428955078125, + "y": 183.5500030517578 + }, + { + "x": 1045.6240234375, + "y": 185.9550018310547 + }, + { + "x": 1039.7469482421875, + "y": 188.17599487304688 }, { "x": 1033.802978515625, "y": 190.21099853515625 }, { - "x": 1013.5819702148438, - "y": 195.62899780273438 + "x": 1027.7979736328125, + "y": 192.05799865722656 }, { - "x": 992.905029296875, - "y": 198.9040069580078 + "x": 1021.7369995117188, + "y": 193.71600341796875 + }, + { + "x": 1015.6279907226562, + "y": 195.18299865722656 + }, + { + "x": 1009.4760131835938, + "y": 196.45700073242188 + }, + { + "x": 1003.2860107421875, + "y": 197.53700256347656 + }, + { + "x": 998.5, + "y": 198.21800231933594 } ], "isCurve": true, diff --git a/e2etests/testdata/txtar/cycle-diagram/dagre/sketch.exp.svg b/e2etests/testdata/txtar/cycle-diagram/dagre/sketch.exp.svg index 18ebdee8a..015478d74 100644 --- a/e2etests/testdata/txtar/cycle-diagram/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/cycle-diagram/dagre/sketch.exp.svg @@ -1,9 +1,9 @@ -abcdabcab + .d2-153681122 .fill-N1{fill:#0A0F25;} + .d2-153681122 .fill-N2{fill:#676C7E;} + .d2-153681122 .fill-N3{fill:#9499AB;} + .d2-153681122 .fill-N4{fill:#CFD2DD;} + .d2-153681122 .fill-N5{fill:#DEE1EB;} + .d2-153681122 .fill-N6{fill:#EEF1F8;} + .d2-153681122 .fill-N7{fill:#FFFFFF;} + .d2-153681122 .fill-B1{fill:#0D32B2;} + .d2-153681122 .fill-B2{fill:#0D32B2;} + .d2-153681122 .fill-B3{fill:#E3E9FD;} + .d2-153681122 .fill-B4{fill:#E3E9FD;} + .d2-153681122 .fill-B5{fill:#EDF0FD;} + .d2-153681122 .fill-B6{fill:#F7F8FE;} + .d2-153681122 .fill-AA2{fill:#4A6FF3;} + .d2-153681122 .fill-AA4{fill:#EDF0FD;} + .d2-153681122 .fill-AA5{fill:#F7F8FE;} + .d2-153681122 .fill-AB4{fill:#EDF0FD;} + .d2-153681122 .fill-AB5{fill:#F7F8FE;} + .d2-153681122 .stroke-N1{stroke:#0A0F25;} + .d2-153681122 .stroke-N2{stroke:#676C7E;} + .d2-153681122 .stroke-N3{stroke:#9499AB;} + .d2-153681122 .stroke-N4{stroke:#CFD2DD;} + .d2-153681122 .stroke-N5{stroke:#DEE1EB;} + .d2-153681122 .stroke-N6{stroke:#EEF1F8;} + .d2-153681122 .stroke-N7{stroke:#FFFFFF;} + .d2-153681122 .stroke-B1{stroke:#0D32B2;} + .d2-153681122 .stroke-B2{stroke:#0D32B2;} + .d2-153681122 .stroke-B3{stroke:#E3E9FD;} + .d2-153681122 .stroke-B4{stroke:#E3E9FD;} + .d2-153681122 .stroke-B5{stroke:#EDF0FD;} + .d2-153681122 .stroke-B6{stroke:#F7F8FE;} + .d2-153681122 .stroke-AA2{stroke:#4A6FF3;} + .d2-153681122 .stroke-AA4{stroke:#EDF0FD;} + .d2-153681122 .stroke-AA5{stroke:#F7F8FE;} + .d2-153681122 .stroke-AB4{stroke:#EDF0FD;} + .d2-153681122 .stroke-AB5{stroke:#F7F8FE;} + .d2-153681122 .background-color-N1{background-color:#0A0F25;} + .d2-153681122 .background-color-N2{background-color:#676C7E;} + .d2-153681122 .background-color-N3{background-color:#9499AB;} + .d2-153681122 .background-color-N4{background-color:#CFD2DD;} + .d2-153681122 .background-color-N5{background-color:#DEE1EB;} + .d2-153681122 .background-color-N6{background-color:#EEF1F8;} + .d2-153681122 .background-color-N7{background-color:#FFFFFF;} + .d2-153681122 .background-color-B1{background-color:#0D32B2;} + .d2-153681122 .background-color-B2{background-color:#0D32B2;} + .d2-153681122 .background-color-B3{background-color:#E3E9FD;} + .d2-153681122 .background-color-B4{background-color:#E3E9FD;} + .d2-153681122 .background-color-B5{background-color:#EDF0FD;} + .d2-153681122 .background-color-B6{background-color:#F7F8FE;} + .d2-153681122 .background-color-AA2{background-color:#4A6FF3;} + .d2-153681122 .background-color-AA4{background-color:#EDF0FD;} + .d2-153681122 .background-color-AA5{background-color:#F7F8FE;} + .d2-153681122 .background-color-AB4{background-color:#EDF0FD;} + .d2-153681122 .background-color-AB5{background-color:#F7F8FE;} + .d2-153681122 .color-N1{color:#0A0F25;} + .d2-153681122 .color-N2{color:#676C7E;} + .d2-153681122 .color-N3{color:#9499AB;} + .d2-153681122 .color-N4{color:#CFD2DD;} + .d2-153681122 .color-N5{color:#DEE1EB;} + .d2-153681122 .color-N6{color:#EEF1F8;} + .d2-153681122 .color-N7{color:#FFFFFF;} + .d2-153681122 .color-B1{color:#0D32B2;} + .d2-153681122 .color-B2{color:#0D32B2;} + .d2-153681122 .color-B3{color:#E3E9FD;} + .d2-153681122 .color-B4{color:#E3E9FD;} + .d2-153681122 .color-B5{color:#EDF0FD;} + .d2-153681122 .color-B6{color:#F7F8FE;} + .d2-153681122 .color-AA2{color:#4A6FF3;} + .d2-153681122 .color-AA4{color:#EDF0FD;} + .d2-153681122 .color-AA5{color:#F7F8FE;} + .d2-153681122 .color-AB4{color:#EDF0FD;} + .d2-153681122 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-153681122);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-153681122);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-153681122);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-153681122);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-153681122);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-153681122);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-153681122);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-153681122);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>abcdabcab diff --git a/e2etests/testdata/txtar/cycle-diagram/elk/board.exp.json b/e2etests/testdata/txtar/cycle-diagram/elk/board.exp.json index ad4e2a99c..6eb058a84 100644 --- a/e2etests/testdata/txtar/cycle-diagram/elk/board.exp.json +++ b/e2etests/testdata/txtar/cycle-diagram/elk/board.exp.json @@ -540,108 +540,336 @@ "link": "", "route": [ { - "x": 32.904998779296875, - "y": -186.9040069580078 + "x": 38.5, + "y": -186.22999572753906 + }, + { + "x": 40.18000030517578, + "y": -186.00399780273438 }, { "x": 43.2859992980957, "y": -185.53700256347656 }, { - "x": 53.582000732421875, - "y": -183.62899780273438 + "x": 46.3849983215332, + "y": -185.02099609375 }, { - "x": 63.76300048828125, - "y": -181.18499755859375 + "x": 49.47600173950195, + "y": -184.45700073242188 + }, + { + "x": 52.55699920654297, + "y": -183.843994140625 + }, + { + "x": 55.62799835205078, + "y": -183.18299865722656 + }, + { + "x": 58.68899917602539, + "y": -182.47300720214844 + }, + { + "x": 61.73699951171875, + "y": -181.71600341796875 + }, + { + "x": 64.77400207519531, + "y": -180.91099548339844 + }, + { + "x": 67.7979965209961, + "y": -180.05799865722656 + }, + { + "x": 70.80799865722656, + "y": -179.1580047607422 }, { "x": 73.8030014038086, "y": -178.21099853515625 }, { - "x": 83.6729965209961, - "y": -174.71600341796875 + "x": 76.78299713134766, + "y": -177.2169952392578 }, { - "x": 93.34700012207031, - "y": -170.70899963378906 + "x": 79.74700164794922, + "y": -176.17599487304688 + }, + { + "x": 82.69400024414062, + "y": -175.08799743652344 + }, + { + "x": 85.6240005493164, + "y": -173.9550018310547 + }, + { + "x": 88.53600311279297, + "y": -172.77499389648438 + }, + { + "x": 91.42900085449219, + "y": -171.5500030517578 + }, + { + "x": 94.302001953125, + "y": -170.27999877929688 + }, + { + "x": 97.15499877929688, + "y": -168.96499633789062 + }, + { + "x": 99.98699951171875, + "y": -167.60499572753906 }, { "x": 102.7979965209961, "y": -166.2010040283203 }, { - "x": 111.9990005493164, - "y": -161.2050018310547 + "x": 105.58499908447266, + "y": -164.7530059814453 }, { - "x": 120.927001953125, - "y": -155.73399353027344 + "x": 108.3499984741211, + "y": -163.26100158691406 + }, + { + "x": 111.09100341796875, + "y": -161.7259979248047 + }, + { + "x": 113.80799865722656, + "y": -160.1479949951172 + }, + { + "x": 116.4990005493164, + "y": -158.5279998779297 + }, + { + "x": 119.16500091552734, + "y": -156.86500549316406 + }, + { + "x": 121.80400085449219, + "y": -155.16099548339844 + }, + { + "x": 124.41600036621094, + "y": -153.41600036621094 + }, + { + "x": 127.0009994506836, + "y": -151.62899780273438 }, { "x": 129.5570068359375, "y": -149.80299377441406 }, { - "x": 137.86399841308594, - "y": -143.4290008544922 + "x": 132.08399963378906, + "y": -147.93600463867188 }, { - "x": 145.8260040283203, - "y": -136.6280059814453 + "x": 134.58099365234375, + "y": -146.031005859375 + }, + { + "x": 137.04800415039062, + "y": -144.08599853515625 + }, + { + "x": 139.48399353027344, + "y": -142.1020050048828 + }, + { + "x": 141.88900756835938, + "y": -140.08099365234375 + }, + { + "x": 144.26199340820312, + "y": -138.02200317382812 + }, + { + "x": 146.6020050048828, + "y": -135.92599487304688 + }, + { + "x": 148.90899658203125, + "y": -133.79299926757812 + }, + { + "x": 151.1820068359375, + "y": -131.625 }, { "x": 153.42100524902344, "y": -129.42100524902344 }, { - "x": 160.6280059814453, - "y": -121.82599639892578 + "x": 155.625, + "y": -127.18199920654297 }, { - "x": 167.4290008544922, - "y": -113.86399841308594 + "x": 157.79299926757812, + "y": -124.90899658203125 + }, + { + "x": 159.92599487304688, + "y": -122.60199737548828 + }, + { + "x": 162.02200317382812, + "y": -120.26200103759766 + }, + { + "x": 164.08099365234375, + "y": -117.88899993896484 + }, + { + "x": 166.1020050048828, + "y": -115.48400115966797 + }, + { + "x": 168.08599853515625, + "y": -113.0479965209961 + }, + { + "x": 170.031005859375, + "y": -110.58100128173828 + }, + { + "x": 171.93600463867188, + "y": -108.08399963378906 }, { "x": 173.80299377441406, "y": -105.55699920654297 }, { - "x": 179.73399353027344, - "y": -96.927001953125 + "x": 175.62899780273438, + "y": -103.0009994506836 }, { - "x": 185.2050018310547, - "y": -88 + "x": 177.41600036621094, + "y": -100.41600036621094 + }, + { + "x": 179.16099548339844, + "y": -97.80400085449219 + }, + { + "x": 180.86500549316406, + "y": -95.16500091552734 + }, + { + "x": 182.5279998779297, + "y": -92.4990005493164 + }, + { + "x": 184.1479949951172, + "y": -89.80799865722656 + }, + { + "x": 185.7259979248047, + "y": -87.09100341796875 + }, + { + "x": 187.26100158691406, + "y": -84.3499984741211 + }, + { + "x": 188.7530059814453, + "y": -81.58499908447266 }, { "x": 190.2010040283203, "y": -78.7979965209961 }, { - "x": 194.70899963378906, - "y": -69.34700012207031 + "x": 191.60499572753906, + "y": -75.98699951171875 }, { - "x": 198.71600341796875, - "y": -59.67300033569336 + "x": 192.96499633789062, + "y": -73.15499877929688 + }, + { + "x": 194.27999877929688, + "y": -70.302001953125 + }, + { + "x": 195.5500030517578, + "y": -67.42900085449219 + }, + { + "x": 196.77499389648438, + "y": -64.53600311279297 + }, + { + "x": 197.9550018310547, + "y": -61.624000549316406 + }, + { + "x": 199.08799743652344, + "y": -58.694000244140625 + }, + { + "x": 200.17599487304688, + "y": -55.74700164794922 + }, + { + "x": 201.2169952392578, + "y": -52.78300094604492 }, { "x": 202.21099853515625, "y": -49.803001403808594 }, { - "x": 205.18499755859375, - "y": -39.76300048828125 + "x": 203.1580047607422, + "y": -46.80799865722656 }, { - "x": 207.62899780273438, - "y": -29.582000732421875 + "x": 204.05799865722656, + "y": -43.79800033569336 }, { - "x": 209.53700256347656, - "y": -19.285999298095703 + "x": 204.91099548339844, + "y": -40.77399826049805 + }, + { + "x": 205.71600341796875, + "y": -37.73699951171875 + }, + { + "x": 206.47300720214844, + "y": -34.68899917602539 + }, + { + "x": 207.18299865722656, + "y": -31.628000259399414 + }, + { + "x": 207.843994140625, + "y": -28.55699920654297 + }, + { + "x": 208.45700073242188, + "y": -25.47599983215332 + }, + { + "x": 209.02099609375, + "y": -22.385000228881836 + }, + { + "x": 209.2519989013672, + "y": -21 } ], "isCurve": true, @@ -676,108 +904,336 @@ "link": "", "route": [ { - "x": 209.53700256347656, - "y": 43.2859992980957 + "x": 209.2519989013672, + "y": 45 }, { - "x": 207.62899780273438, - "y": 53.582000732421875 + "x": 209.02099609375, + "y": 46.3849983215332 }, { - "x": 205.18499755859375, - "y": 63.76300048828125 + "x": 208.45700073242188, + "y": 49.47600173950195 + }, + { + "x": 207.843994140625, + "y": 52.55699920654297 + }, + { + "x": 207.18299865722656, + "y": 55.62799835205078 + }, + { + "x": 206.47300720214844, + "y": 58.68899917602539 + }, + { + "x": 205.71600341796875, + "y": 61.73699951171875 + }, + { + "x": 204.91099548339844, + "y": 64.77400207519531 + }, + { + "x": 204.05799865722656, + "y": 67.7979965209961 + }, + { + "x": 203.1580047607422, + "y": 70.80799865722656 }, { "x": 202.21099853515625, "y": 73.8030014038086 }, { - "x": 198.71600341796875, - "y": 83.6729965209961 + "x": 201.2169952392578, + "y": 76.78299713134766 }, { - "x": 194.70899963378906, - "y": 93.34700012207031 + "x": 200.17599487304688, + "y": 79.74700164794922 + }, + { + "x": 199.08799743652344, + "y": 82.69400024414062 + }, + { + "x": 197.9550018310547, + "y": 85.6240005493164 + }, + { + "x": 196.77499389648438, + "y": 88.53600311279297 + }, + { + "x": 195.5500030517578, + "y": 91.42900085449219 + }, + { + "x": 194.27999877929688, + "y": 94.302001953125 + }, + { + "x": 192.96499633789062, + "y": 97.15499877929688 + }, + { + "x": 191.60499572753906, + "y": 99.98699951171875 }, { "x": 190.2010040283203, "y": 102.7979965209961 }, { - "x": 185.2050018310547, - "y": 111.9990005493164 + "x": 188.7530059814453, + "y": 105.58499908447266 }, { - "x": 179.73399353027344, - "y": 120.927001953125 + "x": 187.26100158691406, + "y": 108.3499984741211 + }, + { + "x": 185.7259979248047, + "y": 111.09100341796875 + }, + { + "x": 184.1479949951172, + "y": 113.80799865722656 + }, + { + "x": 182.5279998779297, + "y": 116.4990005493164 + }, + { + "x": 180.86500549316406, + "y": 119.16500091552734 + }, + { + "x": 179.16099548339844, + "y": 121.80400085449219 + }, + { + "x": 177.41600036621094, + "y": 124.41600036621094 + }, + { + "x": 175.62899780273438, + "y": 127.0009994506836 }, { "x": 173.80299377441406, "y": 129.5570068359375 }, { - "x": 167.4290008544922, - "y": 137.86399841308594 + "x": 171.93600463867188, + "y": 132.08399963378906 }, { - "x": 160.6280059814453, - "y": 145.8260040283203 + "x": 170.031005859375, + "y": 134.58099365234375 + }, + { + "x": 168.08599853515625, + "y": 137.04800415039062 + }, + { + "x": 166.1020050048828, + "y": 139.48399353027344 + }, + { + "x": 164.08099365234375, + "y": 141.88900756835938 + }, + { + "x": 162.02200317382812, + "y": 144.26199340820312 + }, + { + "x": 159.92599487304688, + "y": 146.6020050048828 + }, + { + "x": 157.79299926757812, + "y": 148.90899658203125 + }, + { + "x": 155.625, + "y": 151.1820068359375 }, { "x": 153.42100524902344, "y": 153.42100524902344 }, { - "x": 145.8260040283203, - "y": 160.6280059814453 + "x": 151.1820068359375, + "y": 155.625 }, { - "x": 137.86399841308594, - "y": 167.4290008544922 + "x": 148.90899658203125, + "y": 157.79299926757812 + }, + { + "x": 146.6020050048828, + "y": 159.92599487304688 + }, + { + "x": 144.26199340820312, + "y": 162.02200317382812 + }, + { + "x": 141.88900756835938, + "y": 164.08099365234375 + }, + { + "x": 139.48399353027344, + "y": 166.1020050048828 + }, + { + "x": 137.04800415039062, + "y": 168.08599853515625 + }, + { + "x": 134.58099365234375, + "y": 170.031005859375 + }, + { + "x": 132.08399963378906, + "y": 171.93600463867188 }, { "x": 129.5570068359375, "y": 173.80299377441406 }, { - "x": 120.927001953125, - "y": 179.73399353027344 + "x": 127.0009994506836, + "y": 175.62899780273438 }, { - "x": 112, - "y": 185.2050018310547 + "x": 124.41600036621094, + "y": 177.41600036621094 + }, + { + "x": 121.80400085449219, + "y": 179.16099548339844 + }, + { + "x": 119.16500091552734, + "y": 180.86500549316406 + }, + { + "x": 116.4990005493164, + "y": 182.5279998779297 + }, + { + "x": 113.80799865722656, + "y": 184.1479949951172 + }, + { + "x": 111.09100341796875, + "y": 185.7259979248047 + }, + { + "x": 108.3499984741211, + "y": 187.26100158691406 + }, + { + "x": 105.58499908447266, + "y": 188.7530059814453 }, { "x": 102.7979965209961, "y": 190.2010040283203 }, { - "x": 93.34700012207031, - "y": 194.70899963378906 + "x": 99.98699951171875, + "y": 191.60499572753906 }, { - "x": 83.6729965209961, - "y": 198.71600341796875 + "x": 97.15499877929688, + "y": 192.96499633789062 + }, + { + "x": 94.302001953125, + "y": 194.27999877929688 + }, + { + "x": 91.42900085449219, + "y": 195.5500030517578 + }, + { + "x": 88.53600311279297, + "y": 196.77499389648438 + }, + { + "x": 85.6240005493164, + "y": 197.9550018310547 + }, + { + "x": 82.69400024414062, + "y": 199.08799743652344 + }, + { + "x": 79.74700164794922, + "y": 200.17599487304688 + }, + { + "x": 76.78299713134766, + "y": 201.2169952392578 }, { "x": 73.8030014038086, "y": 202.21099853515625 }, { - "x": 63.76300048828125, - "y": 205.18499755859375 + "x": 70.80799865722656, + "y": 203.1580047607422 }, { - "x": 53.582000732421875, - "y": 207.62899780273438 + "x": 67.7979965209961, + "y": 204.05799865722656 + }, + { + "x": 64.77400207519531, + "y": 204.91099548339844 + }, + { + "x": 61.73699951171875, + "y": 205.71600341796875 + }, + { + "x": 58.68899917602539, + "y": 206.47300720214844 + }, + { + "x": 55.62799835205078, + "y": 207.18299865722656 + }, + { + "x": 52.55699920654297, + "y": 207.843994140625 + }, + { + "x": 49.47600173950195, + "y": 208.45700073242188 + }, + { + "x": 46.3849983215332, + "y": 209.02099609375 }, { "x": 43.2859992980957, "y": 209.53700256347656 }, { - "x": 32.904998779296875, - "y": 210.9040069580078 + "x": 40.18000030517578, + "y": 210.00399780273438 + }, + { + "x": 38.5, + "y": 210.22999572753906 } ], "isCurve": true, @@ -812,108 +1268,336 @@ "link": "", "route": [ { - "x": -8.904999732971191, - "y": 210.9040069580078 + "x": -14.49899959564209, + "y": 210.22999572753906 + }, + { + "x": -16.18000030517578, + "y": 210.00399780273438 }, { "x": -19.285999298095703, "y": 209.53700256347656 }, { - "x": -29.582000732421875, - "y": 207.62899780273438 + "x": -22.385000228881836, + "y": 209.02099609375 }, { - "x": -39.76300048828125, - "y": 205.18499755859375 + "x": -25.47599983215332, + "y": 208.45700073242188 + }, + { + "x": -28.55699920654297, + "y": 207.843994140625 + }, + { + "x": -31.628000259399414, + "y": 207.18299865722656 + }, + { + "x": -34.68899917602539, + "y": 206.47300720214844 + }, + { + "x": -37.73699951171875, + "y": 205.71600341796875 + }, + { + "x": -40.77399826049805, + "y": 204.91099548339844 + }, + { + "x": -43.79800033569336, + "y": 204.05799865722656 + }, + { + "x": -46.80799865722656, + "y": 203.1580047607422 }, { "x": -49.803001403808594, "y": 202.21099853515625 }, { - "x": -59.67300033569336, - "y": 198.71600341796875 + "x": -52.78300094604492, + "y": 201.2169952392578 }, { - "x": -69.34700012207031, - "y": 194.70899963378906 + "x": -55.74700164794922, + "y": 200.17599487304688 + }, + { + "x": -58.694000244140625, + "y": 199.08799743652344 + }, + { + "x": -61.624000549316406, + "y": 197.9550018310547 + }, + { + "x": -64.53600311279297, + "y": 196.77499389648438 + }, + { + "x": -67.42900085449219, + "y": 195.5500030517578 + }, + { + "x": -70.302001953125, + "y": 194.27999877929688 + }, + { + "x": -73.15499877929688, + "y": 192.96499633789062 + }, + { + "x": -75.98699951171875, + "y": 191.60499572753906 }, { "x": -78.7979965209961, "y": 190.2010040283203 }, { - "x": -87.9990005493164, - "y": 185.2050018310547 + "x": -81.58499908447266, + "y": 188.7530059814453 }, { - "x": -96.927001953125, - "y": 179.73399353027344 + "x": -84.3499984741211, + "y": 187.26100158691406 + }, + { + "x": -87.09100341796875, + "y": 185.7259979248047 + }, + { + "x": -89.80799865722656, + "y": 184.1479949951172 + }, + { + "x": -92.4990005493164, + "y": 182.5279998779297 + }, + { + "x": -95.16500091552734, + "y": 180.86500549316406 + }, + { + "x": -97.80400085449219, + "y": 179.16099548339844 + }, + { + "x": -100.41600036621094, + "y": 177.41600036621094 + }, + { + "x": -103.0009994506836, + "y": 175.62899780273438 }, { "x": -105.55699920654297, "y": 173.80299377441406 }, { - "x": -113.86399841308594, - "y": 167.4290008544922 + "x": -108.08399963378906, + "y": 171.93600463867188 }, { - "x": -121.82599639892578, - "y": 160.6280059814453 + "x": -110.58100128173828, + "y": 170.031005859375 + }, + { + "x": -113.0479965209961, + "y": 168.08599853515625 + }, + { + "x": -115.48400115966797, + "y": 166.1020050048828 + }, + { + "x": -117.88899993896484, + "y": 164.08099365234375 + }, + { + "x": -120.26200103759766, + "y": 162.02200317382812 + }, + { + "x": -122.60199737548828, + "y": 159.92599487304688 + }, + { + "x": -124.90899658203125, + "y": 157.79299926757812 + }, + { + "x": -127.18199920654297, + "y": 155.625 }, { "x": -129.42100524902344, "y": 153.42100524902344 }, { - "x": -136.6280059814453, - "y": 145.8260040283203 + "x": -131.625, + "y": 151.1820068359375 }, { - "x": -143.4290008544922, - "y": 137.86399841308594 + "x": -133.79299926757812, + "y": 148.90899658203125 + }, + { + "x": -135.92599487304688, + "y": 146.6020050048828 + }, + { + "x": -138.02200317382812, + "y": 144.26199340820312 + }, + { + "x": -140.08099365234375, + "y": 141.88900756835938 + }, + { + "x": -142.1020050048828, + "y": 139.48399353027344 + }, + { + "x": -144.08599853515625, + "y": 137.04800415039062 + }, + { + "x": -146.031005859375, + "y": 134.58099365234375 + }, + { + "x": -147.93600463867188, + "y": 132.08399963378906 }, { "x": -149.80299377441406, "y": 129.5570068359375 }, { - "x": -155.73399353027344, - "y": 120.927001953125 + "x": -151.62899780273438, + "y": 127.0009994506836 }, { - "x": -161.2050018310547, - "y": 112 + "x": -153.41600036621094, + "y": 124.41600036621094 + }, + { + "x": -155.16099548339844, + "y": 121.80400085449219 + }, + { + "x": -156.86500549316406, + "y": 119.16500091552734 + }, + { + "x": -158.5279998779297, + "y": 116.4990005493164 + }, + { + "x": -160.1479949951172, + "y": 113.80799865722656 + }, + { + "x": -161.7259979248047, + "y": 111.09100341796875 + }, + { + "x": -163.26100158691406, + "y": 108.3499984741211 + }, + { + "x": -164.7530059814453, + "y": 105.58499908447266 }, { "x": -166.2010040283203, "y": 102.7979965209961 }, { - "x": -170.70899963378906, - "y": 93.34700012207031 + "x": -167.60499572753906, + "y": 99.98699951171875 }, { - "x": -174.71600341796875, - "y": 83.6729965209961 + "x": -168.96499633789062, + "y": 97.15499877929688 + }, + { + "x": -170.27999877929688, + "y": 94.302001953125 + }, + { + "x": -171.5500030517578, + "y": 91.42900085449219 + }, + { + "x": -172.77499389648438, + "y": 88.53600311279297 + }, + { + "x": -173.9550018310547, + "y": 85.6240005493164 + }, + { + "x": -175.08799743652344, + "y": 82.69400024414062 + }, + { + "x": -176.17599487304688, + "y": 79.74700164794922 + }, + { + "x": -177.2169952392578, + "y": 76.78299713134766 }, { "x": -178.21099853515625, "y": 73.8030014038086 }, { - "x": -181.18499755859375, - "y": 63.76300048828125 + "x": -179.1580047607422, + "y": 70.80799865722656 }, { - "x": -183.62899780273438, - "y": 53.582000732421875 + "x": -180.05799865722656, + "y": 67.7979965209961 }, { - "x": -185.53700256347656, - "y": 43.2859992980957 + "x": -180.91099548339844, + "y": 64.77400207519531 + }, + { + "x": -181.71600341796875, + "y": 61.73699951171875 + }, + { + "x": -182.47300720214844, + "y": 58.68899917602539 + }, + { + "x": -183.18299865722656, + "y": 55.62799835205078 + }, + { + "x": -183.843994140625, + "y": 52.55699920654297 + }, + { + "x": -184.45700073242188, + "y": 49.47600173950195 + }, + { + "x": -185.02099609375, + "y": 46.3849983215332 + }, + { + "x": -185.2519989013672, + "y": 45 } ], "isCurve": true, @@ -948,116 +1632,352 @@ "link": "", "route": [ { - "x": 499.45098876953125, - "y": -137.51199340820312 + "x": 512, + "y": -136.2259979248047 }, { - "x": 513.333984375, - "y": -136.05299377441406 + "x": 514.7160034179688, + "y": -135.85400390625 + }, + { + "x": 518.85302734375, + "y": -135.19900512695312 + }, + { + "x": 522.9760131835938, + "y": -134.45700073242188 }, { "x": 527.0819702148438, "y": -133.62899780273438 }, { - "x": 540.6270141601562, - "y": -130.2519989013672 + "x": 531.1699829101562, + "y": -132.71499633789062 }, { - "x": 553.9039916992188, - "y": -125.93800354003906 + "x": 535.2369995117188, + "y": -131.71600341796875 + }, + { + "x": 539.2830200195312, + "y": -130.6320037841797 + }, + { + "x": 543.3060302734375, + "y": -129.46299743652344 + }, + { + "x": 547.302978515625, + "y": -128.21099853515625 + }, + { + "x": 551.2730102539062, + "y": -126.875 + }, + { + "x": 555.2139892578125, + "y": -125.45600128173828 + }, + { + "x": 559.1240234375, + "y": -123.95500183105469 + }, + { + "x": 563.0029907226562, + "y": -122.37200164794922 }, { "x": 566.8469848632812, "y": -120.70899963378906 }, { - "x": 579.3939819335938, - "y": -114.58899688720703 + "x": 570.655029296875, + "y": -118.96499633789062 }, { - "x": 591.4829711914062, - "y": -107.60900115966797 + "x": 574.427001953125, + "y": -117.14199829101562 + }, + { + "x": 578.1589965820312, + "y": -115.23999786376953 + }, + { + "x": 581.8499755859375, + "y": -113.26100158691406 + }, + { + "x": 585.5, + "y": -111.20500183105469 + }, + { + "x": 589.10498046875, + "y": -109.0719985961914 + }, + { + "x": 592.6649780273438, + "y": -106.86499786376953 + }, + { + "x": 596.177978515625, + "y": -104.58399963378906 + }, + { + "x": 599.6420288085938, + "y": -102.22899627685547 }, { "x": 603.0570068359375, "y": -99.8030014038086 }, { - "x": 614.0570068359375, - "y": -91.20800018310547 + "x": 606.4190063476562, + "y": -97.30500030517578 }, { - "x": 624.4310302734375, - "y": -81.86699676513672 + "x": 609.72900390625, + "y": -94.73799896240234 + }, + { + "x": 612.9840087890625, + "y": -92.10199737548828 + }, + { + "x": 616.1840209960938, + "y": -89.39900207519531 + }, + { + "x": 619.3259887695312, + "y": -86.62799835205078 + }, + { + "x": 622.4089965820312, + "y": -83.79299926757812 + }, + { + "x": 625.4320068359375, + "y": -80.89399719238281 + }, + { + "x": 628.3939819335938, + "y": -77.93199920654297 + }, + { + "x": 631.2930297851562, + "y": -74.90899658203125 }, { "x": 634.1279907226562, "y": -71.82599639892578 }, { - "x": 643.1019897460938, - "y": -61.13199996948242 + "x": 636.8989868164062, + "y": -68.68399810791016 }, { - "x": 651.3070068359375, - "y": -49.8380012512207 + "x": 639.6019897460938, + "y": -65.48400115966797 + }, + { + "x": 642.2379760742188, + "y": -62.229000091552734 + }, + { + "x": 644.8049926757812, + "y": -58.91899871826172 + }, + { + "x": 647.302978515625, + "y": -55.55699920654297 + }, + { + "x": 649.72900390625, + "y": -52.141998291015625 + }, + { + "x": 652.083984375, + "y": -48.678001403808594 + }, + { + "x": 654.364990234375, + "y": -45.165000915527344 + }, + { + "x": 656.572021484375, + "y": -41.60499954223633 }, { "x": 658.7050170898438, "y": -38 }, { - "x": 665.2579956054688, - "y": -25.673999786376953 + "x": 660.760986328125, + "y": -34.349998474121094 }, { - "x": 670.9359741210938, - "y": -12.920999526977539 + "x": 662.739990234375, + "y": -30.659000396728516 + }, + { + "x": 664.6420288085938, + "y": -26.927000045776367 + }, + { + "x": 666.4650268554688, + "y": -23.155000686645508 + }, + { + "x": 668.208984375, + "y": -19.347000122070312 + }, + { + "x": 669.8720092773438, + "y": -15.503000259399414 + }, + { + "x": 671.4550170898438, + "y": -11.62399959564209 + }, + { + "x": 672.9559936523438, + "y": -7.714000225067139 + }, + { + "x": 674.375, + "y": -3.7730000019073486 }, { "x": 675.7109985351562, "y": 0.19599999487400055 }, { - "x": 679.5590209960938, - "y": 13.614999771118164 + "x": 676.9630126953125, + "y": 4.192999839782715 }, { - "x": 682.4609985351562, - "y": 27.270000457763672 + "x": 678.1320190429688, + "y": 8.215999603271484 + }, + { + "x": 679.2160034179688, + "y": 12.26200008392334 + }, + { + "x": 680.2150268554688, + "y": 16.32900047302246 + }, + { + "x": 681.1290283203125, + "y": 20.41699981689453 + }, + { + "x": 681.9569702148438, + "y": 24.523000717163086 + }, + { + "x": 682.698974609375, + "y": 28.645999908447266 + }, + { + "x": 683.35400390625, + "y": 32.78300094604492 + }, + { + "x": 683.9219970703125, + "y": 36.93299865722656 }, { "x": 684.4039916992188, "y": 41.09400177001953 }, { - "x": 685.3779907226562, - "y": 55.02000045776367 + "x": 684.7979736328125, + "y": 45.263999938964844 }, { - "x": 685.3779907226562, - "y": 68.97899627685547 + "x": 685.10498046875, + "y": 49.441001892089844 + }, + { + "x": 685.323974609375, + "y": 53.624000549316406 + }, + { + "x": 685.4559936523438, + "y": 57.81100082397461 + }, + { + "x": 685.5, + "y": 61.999000549316406 + }, + { + "x": 685.4559936523438, + "y": 66.18800354003906 + }, + { + "x": 685.323974609375, + "y": 70.375 + }, + { + "x": 685.10498046875, + "y": 74.55799865722656 + }, + { + "x": 684.7979736328125, + "y": 78.73500061035156 }, { "x": 684.4039916992188, "y": 82.90499877929688 }, { - "x": 682.4609985351562, - "y": 96.72899627685547 + "x": 683.9219970703125, + "y": 87.06600189208984 }, { - "x": 679.5590209960938, - "y": 110.38400268554688 + "x": 683.35400390625, + "y": 91.21600341796875 + }, + { + "x": 682.698974609375, + "y": 95.35299682617188 + }, + { + "x": 681.9569702148438, + "y": 99.47599792480469 + }, + { + "x": 681.1290283203125, + "y": 103.58200073242188 + }, + { + "x": 680.2150268554688, + "y": 107.66999816894531 + }, + { + "x": 679.2160034179688, + "y": 111.73699951171875 + }, + { + "x": 678.1320190429688, + "y": 115.78299713134766 + }, + { + "x": 676.9630126953125, + "y": 119.80599975585938 }, { "x": 675.7109985351562, "y": 123.8030014038086 }, { - "x": 670.9359741210938, - "y": 136.92100524902344 + "x": 674.375, + "y": 127.77300262451172 + }, + { + "x": 673.9329833984375, + "y": 128.99899291992188 } ], "isCurve": true, @@ -1092,112 +2012,336 @@ "link": "", "route": [ { - "x": 643.1019897460938, - "y": 185.1320037841797 + "x": 634.8569946289062, + "y": 194.99899291992188 }, { "x": 634.1279907226562, "y": 195.8260040283203 }, { - "x": 624.4310302734375, - "y": 205.86700439453125 + "x": 631.2930297851562, + "y": 198.90899658203125 }, { - "x": 614.0570068359375, - "y": 215.20799255371094 + "x": 628.3939819335938, + "y": 201.9320068359375 + }, + { + "x": 625.4320068359375, + "y": 204.8939971923828 + }, + { + "x": 622.4089965820312, + "y": 207.79299926757812 + }, + { + "x": 619.3259887695312, + "y": 210.6280059814453 + }, + { + "x": 616.1840209960938, + "y": 213.3990020751953 + }, + { + "x": 612.9840087890625, + "y": 216.1020050048828 + }, + { + "x": 609.72900390625, + "y": 218.73800659179688 + }, + { + "x": 606.4190063476562, + "y": 221.30499267578125 }, { "x": 603.0570068359375, "y": 223.80299377441406 }, { - "x": 591.4829711914062, - "y": 231.60899353027344 + "x": 599.6420288085938, + "y": 226.22900390625 }, { - "x": 579.3939819335938, - "y": 238.58900451660156 + "x": 596.177978515625, + "y": 228.58399963378906 + }, + { + "x": 592.6649780273438, + "y": 230.86500549316406 + }, + { + "x": 589.10498046875, + "y": 233.07200622558594 + }, + { + "x": 585.5, + "y": 235.2050018310547 + }, + { + "x": 581.8499755859375, + "y": 237.26100158691406 + }, + { + "x": 578.1589965820312, + "y": 239.24000549316406 + }, + { + "x": 574.427001953125, + "y": 241.14199829101562 + }, + { + "x": 570.655029296875, + "y": 242.96499633789062 }, { "x": 566.8469848632812, "y": 244.70899963378906 }, { - "x": 553.9039916992188, - "y": 249.93800354003906 + "x": 563.0029907226562, + "y": 246.3719940185547 }, { - "x": 540.6270141601562, - "y": 254.2519989013672 + "x": 559.1240234375, + "y": 247.9550018310547 + }, + { + "x": 555.2139892578125, + "y": 249.45599365234375 + }, + { + "x": 551.2730102539062, + "y": 250.875 + }, + { + "x": 547.302978515625, + "y": 252.21099853515625 + }, + { + "x": 543.3060302734375, + "y": 253.46299743652344 + }, + { + "x": 539.2830200195312, + "y": 254.6320037841797 + }, + { + "x": 535.2369995117188, + "y": 255.71600341796875 + }, + { + "x": 531.1699829101562, + "y": 256.7149963378906 }, { "x": 527.0819702148438, "y": 257.6289978027344 }, { - "x": 513.333984375, - "y": 260.0530090332031 + "x": 522.9760131835938, + "y": 258.4570007324219 }, { - "x": 499.45098876953125, - "y": 261.5119934082031 + "x": 518.85302734375, + "y": 259.1990051269531 + }, + { + "x": 514.7160034179688, + "y": 259.85400390625 + }, + { + "x": 510.5660095214844, + "y": 260.4219970703125 + }, + { + "x": 506.4049987792969, + "y": 260.90399169921875 + }, + { + "x": 502.2349853515625, + "y": 261.2980041503906 + }, + { + "x": 498.0580139160156, + "y": 261.6050109863281 + }, + { + "x": 493.875, + "y": 261.8240051269531 + }, + { + "x": 489.68798828125, + "y": 261.95599365234375 }, { "x": 485.5, "y": 262 }, { - "x": 471.5480041503906, - "y": 261.5119934082031 + "x": 481.3110046386719, + "y": 261.95599365234375 }, { - "x": 457.6650085449219, - "y": 260.0530090332031 + "x": 477.1239929199219, + "y": 261.8240051269531 + }, + { + "x": 472.9410095214844, + "y": 261.6050109863281 + }, + { + "x": 468.7640075683594, + "y": 261.2980041503906 + }, + { + "x": 464.593994140625, + "y": 260.90399169921875 + }, + { + "x": 460.4330139160156, + "y": 260.4219970703125 + }, + { + "x": 456.2829895019531, + "y": 259.85400390625 + }, + { + "x": 452.14599609375, + "y": 259.1990051269531 + }, + { + "x": 448.02301025390625, + "y": 258.4570007324219 }, { "x": 443.9169921875, "y": 257.6289978027344 }, { - "x": 430.37200927734375, - "y": 254.2519989013672 + "x": 439.8290100097656, + "y": 256.7149963378906 }, { - "x": 417.0950012207031, - "y": 249.93800354003906 + "x": 435.7619934082031, + "y": 255.71600341796875 + }, + { + "x": 431.71600341796875, + "y": 254.6320037841797 + }, + { + "x": 427.6929931640625, + "y": 253.46299743652344 + }, + { + "x": 423.6960144042969, + "y": 252.21099853515625 + }, + { + "x": 419.72601318359375, + "y": 250.875 + }, + { + "x": 415.7850036621094, + "y": 249.45599365234375 + }, + { + "x": 411.875, + "y": 247.9550018310547 + }, + { + "x": 407.9960021972656, + "y": 246.3719940185547 }, { "x": 404.1520080566406, "y": 244.70899963378906 }, { - "x": 391.6050109863281, - "y": 238.58900451660156 + "x": 400.343994140625, + "y": 242.96499633789062 }, { - "x": 379.5159912109375, - "y": 231.60899353027344 + "x": 396.5719909667969, + "y": 241.14199829101562 + }, + { + "x": 392.8399963378906, + "y": 239.24000549316406 + }, + { + "x": 389.14898681640625, + "y": 237.26100158691406 + }, + { + "x": 385.5, + "y": 235.2050018310547 + }, + { + "x": 381.8940124511719, + "y": 233.07200622558594 + }, + { + "x": 378.3340148925781, + "y": 230.86500549316406 + }, + { + "x": 374.8210144042969, + "y": 228.58399963378906 + }, + { + "x": 371.35699462890625, + "y": 226.22900390625 }, { "x": 367.9419860839844, "y": 223.80299377441406 }, { - "x": 356.9419860839844, - "y": 215.20799255371094 + "x": 364.5799865722656, + "y": 221.30499267578125 }, { - "x": 346.5679931640625, - "y": 205.86700439453125 + "x": 361.2699890136719, + "y": 218.73800659179688 + }, + { + "x": 358.0150146484375, + "y": 216.1020050048828 + }, + { + "x": 354.81500244140625, + "y": 213.3990020751953 + }, + { + "x": 351.6730041503906, + "y": 210.6280059814453 + }, + { + "x": 348.5899963378906, + "y": 207.79299926757812 + }, + { + "x": 345.5669860839844, + "y": 204.8939971923828 + }, + { + "x": 342.6050109863281, + "y": 201.9320068359375 + }, + { + "x": 339.70599365234375, + "y": 198.90899658203125 }, { "x": 336.8710021972656, "y": 195.8260040283203 }, { - "x": 327.8970031738281, - "y": 185.1320037841797 + "x": 336.1419982910156, + "y": 195 } ], "isCurve": true, @@ -1232,120 +2376,376 @@ "link": "", "route": [ { - "x": 925.8150024414062, - "y": -186.9040069580078 + "x": 931.4099731445312, + "y": -186.21800231933594 }, { - "x": 946.4920043945312, - "y": -183.62899780273438 + "x": 936.197021484375, + "y": -185.53700256347656 + }, + { + "x": 942.385986328125, + "y": -184.45700073242188 + }, + { + "x": 948.5380249023438, + "y": -183.18299865722656 + }, + { + "x": 954.6480102539062, + "y": -181.71600341796875 + }, + { + "x": 960.7080078125, + "y": -180.05799865722656 }, { "x": 966.7130126953125, "y": -178.21099853515625 }, { - "x": 986.2570190429688, - "y": -170.70899963378906 + "x": 972.656982421875, + "y": -176.17599487304688 }, { - "x": 1004.9099731445312, - "y": -161.2050018310547 + "x": 978.5349731445312, + "y": -173.9550018310547 + }, + { + "x": 984.3389892578125, + "y": -171.5500030517578 + }, + { + "x": 990.0659790039062, + "y": -168.96499633789062 + }, + { + "x": 995.7080078125, + "y": -166.2010040283203 + }, + { + "x": 1001.260009765625, + "y": -163.26100158691406 + }, + { + "x": 1006.718017578125, + "y": -160.1479949951172 + }, + { + "x": 1012.0750122070312, + "y": -156.86500549316406 + }, + { + "x": 1017.3259887695312, + "y": -153.41600036621094 }, { "x": 1022.4669799804688, "y": -149.80299377441406 }, { - "x": 1038.7359619140625, - "y": -136.6280059814453 + "x": 1027.490966796875, + "y": -146.031005859375 }, { - "x": 1053.5389404296875, - "y": -121.82599639892578 + "x": 1032.39404296875, + "y": -142.1020050048828 + }, + { + "x": 1037.1719970703125, + "y": -138.02200317382812 + }, + { + "x": 1041.8189697265625, + "y": -133.79299926757812 + }, + { + "x": 1046.3310546875, + "y": -129.42100524902344 + }, + { + "x": 1050.7030029296875, + "y": -124.90899658203125 + }, + { + "x": 1054.9320068359375, + "y": -120.26200103759766 + }, + { + "x": 1059.011962890625, + "y": -115.48400115966797 + }, + { + "x": 1062.9410400390625, + "y": -110.58100128173828 }, { "x": 1066.7130126953125, "y": -105.55699920654297 }, { - "x": 1078.114990234375, - "y": -88 + "x": 1070.3260498046875, + "y": -100.41600036621094 }, { - "x": 1087.6190185546875, - "y": -69.34700012207031 + "x": 1073.7750244140625, + "y": -95.16500091552734 + }, + { + "x": 1077.0579833984375, + "y": -89.80799865722656 + }, + { + "x": 1080.1710205078125, + "y": -84.3499984741211 + }, + { + "x": 1083.1109619140625, + "y": -78.7979965209961 + }, + { + "x": 1085.875, + "y": -73.15499877929688 + }, + { + "x": 1088.4610595703125, + "y": -67.42900085449219 + }, + { + "x": 1090.864990234375, + "y": -61.624000549316406 + }, + { + "x": 1093.0860595703125, + "y": -55.74700164794922 }, { "x": 1095.1209716796875, "y": -49.803001403808594 }, { - "x": 1100.5389404296875, - "y": -29.582000732421875 + "x": 1096.968017578125, + "y": -43.79800033569336 }, { - "x": 1103.81396484375, - "y": -8.904999732971191 + "x": 1098.6259765625, + "y": -37.73699951171875 + }, + { + "x": 1100.093017578125, + "y": -31.628000259399414 + }, + { + "x": 1101.366943359375, + "y": -25.47599983215332 + }, + { + "x": 1102.447021484375, + "y": -19.285999298095703 + }, + { + "x": 1103.3330078125, + "y": -13.065999984741211 + }, + { + "x": 1104.02197265625, + "y": -6.821000099182129 + }, + { + "x": 1104.5150146484375, + "y": -0.5580000281333923 + }, + { + "x": 1104.81103515625, + "y": 5.7170000076293945 }, { "x": 1104.9100341796875, "y": 12 }, { - "x": 1103.81396484375, - "y": 32.904998779296875 + "x": 1104.81103515625, + "y": 18.281999588012695 }, { - "x": 1100.5389404296875, - "y": 53.582000732421875 + "x": 1104.5150146484375, + "y": 24.558000564575195 + }, + { + "x": 1104.02197265625, + "y": 30.820999145507812 + }, + { + "x": 1103.3330078125, + "y": 37.066001892089844 + }, + { + "x": 1102.447021484375, + "y": 43.2859992980957 + }, + { + "x": 1101.366943359375, + "y": 49.47600173950195 + }, + { + "x": 1100.093017578125, + "y": 55.62799835205078 + }, + { + "x": 1098.6259765625, + "y": 61.73699951171875 + }, + { + "x": 1096.968017578125, + "y": 67.7979965209961 }, { "x": 1095.1209716796875, "y": 73.8030014038086 }, { - "x": 1087.6190185546875, - "y": 93.34700012207031 + "x": 1093.0860595703125, + "y": 79.74700164794922 }, { - "x": 1078.114990234375, - "y": 111.9990005493164 + "x": 1090.864990234375, + "y": 85.6240005493164 + }, + { + "x": 1088.4610595703125, + "y": 91.42900085449219 + }, + { + "x": 1085.875, + "y": 97.15499877929688 + }, + { + "x": 1083.1109619140625, + "y": 102.7979965209961 + }, + { + "x": 1080.1710205078125, + "y": 108.3499984741211 + }, + { + "x": 1077.0579833984375, + "y": 113.80799865722656 + }, + { + "x": 1073.7750244140625, + "y": 119.16500091552734 + }, + { + "x": 1070.3260498046875, + "y": 124.41600036621094 }, { "x": 1066.7130126953125, "y": 129.5570068359375 }, { - "x": 1053.5389404296875, - "y": 145.8260040283203 + "x": 1062.9410400390625, + "y": 134.58099365234375 }, { - "x": 1038.7359619140625, - "y": 160.6280059814453 + "x": 1059.011962890625, + "y": 139.48399353027344 + }, + { + "x": 1054.9320068359375, + "y": 144.26199340820312 + }, + { + "x": 1050.7030029296875, + "y": 148.90899658203125 + }, + { + "x": 1046.3310546875, + "y": 153.42100524902344 + }, + { + "x": 1041.8189697265625, + "y": 157.79299926757812 + }, + { + "x": 1037.1719970703125, + "y": 162.02200317382812 + }, + { + "x": 1032.39404296875, + "y": 166.1020050048828 + }, + { + "x": 1027.490966796875, + "y": 170.031005859375 }, { "x": 1022.4669799804688, "y": 173.80299377441406 }, { - "x": 1004.9099731445312, - "y": 185.2050018310547 + "x": 1017.3259887695312, + "y": 177.41600036621094 }, { - "x": 986.2570190429688, - "y": 194.70899963378906 + "x": 1012.0750122070312, + "y": 180.86500549316406 + }, + { + "x": 1006.718017578125, + "y": 184.1479949951172 + }, + { + "x": 1001.260009765625, + "y": 187.26100158691406 + }, + { + "x": 995.7080078125, + "y": 190.2010040283203 + }, + { + "x": 990.0659790039062, + "y": 192.96499633789062 + }, + { + "x": 984.3389892578125, + "y": 195.5500030517578 + }, + { + "x": 978.5349731445312, + "y": 197.9550018310547 + }, + { + "x": 972.656982421875, + "y": 200.17599487304688 }, { "x": 966.7130126953125, "y": 202.21099853515625 }, { - "x": 946.4920043945312, - "y": 207.62899780273438 + "x": 960.7080078125, + "y": 204.05799865722656 }, { - "x": 925.8150024414062, - "y": 210.9040069580078 + "x": 954.6480102539062, + "y": 205.71600341796875 + }, + { + "x": 948.5380249023438, + "y": 207.18299865722656 + }, + { + "x": 942.385986328125, + "y": 208.45700073242188 + }, + { + "x": 936.197021484375, + "y": 209.53700256347656 + }, + { + "x": 931.4099731445312, + "y": 210.21800231933594 } ], "isCurve": true, diff --git a/e2etests/testdata/txtar/cycle-diagram/elk/sketch.exp.svg b/e2etests/testdata/txtar/cycle-diagram/elk/sketch.exp.svg index bcdbbd69f..21e65f752 100644 --- a/e2etests/testdata/txtar/cycle-diagram/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/cycle-diagram/elk/sketch.exp.svg @@ -1,9 +1,9 @@ -abcdabcab + .d2-2891159010 .fill-N1{fill:#0A0F25;} + .d2-2891159010 .fill-N2{fill:#676C7E;} + .d2-2891159010 .fill-N3{fill:#9499AB;} + .d2-2891159010 .fill-N4{fill:#CFD2DD;} + .d2-2891159010 .fill-N5{fill:#DEE1EB;} + .d2-2891159010 .fill-N6{fill:#EEF1F8;} + .d2-2891159010 .fill-N7{fill:#FFFFFF;} + .d2-2891159010 .fill-B1{fill:#0D32B2;} + .d2-2891159010 .fill-B2{fill:#0D32B2;} + .d2-2891159010 .fill-B3{fill:#E3E9FD;} + .d2-2891159010 .fill-B4{fill:#E3E9FD;} + .d2-2891159010 .fill-B5{fill:#EDF0FD;} + .d2-2891159010 .fill-B6{fill:#F7F8FE;} + .d2-2891159010 .fill-AA2{fill:#4A6FF3;} + .d2-2891159010 .fill-AA4{fill:#EDF0FD;} + .d2-2891159010 .fill-AA5{fill:#F7F8FE;} + .d2-2891159010 .fill-AB4{fill:#EDF0FD;} + .d2-2891159010 .fill-AB5{fill:#F7F8FE;} + .d2-2891159010 .stroke-N1{stroke:#0A0F25;} + .d2-2891159010 .stroke-N2{stroke:#676C7E;} + .d2-2891159010 .stroke-N3{stroke:#9499AB;} + .d2-2891159010 .stroke-N4{stroke:#CFD2DD;} + .d2-2891159010 .stroke-N5{stroke:#DEE1EB;} + .d2-2891159010 .stroke-N6{stroke:#EEF1F8;} + .d2-2891159010 .stroke-N7{stroke:#FFFFFF;} + .d2-2891159010 .stroke-B1{stroke:#0D32B2;} + .d2-2891159010 .stroke-B2{stroke:#0D32B2;} + .d2-2891159010 .stroke-B3{stroke:#E3E9FD;} + .d2-2891159010 .stroke-B4{stroke:#E3E9FD;} + .d2-2891159010 .stroke-B5{stroke:#EDF0FD;} + .d2-2891159010 .stroke-B6{stroke:#F7F8FE;} + .d2-2891159010 .stroke-AA2{stroke:#4A6FF3;} + .d2-2891159010 .stroke-AA4{stroke:#EDF0FD;} + .d2-2891159010 .stroke-AA5{stroke:#F7F8FE;} + .d2-2891159010 .stroke-AB4{stroke:#EDF0FD;} + .d2-2891159010 .stroke-AB5{stroke:#F7F8FE;} + .d2-2891159010 .background-color-N1{background-color:#0A0F25;} + .d2-2891159010 .background-color-N2{background-color:#676C7E;} + .d2-2891159010 .background-color-N3{background-color:#9499AB;} + .d2-2891159010 .background-color-N4{background-color:#CFD2DD;} + .d2-2891159010 .background-color-N5{background-color:#DEE1EB;} + .d2-2891159010 .background-color-N6{background-color:#EEF1F8;} + .d2-2891159010 .background-color-N7{background-color:#FFFFFF;} + .d2-2891159010 .background-color-B1{background-color:#0D32B2;} + .d2-2891159010 .background-color-B2{background-color:#0D32B2;} + .d2-2891159010 .background-color-B3{background-color:#E3E9FD;} + .d2-2891159010 .background-color-B4{background-color:#E3E9FD;} + .d2-2891159010 .background-color-B5{background-color:#EDF0FD;} + .d2-2891159010 .background-color-B6{background-color:#F7F8FE;} + .d2-2891159010 .background-color-AA2{background-color:#4A6FF3;} + .d2-2891159010 .background-color-AA4{background-color:#EDF0FD;} + .d2-2891159010 .background-color-AA5{background-color:#F7F8FE;} + .d2-2891159010 .background-color-AB4{background-color:#EDF0FD;} + .d2-2891159010 .background-color-AB5{background-color:#F7F8FE;} + .d2-2891159010 .color-N1{color:#0A0F25;} + .d2-2891159010 .color-N2{color:#676C7E;} + .d2-2891159010 .color-N3{color:#9499AB;} + .d2-2891159010 .color-N4{color:#CFD2DD;} + .d2-2891159010 .color-N5{color:#DEE1EB;} + .d2-2891159010 .color-N6{color:#EEF1F8;} + .d2-2891159010 .color-N7{color:#FFFFFF;} + .d2-2891159010 .color-B1{color:#0D32B2;} + .d2-2891159010 .color-B2{color:#0D32B2;} + .d2-2891159010 .color-B3{color:#E3E9FD;} + .d2-2891159010 .color-B4{color:#E3E9FD;} + .d2-2891159010 .color-B5{color:#EDF0FD;} + .d2-2891159010 .color-B6{color:#F7F8FE;} + .d2-2891159010 .color-AA2{color:#4A6FF3;} + .d2-2891159010 .color-AA4{color:#EDF0FD;} + .d2-2891159010 .color-AA5{color:#F7F8FE;} + .d2-2891159010 .color-AB4{color:#EDF0FD;} + .d2-2891159010 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2891159010);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2891159010);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2891159010);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2891159010);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2891159010);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2891159010);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2891159010);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2891159010);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>abcdabcab