From 527edda636127c0596a83c1d6ded071dc79fd4b0 Mon Sep 17 00:00:00 2001 From: Mayank77maruti Date: Fri, 21 Feb 2025 17:05:31 +0000 Subject: [PATCH] iteration 1 --- d2layouts/d2cycle/layout.go | 423 +++-- .../txtar/cycle-diagram/dagre/board.exp.json | 1460 ++++++++++++----- .../txtar/cycle-diagram/dagre/sketch.exp.svg | 154 +- .../txtar/cycle-diagram/elk/board.exp.json | 1460 ++++++++++++----- .../txtar/cycle-diagram/elk/sketch.exp.svg | 154 +- 5 files changed, 2627 insertions(+), 1024 deletions(-) diff --git a/d2layouts/d2cycle/layout.go b/d2layouts/d2cycle/layout.go index db489bf95..43565df1a 100644 --- a/d2layouts/d2cycle/layout.go +++ b/d2layouts/d2cycle/layout.go @@ -1,3 +1,246 @@ +// package d2cycle + +// import ( +// "context" +// "math" + +// "oss.terrastruct.com/d2/d2graph" +// "oss.terrastruct.com/d2/lib/geo" +// "oss.terrastruct.com/d2/lib/label" +// "oss.terrastruct.com/util-go/go2" +// ) + +// const ( +// MIN_RADIUS = 200 +// PADDING = 20 +// MIN_SEGMENT_LEN = 10 +// ARC_STEPS = 30 // high resolution for smooth arcs +// ) + +// // Layout arranges nodes in a circle and routes edges with properly clipped arcs +// func Layout(ctx context.Context, g *d2graph.Graph, layout d2graph.LayoutGraph) error { +// objects := g.Root.ChildrenArray +// if len(objects) == 0 { +// return nil +// } + +// // Position labels and icons first +// for _, obj := range g.Objects { +// positionLabelsIcons(obj) +// } + +// // Calculate layout parameters +// nodeCircleRadius := calculateRadius(objects) +// maxNodeSize := 0.0 +// for _, obj := range objects { +// size := math.Max(obj.Width, obj.Height) +// maxNodeSize = math.Max(maxNodeSize, size) +// } + +// // Position nodes in circle +// positionObjects(objects, nodeCircleRadius) + +// // Create properly clipped edge arcs +// for _, edge := range g.Edges { +// createCircularArc(edge, nodeCircleRadius, maxNodeSize) +// } + +// return nil +// } + +// func calculateRadius(objects []*d2graph.Object) float64 { +// numObjects := float64(len(objects)) +// maxSize := 0.0 +// for _, obj := range objects { +// size := math.Max(obj.Width, obj.Height) +// maxSize = math.Max(maxSize, size) +// } +// minRadius := (maxSize/2 + PADDING) / math.Sin(math.Pi/numObjects) +// return math.Max(minRadius, MIN_RADIUS) +// } + +// func positionObjects(objects []*d2graph.Object, radius float64) { +// numObjects := float64(len(objects)) +// angleOffset := -math.Pi / 2 // Start at top + +// for i, obj := range objects { +// angle := angleOffset + (2*math.Pi*float64(i))/numObjects +// x := radius * math.Cos(angle) +// y := radius * math.Sin(angle) + +// // Center object at calculated position +// obj.TopLeft = geo.NewPoint( +// x-obj.Width/2, +// y-obj.Height/2, +// ) +// } +// } + +// func createCircularArc(edge *d2graph.Edge, nodeCircleRadius, maxNodeSize float64) { +// if edge.Src == nil || edge.Dst == nil { +// return +// } + +// srcCenter := edge.Src.Center() +// dstCenter := edge.Dst.Center() + +// // Calculate arc radius outside node circle +// arcRadius := nodeCircleRadius + maxNodeSize/2 + PADDING + +// // Calculate angles for arc endpoints +// srcAngle := math.Atan2(srcCenter.Y, srcCenter.X) +// dstAngle := math.Atan2(dstCenter.Y, dstCenter.X) +// if dstAngle < srcAngle { +// dstAngle += 2 * math.Pi +// } + +// // Generate arc path points +// path := make([]*geo.Point, 0, ARC_STEPS+1) +// for i := 0; i <= ARC_STEPS; i++ { +// t := float64(i) / ARC_STEPS +// angle := srcAngle + t*(dstAngle-srcAngle) +// x := arcRadius * math.Cos(angle) +// y := arcRadius * math.Sin(angle) +// path = append(path, geo.NewPoint(x, y)) +// } + +// // Set exact endpoints (will be clipped later) +// path[0] = srcCenter +// path[len(path)-1] = dstCenter + +// // Clip path to node borders +// edge.Route = path +// startIndex, endIndex := edge.TraceToShape(edge.Route, 0, len(edge.Route)-1) +// if startIndex < endIndex { +// edge.Route = edge.Route[startIndex : endIndex+1] +// } +// edge.IsCurve = true +// } + +// // clampPointOutsideBox walks forward from 'startIdx' until the path segment +// // leaves the bounding box. Then it sets path[startIdx] to the intersection. +// // If we never find it, we return (startIdx, path[startIdx]) meaning we can't clamp. +// func clampPointOutsideBox(box *geo.Box, path []*geo.Point, startIdx int) (int, *geo.Point) { +// if startIdx >= len(path)-1 { +// return startIdx, path[startIdx] +// } +// // If path[startIdx] is outside, no clamp needed +// if !boxContains(box, path[startIdx]) { +// return startIdx, path[startIdx] +// } + +// // Walk forward looking for outside +// for i := startIdx + 1; i < len(path); i++ { +// insideNext := boxContains(box, path[i]) +// if insideNext { +// // still inside -> keep going +// continue +// } +// // crossing from inside to outside between path[i-1], path[i] +// seg := geo.NewSegment(path[i-1], path[i]) +// inters := boxIntersections(box, *seg) +// if len(inters) > 0 { +// // use first intersection +// return i, inters[0] +// } +// // fallback => no intersection found +// return i, path[i] +// } +// // entire remainder is inside, so we can't clamp +// // Just return the end +// last := len(path) - 1 +// return last, path[last] +// } + +// // clampPointOutsideBoxReverse scans backward from endIdx while path[j] is in the box. +// // Once we find crossing (outside→inside), we return (j, intersection). +// 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]) { +// // already outside +// return endIdx, path[endIdx] +// } + +// for j := endIdx - 1; j >= 0; j-- { +// if boxContains(box, path[j]) { +// continue +// } +// // crossing from outside -> inside between path[j], path[j+1] +// seg := geo.NewSegment(path[j], path[j+1]) +// inters := boxIntersections(box, *seg) +// if len(inters) > 0 { +// return j, inters[0] +// } +// return j, path[j] +// } + +// // entire path inside +// return 0, path[0] +// } + +// // Helper if your geo.Box doesn’t implement Contains() +// func boxContains(b *geo.Box, p *geo.Point) bool { +// // typical bounding-box check +// 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 +// } + +// // Helper if your geo.Box doesn’t implement Intersections(geo.Segment) yet +// func boxIntersections(b *geo.Box, seg geo.Segment) []*geo.Point { +// // We'll assume d2's standard geo.Box has a built-in Intersections(*Segment) method. +// // If not, implement manually. For example, checking each of the 4 edges: +// // left, right, top, bottom +// // For simplicity, if you do have b.Intersections(...) you can just do: +// // return b.Intersections(seg) +// return b.Intersections(seg) +// // If you don't have that, you'd code the line-rect intersection yourself. +// } + +// // positionLabelsIcons is basically your logic that sets default label/icon positions if needed +// func positionLabelsIcons(obj *d2graph.Object) { +// // If there's an icon but no icon position, give it a default +// if obj.Icon != nil && obj.IconPosition == nil { +// if len(obj.ChildrenArray) > 0 { +// obj.IconPosition = go2.Pointer(label.OutsideTopLeft.String()) +// if obj.LabelPosition == nil { +// obj.LabelPosition = go2.Pointer(label.OutsideTopRight.String()) +// return +// } +// } else if obj.SQLTable != nil || obj.Class != nil || obj.Language != "" { +// obj.IconPosition = go2.Pointer(label.OutsideTopLeft.String()) +// } else { +// obj.IconPosition = go2.Pointer(label.InsideMiddleCenter.String()) +// } +// } + +// // If there's a label but no label position, give it a default +// if obj.HasLabel() && obj.LabelPosition == nil { +// if len(obj.ChildrenArray) > 0 { +// obj.LabelPosition = go2.Pointer(label.OutsideTopCenter.String()) +// } else if obj.HasOutsideBottomLabel() { +// obj.LabelPosition = go2.Pointer(label.OutsideBottomCenter.String()) +// } else if obj.Icon != nil { +// obj.LabelPosition = go2.Pointer(label.InsideTopCenter.String()) +// } else { +// obj.LabelPosition = go2.Pointer(label.InsideMiddleCenter.String()) +// } + +// // If the label is bigger than the shape, fallback to outside positions +// if float64(obj.LabelDimensions.Width) > obj.Width || +// float64(obj.LabelDimensions.Height) > obj.Height { +// if len(obj.ChildrenArray) > 0 { +// obj.LabelPosition = go2.Pointer(label.OutsideTopCenter.String()) +// } else { +// obj.LabelPosition = go2.Pointer(label.OutsideBottomCenter.String()) +// } +// } +// } +// } + package d2cycle import ( @@ -13,62 +256,49 @@ import ( const ( MIN_RADIUS = 200 PADDING = 20 - MIN_SEGMENT_LEN = 10 - ARC_STEPS = 30 // high resolution for smooth arcs + ARC_STEPS = 60 // High resolution for perfect circles ) -// Layout arranges nodes in a circle and routes edges with properly clipped arcs func Layout(ctx context.Context, g *d2graph.Graph, layout d2graph.LayoutGraph) error { objects := g.Root.ChildrenArray if len(objects) == 0 { return nil } - // Position labels and icons first for _, obj := range g.Objects { positionLabelsIcons(obj) } - // Calculate layout parameters - nodeCircleRadius := calculateRadius(objects) - maxNodeSize := 0.0 - for _, obj := range objects { - size := math.Max(obj.Width, obj.Height) - maxNodeSize = math.Max(maxNodeSize, size) - } + baseRadius := calculateBaseRadius(objects) + positionObjects(objects, baseRadius) - // Position nodes in circle - positionObjects(objects, nodeCircleRadius) - - // Create properly clipped edge arcs for _, edge := range g.Edges { - createCircularArc(edge, nodeCircleRadius, maxNodeSize) + createPerfectArc(edge, baseRadius) } return nil } -func calculateRadius(objects []*d2graph.Object) float64 { - numObjects := float64(len(objects)) +func calculateBaseRadius(objects []*d2graph.Object) float64 { + numNodes := float64(len(objects)) maxSize := 0.0 for _, obj := range objects { size := math.Max(obj.Width, obj.Height) maxSize = math.Max(maxSize, size) } - minRadius := (maxSize/2 + PADDING) / math.Sin(math.Pi/numObjects) - return math.Max(minRadius, MIN_RADIUS) + radius := (maxSize + 2*PADDING) / (2 * math.Sin(math.Pi/numNodes)) + return math.Max(radius, MIN_RADIUS) } func positionObjects(objects []*d2graph.Object, radius float64) { numObjects := float64(len(objects)) - angleOffset := -math.Pi / 2 // Start at top + angleOffset := -math.Pi / 2 for i, obj := range objects { angle := angleOffset + (2*math.Pi*float64(i))/numObjects x := radius * math.Cos(angle) y := radius * math.Sin(angle) - // Center object at calculated position obj.TopLeft = geo.NewPoint( x-obj.Width/2, y-obj.Height/2, @@ -76,131 +306,55 @@ func positionObjects(objects []*d2graph.Object, radius float64) { } } -func createCircularArc(edge *d2graph.Edge, nodeCircleRadius, maxNodeSize float64) { - if edge.Src == nil || edge.Dst == nil { +func createPerfectArc(edge *d2graph.Edge, baseRadius float64) { + if edge.Src == nil || edge.Dst == nil || edge.Src == edge.Dst { return } srcCenter := edge.Src.Center() dstCenter := edge.Dst.Center() + center := geo.NewPoint(0, 0) // Layout center - // Calculate arc radius outside node circle - arcRadius := nodeCircleRadius + maxNodeSize/2 + PADDING - - // Calculate angles for arc endpoints - srcAngle := math.Atan2(srcCenter.Y, srcCenter.X) - dstAngle := math.Atan2(dstCenter.Y, dstCenter.X) - if dstAngle < srcAngle { - dstAngle += 2 * math.Pi + // Calculate angles with proper wrapping + startAngle := math.Atan2(srcCenter.Y-center.Y, srcCenter.X-center.X) + endAngle := math.Atan2(dstCenter.Y-center.Y, dstCenter.X-center.X) + + // Handle angle wrapping for shortest path + angleDiff := endAngle - startAngle + if angleDiff < 0 { + angleDiff += 2 * math.Pi + } + if angleDiff > math.Pi { + angleDiff -= 2 * math.Pi } - // Generate arc path points + // Generate perfect circular arc path := make([]*geo.Point, 0, ARC_STEPS+1) for i := 0; i <= ARC_STEPS; i++ { t := float64(i) / ARC_STEPS - angle := srcAngle + t*(dstAngle-srcAngle) - x := arcRadius * math.Cos(angle) - y := arcRadius * math.Sin(angle) + currentAngle := startAngle + t*angleDiff + x := center.X + baseRadius*math.Cos(currentAngle) + y := center.Y + baseRadius*math.Sin(currentAngle) path = append(path, geo.NewPoint(x, y)) } - // Set exact endpoints (will be clipped later) - path[0] = srcCenter - path[len(path)-1] = dstCenter - - // Clip path to node borders + // Clip to shape boundaries while preserving arc edge.Route = path - startIndex, endIndex := edge.TraceToShape(edge.Route, 0, len(edge.Route)-1) - if startIndex < endIndex { - edge.Route = edge.Route[startIndex : endIndex+1] + startIdx, endIdx := edge.TraceToShape(edge.Route, 0, len(edge.Route)-1) + + // Maintain smooth arc after clipping + if startIdx < endIdx { + edge.Route = edge.Route[startIdx : endIdx+1] + + // Ensure minimum points for smooth rendering + if len(edge.Route) < 3 { + edge.Route = []*geo.Point{path[0], path[len(path)-1]} + } } + edge.IsCurve = true } -// clampPointOutsideBox walks forward from 'startIdx' until the path segment -// leaves the bounding box. Then it sets path[startIdx] to the intersection. -// If we never find it, we return (startIdx, path[startIdx]) meaning we can't clamp. -func clampPointOutsideBox(box *geo.Box, path []*geo.Point, startIdx int) (int, *geo.Point) { - if startIdx >= len(path)-1 { - return startIdx, path[startIdx] - } - // If path[startIdx] is outside, no clamp needed - if !boxContains(box, path[startIdx]) { - return startIdx, path[startIdx] - } - - // Walk forward looking for outside - for i := startIdx + 1; i < len(path); i++ { - insideNext := boxContains(box, path[i]) - if insideNext { - // still inside -> keep going - continue - } - // crossing from inside to outside between path[i-1], path[i] - seg := geo.NewSegment(path[i-1], path[i]) - inters := boxIntersections(box, *seg) - if len(inters) > 0 { - // use first intersection - return i, inters[0] - } - // fallback => no intersection found - return i, path[i] - } - // entire remainder is inside, so we can't clamp - // Just return the end - last := len(path) - 1 - return last, path[last] -} - -// clampPointOutsideBoxReverse scans backward from endIdx while path[j] is in the box. -// Once we find crossing (outside→inside), we return (j, intersection). -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]) { - // already outside - return endIdx, path[endIdx] - } - - for j := endIdx - 1; j >= 0; j-- { - if boxContains(box, path[j]) { - continue - } - // crossing from outside -> inside between path[j], path[j+1] - seg := geo.NewSegment(path[j], path[j+1]) - inters := boxIntersections(box, *seg) - if len(inters) > 0 { - return j, inters[0] - } - return j, path[j] - } - - // entire path inside - return 0, path[0] -} - -// Helper if your geo.Box doesn’t implement Contains() -func boxContains(b *geo.Box, p *geo.Point) bool { - // typical bounding-box check - 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 -} - -// Helper if your geo.Box doesn’t implement Intersections(geo.Segment) yet -func boxIntersections(b *geo.Box, seg geo.Segment) []*geo.Point { - // We'll assume d2's standard geo.Box has a built-in Intersections(*Segment) method. - // If not, implement manually. For example, checking each of the 4 edges: - // left, right, top, bottom - // For simplicity, if you do have b.Intersections(...) you can just do: - // return b.Intersections(seg) - return b.Intersections(seg) - // If you don't have that, you'd code the line-rect intersection yourself. -} - -// positionLabelsIcons is basically your logic that sets default label/icon positions if needed func positionLabelsIcons(obj *d2graph.Object) { // If there's an icon but no icon position, give it a default if obj.Icon != nil && obj.IconPosition == nil { @@ -217,7 +371,6 @@ func positionLabelsIcons(obj *d2graph.Object) { } } - // If there's a label but no label position, give it a default if obj.HasLabel() && obj.LabelPosition == nil { if len(obj.ChildrenArray) > 0 { obj.LabelPosition = go2.Pointer(label.OutsideTopCenter.String()) @@ -229,7 +382,6 @@ func positionLabelsIcons(obj *d2graph.Object) { obj.LabelPosition = go2.Pointer(label.InsideMiddleCenter.String()) } - // If the label is bigger than the shape, fallback to outside positions if float64(obj.LabelDimensions.Width) > obj.Width || float64(obj.LabelDimensions.Height) > obj.Height { if len(obj.ChildrenArray) > 0 { @@ -239,4 +391,15 @@ func positionLabelsIcons(obj *d2graph.Object) { } } } +} + +func boxContains(b *geo.Box, p *geo.Point) bool { + 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 boxIntersections(b *geo.Box, seg geo.Segment) []*geo.Point { + return b.Intersections(seg) } \ 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 575de3712..5afda38eb 100644 --- a/e2etests/testdata/txtar/cycle-diagram/dagre/board.exp.json +++ b/e2etests/testdata/txtar/cycle-diagram/dagre/board.exp.json @@ -540,128 +540,248 @@ "link": "", "route": [ { - "x": 8.239999771118164, - "y": -232.6529998779297 + "x": 0, + "y": -200 }, { - "x": 13.239999771118164, - "y": -252.6529998779297 + "x": 5.235000133514404, + "y": -199.93099975585938 }, { - "x": 26.44499969482422, - "y": -251.61399841308594 + "x": 10.467000007629395, + "y": -199.72500610351562 }, { - "x": 39.57699966430664, - "y": -249.88499450683594 + "x": 15.690999984741211, + "y": -199.38299560546875 }, { - "x": 52.60100173950195, - "y": -247.4709930419922 + "x": 20.905000686645508, + "y": -198.9040069580078 }, { - "x": 65.48100280761719, - "y": -244.37899780273438 + "x": 26.104999542236328, + "y": -198.28799438476562 }, { - "x": 78.18099975585938, - "y": -240.61700439453125 + "x": 31.285999298095703, + "y": -197.53700256347656 }, { - "x": 90.66699981689453, - "y": -236.19500732421875 + "x": 36.446998596191406, + "y": -196.64999389648438 }, { - "x": 102.90399932861328, - "y": -231.1269989013672 + "x": 41.582000732421875, + "y": -195.62899780273438 }, { - "x": 114.85900115966797, - "y": -225.4239959716797 + "x": 46.68899917602539, + "y": -194.47300720214844 }, { - "x": 126.4990005493164, - "y": -219.10400390625 + "x": 51.76300048828125, + "y": -193.18499755859375 }, { - "x": 137.79299926757812, - "y": -212.18299865722656 + "x": 56.803001403808594, + "y": -191.76300048828125 }, { - "x": 148.70899963378906, - "y": -204.68099975585938 + "x": 61.803001403808594, + "y": -190.21099853515625 }, { - "x": 159.21800231933594, - "y": -196.61700439453125 + "x": 66.76100158691406, + "y": -188.5279998779297 }, { - "x": 169.2899932861328, - "y": -188.01499938964844 + "x": 71.6729965209961, + "y": -186.71600341796875 }, { - "x": 178.8979949951172, - "y": -178.8979949951172 + "x": 76.53600311279297, + "y": -184.77499389648438 }, { - "x": 188.01499938964844, - "y": -169.2899932861328 + "x": 81.34700012207031, + "y": -182.70899963378906 }, { - "x": 196.61700439453125, - "y": -159.21800231933594 + "x": 86.10199737548828, + "y": -180.51699829101562 }, { - "x": 204.68099975585938, - "y": -148.70899963378906 + "x": 90.7979965209961, + "y": -178.2010040283203 }, { - "x": 212.18299865722656, - "y": -137.79299926757812 + "x": 95.43099975585938, + "y": -175.76300048828125 }, { - "x": 219.10400390625, - "y": -126.5 + "x": 99.9990005493164, + "y": -173.2050018310547 }, { - "x": 225.4239959716797, - "y": -114.85900115966797 + "x": 104.4990005493164, + "y": -170.5279998779297 }, { - "x": 231.1269989013672, - "y": -102.90399932861328 + "x": 108.927001953125, + "y": -167.73399353027344 }, { - "x": 236.19500732421875, - "y": -90.66699981689453 + "x": 113.28099822998047, + "y": -164.8249969482422 }, { - "x": 240.61700439453125, - "y": -78.18099975585938 + "x": 117.55699920654297, + "y": -161.80299377441406 }, { - "x": 244.37899780273438, - "y": -65.48100280761719 + "x": 121.75199890136719, + "y": -158.6699981689453 }, { - "x": 247.4709930419922, - "y": -52.60100173950195 + "x": 125.86399841308594, + "y": -155.4290008544922 }, { - "x": 249.88499450683594, - "y": -39.57699966430664 + "x": 129.88900756835938, + "y": -152.08099365234375 }, { - "x": 251.61399841308594, - "y": -26.44499969482422 + "x": 133.8260040283203, + "y": -148.6280059814453 }, { - "x": 252.6529998779297, - "y": -13.239999771118164 + "x": 137.6699981689453, + "y": -145.07400512695312 }, { - "x": 226.6529998779297, - "y": -6.239999771118164 + "x": 141.42100524902344, + "y": -141.42100524902344 + }, + { + "x": 145.07400512695312, + "y": -137.6699981689453 + }, + { + "x": 148.6280059814453, + "y": -133.8260040283203 + }, + { + "x": 152.08099365234375, + "y": -129.88900756835938 + }, + { + "x": 155.4290008544922, + "y": -125.86399841308594 + }, + { + "x": 158.6699981689453, + "y": -121.75199890136719 + }, + { + "x": 161.80299377441406, + "y": -117.55699920654297 + }, + { + "x": 164.8249969482422, + "y": -113.28099822998047 + }, + { + "x": 167.73399353027344, + "y": -108.927001953125 + }, + { + "x": 170.5279998779297, + "y": -104.4990005493164 + }, + { + "x": 173.2050018310547, + "y": -100 + }, + { + "x": 175.76300048828125, + "y": -95.43099975585938 + }, + { + "x": 178.2010040283203, + "y": -90.7979965209961 + }, + { + "x": 180.51699829101562, + "y": -86.10199737548828 + }, + { + "x": 182.70899963378906, + "y": -81.34700012207031 + }, + { + "x": 184.77499389648438, + "y": -76.53600311279297 + }, + { + "x": 186.71600341796875, + "y": -71.6729965209961 + }, + { + "x": 188.5279998779297, + "y": -66.76100158691406 + }, + { + "x": 190.21099853515625, + "y": -61.803001403808594 + }, + { + "x": 191.76300048828125, + "y": -56.803001403808594 + }, + { + "x": 193.18499755859375, + "y": -51.76300048828125 + }, + { + "x": 194.47300720214844, + "y": -46.68899917602539 + }, + { + "x": 195.62899780273438, + "y": -41.582000732421875 + }, + { + "x": 196.64999389648438, + "y": -36.446998596191406 + }, + { + "x": 197.53700256347656, + "y": -31.285999298095703 + }, + { + "x": 198.28799438476562, + "y": -26.104999542236328 + }, + { + "x": 198.9040069580078, + "y": -20.905000686645508 + }, + { + "x": 199.38299560546875, + "y": -15.690999984741211 + }, + { + "x": 199.72500610351562, + "y": -10.467000007629395 + }, + { + "x": 199.93099975585938, + "y": -5.235000133514404 + }, + { + "x": 200, + "y": 0 } ], "isCurve": true, @@ -696,128 +816,248 @@ "link": "", "route": [ { - "x": 226.6529998779297, - "y": 6.239999771118164 + "x": 200, + "y": 0 }, { - "x": 252.6529998779297, - "y": 13.239999771118164 + "x": 199.93099975585938, + "y": 5.235000133514404 }, { - "x": 251.61399841308594, - "y": 26.44499969482422 + "x": 199.72500610351562, + "y": 10.467000007629395 }, { - "x": 249.88499450683594, - "y": 39.57699966430664 + "x": 199.38299560546875, + "y": 15.690999984741211 }, { - "x": 247.4709930419922, - "y": 52.60100173950195 + "x": 198.9040069580078, + "y": 20.905000686645508 }, { - "x": 244.37899780273438, - "y": 65.48100280761719 + "x": 198.28799438476562, + "y": 26.104999542236328 }, { - "x": 240.61700439453125, - "y": 78.18099975585938 + "x": 197.53700256347656, + "y": 31.285999298095703 }, { - "x": 236.19500732421875, - "y": 90.66699981689453 + "x": 196.64999389648438, + "y": 36.446998596191406 }, { - "x": 231.1269989013672, - "y": 102.90399932861328 + "x": 195.62899780273438, + "y": 41.582000732421875 }, { - "x": 225.4239959716797, - "y": 114.85900115966797 + "x": 194.47300720214844, + "y": 46.68899917602539 }, { - "x": 219.10400390625, - "y": 126.4990005493164 + "x": 193.18499755859375, + "y": 51.76300048828125 }, { - "x": 212.18299865722656, - "y": 137.79299926757812 + "x": 191.76300048828125, + "y": 56.803001403808594 }, { - "x": 204.68099975585938, - "y": 148.70899963378906 + "x": 190.21099853515625, + "y": 61.803001403808594 }, { - "x": 196.61700439453125, - "y": 159.21800231933594 + "x": 188.5279998779297, + "y": 66.76100158691406 }, { - "x": 188.01499938964844, - "y": 169.2899932861328 + "x": 186.71600341796875, + "y": 71.6729965209961 }, { - "x": 178.8979949951172, - "y": 178.8979949951172 + "x": 184.77499389648438, + "y": 76.53600311279297 }, { - "x": 169.2899932861328, - "y": 188.01499938964844 + "x": 182.70899963378906, + "y": 81.34700012207031 }, { - "x": 159.21800231933594, - "y": 196.61700439453125 + "x": 180.51699829101562, + "y": 86.10199737548828 }, { - "x": 148.70899963378906, - "y": 204.68099975585938 + "x": 178.2010040283203, + "y": 90.7979965209961 }, { - "x": 137.79299926757812, - "y": 212.18299865722656 + "x": 175.76300048828125, + "y": 95.43099975585938 }, { - "x": 126.5, - "y": 219.10400390625 + "x": 173.2050018310547, + "y": 99.9990005493164 }, { - "x": 114.85900115966797, - "y": 225.4239959716797 + "x": 170.5279998779297, + "y": 104.4990005493164 }, { - "x": 102.90399932861328, - "y": 231.1269989013672 + "x": 167.73399353027344, + "y": 108.927001953125 }, { - "x": 90.66699981689453, - "y": 236.19500732421875 + "x": 164.8249969482422, + "y": 113.28099822998047 }, { - "x": 78.18099975585938, - "y": 240.61700439453125 + "x": 161.80299377441406, + "y": 117.55699920654297 }, { - "x": 65.48100280761719, - "y": 244.37899780273438 + "x": 158.6699981689453, + "y": 121.75199890136719 }, { - "x": 52.60100173950195, - "y": 247.4709930419922 + "x": 155.4290008544922, + "y": 125.86399841308594 }, { - "x": 39.57699966430664, - "y": 249.88499450683594 + "x": 152.08099365234375, + "y": 129.88900756835938 }, { - "x": 26.44499969482422, - "y": 251.61399841308594 + "x": 148.6280059814453, + "y": 133.8260040283203 }, { - "x": 13.239999771118164, - "y": 252.6529998779297 + "x": 145.07400512695312, + "y": 137.6699981689453 }, { - "x": 8.239999771118164, - "y": 232.6529998779297 + "x": 141.42100524902344, + "y": 141.42100524902344 + }, + { + "x": 137.6699981689453, + "y": 145.07400512695312 + }, + { + "x": 133.8260040283203, + "y": 148.6280059814453 + }, + { + "x": 129.88900756835938, + "y": 152.08099365234375 + }, + { + "x": 125.86399841308594, + "y": 155.4290008544922 + }, + { + "x": 121.75199890136719, + "y": 158.6699981689453 + }, + { + "x": 117.55699920654297, + "y": 161.80299377441406 + }, + { + "x": 113.28099822998047, + "y": 164.8249969482422 + }, + { + "x": 108.927001953125, + "y": 167.73399353027344 + }, + { + "x": 104.4990005493164, + "y": 170.5279998779297 + }, + { + "x": 100, + "y": 173.2050018310547 + }, + { + "x": 95.43099975585938, + "y": 175.76300048828125 + }, + { + "x": 90.7979965209961, + "y": 178.2010040283203 + }, + { + "x": 86.10199737548828, + "y": 180.51699829101562 + }, + { + "x": 81.34700012207031, + "y": 182.70899963378906 + }, + { + "x": 76.53600311279297, + "y": 184.77499389648438 + }, + { + "x": 71.6729965209961, + "y": 186.71600341796875 + }, + { + "x": 66.76100158691406, + "y": 188.5279998779297 + }, + { + "x": 61.803001403808594, + "y": 190.21099853515625 + }, + { + "x": 56.803001403808594, + "y": 191.76300048828125 + }, + { + "x": 51.76300048828125, + "y": 193.18499755859375 + }, + { + "x": 46.68899917602539, + "y": 194.47300720214844 + }, + { + "x": 41.582000732421875, + "y": 195.62899780273438 + }, + { + "x": 36.446998596191406, + "y": 196.64999389648438 + }, + { + "x": 31.285999298095703, + "y": 197.53700256347656 + }, + { + "x": 26.104999542236328, + "y": 198.28799438476562 + }, + { + "x": 20.905000686645508, + "y": 198.9040069580078 + }, + { + "x": 15.690999984741211, + "y": 199.38299560546875 + }, + { + "x": 10.467000007629395, + "y": 199.72500610351562 + }, + { + "x": 5.235000133514404, + "y": 199.93099975585938 + }, + { + "x": 0, + "y": 200 } ], "isCurve": true, @@ -852,128 +1092,248 @@ "link": "", "route": [ { - "x": -8.239999771118164, - "y": 232.6529998779297 + "x": 0, + "y": 200 }, { - "x": -13.239999771118164, - "y": 252.6529998779297 + "x": -5.235000133514404, + "y": 199.93099975585938 }, { - "x": -26.44499969482422, - "y": 251.61399841308594 + "x": -10.467000007629395, + "y": 199.72500610351562 }, { - "x": -39.57699966430664, - "y": 249.88499450683594 + "x": -15.690999984741211, + "y": 199.38299560546875 }, { - "x": -52.60100173950195, - "y": 247.4709930419922 + "x": -20.905000686645508, + "y": 198.9040069580078 }, { - "x": -65.48100280761719, - "y": 244.37899780273438 + "x": -26.104999542236328, + "y": 198.28799438476562 }, { - "x": -78.18099975585938, - "y": 240.61700439453125 + "x": -31.285999298095703, + "y": 197.53700256347656 }, { - "x": -90.66699981689453, - "y": 236.19500732421875 + "x": -36.446998596191406, + "y": 196.64999389648438 }, { - "x": -102.90399932861328, - "y": 231.1269989013672 + "x": -41.582000732421875, + "y": 195.62899780273438 }, { - "x": -114.85900115966797, - "y": 225.4239959716797 + "x": -46.68899917602539, + "y": 194.47300720214844 }, { - "x": -126.4990005493164, - "y": 219.10400390625 + "x": -51.76300048828125, + "y": 193.18499755859375 }, { - "x": -137.79299926757812, - "y": 212.18299865722656 + "x": -56.803001403808594, + "y": 191.76300048828125 }, { - "x": -148.70899963378906, - "y": 204.68099975585938 + "x": -61.803001403808594, + "y": 190.21099853515625 }, { - "x": -159.21800231933594, - "y": 196.61700439453125 + "x": -66.76100158691406, + "y": 188.5279998779297 }, { - "x": -169.2899932861328, - "y": 188.01499938964844 + "x": -71.6729965209961, + "y": 186.71600341796875 }, { - "x": -178.8979949951172, - "y": 178.8979949951172 + "x": -76.53600311279297, + "y": 184.77499389648438 }, { - "x": -188.01499938964844, - "y": 169.2899932861328 + "x": -81.34700012207031, + "y": 182.70899963378906 }, { - "x": -196.61700439453125, - "y": 159.21800231933594 + "x": -86.10199737548828, + "y": 180.51699829101562 }, { - "x": -204.68099975585938, - "y": 148.70899963378906 + "x": -90.7979965209961, + "y": 178.2010040283203 }, { - "x": -212.18299865722656, - "y": 137.79299926757812 + "x": -95.43099975585938, + "y": 175.76300048828125 }, { - "x": -219.10400390625, - "y": 126.5 + "x": -99.9990005493164, + "y": 173.2050018310547 }, { - "x": -225.4239959716797, - "y": 114.85900115966797 + "x": -104.4990005493164, + "y": 170.5279998779297 }, { - "x": -231.1269989013672, - "y": 102.90399932861328 + "x": -108.927001953125, + "y": 167.73399353027344 }, { - "x": -236.19500732421875, - "y": 90.66699981689453 + "x": -113.28099822998047, + "y": 164.8249969482422 }, { - "x": -240.61700439453125, - "y": 78.18099975585938 + "x": -117.55699920654297, + "y": 161.80299377441406 }, { - "x": -244.37899780273438, - "y": 65.48100280761719 + "x": -121.75199890136719, + "y": 158.6699981689453 }, { - "x": -247.4709930419922, - "y": 52.60100173950195 + "x": -125.86399841308594, + "y": 155.4290008544922 }, { - "x": -249.88499450683594, - "y": 39.57699966430664 + "x": -129.88900756835938, + "y": 152.08099365234375 }, { - "x": -251.61399841308594, - "y": 26.44499969482422 + "x": -133.8260040283203, + "y": 148.6280059814453 }, { - "x": -252.6529998779297, - "y": 13.239999771118164 + "x": -137.6699981689453, + "y": 145.07400512695312 }, { - "x": -226.6529998779297, - "y": 7.239999771118164 + "x": -141.42100524902344, + "y": 141.42100524902344 + }, + { + "x": -145.07400512695312, + "y": 137.6699981689453 + }, + { + "x": -148.6280059814453, + "y": 133.8260040283203 + }, + { + "x": -152.08099365234375, + "y": 129.88900756835938 + }, + { + "x": -155.4290008544922, + "y": 125.86399841308594 + }, + { + "x": -158.6699981689453, + "y": 121.75199890136719 + }, + { + "x": -161.80299377441406, + "y": 117.55699920654297 + }, + { + "x": -164.8249969482422, + "y": 113.28099822998047 + }, + { + "x": -167.73399353027344, + "y": 108.927001953125 + }, + { + "x": -170.5279998779297, + "y": 104.4990005493164 + }, + { + "x": -173.2050018310547, + "y": 100 + }, + { + "x": -175.76300048828125, + "y": 95.43099975585938 + }, + { + "x": -178.2010040283203, + "y": 90.7979965209961 + }, + { + "x": -180.51699829101562, + "y": 86.10199737548828 + }, + { + "x": -182.70899963378906, + "y": 81.34700012207031 + }, + { + "x": -184.77499389648438, + "y": 76.53600311279297 + }, + { + "x": -186.71600341796875, + "y": 71.6729965209961 + }, + { + "x": -188.5279998779297, + "y": 66.76100158691406 + }, + { + "x": -190.21099853515625, + "y": 61.803001403808594 + }, + { + "x": -191.76300048828125, + "y": 56.803001403808594 + }, + { + "x": -193.18499755859375, + "y": 51.76300048828125 + }, + { + "x": -194.47300720214844, + "y": 46.68899917602539 + }, + { + "x": -195.62899780273438, + "y": 41.582000732421875 + }, + { + "x": -196.64999389648438, + "y": 36.446998596191406 + }, + { + "x": -197.53700256347656, + "y": 31.285999298095703 + }, + { + "x": -198.28799438476562, + "y": 26.104999542236328 + }, + { + "x": -198.9040069580078, + "y": 20.905000686645508 + }, + { + "x": -199.38299560546875, + "y": 15.690999984741211 + }, + { + "x": -199.72500610351562, + "y": 10.467000007629395 + }, + { + "x": -199.93099975585938, + "y": 5.235000133514404 + }, + { + "x": -200, + "y": 0 } ], "isCurve": true, @@ -1008,128 +1368,248 @@ "link": "", "route": [ { - "x": 523.6480102539062, - "y": -183.38299560546875 + "x": 513, + "y": -150 }, { - "x": 530.6480102539062, - "y": -202.38299560546875 + "x": 519.97900390625, + "y": -149.8780059814453 }, { - "x": 548.2100219726562, - "y": -200.53700256347656 + "x": 526.9509887695312, + "y": -149.51199340820312 }, { - "x": 565.6010131835938, - "y": -197.4709930419922 + "x": 533.905029296875, + "y": -148.9040069580078 }, { - "x": 582.7360229492188, - "y": -193.19900512695312 + "x": 540.833984375, + "y": -148.05299377441406 }, { - "x": 599.531005859375, - "y": -187.74200439453125 + "x": 547.72900390625, + "y": -146.96099853515625 }, { - "x": 615.9039916992188, - "y": -181.1269989013672 + "x": 554.5819702148438, + "y": -145.62899780273438 }, { - "x": 631.7760009765625, - "y": -173.38499450683594 + "x": 561.3839721679688, + "y": -144.0590057373047 }, { - "x": 647.0689697265625, - "y": -164.55599975585938 + "x": 568.1270141601562, + "y": -142.2519989013672 }, { - "x": 661.708984375, - "y": -154.68099975585938 + "x": 574.802978515625, + "y": -140.21099853515625 }, { - "x": 675.625, - "y": -143.8090057373047 + "x": 581.4039916992188, + "y": -137.93800354003906 }, { - "x": 688.7479858398438, - "y": -131.99200439453125 + "x": 587.9210205078125, + "y": -135.43600463867188 }, { - "x": 701.0150146484375, - "y": -119.29000091552734 + "x": 594.3469848632812, + "y": -132.70899963378906 }, { - "x": 712.3660278320312, - "y": -105.76200103759766 + "x": 600.6740112304688, + "y": -129.75799560546875 }, { - "x": 722.7459716796875, - "y": -91.4749984741211 + "x": 606.8939819335938, + "y": -126.58899688720703 }, { - "x": 732.10400390625, - "y": -76.5 + "x": 613, + "y": -123.20500183105469 }, { - "x": 740.3939819335938, - "y": -60.90700149536133 + "x": 618.9829711914062, + "y": -119.60900115966797 }, { - "x": 747.5770263671875, - "y": -44.775001525878906 + "x": 624.8380126953125, + "y": -115.80699920654297 }, { - "x": 753.6170043945312, - "y": -28.180999755859375 + "x": 630.5570068359375, + "y": -111.8030014038086 }, { - "x": 758.4840087890625, - "y": -11.206000328063965 + "x": 636.1320190429688, + "y": -107.60199737548828 }, { - "x": 762.156005859375, - "y": 6.066999912261963 + "x": 641.5570068359375, + "y": -103.20800018310547 }, { - "x": 764.614013671875, - "y": 23.554000854492188 + "x": 646.8259887695312, + "y": -98.62799835205078 }, { - "x": 765.844970703125, - "y": 41.16999816894531 + "x": 651.9310302734375, + "y": -93.86699676513672 }, { - "x": 765.844970703125, - "y": 58.82899856567383 + "x": 656.8670043945312, + "y": -88.93099975585938 }, { - "x": 764.614013671875, - "y": 76.44499969482422 + "x": 661.6279907226562, + "y": -83.82599639892578 }, { - "x": 762.156005859375, - "y": 93.93199920654297 + "x": 666.2080078125, + "y": -78.55699920654297 }, { - "x": 758.4840087890625, - "y": 111.20600128173828 + "x": 670.6019897460938, + "y": -73.13200378417969 }, { - "x": 753.6170043945312, - "y": 128.18099975585938 + "x": 674.802978515625, + "y": -67.55699920654297 }, { - "x": 747.5770263671875, - "y": 144.77499389648438 + "x": 678.8070068359375, + "y": -61.8380012512207 }, { - "x": 740.3939819335938, - "y": 160.90699768066406 + "x": 682.6090087890625, + "y": -55.983001708984375 }, { - "x": 712.3939819335938, - "y": 154.90699768066406 + "x": 686.2050170898438, + "y": -50 + }, + { + "x": 689.5889892578125, + "y": -43.89400100708008 + }, + { + "x": 692.7579956054688, + "y": -37.67399978637695 + }, + { + "x": 695.708984375, + "y": -31.347000122070312 + }, + { + "x": 698.4359741210938, + "y": -24.92099952697754 + }, + { + "x": 700.93798828125, + "y": -18.40399932861328 + }, + { + "x": 703.2109985351562, + "y": -11.803000450134277 + }, + { + "x": 705.2520141601562, + "y": -5.126999855041504 + }, + { + "x": 707.0590209960938, + "y": 1.6150000095367432 + }, + { + "x": 708.6290283203125, + "y": 8.416999816894531 + }, + { + "x": 709.9609985351562, + "y": 15.270000457763672 + }, + { + "x": 711.052978515625, + "y": 22.165000915527344 + }, + { + "x": 711.9039916992188, + "y": 29.0939998626709 + }, + { + "x": 712.5120239257812, + "y": 36.04800033569336 + }, + { + "x": 712.8779907226562, + "y": 43.02000045776367 + }, + { + "x": 713, + "y": 50 + }, + { + "x": 712.8779907226562, + "y": 56.979000091552734 + }, + { + "x": 712.5120239257812, + "y": 63.95100021362305 + }, + { + "x": 711.9039916992188, + "y": 70.90499877929688 + }, + { + "x": 711.052978515625, + "y": 77.83399963378906 + }, + { + "x": 709.9609985351562, + "y": 84.72899627685547 + }, + { + "x": 708.6290283203125, + "y": 91.58200073242188 + }, + { + "x": 707.0590209960938, + "y": 98.38400268554688 + }, + { + "x": 705.2520141601562, + "y": 105.12699890136719 + }, + { + "x": 703.2109985351562, + "y": 111.8030014038086 + }, + { + "x": 700.93798828125, + "y": 118.40399932861328 + }, + { + "x": 698.4359741210938, + "y": 124.9209976196289 + }, + { + "x": 695.708984375, + "y": 131.3470001220703 + }, + { + "x": 692.7579956054688, + "y": 137.6739959716797 + }, + { + "x": 689.5889892578125, + "y": 143.8939971923828 + }, + { + "x": 686.2050170898438, + "y": 149.99899291992188 } ], "isCurve": true, @@ -1164,128 +1644,248 @@ "link": "", "route": [ { - "x": 712.7459716796875, - "y": 180.47500610351562 + "x": 686.2050170898438, + "y": 149.99899291992188 }, { - "x": 722.7459716796875, - "y": 191.47500610351562 + "x": 682.6090087890625, + "y": 155.98300170898438 }, { - "x": 712.3660278320312, - "y": 205.76199340820312 + "x": 678.8070068359375, + "y": 161.83799743652344 }, { - "x": 701.0150146484375, - "y": 219.2899932861328 + "x": 674.802978515625, + "y": 167.5570068359375 }, { - "x": 688.7479858398438, - "y": 231.99200439453125 + "x": 670.6019897460938, + "y": 173.1320037841797 }, { - "x": 675.625, - "y": 243.8090057373047 + "x": 666.2080078125, + "y": 178.5570068359375 }, { - "x": 661.708984375, - "y": 254.68099975585938 + "x": 661.6279907226562, + "y": 183.8260040283203 }, { - "x": 647.0689697265625, - "y": 264.5559997558594 + "x": 656.8670043945312, + "y": 188.93099975585938 }, { - "x": 631.7760009765625, - "y": 273.385009765625 + "x": 651.9310302734375, + "y": 193.86700439453125 }, { - "x": 615.9039916992188, - "y": 281.12701416015625 + "x": 646.8259887695312, + "y": 198.6280059814453 }, { - "x": 599.531005859375, - "y": 287.74200439453125 + "x": 641.5570068359375, + "y": 203.20799255371094 }, { - "x": 582.7360229492188, - "y": 293.1990051269531 + "x": 636.1320190429688, + "y": 207.6020050048828 }, { - "x": 565.6010131835938, - "y": 297.47100830078125 + "x": 630.5570068359375, + "y": 211.80299377441406 }, { - "x": 548.2100219726562, - "y": 300.5369873046875 + "x": 624.8380126953125, + "y": 215.8070068359375 }, { - "x": 530.6480102539062, - "y": 302.38299560546875 + "x": 618.9829711914062, + "y": 219.60899353027344 + }, + { + "x": 613, + "y": 223.2050018310547 + }, + { + "x": 606.8939819335938, + "y": 226.58900451660156 + }, + { + "x": 600.6740112304688, + "y": 229.75799560546875 + }, + { + "x": 594.3469848632812, + "y": 232.70899963378906 + }, + { + "x": 587.9210205078125, + "y": 235.43600463867188 + }, + { + "x": 581.4039916992188, + "y": 237.93800354003906 + }, + { + "x": 574.802978515625, + "y": 240.21099853515625 + }, + { + "x": 568.1270141601562, + "y": 242.2519989013672 + }, + { + "x": 561.3839721679688, + "y": 244.0590057373047 + }, + { + "x": 554.5819702148438, + "y": 245.62899780273438 + }, + { + "x": 547.72900390625, + "y": 246.96099853515625 + }, + { + "x": 540.833984375, + "y": 248.05299377441406 + }, + { + "x": 533.905029296875, + "y": 248.9040069580078 + }, + { + "x": 526.9509887695312, + "y": 249.51199340820312 + }, + { + "x": 519.97900390625, + "y": 249.8780059814453 }, { "x": 513, - "y": 303 + "y": 250 }, { - "x": 495.35101318359375, - "y": 302.38299560546875 + "x": 506.0199890136719, + "y": 249.8780059814453 }, { - "x": 477.78900146484375, - "y": 300.5369873046875 + "x": 499.0480041503906, + "y": 249.51199340820312 }, { - "x": 460.39801025390625, - "y": 297.47100830078125 + "x": 492.093994140625, + "y": 248.9040069580078 }, { - "x": 443.26300048828125, - "y": 293.1990051269531 + "x": 485.1650085449219, + "y": 248.05299377441406 }, { - "x": 426.4679870605469, - "y": 287.74200439453125 + "x": 478.2699890136719, + "y": 246.96099853515625 }, { - "x": 410.0950012207031, - "y": 281.12701416015625 + "x": 471.4169921875, + "y": 245.62899780273438 }, { - "x": 394.2229919433594, - "y": 273.385009765625 + "x": 464.614990234375, + "y": 244.0590057373047 }, { - "x": 378.92999267578125, - "y": 264.5559997558594 + "x": 457.87200927734375, + "y": 242.2519989013672 }, { - "x": 364.2900085449219, - "y": 254.68099975585938 + "x": 451.1960144042969, + "y": 240.21099853515625 }, { - "x": 350.3739929199219, - "y": 243.8090057373047 + "x": 444.5950012207031, + "y": 237.93800354003906 }, { - "x": 337.2510070800781, - "y": 231.99200439453125 + "x": 438.0780029296875, + "y": 235.43600463867188 }, { - "x": 324.9840087890625, - "y": 219.2899932861328 + "x": 431.6520080566406, + "y": 232.70899963378906 }, { - "x": 313.63299560546875, - "y": 205.76199340820312 + "x": 425.32501220703125, + "y": 229.75799560546875 }, { - "x": 303.25299072265625, - "y": 191.47500610351562 + "x": 419.1050109863281, + "y": 226.58900451660156 }, { - "x": 313.25299072265625, - "y": 180.47500610351562 + "x": 413, + "y": 223.2050018310547 + }, + { + "x": 407.0159912109375, + "y": 219.60899353027344 + }, + { + "x": 401.1610107421875, + "y": 215.8070068359375 + }, + { + "x": 395.4419860839844, + "y": 211.80299377441406 + }, + { + "x": 389.86700439453125, + "y": 207.6020050048828 + }, + { + "x": 384.4419860839844, + "y": 203.20799255371094 + }, + { + "x": 379.1730041503906, + "y": 198.6280059814453 + }, + { + "x": 374.0679931640625, + "y": 193.86700439453125 + }, + { + "x": 369.1319885253906, + "y": 188.93099975585938 + }, + { + "x": 364.3710021972656, + "y": 183.8260040283203 + }, + { + "x": 359.7909851074219, + "y": 178.5570068359375 + }, + { + "x": 355.3970031738281, + "y": 173.1320037841797 + }, + { + "x": 351.1960144042969, + "y": 167.5570068359375 + }, + { + "x": 347.1919860839844, + "y": 161.83799743652344 + }, + { + "x": 343.3900146484375, + "y": 155.98300170898438 + }, + { + "x": 339.79400634765625, + "y": 150 } ], "isCurve": true, @@ -1320,128 +1920,248 @@ "link": "", "route": [ { - "x": 988.4450073242188, - "y": -232.61399841308594 + "x": 972, + "y": -200 }, { - "x": 998.4450073242188, - "y": -251.61399841308594 + "x": 982.4669799804688, + "y": -199.72500610351562 }, { - "x": 1024.6009521484375, - "y": -247.4709930419922 + "x": 992.905029296875, + "y": -198.9040069580078 }, { - "x": 1050.1810302734375, - "y": -240.61700439453125 + "x": 1003.2860107421875, + "y": -197.53700256347656 }, { - "x": 1074.904052734375, - "y": -231.1269989013672 + "x": 1013.5819702148438, + "y": -195.62899780273438 }, { - "x": 1098.5, - "y": -219.10400390625 + "x": 1023.7630004882812, + "y": -193.18499755859375 }, { - "x": 1120.708984375, - "y": -204.68099975585938 + "x": 1033.802978515625, + "y": -190.21099853515625 }, { - "x": 1141.2900390625, - "y": -188.01499938964844 + "x": 1043.6729736328125, + "y": -186.71600341796875 }, { - "x": 1160.0150146484375, - "y": -169.2899932861328 + "x": 1053.3470458984375, + "y": -182.70899963378906 }, { - "x": 1176.6810302734375, - "y": -148.70899963378906 + "x": 1062.7979736328125, + "y": -178.2010040283203 }, { - "x": 1191.10400390625, - "y": -126.5 + "x": 1072, + "y": -173.2050018310547 }, { - "x": 1203.126953125, - "y": -102.90399932861328 + "x": 1080.927001953125, + "y": -167.73399353027344 }, { - "x": 1212.616943359375, - "y": -78.18099975585938 + "x": 1089.5570068359375, + "y": -161.80299377441406 }, { - "x": 1219.470947265625, - "y": -52.60100173950195 + "x": 1097.864013671875, + "y": -155.4290008544922 }, { - "x": 1223.614013671875, - "y": -26.44499969482422 + "x": 1105.8260498046875, + "y": -148.6280059814453 }, { - "x": 1225, + "x": 1113.4210205078125, + "y": -141.42100524902344 + }, + { + "x": 1120.6280517578125, + "y": -133.8260040283203 + }, + { + "x": 1127.428955078125, + "y": -125.86399841308594 + }, + { + "x": 1133.802978515625, + "y": -117.55699920654297 + }, + { + "x": 1139.7340087890625, + "y": -108.927001953125 + }, + { + "x": 1145.2049560546875, + "y": -100 + }, + { + "x": 1150.2010498046875, + "y": -90.7979965209961 + }, + { + "x": 1154.708984375, + "y": -81.34700012207031 + }, + { + "x": 1158.7159423828125, + "y": -71.6729965209961 + }, + { + "x": 1162.2110595703125, + "y": -61.803001403808594 + }, + { + "x": 1165.18505859375, + "y": -51.76300048828125 + }, + { + "x": 1167.6290283203125, + "y": -41.582000732421875 + }, + { + "x": 1169.5369873046875, + "y": -31.285999298095703 + }, + { + "x": 1170.904052734375, + "y": -20.905000686645508 + }, + { + "x": 1171.7249755859375, + "y": -10.467000007629395 + }, + { + "x": 1172, "y": 0 }, { - "x": 1223.614013671875, - "y": 26.44499969482422 + "x": 1171.7249755859375, + "y": 10.467000007629395 }, { - "x": 1219.470947265625, - "y": 52.60100173950195 + "x": 1170.904052734375, + "y": 20.905000686645508 }, { - "x": 1212.616943359375, - "y": 78.18099975585938 + "x": 1169.5369873046875, + "y": 31.285999298095703 }, { - "x": 1203.126953125, - "y": 102.90399932861328 + "x": 1167.6290283203125, + "y": 41.582000732421875 }, { - "x": 1191.10400390625, - "y": 126.4990005493164 + "x": 1165.18505859375, + "y": 51.76300048828125 }, { - "x": 1176.6810302734375, - "y": 148.70899963378906 + "x": 1162.2110595703125, + "y": 61.803001403808594 }, { - "x": 1160.0150146484375, - "y": 169.2899932861328 + "x": 1158.7159423828125, + "y": 71.6729965209961 }, { - "x": 1141.2900390625, - "y": 188.01499938964844 + "x": 1154.708984375, + "y": 81.34700012207031 }, { - "x": 1120.708984375, - "y": 204.68099975585938 + "x": 1150.2010498046875, + "y": 90.7979965209961 }, { - "x": 1098.5, - "y": 219.10400390625 + "x": 1145.2049560546875, + "y": 99.9990005493164 }, { - "x": 1074.904052734375, - "y": 231.1269989013672 + "x": 1139.7340087890625, + "y": 108.927001953125 }, { - "x": 1050.1810302734375, - "y": 240.61700439453125 + "x": 1133.802978515625, + "y": 117.55699920654297 }, { - "x": 1024.6009521484375, - "y": 247.4709930419922 + "x": 1127.428955078125, + "y": 125.86399841308594 }, { - "x": 998.4450073242188, - "y": 251.61399841308594 + "x": 1120.6280517578125, + "y": 133.8260040283203 }, { - "x": 988.4450073242188, - "y": 232.61399841308594 + "x": 1113.4210205078125, + "y": 141.42100524902344 + }, + { + "x": 1105.8260498046875, + "y": 148.6280059814453 + }, + { + "x": 1097.864013671875, + "y": 155.4290008544922 + }, + { + "x": 1089.5570068359375, + "y": 161.80299377441406 + }, + { + "x": 1080.927001953125, + "y": 167.73399353027344 + }, + { + "x": 1072, + "y": 173.2050018310547 + }, + { + "x": 1062.7979736328125, + "y": 178.2010040283203 + }, + { + "x": 1053.3470458984375, + "y": 182.70899963378906 + }, + { + "x": 1043.6729736328125, + "y": 186.71600341796875 + }, + { + "x": 1033.802978515625, + "y": 190.21099853515625 + }, + { + "x": 1023.7630004882812, + "y": 193.18499755859375 + }, + { + "x": 1013.5819702148438, + "y": 195.62899780273438 + }, + { + "x": 1003.2860107421875, + "y": 197.53700256347656 + }, + { + "x": 992.905029296875, + "y": 198.9040069580078 + }, + { + "x": 982.4669799804688, + "y": 199.72500610351562 + }, + { + "x": 972, + "y": 200 } ], "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 f61974313..dc0dacddd 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-4000015886 .fill-N1{fill:#0A0F25;} + .d2-4000015886 .fill-N2{fill:#676C7E;} + .d2-4000015886 .fill-N3{fill:#9499AB;} + .d2-4000015886 .fill-N4{fill:#CFD2DD;} + .d2-4000015886 .fill-N5{fill:#DEE1EB;} + .d2-4000015886 .fill-N6{fill:#EEF1F8;} + .d2-4000015886 .fill-N7{fill:#FFFFFF;} + .d2-4000015886 .fill-B1{fill:#0D32B2;} + .d2-4000015886 .fill-B2{fill:#0D32B2;} + .d2-4000015886 .fill-B3{fill:#E3E9FD;} + .d2-4000015886 .fill-B4{fill:#E3E9FD;} + .d2-4000015886 .fill-B5{fill:#EDF0FD;} + .d2-4000015886 .fill-B6{fill:#F7F8FE;} + .d2-4000015886 .fill-AA2{fill:#4A6FF3;} + .d2-4000015886 .fill-AA4{fill:#EDF0FD;} + .d2-4000015886 .fill-AA5{fill:#F7F8FE;} + .d2-4000015886 .fill-AB4{fill:#EDF0FD;} + .d2-4000015886 .fill-AB5{fill:#F7F8FE;} + .d2-4000015886 .stroke-N1{stroke:#0A0F25;} + .d2-4000015886 .stroke-N2{stroke:#676C7E;} + .d2-4000015886 .stroke-N3{stroke:#9499AB;} + .d2-4000015886 .stroke-N4{stroke:#CFD2DD;} + .d2-4000015886 .stroke-N5{stroke:#DEE1EB;} + .d2-4000015886 .stroke-N6{stroke:#EEF1F8;} + .d2-4000015886 .stroke-N7{stroke:#FFFFFF;} + .d2-4000015886 .stroke-B1{stroke:#0D32B2;} + .d2-4000015886 .stroke-B2{stroke:#0D32B2;} + .d2-4000015886 .stroke-B3{stroke:#E3E9FD;} + .d2-4000015886 .stroke-B4{stroke:#E3E9FD;} + .d2-4000015886 .stroke-B5{stroke:#EDF0FD;} + .d2-4000015886 .stroke-B6{stroke:#F7F8FE;} + .d2-4000015886 .stroke-AA2{stroke:#4A6FF3;} + .d2-4000015886 .stroke-AA4{stroke:#EDF0FD;} + .d2-4000015886 .stroke-AA5{stroke:#F7F8FE;} + .d2-4000015886 .stroke-AB4{stroke:#EDF0FD;} + .d2-4000015886 .stroke-AB5{stroke:#F7F8FE;} + .d2-4000015886 .background-color-N1{background-color:#0A0F25;} + .d2-4000015886 .background-color-N2{background-color:#676C7E;} + .d2-4000015886 .background-color-N3{background-color:#9499AB;} + .d2-4000015886 .background-color-N4{background-color:#CFD2DD;} + .d2-4000015886 .background-color-N5{background-color:#DEE1EB;} + .d2-4000015886 .background-color-N6{background-color:#EEF1F8;} + .d2-4000015886 .background-color-N7{background-color:#FFFFFF;} + .d2-4000015886 .background-color-B1{background-color:#0D32B2;} + .d2-4000015886 .background-color-B2{background-color:#0D32B2;} + .d2-4000015886 .background-color-B3{background-color:#E3E9FD;} + .d2-4000015886 .background-color-B4{background-color:#E3E9FD;} + .d2-4000015886 .background-color-B5{background-color:#EDF0FD;} + .d2-4000015886 .background-color-B6{background-color:#F7F8FE;} + .d2-4000015886 .background-color-AA2{background-color:#4A6FF3;} + .d2-4000015886 .background-color-AA4{background-color:#EDF0FD;} + .d2-4000015886 .background-color-AA5{background-color:#F7F8FE;} + .d2-4000015886 .background-color-AB4{background-color:#EDF0FD;} + .d2-4000015886 .background-color-AB5{background-color:#F7F8FE;} + .d2-4000015886 .color-N1{color:#0A0F25;} + .d2-4000015886 .color-N2{color:#676C7E;} + .d2-4000015886 .color-N3{color:#9499AB;} + .d2-4000015886 .color-N4{color:#CFD2DD;} + .d2-4000015886 .color-N5{color:#DEE1EB;} + .d2-4000015886 .color-N6{color:#EEF1F8;} + .d2-4000015886 .color-N7{color:#FFFFFF;} + .d2-4000015886 .color-B1{color:#0D32B2;} + .d2-4000015886 .color-B2{color:#0D32B2;} + .d2-4000015886 .color-B3{color:#E3E9FD;} + .d2-4000015886 .color-B4{color:#E3E9FD;} + .d2-4000015886 .color-B5{color:#EDF0FD;} + .d2-4000015886 .color-B6{color:#F7F8FE;} + .d2-4000015886 .color-AA2{color:#4A6FF3;} + .d2-4000015886 .color-AA4{color:#EDF0FD;} + .d2-4000015886 .color-AA5{color:#F7F8FE;} + .d2-4000015886 .color-AB4{color:#EDF0FD;} + .d2-4000015886 .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-4000015886);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-4000015886);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-4000015886);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-4000015886);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-4000015886);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-4000015886);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-4000015886);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-4000015886);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-4000015886);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 6ff0b5c2d..def0de805 100644 --- a/e2etests/testdata/txtar/cycle-diagram/elk/board.exp.json +++ b/e2etests/testdata/txtar/cycle-diagram/elk/board.exp.json @@ -540,128 +540,248 @@ "link": "", "route": [ { - "x": 20.239999771118164, - "y": -220.6529998779297 + "x": 12, + "y": -188 }, { - "x": 25.239999771118164, - "y": -240.6529998779297 + "x": 17.235000610351562, + "y": -187.93099975585938 }, { - "x": 38.44499969482422, - "y": -239.61399841308594 + "x": 22.466999053955078, + "y": -187.72500610351562 }, { - "x": 51.57699966430664, - "y": -237.88499450683594 + "x": 27.69099998474121, + "y": -187.38299560546875 }, { - "x": 64.60099792480469, - "y": -235.4709930419922 + "x": 32.904998779296875, + "y": -186.9040069580078 }, { - "x": 77.48100280761719, - "y": -232.37899780273438 + "x": 38.10499954223633, + "y": -186.28799438476562 }, { - "x": 90.18099975585938, - "y": -228.61700439453125 + "x": 43.2859992980957, + "y": -185.53700256347656 }, { - "x": 102.66699981689453, - "y": -224.19500732421875 + "x": 48.446998596191406, + "y": -184.64999389648438 }, { - "x": 114.90399932861328, - "y": -219.1269989013672 + "x": 53.582000732421875, + "y": -183.62899780273438 }, { - "x": 126.85900115966797, - "y": -213.4239959716797 + "x": 58.68899917602539, + "y": -182.47300720214844 }, { - "x": 138.5, - "y": -207.10400390625 + "x": 63.76300048828125, + "y": -181.18499755859375 }, { - "x": 149.79299926757812, - "y": -200.18299865722656 + "x": 68.8030014038086, + "y": -179.76300048828125 }, { - "x": 160.70899963378906, - "y": -192.68099975585938 + "x": 73.8030014038086, + "y": -178.21099853515625 }, { - "x": 171.21800231933594, - "y": -184.61700439453125 + "x": 78.76100158691406, + "y": -176.5279998779297 }, { - "x": 181.2899932861328, - "y": -176.01499938964844 + "x": 83.6729965209961, + "y": -174.71600341796875 }, { - "x": 190.8979949951172, - "y": -166.8979949951172 + "x": 88.53600311279297, + "y": -172.77499389648438 }, { - "x": 200.01499938964844, - "y": -157.2899932861328 + "x": 93.34700012207031, + "y": -170.70899963378906 }, { - "x": 208.61700439453125, - "y": -147.21800231933594 + "x": 98.10199737548828, + "y": -168.51699829101562 }, { - "x": 216.68099975585938, - "y": -136.70899963378906 + "x": 102.7979965209961, + "y": -166.2010040283203 }, { - "x": 224.18299865722656, - "y": -125.79299926757812 + "x": 107.43099975585938, + "y": -163.76300048828125 }, { - "x": 231.10400390625, - "y": -114.5 + "x": 111.9990005493164, + "y": -161.2050018310547 }, { - "x": 237.4239959716797, - "y": -102.85900115966797 + "x": 116.4990005493164, + "y": -158.5279998779297 }, { - "x": 243.1269989013672, - "y": -90.90399932861328 + "x": 120.927001953125, + "y": -155.73399353027344 }, { - "x": 248.19500732421875, - "y": -78.66699981689453 + "x": 125.28099822998047, + "y": -152.8249969482422 }, { - "x": 252.61700439453125, - "y": -66.18099975585938 + "x": 129.5570068359375, + "y": -149.80299377441406 }, { - "x": 256.3789978027344, - "y": -53.48099899291992 + "x": 133.7519989013672, + "y": -146.6699981689453 }, { - "x": 259.47100830078125, - "y": -40.60100173950195 + "x": 137.86399841308594, + "y": -143.4290008544922 }, { - "x": 261.885009765625, - "y": -27.57699966430664 + "x": 141.88900756835938, + "y": -140.08099365234375 }, { - "x": 263.614013671875, - "y": -14.444999694824219 + "x": 145.8260040283203, + "y": -136.6280059814453 }, { - "x": 264.65301513671875, - "y": -1.2400000095367432 + "x": 149.6699981689453, + "y": -133.07400512695312 }, { - "x": 238.6529998779297, - "y": 5.758999824523926 + "x": 153.42100524902344, + "y": -129.42100524902344 + }, + { + "x": 157.07400512695312, + "y": -125.66999816894531 + }, + { + "x": 160.6280059814453, + "y": -121.82599639892578 + }, + { + "x": 164.08099365234375, + "y": -117.88899993896484 + }, + { + "x": 167.4290008544922, + "y": -113.86399841308594 + }, + { + "x": 170.6699981689453, + "y": -109.75199890136719 + }, + { + "x": 173.80299377441406, + "y": -105.55699920654297 + }, + { + "x": 176.8249969482422, + "y": -101.28099822998047 + }, + { + "x": 179.73399353027344, + "y": -96.927001953125 + }, + { + "x": 182.5279998779297, + "y": -92.4990005493164 + }, + { + "x": 185.2050018310547, + "y": -88 + }, + { + "x": 187.76300048828125, + "y": -83.43099975585938 + }, + { + "x": 190.2010040283203, + "y": -78.7979965209961 + }, + { + "x": 192.51699829101562, + "y": -74.10199737548828 + }, + { + "x": 194.70899963378906, + "y": -69.34700012207031 + }, + { + "x": 196.77499389648438, + "y": -64.53600311279297 + }, + { + "x": 198.71600341796875, + "y": -59.67300033569336 + }, + { + "x": 200.5279998779297, + "y": -54.76100158691406 + }, + { + "x": 202.21099853515625, + "y": -49.803001403808594 + }, + { + "x": 203.76300048828125, + "y": -44.803001403808594 + }, + { + "x": 205.18499755859375, + "y": -39.76300048828125 + }, + { + "x": 206.47300720214844, + "y": -34.68899917602539 + }, + { + "x": 207.62899780273438, + "y": -29.582000732421875 + }, + { + "x": 208.64999389648438, + "y": -24.44700050354004 + }, + { + "x": 209.53700256347656, + "y": -19.285999298095703 + }, + { + "x": 210.28799438476562, + "y": -14.104999542236328 + }, + { + "x": 210.9040069580078, + "y": -8.904999732971191 + }, + { + "x": 211.38299560546875, + "y": -3.690999984741211 + }, + { + "x": 211.72500610351562, + "y": 1.531999945640564 + }, + { + "x": 211.93099975585938, + "y": 6.763999938964844 + }, + { + "x": 212, + "y": 12 } ], "isCurve": true, @@ -696,128 +816,248 @@ "link": "", "route": [ { - "x": 238.6529998779297, - "y": 18.239999771118164 + "x": 212, + "y": 12 }, { - "x": 264.65301513671875, - "y": 25.239999771118164 + "x": 211.93099975585938, + "y": 17.235000610351562 }, { - "x": 263.614013671875, - "y": 38.44499969482422 + "x": 211.72500610351562, + "y": 22.466999053955078 }, { - "x": 261.885009765625, - "y": 51.57699966430664 + "x": 211.38299560546875, + "y": 27.69099998474121 }, { - "x": 259.47100830078125, - "y": 64.60099792480469 + "x": 210.9040069580078, + "y": 32.904998779296875 }, { - "x": 256.3789978027344, - "y": 77.48100280761719 + "x": 210.28799438476562, + "y": 38.10499954223633 }, { - "x": 252.61700439453125, - "y": 90.18099975585938 + "x": 209.53700256347656, + "y": 43.2859992980957 }, { - "x": 248.19500732421875, - "y": 102.66699981689453 + "x": 208.64999389648438, + "y": 48.446998596191406 }, { - "x": 243.1269989013672, - "y": 114.90399932861328 + "x": 207.62899780273438, + "y": 53.582000732421875 }, { - "x": 237.4239959716797, - "y": 126.85900115966797 + "x": 206.47300720214844, + "y": 58.68899917602539 }, { - "x": 231.10400390625, - "y": 138.5 + "x": 205.18499755859375, + "y": 63.76300048828125 }, { - "x": 224.18299865722656, - "y": 149.79299926757812 + "x": 203.76300048828125, + "y": 68.8030014038086 }, { - "x": 216.68099975585938, - "y": 160.70899963378906 + "x": 202.21099853515625, + "y": 73.8030014038086 }, { - "x": 208.61700439453125, - "y": 171.21800231933594 + "x": 200.5279998779297, + "y": 78.76100158691406 }, { - "x": 200.01499938964844, - "y": 181.2899932861328 + "x": 198.71600341796875, + "y": 83.6729965209961 }, { - "x": 190.8979949951172, - "y": 190.8979949951172 + "x": 196.77499389648438, + "y": 88.53600311279297 }, { - "x": 181.2899932861328, - "y": 200.01499938964844 + "x": 194.70899963378906, + "y": 93.34700012207031 }, { - "x": 171.21800231933594, - "y": 208.61700439453125 + "x": 192.51699829101562, + "y": 98.10199737548828 }, { - "x": 160.70899963378906, - "y": 216.68099975585938 + "x": 190.2010040283203, + "y": 102.7979965209961 }, { - "x": 149.79299926757812, - "y": 224.18299865722656 + "x": 187.76300048828125, + "y": 107.43099975585938 }, { - "x": 138.5, - "y": 231.10400390625 + "x": 185.2050018310547, + "y": 111.9990005493164 }, { - "x": 126.85900115966797, - "y": 237.4239959716797 + "x": 182.5279998779297, + "y": 116.4990005493164 }, { - "x": 114.90399932861328, - "y": 243.1269989013672 + "x": 179.73399353027344, + "y": 120.927001953125 }, { - "x": 102.66699981689453, - "y": 248.19500732421875 + "x": 176.8249969482422, + "y": 125.28099822998047 }, { - "x": 90.18099975585938, - "y": 252.61700439453125 + "x": 173.80299377441406, + "y": 129.5570068359375 }, { - "x": 77.48100280761719, - "y": 256.3789978027344 + "x": 170.6699981689453, + "y": 133.7519989013672 }, { - "x": 64.60099792480469, - "y": 259.47100830078125 + "x": 167.4290008544922, + "y": 137.86399841308594 }, { - "x": 51.57699966430664, - "y": 261.885009765625 + "x": 164.08099365234375, + "y": 141.88900756835938 }, { - "x": 38.44499969482422, - "y": 263.614013671875 + "x": 160.6280059814453, + "y": 145.8260040283203 }, { - "x": 25.239999771118164, - "y": 264.65301513671875 + "x": 157.07400512695312, + "y": 149.6699981689453 }, { - "x": 20.239999771118164, - "y": 244.6529998779297 + "x": 153.42100524902344, + "y": 153.42100524902344 + }, + { + "x": 149.6699981689453, + "y": 157.07400512695312 + }, + { + "x": 145.8260040283203, + "y": 160.6280059814453 + }, + { + "x": 141.88900756835938, + "y": 164.08099365234375 + }, + { + "x": 137.86399841308594, + "y": 167.4290008544922 + }, + { + "x": 133.7519989013672, + "y": 170.6699981689453 + }, + { + "x": 129.5570068359375, + "y": 173.80299377441406 + }, + { + "x": 125.28099822998047, + "y": 176.8249969482422 + }, + { + "x": 120.927001953125, + "y": 179.73399353027344 + }, + { + "x": 116.4990005493164, + "y": 182.5279998779297 + }, + { + "x": 112, + "y": 185.2050018310547 + }, + { + "x": 107.43099975585938, + "y": 187.76300048828125 + }, + { + "x": 102.7979965209961, + "y": 190.2010040283203 + }, + { + "x": 98.10199737548828, + "y": 192.51699829101562 + }, + { + "x": 93.34700012207031, + "y": 194.70899963378906 + }, + { + "x": 88.53600311279297, + "y": 196.77499389648438 + }, + { + "x": 83.6729965209961, + "y": 198.71600341796875 + }, + { + "x": 78.76100158691406, + "y": 200.5279998779297 + }, + { + "x": 73.8030014038086, + "y": 202.21099853515625 + }, + { + "x": 68.8030014038086, + "y": 203.76300048828125 + }, + { + "x": 63.76300048828125, + "y": 205.18499755859375 + }, + { + "x": 58.68899917602539, + "y": 206.47300720214844 + }, + { + "x": 53.582000732421875, + "y": 207.62899780273438 + }, + { + "x": 48.446998596191406, + "y": 208.64999389648438 + }, + { + "x": 43.2859992980957, + "y": 209.53700256347656 + }, + { + "x": 38.10499954223633, + "y": 210.28799438476562 + }, + { + "x": 32.904998779296875, + "y": 210.9040069580078 + }, + { + "x": 27.69099998474121, + "y": 211.38299560546875 + }, + { + "x": 22.466999053955078, + "y": 211.72500610351562 + }, + { + "x": 17.235000610351562, + "y": 211.93099975585938 + }, + { + "x": 12, + "y": 212 } ], "isCurve": true, @@ -852,128 +1092,248 @@ "link": "", "route": [ { - "x": 3.759000062942505, - "y": 244.6529998779297 + "x": 12, + "y": 212 }, { - "x": -1.2400000095367432, - "y": 264.65301513671875 + "x": 6.763999938964844, + "y": 211.93099975585938 }, { - "x": -14.444999694824219, - "y": 263.614013671875 + "x": 1.531999945640564, + "y": 211.72500610351562 }, { - "x": -27.57699966430664, - "y": 261.885009765625 + "x": -3.690999984741211, + "y": 211.38299560546875 }, { - "x": -40.60100173950195, - "y": 259.47100830078125 + "x": -8.904999732971191, + "y": 210.9040069580078 }, { - "x": -53.48099899291992, - "y": 256.3789978027344 + "x": -14.104999542236328, + "y": 210.28799438476562 }, { - "x": -66.18099975585938, - "y": 252.61700439453125 + "x": -19.285999298095703, + "y": 209.53700256347656 }, { - "x": -78.66699981689453, - "y": 248.19500732421875 + "x": -24.44700050354004, + "y": 208.64999389648438 }, { - "x": -90.90399932861328, - "y": 243.1269989013672 + "x": -29.582000732421875, + "y": 207.62899780273438 }, { - "x": -102.85900115966797, - "y": 237.4239959716797 + "x": -34.68899917602539, + "y": 206.47300720214844 }, { - "x": -114.4990005493164, - "y": 231.10400390625 + "x": -39.76300048828125, + "y": 205.18499755859375 }, { - "x": -125.79299926757812, - "y": 224.18299865722656 + "x": -44.803001403808594, + "y": 203.76300048828125 }, { - "x": -136.70899963378906, - "y": 216.68099975585938 + "x": -49.803001403808594, + "y": 202.21099853515625 }, { - "x": -147.21800231933594, - "y": 208.61700439453125 + "x": -54.76100158691406, + "y": 200.5279998779297 }, { - "x": -157.2899932861328, - "y": 200.01499938964844 + "x": -59.67300033569336, + "y": 198.71600341796875 }, { - "x": -166.8979949951172, - "y": 190.8979949951172 + "x": -64.53600311279297, + "y": 196.77499389648438 }, { - "x": -176.01499938964844, - "y": 181.2899932861328 + "x": -69.34700012207031, + "y": 194.70899963378906 }, { - "x": -184.61700439453125, - "y": 171.21800231933594 + "x": -74.10199737548828, + "y": 192.51699829101562 }, { - "x": -192.68099975585938, - "y": 160.70899963378906 + "x": -78.7979965209961, + "y": 190.2010040283203 }, { - "x": -200.18299865722656, - "y": 149.79299926757812 + "x": -83.43099975585938, + "y": 187.76300048828125 }, { - "x": -207.10400390625, - "y": 138.5 + "x": -87.9990005493164, + "y": 185.2050018310547 }, { - "x": -213.4239959716797, - "y": 126.85900115966797 + "x": -92.4990005493164, + "y": 182.5279998779297 }, { - "x": -219.1269989013672, - "y": 114.90399932861328 + "x": -96.927001953125, + "y": 179.73399353027344 }, { - "x": -224.19500732421875, - "y": 102.66699981689453 + "x": -101.28099822998047, + "y": 176.8249969482422 }, { - "x": -228.61700439453125, - "y": 90.18099975585938 + "x": -105.55699920654297, + "y": 173.80299377441406 }, { - "x": -232.37899780273438, - "y": 77.48100280761719 + "x": -109.75199890136719, + "y": 170.6699981689453 }, { - "x": -235.4709930419922, - "y": 64.60099792480469 + "x": -113.86399841308594, + "y": 167.4290008544922 }, { - "x": -237.88499450683594, - "y": 51.57699966430664 + "x": -117.88899993896484, + "y": 164.08099365234375 }, { - "x": -239.61399841308594, - "y": 38.44499969482422 + "x": -121.82599639892578, + "y": 160.6280059814453 }, { - "x": -240.6529998779297, - "y": 25.239999771118164 + "x": -125.66999816894531, + "y": 157.07400512695312 }, { - "x": -214.6529998779297, - "y": 19.239999771118164 + "x": -129.42100524902344, + "y": 153.42100524902344 + }, + { + "x": -133.07400512695312, + "y": 149.6699981689453 + }, + { + "x": -136.6280059814453, + "y": 145.8260040283203 + }, + { + "x": -140.08099365234375, + "y": 141.88900756835938 + }, + { + "x": -143.4290008544922, + "y": 137.86399841308594 + }, + { + "x": -146.6699981689453, + "y": 133.7519989013672 + }, + { + "x": -149.80299377441406, + "y": 129.5570068359375 + }, + { + "x": -152.8249969482422, + "y": 125.28099822998047 + }, + { + "x": -155.73399353027344, + "y": 120.927001953125 + }, + { + "x": -158.5279998779297, + "y": 116.4990005493164 + }, + { + "x": -161.2050018310547, + "y": 112 + }, + { + "x": -163.76300048828125, + "y": 107.43099975585938 + }, + { + "x": -166.2010040283203, + "y": 102.7979965209961 + }, + { + "x": -168.51699829101562, + "y": 98.10199737548828 + }, + { + "x": -170.70899963378906, + "y": 93.34700012207031 + }, + { + "x": -172.77499389648438, + "y": 88.53600311279297 + }, + { + "x": -174.71600341796875, + "y": 83.6729965209961 + }, + { + "x": -176.5279998779297, + "y": 78.76100158691406 + }, + { + "x": -178.21099853515625, + "y": 73.8030014038086 + }, + { + "x": -179.76300048828125, + "y": 68.8030014038086 + }, + { + "x": -181.18499755859375, + "y": 63.76300048828125 + }, + { + "x": -182.47300720214844, + "y": 58.68899917602539 + }, + { + "x": -183.62899780273438, + "y": 53.582000732421875 + }, + { + "x": -184.64999389648438, + "y": 48.446998596191406 + }, + { + "x": -185.53700256347656, + "y": 43.2859992980957 + }, + { + "x": -186.28799438476562, + "y": 38.10499954223633 + }, + { + "x": -186.9040069580078, + "y": 32.904998779296875 + }, + { + "x": -187.38299560546875, + "y": 27.69099998474121 + }, + { + "x": -187.72500610351562, + "y": 22.466999053955078 + }, + { + "x": -187.93099975585938, + "y": 17.235000610351562 + }, + { + "x": -188, + "y": 12 } ], "isCurve": true, @@ -1008,128 +1368,248 @@ "link": "", "route": [ { - "x": 496.14801025390625, - "y": -171.38299560546875 + "x": 485.5, + "y": -138 }, { - "x": 503.14801025390625, - "y": -190.38299560546875 + "x": 492.47900390625, + "y": -137.8780059814453 }, { - "x": 520.7100219726562, - "y": -188.53700256347656 + "x": 499.45098876953125, + "y": -137.51199340820312 }, { - "x": 538.1010131835938, - "y": -185.4709930419922 + "x": 506.4049987792969, + "y": -136.9040069580078 }, { - "x": 555.2360229492188, - "y": -181.19900512695312 + "x": 513.333984375, + "y": -136.05299377441406 }, { - "x": 572.031005859375, - "y": -175.74200439453125 + "x": 520.22900390625, + "y": -134.96099853515625 }, { - "x": 588.4039916992188, - "y": -169.1269989013672 + "x": 527.0819702148438, + "y": -133.62899780273438 }, { - "x": 604.2760009765625, - "y": -161.38499450683594 + "x": 533.8839721679688, + "y": -132.0590057373047 }, { - "x": 619.5689697265625, - "y": -152.55599975585938 + "x": 540.6270141601562, + "y": -130.2519989013672 }, { - "x": 634.208984375, - "y": -142.68099975585938 + "x": 547.302978515625, + "y": -128.21099853515625 }, { - "x": 648.125, - "y": -131.8090057373047 + "x": 553.9039916992188, + "y": -125.93800354003906 }, { - "x": 661.2479858398438, - "y": -119.99199676513672 + "x": 560.4210205078125, + "y": -123.43599700927734 }, { - "x": 673.5150146484375, - "y": -107.29000091552734 + "x": 566.8469848632812, + "y": -120.70899963378906 }, { - "x": 684.8660278320312, - "y": -93.76200103759766 + "x": 573.1740112304688, + "y": -117.75800323486328 }, { - "x": 695.2459716796875, - "y": -79.4749984741211 + "x": 579.3939819335938, + "y": -114.58899688720703 }, { - "x": 704.60400390625, - "y": -64.5 + "x": 585.5, + "y": -111.20500183105469 }, { - "x": 712.8939819335938, - "y": -48.90700149536133 + "x": 591.4829711914062, + "y": -107.60900115966797 }, { - "x": 720.0770263671875, - "y": -32.775001525878906 + "x": 597.3380126953125, + "y": -103.80699920654297 }, { - "x": 726.1170043945312, - "y": -16.180999755859375 + "x": 603.0570068359375, + "y": -99.8030014038086 }, { - "x": 730.9840087890625, - "y": 0.7929999828338623 + "x": 608.6320190429688, + "y": -95.60199737548828 }, { - "x": 734.656005859375, - "y": 18.066999435424805 + "x": 614.0570068359375, + "y": -91.20800018310547 }, { - "x": 737.114013671875, - "y": 35.55400085449219 + "x": 619.3259887695312, + "y": -86.62799835205078 }, { - "x": 738.344970703125, - "y": 53.16999816894531 + "x": 624.4310302734375, + "y": -81.86699676513672 }, { - "x": 738.344970703125, - "y": 70.8290023803711 + "x": 629.3670043945312, + "y": -76.93099975585938 }, { - "x": 737.114013671875, - "y": 88.44499969482422 + "x": 634.1279907226562, + "y": -71.82599639892578 }, { - "x": 734.656005859375, - "y": 105.93199920654297 + "x": 638.7080078125, + "y": -66.55699920654297 }, { - "x": 730.9840087890625, - "y": 123.20600128173828 + "x": 643.1019897460938, + "y": -61.13199996948242 }, { - "x": 726.1170043945312, - "y": 140.18099975585938 + "x": 647.302978515625, + "y": -55.55699920654297 }, { - "x": 720.0770263671875, - "y": 156.77499389648438 + "x": 651.3070068359375, + "y": -49.8380012512207 }, { - "x": 712.8939819335938, - "y": 172.90699768066406 + "x": 655.1090087890625, + "y": -43.983001708984375 }, { - "x": 684.8939819335938, - "y": 166.90699768066406 + "x": 658.7050170898438, + "y": -38 + }, + { + "x": 662.0889892578125, + "y": -31.893999099731445 + }, + { + "x": 665.2579956054688, + "y": -25.673999786376953 + }, + { + "x": 668.208984375, + "y": -19.347000122070312 + }, + { + "x": 670.9359741210938, + "y": -12.920999526977539 + }, + { + "x": 673.43798828125, + "y": -6.4039998054504395 + }, + { + "x": 675.7109985351562, + "y": 0.19599999487400055 + }, + { + "x": 677.7520141601562, + "y": 6.872000217437744 + }, + { + "x": 679.5590209960938, + "y": 13.614999771118164 + }, + { + "x": 681.1290283203125, + "y": 20.41699981689453 + }, + { + "x": 682.4609985351562, + "y": 27.270000457763672 + }, + { + "x": 683.552978515625, + "y": 34.165000915527344 + }, + { + "x": 684.4039916992188, + "y": 41.09400177001953 + }, + { + "x": 685.0120239257812, + "y": 48.04800033569336 + }, + { + "x": 685.3779907226562, + "y": 55.02000045776367 + }, + { + "x": 685.5, + "y": 61.999000549316406 + }, + { + "x": 685.3779907226562, + "y": 68.97899627685547 + }, + { + "x": 685.0120239257812, + "y": 75.95099639892578 + }, + { + "x": 684.4039916992188, + "y": 82.90499877929688 + }, + { + "x": 683.552978515625, + "y": 89.83399963378906 + }, + { + "x": 682.4609985351562, + "y": 96.72899627685547 + }, + { + "x": 681.1290283203125, + "y": 103.58200073242188 + }, + { + "x": 679.5590209960938, + "y": 110.38400268554688 + }, + { + "x": 677.7520141601562, + "y": 117.12699890136719 + }, + { + "x": 675.7109985351562, + "y": 123.8030014038086 + }, + { + "x": 673.43798828125, + "y": 130.4040069580078 + }, + { + "x": 670.9359741210938, + "y": 136.92100524902344 + }, + { + "x": 668.208984375, + "y": 143.3470001220703 + }, + { + "x": 665.2579956054688, + "y": 149.6739959716797 + }, + { + "x": 662.0889892578125, + "y": 155.8939971923828 + }, + { + "x": 658.7050170898438, + "y": 161.99899291992188 } ], "isCurve": true, @@ -1164,128 +1644,248 @@ "link": "", "route": [ { - "x": 685.2459716796875, - "y": 192.47500610351562 + "x": 658.7050170898438, + "y": 161.99899291992188 }, { - "x": 695.2459716796875, - "y": 203.47500610351562 + "x": 655.1090087890625, + "y": 167.98300170898438 }, { - "x": 684.8660278320312, - "y": 217.76199340820312 + "x": 651.3070068359375, + "y": 173.83799743652344 }, { - "x": 673.5150146484375, - "y": 231.2899932861328 + "x": 647.302978515625, + "y": 179.5570068359375 }, { - "x": 661.2479858398438, - "y": 243.99200439453125 + "x": 643.1019897460938, + "y": 185.1320037841797 }, { - "x": 648.125, - "y": 255.8090057373047 + "x": 638.7080078125, + "y": 190.5570068359375 }, { - "x": 634.208984375, - "y": 266.6809997558594 + "x": 634.1279907226562, + "y": 195.8260040283203 }, { - "x": 619.5689697265625, - "y": 276.5559997558594 + "x": 629.3670043945312, + "y": 200.93099975585938 }, { - "x": 604.2760009765625, - "y": 285.385009765625 + "x": 624.4310302734375, + "y": 205.86700439453125 }, { - "x": 588.4039916992188, - "y": 293.12701416015625 + "x": 619.3259887695312, + "y": 210.6280059814453 }, { - "x": 572.031005859375, - "y": 299.74200439453125 + "x": 614.0570068359375, + "y": 215.20799255371094 }, { - "x": 555.2360229492188, - "y": 305.1990051269531 + "x": 608.6320190429688, + "y": 219.6020050048828 }, { - "x": 538.1010131835938, - "y": 309.47100830078125 + "x": 603.0570068359375, + "y": 223.80299377441406 }, { - "x": 520.7100219726562, - "y": 312.5369873046875 + "x": 597.3380126953125, + "y": 227.8070068359375 }, { - "x": 503.14801025390625, - "y": 314.38299560546875 + "x": 591.4829711914062, + "y": 231.60899353027344 + }, + { + "x": 585.5, + "y": 235.2050018310547 + }, + { + "x": 579.3939819335938, + "y": 238.58900451660156 + }, + { + "x": 573.1740112304688, + "y": 241.75799560546875 + }, + { + "x": 566.8469848632812, + "y": 244.70899963378906 + }, + { + "x": 560.4210205078125, + "y": 247.43600463867188 + }, + { + "x": 553.9039916992188, + "y": 249.93800354003906 + }, + { + "x": 547.302978515625, + "y": 252.21099853515625 + }, + { + "x": 540.6270141601562, + "y": 254.2519989013672 + }, + { + "x": 533.8839721679688, + "y": 256.0589904785156 + }, + { + "x": 527.0819702148438, + "y": 257.6289978027344 + }, + { + "x": 520.22900390625, + "y": 258.96099853515625 + }, + { + "x": 513.333984375, + "y": 260.0530090332031 + }, + { + "x": 506.4049987792969, + "y": 260.90399169921875 + }, + { + "x": 499.45098876953125, + "y": 261.5119934082031 + }, + { + "x": 492.47900390625, + "y": 261.87799072265625 }, { "x": 485.5, - "y": 315 + "y": 262 }, { - "x": 467.85101318359375, - "y": 314.38299560546875 + "x": 478.5199890136719, + "y": 261.87799072265625 }, { - "x": 450.28900146484375, - "y": 312.5369873046875 + "x": 471.5480041503906, + "y": 261.5119934082031 }, { - "x": 432.89801025390625, - "y": 309.47100830078125 + "x": 464.593994140625, + "y": 260.90399169921875 }, { - "x": 415.76300048828125, - "y": 305.1990051269531 + "x": 457.6650085449219, + "y": 260.0530090332031 }, { - "x": 398.9679870605469, - "y": 299.74200439453125 + "x": 450.7699890136719, + "y": 258.96099853515625 }, { - "x": 382.5950012207031, - "y": 293.12701416015625 + "x": 443.9169921875, + "y": 257.6289978027344 }, { - "x": 366.7229919433594, - "y": 285.385009765625 + "x": 437.114990234375, + "y": 256.0589904785156 }, { - "x": 351.42999267578125, - "y": 276.5559997558594 + "x": 430.37200927734375, + "y": 254.2519989013672 }, { - "x": 336.7900085449219, - "y": 266.6809997558594 + "x": 423.6960144042969, + "y": 252.21099853515625 }, { - "x": 322.8739929199219, - "y": 255.8090057373047 + "x": 417.0950012207031, + "y": 249.93800354003906 }, { - "x": 309.7510070800781, - "y": 243.99200439453125 + "x": 410.5780029296875, + "y": 247.43600463867188 }, { - "x": 297.4840087890625, - "y": 231.2899932861328 + "x": 404.1520080566406, + "y": 244.70899963378906 }, { - "x": 286.13299560546875, - "y": 217.76199340820312 + "x": 397.82501220703125, + "y": 241.75799560546875 }, { - "x": 275.75299072265625, - "y": 203.47500610351562 + "x": 391.6050109863281, + "y": 238.58900451660156 }, { - "x": 285.75299072265625, - "y": 192.47500610351562 + "x": 385.5, + "y": 235.2050018310547 + }, + { + "x": 379.5159912109375, + "y": 231.60899353027344 + }, + { + "x": 373.6610107421875, + "y": 227.8070068359375 + }, + { + "x": 367.9419860839844, + "y": 223.80299377441406 + }, + { + "x": 362.36700439453125, + "y": 219.6020050048828 + }, + { + "x": 356.9419860839844, + "y": 215.20799255371094 + }, + { + "x": 351.6730041503906, + "y": 210.6280059814453 + }, + { + "x": 346.5679931640625, + "y": 205.86700439453125 + }, + { + "x": 341.6319885253906, + "y": 200.93099975585938 + }, + { + "x": 336.8710021972656, + "y": 195.8260040283203 + }, + { + "x": 332.2909851074219, + "y": 190.5570068359375 + }, + { + "x": 327.8970031738281, + "y": 185.1320037841797 + }, + { + "x": 323.6960144042969, + "y": 179.5570068359375 + }, + { + "x": 319.6919860839844, + "y": 173.83799743652344 + }, + { + "x": 315.8900146484375, + "y": 167.98300170898438 + }, + { + "x": 312.29400634765625, + "y": 162 } ], "isCurve": true, @@ -1320,128 +1920,248 @@ "link": "", "route": [ { - "x": 921.35498046875, - "y": -220.61399841308594 + "x": 904.9099731445312, + "y": -188 }, { - "x": 931.35498046875, - "y": -239.61399841308594 + "x": 915.3770141601562, + "y": -187.72500610351562 }, { - "x": 957.510986328125, - "y": -235.4709930419922 + "x": 925.8150024414062, + "y": -186.9040069580078 }, { - "x": 983.0910034179688, - "y": -228.61700439453125 + "x": 936.197021484375, + "y": -185.53700256347656 }, { - "x": 1007.8140258789062, - "y": -219.1269989013672 + "x": 946.4920043945312, + "y": -183.62899780273438 }, { - "x": 1031.4100341796875, - "y": -207.10400390625 + "x": 956.6729736328125, + "y": -181.18499755859375 }, { - "x": 1053.6190185546875, - "y": -192.68099975585938 + "x": 966.7130126953125, + "y": -178.21099853515625 }, { - "x": 1074.199951171875, - "y": -176.01499938964844 + "x": 976.5830078125, + "y": -174.71600341796875 }, { - "x": 1092.925048828125, - "y": -157.2899932861328 + "x": 986.2570190429688, + "y": -170.70899963378906 }, { - "x": 1109.5909423828125, - "y": -136.70899963378906 + "x": 995.7080078125, + "y": -166.2010040283203 }, { - "x": 1124.0140380859375, - "y": -114.5 + "x": 1004.9099731445312, + "y": -161.2050018310547 }, { - "x": 1136.0369873046875, - "y": -90.90399932861328 + "x": 1013.8369750976562, + "y": -155.73399353027344 }, { - "x": 1145.5269775390625, - "y": -66.18099975585938 + "x": 1022.4669799804688, + "y": -149.80299377441406 }, { - "x": 1152.3809814453125, - "y": -40.60100173950195 + "x": 1030.7740478515625, + "y": -143.4290008544922 }, { - "x": 1156.5240478515625, - "y": -14.444999694824219 + "x": 1038.7359619140625, + "y": -136.6280059814453 }, { - "x": 1157.9100341796875, + "x": 1046.3310546875, + "y": -129.42100524902344 + }, + { + "x": 1053.5389404296875, + "y": -121.82599639892578 + }, + { + "x": 1060.3389892578125, + "y": -113.86399841308594 + }, + { + "x": 1066.7130126953125, + "y": -105.55699920654297 + }, + { + "x": 1072.64404296875, + "y": -96.927001953125 + }, + { + "x": 1078.114990234375, + "y": -88 + }, + { + "x": 1083.1109619140625, + "y": -78.7979965209961 + }, + { + "x": 1087.6190185546875, + "y": -69.34700012207031 + }, + { + "x": 1091.6259765625, + "y": -59.67300033569336 + }, + { + "x": 1095.1209716796875, + "y": -49.803001403808594 + }, + { + "x": 1098.094970703125, + "y": -39.76300048828125 + }, + { + "x": 1100.5389404296875, + "y": -29.582000732421875 + }, + { + "x": 1102.447021484375, + "y": -19.285999298095703 + }, + { + "x": 1103.81396484375, + "y": -8.904999732971191 + }, + { + "x": 1104.635986328125, + "y": 1.531999945640564 + }, + { + "x": 1104.9100341796875, "y": 12 }, { - "x": 1156.5240478515625, - "y": 38.44499969482422 + "x": 1104.635986328125, + "y": 22.466999053955078 }, { - "x": 1152.3809814453125, - "y": 64.60099792480469 + "x": 1103.81396484375, + "y": 32.904998779296875 }, { - "x": 1145.5269775390625, - "y": 90.18099975585938 + "x": 1102.447021484375, + "y": 43.2859992980957 }, { - "x": 1136.0369873046875, - "y": 114.90399932861328 + "x": 1100.5389404296875, + "y": 53.582000732421875 }, { - "x": 1124.0140380859375, - "y": 138.49899291992188 + "x": 1098.094970703125, + "y": 63.76300048828125 }, { - "x": 1109.5909423828125, - "y": 160.70899963378906 + "x": 1095.1209716796875, + "y": 73.8030014038086 }, { - "x": 1092.925048828125, - "y": 181.2899932861328 + "x": 1091.6259765625, + "y": 83.6729965209961 }, { - "x": 1074.199951171875, - "y": 200.01499938964844 + "x": 1087.6190185546875, + "y": 93.34700012207031 }, { - "x": 1053.6190185546875, - "y": 216.68099975585938 + "x": 1083.1109619140625, + "y": 102.7979965209961 }, { - "x": 1031.4100341796875, - "y": 231.10400390625 + "x": 1078.114990234375, + "y": 111.9990005493164 }, { - "x": 1007.8140258789062, - "y": 243.1269989013672 + "x": 1072.64404296875, + "y": 120.927001953125 }, { - "x": 983.0910034179688, - "y": 252.61700439453125 + "x": 1066.7130126953125, + "y": 129.5570068359375 }, { - "x": 957.510986328125, - "y": 259.47100830078125 + "x": 1060.3389892578125, + "y": 137.86399841308594 }, { - "x": 931.35498046875, - "y": 263.614013671875 + "x": 1053.5389404296875, + "y": 145.8260040283203 }, { - "x": 921.35498046875, - "y": 244.61399841308594 + "x": 1046.3310546875, + "y": 153.42100524902344 + }, + { + "x": 1038.7359619140625, + "y": 160.6280059814453 + }, + { + "x": 1030.7740478515625, + "y": 167.4290008544922 + }, + { + "x": 1022.4669799804688, + "y": 173.80299377441406 + }, + { + "x": 1013.8369750976562, + "y": 179.73399353027344 + }, + { + "x": 1004.9099731445312, + "y": 185.2050018310547 + }, + { + "x": 995.7080078125, + "y": 190.2010040283203 + }, + { + "x": 986.2570190429688, + "y": 194.70899963378906 + }, + { + "x": 976.5830078125, + "y": 198.71600341796875 + }, + { + "x": 966.7130126953125, + "y": 202.21099853515625 + }, + { + "x": 956.6729736328125, + "y": 205.18499755859375 + }, + { + "x": 946.4920043945312, + "y": 207.62899780273438 + }, + { + "x": 936.197021484375, + "y": 209.53700256347656 + }, + { + "x": 925.8150024414062, + "y": 210.9040069580078 + }, + { + "x": 915.3770141601562, + "y": 211.72500610351562 + }, + { + "x": 904.9099731445312, + "y": 212 } ], "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 ac3081c7b..7dcfbadbd 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-1797511336 .fill-N1{fill:#0A0F25;} + .d2-1797511336 .fill-N2{fill:#676C7E;} + .d2-1797511336 .fill-N3{fill:#9499AB;} + .d2-1797511336 .fill-N4{fill:#CFD2DD;} + .d2-1797511336 .fill-N5{fill:#DEE1EB;} + .d2-1797511336 .fill-N6{fill:#EEF1F8;} + .d2-1797511336 .fill-N7{fill:#FFFFFF;} + .d2-1797511336 .fill-B1{fill:#0D32B2;} + .d2-1797511336 .fill-B2{fill:#0D32B2;} + .d2-1797511336 .fill-B3{fill:#E3E9FD;} + .d2-1797511336 .fill-B4{fill:#E3E9FD;} + .d2-1797511336 .fill-B5{fill:#EDF0FD;} + .d2-1797511336 .fill-B6{fill:#F7F8FE;} + .d2-1797511336 .fill-AA2{fill:#4A6FF3;} + .d2-1797511336 .fill-AA4{fill:#EDF0FD;} + .d2-1797511336 .fill-AA5{fill:#F7F8FE;} + .d2-1797511336 .fill-AB4{fill:#EDF0FD;} + .d2-1797511336 .fill-AB5{fill:#F7F8FE;} + .d2-1797511336 .stroke-N1{stroke:#0A0F25;} + .d2-1797511336 .stroke-N2{stroke:#676C7E;} + .d2-1797511336 .stroke-N3{stroke:#9499AB;} + .d2-1797511336 .stroke-N4{stroke:#CFD2DD;} + .d2-1797511336 .stroke-N5{stroke:#DEE1EB;} + .d2-1797511336 .stroke-N6{stroke:#EEF1F8;} + .d2-1797511336 .stroke-N7{stroke:#FFFFFF;} + .d2-1797511336 .stroke-B1{stroke:#0D32B2;} + .d2-1797511336 .stroke-B2{stroke:#0D32B2;} + .d2-1797511336 .stroke-B3{stroke:#E3E9FD;} + .d2-1797511336 .stroke-B4{stroke:#E3E9FD;} + .d2-1797511336 .stroke-B5{stroke:#EDF0FD;} + .d2-1797511336 .stroke-B6{stroke:#F7F8FE;} + .d2-1797511336 .stroke-AA2{stroke:#4A6FF3;} + .d2-1797511336 .stroke-AA4{stroke:#EDF0FD;} + .d2-1797511336 .stroke-AA5{stroke:#F7F8FE;} + .d2-1797511336 .stroke-AB4{stroke:#EDF0FD;} + .d2-1797511336 .stroke-AB5{stroke:#F7F8FE;} + .d2-1797511336 .background-color-N1{background-color:#0A0F25;} + .d2-1797511336 .background-color-N2{background-color:#676C7E;} + .d2-1797511336 .background-color-N3{background-color:#9499AB;} + .d2-1797511336 .background-color-N4{background-color:#CFD2DD;} + .d2-1797511336 .background-color-N5{background-color:#DEE1EB;} + .d2-1797511336 .background-color-N6{background-color:#EEF1F8;} + .d2-1797511336 .background-color-N7{background-color:#FFFFFF;} + .d2-1797511336 .background-color-B1{background-color:#0D32B2;} + .d2-1797511336 .background-color-B2{background-color:#0D32B2;} + .d2-1797511336 .background-color-B3{background-color:#E3E9FD;} + .d2-1797511336 .background-color-B4{background-color:#E3E9FD;} + .d2-1797511336 .background-color-B5{background-color:#EDF0FD;} + .d2-1797511336 .background-color-B6{background-color:#F7F8FE;} + .d2-1797511336 .background-color-AA2{background-color:#4A6FF3;} + .d2-1797511336 .background-color-AA4{background-color:#EDF0FD;} + .d2-1797511336 .background-color-AA5{background-color:#F7F8FE;} + .d2-1797511336 .background-color-AB4{background-color:#EDF0FD;} + .d2-1797511336 .background-color-AB5{background-color:#F7F8FE;} + .d2-1797511336 .color-N1{color:#0A0F25;} + .d2-1797511336 .color-N2{color:#676C7E;} + .d2-1797511336 .color-N3{color:#9499AB;} + .d2-1797511336 .color-N4{color:#CFD2DD;} + .d2-1797511336 .color-N5{color:#DEE1EB;} + .d2-1797511336 .color-N6{color:#EEF1F8;} + .d2-1797511336 .color-N7{color:#FFFFFF;} + .d2-1797511336 .color-B1{color:#0D32B2;} + .d2-1797511336 .color-B2{color:#0D32B2;} + .d2-1797511336 .color-B3{color:#E3E9FD;} + .d2-1797511336 .color-B4{color:#E3E9FD;} + .d2-1797511336 .color-B5{color:#EDF0FD;} + .d2-1797511336 .color-B6{color:#F7F8FE;} + .d2-1797511336 .color-AA2{color:#4A6FF3;} + .d2-1797511336 .color-AA4{color:#EDF0FD;} + .d2-1797511336 .color-AA5{color:#F7F8FE;} + .d2-1797511336 .color-AB4{color:#EDF0FD;} + .d2-1797511336 .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-1797511336);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1797511336);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1797511336);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1797511336);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1797511336);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1797511336);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1797511336);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1797511336);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>abcdabcab +