@tscircuit/schematic-trace-solver 0.0.68 → 0.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +86 -29
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/rerouteCollidingTrace.ts +12 -3
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/SingleOverlapSolver/SingleOverlapSolver.ts +11 -0
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/tryFourPointDetour.ts +13 -8
- package/lib/solvers/TraceLabelOverlapAvoidanceSolver/violation.ts +54 -20
- package/lib/solvers/TraceOverlapShiftSolver/TraceOverlapIssueSolver/TraceOverlapIssueSolver.ts +45 -10
- package/package.json +1 -1
- package/site/examples/example42.page.tsx +4 -0
- package/tests/assets/example42.json +139 -0
- package/tests/examples/__snapshots__/example03.snap.svg +66 -66
- package/tests/examples/__snapshots__/example16.snap.svg +5 -9
- package/tests/examples/__snapshots__/example20.snap.svg +4 -7
- package/tests/examples/__snapshots__/example22.snap.svg +5 -9
- package/tests/examples/__snapshots__/example32.snap.svg +108 -93
- package/tests/examples/__snapshots__/example42.snap.svg +195 -0
- package/tests/examples/example42.test.ts +12 -0
- package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +396 -0
- package/tests/repros/assets/repro-bq24074-battery-charger.input.json +219 -0
- package/tests/repros/repro-bq24074-battery-charger.test.ts +18 -0
|
@@ -2,334 +2,349 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="B1.1
|
|
5
|
-
x-" data-x="-4.475" data-y="2.9699999999999998" cx="64.
|
|
5
|
+
x-" data-x="-4.475" data-y="2.9699999999999998" cx="64.78021978021977" cy="151.31868131868134" r="3" fill="hsl(210, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="B1.2
|
|
9
|
-
x+" data-x="-3.525" data-y="2.9699999999999998" cx="116.
|
|
9
|
+
x+" data-x="-3.525" data-y="2.9699999999999998" cx="116.97802197802196" cy="151.31868131868134" r="3" fill="hsl(211, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="SW1.1
|
|
13
|
-
x-" data-x="-2.38" data-y="3" cx="
|
|
13
|
+
x-" data-x="-2.38" data-y="3" cx="179.89010989010987" cy="149.67032967032966" r="3" fill="hsl(104, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
16
|
<circle data-type="point" data-label="SW1.2
|
|
17
|
-
x+" data-x="-1.62" data-y="3" cx="
|
|
17
|
+
x+" data-x="-1.62" data-y="3" cx="221.64835164835165" cy="149.67032967032966" r="3" fill="hsl(105, 100%, 50%, 0.8)" />
|
|
18
18
|
</g>
|
|
19
19
|
<g>
|
|
20
20
|
<circle data-type="point" data-label="C3.1
|
|
21
|
-
x-" data-x="-3.55" data-y="1.5" cx="
|
|
21
|
+
x-" data-x="-3.55" data-y="1.5" cx="115.60439560439559" cy="232.08791208791212" r="3" fill="hsl(243, 100%, 50%, 0.8)" />
|
|
22
22
|
</g>
|
|
23
23
|
<g>
|
|
24
24
|
<circle data-type="point" data-label="C3.2
|
|
25
|
-
x+" data-x="-2.45" data-y="1.5" cx="
|
|
25
|
+
x+" data-x="-2.45" data-y="1.5" cx="176.04395604395603" cy="232.08791208791212" r="3" fill="hsl(244, 100%, 50%, 0.8)" />
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
28
|
<circle data-type="point" data-label="U1.1
|
|
29
|
-
x+" data-x="2.7" data-y="2.2" cx="
|
|
29
|
+
x+" data-x="2.7" data-y="2.2" cx="459.0109890109891" cy="193.6263736263736" r="3" fill="hsl(319, 100%, 50%, 0.8)" />
|
|
30
30
|
</g>
|
|
31
31
|
<g>
|
|
32
32
|
<circle data-type="point" data-label="U1.2
|
|
33
|
-
x-" data-x="0.2999999999999998" data-y="2.2" cx="
|
|
33
|
+
x-" data-x="0.2999999999999998" data-y="2.2" cx="327.14285714285717" cy="193.6263736263736" r="3" fill="hsl(320, 100%, 50%, 0.8)" />
|
|
34
34
|
</g>
|
|
35
35
|
<g>
|
|
36
36
|
<circle data-type="point" data-label="U1.3
|
|
37
|
-
x+" data-x="2.7" data-y="2.6" cx="
|
|
37
|
+
x+" data-x="2.7" data-y="2.6" cx="459.0109890109891" cy="171.64835164835165" r="3" fill="hsl(321, 100%, 50%, 0.8)" />
|
|
38
38
|
</g>
|
|
39
39
|
<g>
|
|
40
40
|
<circle data-type="point" data-label="U1.4
|
|
41
|
-
x-" data-x="0.2999999999999998" data-y="2.8" cx="
|
|
41
|
+
x-" data-x="0.2999999999999998" data-y="2.8" cx="327.14285714285717" cy="160.65934065934067" r="3" fill="hsl(322, 100%, 50%, 0.8)" />
|
|
42
42
|
</g>
|
|
43
43
|
<g>
|
|
44
44
|
<circle data-type="point" data-label="U1.5
|
|
45
|
-
x-" data-x="0.2999999999999998" data-y="2.6" cx="
|
|
45
|
+
x-" data-x="0.2999999999999998" data-y="2.6" cx="327.14285714285717" cy="171.64835164835165" r="3" fill="hsl(323, 100%, 50%, 0.8)" />
|
|
46
46
|
</g>
|
|
47
47
|
<g>
|
|
48
48
|
<circle data-type="point" data-label="U1.6
|
|
49
|
-
x-" data-x="0.2999999999999998" data-y="2.4" cx="
|
|
49
|
+
x-" data-x="0.2999999999999998" data-y="2.4" cx="327.14285714285717" cy="182.63736263736266" r="3" fill="hsl(324, 100%, 50%, 0.8)" />
|
|
50
50
|
</g>
|
|
51
51
|
<g>
|
|
52
52
|
<circle data-type="point" data-label="U1.7
|
|
53
|
-
x+" data-x="2.7" data-y="2.4" cx="
|
|
53
|
+
x+" data-x="2.7" data-y="2.4" cx="459.0109890109891" cy="182.63736263736266" r="3" fill="hsl(325, 100%, 50%, 0.8)" />
|
|
54
54
|
</g>
|
|
55
55
|
<g>
|
|
56
56
|
<circle data-type="point" data-label="U1.8
|
|
57
|
-
x+" data-x="2.7" data-y="2.8" cx="
|
|
57
|
+
x+" data-x="2.7" data-y="2.8" cx="459.0109890109891" cy="160.65934065934067" r="3" fill="hsl(326, 100%, 50%, 0.8)" />
|
|
58
58
|
</g>
|
|
59
59
|
<g>
|
|
60
60
|
<circle data-type="point" data-label="C2.1
|
|
61
|
-
x-" data-x="3.45" data-y="1.5" cx="
|
|
61
|
+
x-" data-x="3.45" data-y="1.5" cx="500.2197802197803" cy="232.08791208791212" r="3" fill="hsl(2, 100%, 50%, 0.8)" />
|
|
62
62
|
</g>
|
|
63
63
|
<g>
|
|
64
64
|
<circle data-type="point" data-label="C2.2
|
|
65
|
-
x+" data-x="4.55" data-y="1.5" cx="
|
|
65
|
+
x+" data-x="4.55" data-y="1.5" cx="560.6593406593407" cy="232.08791208791212" r="3" fill="hsl(3, 100%, 50%, 0.8)" />
|
|
66
66
|
</g>
|
|
67
67
|
<g>
|
|
68
68
|
<circle data-type="point" data-label="R1.1
|
|
69
|
-
x-" data-x="-4.550000000000001" data-y="-1.5" cx="60.
|
|
69
|
+
x-" data-x="-4.550000000000001" data-y="-1.5" cx="60.659340659340586" cy="396.92307692307696" r="3" fill="hsl(226, 100%, 50%, 0.8)" />
|
|
70
70
|
</g>
|
|
71
71
|
<g>
|
|
72
72
|
<circle data-type="point" data-label="R1.2
|
|
73
|
-
x+" data-x="-3.4499999999999997" data-y="-1.5" cx="
|
|
73
|
+
x+" data-x="-3.4499999999999997" data-y="-1.5" cx="121.09890109890108" cy="396.92307692307696" r="3" fill="hsl(227, 100%, 50%, 0.8)" />
|
|
74
74
|
</g>
|
|
75
75
|
<g>
|
|
76
76
|
<circle data-type="point" data-label="R2.1
|
|
77
|
-
x-" data-x="-2.55" data-y="-1.5" cx="
|
|
77
|
+
x-" data-x="-2.55" data-y="-1.5" cx="170.54945054945054" cy="396.92307692307696" r="3" fill="hsl(107, 100%, 50%, 0.8)" />
|
|
78
78
|
</g>
|
|
79
79
|
<g>
|
|
80
80
|
<circle data-type="point" data-label="R2.2
|
|
81
|
-
x+" data-x="-1.45" data-y="-1.5" cx="
|
|
81
|
+
x+" data-x="-1.45" data-y="-1.5" cx="230.98901098901098" cy="396.92307692307696" r="3" fill="hsl(108, 100%, 50%, 0.8)" />
|
|
82
82
|
</g>
|
|
83
83
|
<g>
|
|
84
84
|
<circle data-type="point" data-label="C1.1
|
|
85
|
-
x-" data-x="-3.55" data-y="-3" cx="
|
|
85
|
+
x-" data-x="-3.55" data-y="-3" cx="115.60439560439559" cy="479.3406593406594" r="3" fill="hsl(121, 100%, 50%, 0.8)" />
|
|
86
86
|
</g>
|
|
87
87
|
<g>
|
|
88
88
|
<circle data-type="point" data-label="C1.2
|
|
89
|
-
x+" data-x="-2.45" data-y="-3" cx="
|
|
89
|
+
x+" data-x="-2.45" data-y="-3" cx="176.04395604395603" cy="479.3406593406594" r="3" fill="hsl(122, 100%, 50%, 0.8)" />
|
|
90
90
|
</g>
|
|
91
91
|
<g>
|
|
92
92
|
<circle data-type="point" data-label="R3.1
|
|
93
|
-
x-" data-x="1.95" data-y="-1.5" cx="
|
|
93
|
+
x-" data-x="1.95" data-y="-1.5" cx="417.80219780219784" cy="396.92307692307696" r="3" fill="hsl(348, 100%, 50%, 0.8)" />
|
|
94
94
|
</g>
|
|
95
95
|
<g>
|
|
96
96
|
<circle data-type="point" data-label="R3.2
|
|
97
|
-
x+" data-x="3.05" data-y="-1.5" cx="
|
|
97
|
+
x+" data-x="3.05" data-y="-1.5" cx="478.24175824175825" cy="396.92307692307696" r="3" fill="hsl(349, 100%, 50%, 0.8)" />
|
|
98
98
|
</g>
|
|
99
99
|
<g>
|
|
100
100
|
<circle data-type="point" data-label="D1.1
|
|
101
|
-
x-" data-x="3.935" data-y="-1.5" cx="
|
|
101
|
+
x-" data-x="3.935" data-y="-1.5" cx="526.868131868132" cy="396.92307692307696" r="3" fill="hsl(32, 100%, 50%, 0.8)" />
|
|
102
102
|
</g>
|
|
103
103
|
<g>
|
|
104
104
|
<circle data-type="point" data-label="D1.2
|
|
105
|
-
x+" data-x="5.0649999999999995" data-y="-1.5" cx="
|
|
105
|
+
x+" data-x="5.0649999999999995" data-y="-1.5" cx="588.9560439560439" cy="396.92307692307696" r="3" fill="hsl(33, 100%, 50%, 0.8)" />
|
|
106
106
|
</g>
|
|
107
107
|
<g>
|
|
108
108
|
<circle data-type="point" data-label="anchorPoint
|
|
109
|
-
orientation: x-" data-x="-4.475" data-y="2.9699999999999998" cx="64.
|
|
109
|
+
orientation: x-" data-x="-4.475" data-y="2.9699999999999998" cx="64.78021978021977" cy="151.31868131868134" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
110
110
|
</g>
|
|
111
111
|
<g>
|
|
112
112
|
<circle data-type="point" data-label="anchorPoint
|
|
113
|
-
orientation: x-" data-x="-2.38" data-y="3" cx="
|
|
113
|
+
orientation: x-" data-x="-2.38" data-y="3" cx="179.89010989010987" cy="149.67032967032966" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
114
114
|
</g>
|
|
115
115
|
<g>
|
|
116
116
|
<circle data-type="point" data-label="anchorPoint
|
|
117
|
-
orientation: y-" data-x="-2.9699999999999998" data-y="
|
|
117
|
+
orientation: y-" data-x="-2.9699999999999998" data-y="3.101" cx="147.47252747252747" cy="144.12087912087912" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
118
118
|
</g>
|
|
119
119
|
<g>
|
|
120
120
|
<circle data-type="point" data-label="anchorPoint
|
|
121
|
-
orientation: y-" data-x="4.75" data-y="1.5" cx="
|
|
121
|
+
orientation: y-" data-x="4.75" data-y="1.5" cx="571.6483516483518" cy="232.08791208791212" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
122
122
|
</g>
|
|
123
123
|
<g>
|
|
124
124
|
<circle data-type="point" data-label="anchorPoint
|
|
125
|
-
orientation:
|
|
125
|
+
orientation: y-" data-x="-2.349" data-y="-3.4509999999999996" cx="181.59340659340657" cy="504.1208791208792" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
126
126
|
</g>
|
|
127
127
|
<g>
|
|
128
128
|
<circle data-type="point" data-label="anchorPoint
|
|
129
|
-
orientation:
|
|
129
|
+
orientation: y-" data-x="5.1659999999999995" data-y="-1.851" cx="594.5054945054945" cy="416.20879120879124" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
130
130
|
</g>
|
|
131
131
|
<g>
|
|
132
132
|
<circle data-type="point" data-label="anchorPoint
|
|
133
|
-
orientation:
|
|
133
|
+
orientation: y+" data-x="-1.5190000000000001" data-y="3.251" cx="227.1978021978022" cy="135.87912087912088" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
134
134
|
</g>
|
|
135
135
|
<g>
|
|
136
136
|
<circle data-type="point" data-label="anchorPoint
|
|
137
|
-
orientation:
|
|
137
|
+
orientation: y+" data-x="-3.651" data-y="1.9509999999999998" cx="110.05494505494505" cy="207.30769230769232" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
138
138
|
</g>
|
|
139
139
|
<g>
|
|
140
140
|
<circle data-type="point" data-label="anchorPoint
|
|
141
|
-
orientation: y+" data-x="0.09999999999999981" data-y="3.2" cx="
|
|
141
|
+
orientation: y+" data-x="0.09999999999999981" data-y="3.2" cx="316.15384615384613" cy="138.68131868131866" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
142
142
|
</g>
|
|
143
143
|
<g>
|
|
144
144
|
<circle data-type="point" data-label="anchorPoint
|
|
145
|
-
orientation:
|
|
145
|
+
orientation: y+" data-x="-4.651000000000001" data-y="-1.2990000000000002" cx="55.109890109890046" cy="385.87912087912093" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
146
146
|
</g>
|
|
147
147
|
<g>
|
|
148
148
|
<circle data-type="point" data-label="anchorPoint
|
|
149
|
-
orientation: x-" data-x="0.09999999999999981" data-y="2.4" cx="
|
|
149
|
+
orientation: x-" data-x="0.09999999999999981" data-y="2.4" cx="316.15384615384613" cy="182.63736263736266" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
150
150
|
</g>
|
|
151
151
|
<g>
|
|
152
152
|
<circle data-type="point" data-label="anchorPoint
|
|
153
|
-
orientation: y+" data-x="-1.25" data-y="-1.5" cx="
|
|
153
|
+
orientation: y+" data-x="-1.25" data-y="-1.5" cx="241.97802197802196" cy="396.92307692307696" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
154
154
|
</g>
|
|
155
155
|
<g>
|
|
156
156
|
<circle data-type="point" data-label="anchorPoint
|
|
157
|
-
orientation: x+" data-x="2.7" data-y="2.6" cx="
|
|
157
|
+
orientation: x+" data-x="2.7" data-y="2.6" cx="459.0109890109891" cy="171.64835164835165" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
158
158
|
</g>
|
|
159
159
|
<g>
|
|
160
160
|
<circle data-type="point" data-label="anchorPoint
|
|
161
|
-
orientation: x-" data-x="1.95" data-y="-1.5" cx="
|
|
161
|
+
orientation: x-" data-x="1.95" data-y="-1.5" cx="417.80219780219784" cy="396.92307692307696" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
162
162
|
</g>
|
|
163
163
|
<g>
|
|
164
164
|
<circle data-type="point" data-label="anchorPoint
|
|
165
|
-
orientation: x-" data-x="0.2999999999999998" data-y="2.6" cx="
|
|
165
|
+
orientation: x-" data-x="0.2999999999999998" data-y="2.6" cx="327.14285714285717" cy="171.64835164835165" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
166
166
|
</g>
|
|
167
167
|
<g>
|
|
168
168
|
<circle data-type="point" data-label="anchorPoint
|
|
169
|
-
orientation: x-" data-x="3.45" data-y="1.5" cx="
|
|
169
|
+
orientation: x-" data-x="3.45" data-y="1.5" cx="500.2197802197803" cy="232.08791208791212" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
170
170
|
</g>
|
|
171
171
|
<g>
|
|
172
172
|
<circle data-type="point" data-label="anchorPoint
|
|
173
|
-
orientation: y+" data-x="-3" data-y="-1.5" cx="
|
|
173
|
+
orientation: y+" data-x="-3" data-y="-1.5" cx="145.8241758241758" cy="396.92307692307696" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
174
174
|
</g>
|
|
175
175
|
<g>
|
|
176
176
|
<circle data-type="point" data-label="anchorPoint
|
|
177
|
-
orientation: x+" data-x="2.7" data-y="2.4" cx="
|
|
177
|
+
orientation: x+" data-x="2.7" data-y="2.4" cx="459.0109890109891" cy="182.63736263736266" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
178
178
|
</g>
|
|
179
179
|
<g>
|
|
180
180
|
<circle data-type="point" data-label="anchorPoint
|
|
181
|
-
orientation: y+" data-x="3.4924999999999997" data-y="-1.5" cx="
|
|
181
|
+
orientation: y+" data-x="3.4924999999999997" data-y="-1.5" cx="502.55494505494505" cy="396.92307692307696" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
182
182
|
</g>
|
|
183
183
|
<g>
|
|
184
|
-
<polyline data-points="-4.475,2.9699999999999998 -2.38,3" data-type="line" data-label="" points="64.
|
|
184
|
+
<polyline data-points="-4.475,2.9699999999999998 -2.38,3" data-type="line" data-label="" points="64.78021978021977,151.31868131868134 179.89010989010987,149.67032967032966" fill="none" stroke="hsl(192, 100%, 50%, 0.8)" stroke-width="1" />
|
|
185
185
|
</g>
|
|
186
186
|
<g>
|
|
187
|
-
<polyline data-points="0.2999999999999998,2.6 3.45,1.5" data-type="line" data-label="" points="
|
|
187
|
+
<polyline data-points="0.2999999999999998,2.6 3.45,1.5" data-type="line" data-label="" points="327.14285714285717,171.64835164835165 500.2197802197803,232.08791208791212" fill="none" stroke="hsl(120, 100%, 50%, 0.8)" stroke-width="1" />
|
|
188
188
|
</g>
|
|
189
189
|
<g>
|
|
190
|
-
<polyline data-points="0.2999999999999998,2.4 0.2999999999999998,2.2" data-type="line" data-label="" points="
|
|
190
|
+
<polyline data-points="0.2999999999999998,2.4 0.2999999999999998,2.2" data-type="line" data-label="" points="327.14285714285717,182.63736263736266 327.14285714285717,193.6263736263736" fill="none" stroke="hsl(192, 100%, 50%, 0.8)" stroke-width="1" />
|
|
191
191
|
</g>
|
|
192
192
|
<g>
|
|
193
|
-
<polyline data-points="3.05,-1.5 3.935,-1.5" data-type="line" data-label="" points="
|
|
193
|
+
<polyline data-points="3.05,-1.5 3.935,-1.5" data-type="line" data-label="" points="478.24175824175825,396.92307692307696 526.868131868132,396.92307692307696" fill="none" stroke="hsl(344, 100%, 50%, 0.8)" stroke-width="1" />
|
|
194
194
|
</g>
|
|
195
195
|
<g>
|
|
196
|
-
<polyline data-points="-3.525,2.9699999999999998 -2.45,1.5" data-type="line" data-label="" points="116.
|
|
196
|
+
<polyline data-points="-3.525,2.9699999999999998 -2.45,1.5" data-type="line" data-label="" points="116.97802197802196,151.31868131868134 176.04395604395603,232.08791208791212" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
197
197
|
</g>
|
|
198
198
|
<g>
|
|
199
|
-
<polyline data-points="2.7,2.2 4.55,1.5" data-type="line" data-label="" points="
|
|
199
|
+
<polyline data-points="2.7,2.2 4.55,1.5" data-type="line" data-label="" points="459.0109890109891,193.6263736263736 560.6593406593407,232.08791208791212" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
200
200
|
</g>
|
|
201
201
|
<g>
|
|
202
|
-
<polyline data-points="-1.62,3 -3.55,1.5" data-type="line" data-label="" points="
|
|
202
|
+
<polyline data-points="-1.62,3 -3.55,1.5" data-type="line" data-label="" points="221.64835164835165,149.67032967032966 115.60439560439559,232.08791208791212" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
203
203
|
</g>
|
|
204
204
|
<g>
|
|
205
|
-
<polyline data-points="0.2999999999999998,2.8 2.7,2.8" data-type="line" data-label="" points="
|
|
205
|
+
<polyline data-points="0.2999999999999998,2.8 2.7,2.8" data-type="line" data-label="" points="327.14285714285717,160.65934065934067 459.0109890109891,160.65934065934067" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
|
|
206
206
|
</g>
|
|
207
207
|
<g>
|
|
208
|
-
<polyline data-points="0.2999999999999998,2.4 0.09999999999999981,2.4 0.09999999999999981,2.2 0.2999999999999998,2.2" data-type="line" data-label="" points="
|
|
208
|
+
<polyline data-points="0.2999999999999998,2.4 0.09999999999999981,2.4 0.09999999999999981,2.2 0.2999999999999998,2.2" data-type="line" data-label="" points="327.14285714285717,182.63736263736266 316.15384615384613,182.63736263736266 316.15384615384613,193.6263736263736 327.14285714285717,193.6263736263736" fill="none" stroke="purple" stroke-width="1" />
|
|
209
209
|
</g>
|
|
210
210
|
<g>
|
|
211
|
-
<polyline data-points="-2.55,-1.5 -3.4499999999999997,-1.5" data-type="line" data-label="" points="
|
|
211
|
+
<polyline data-points="-2.55,-1.5 -3.4499999999999997,-1.5" data-type="line" data-label="" points="170.54945054945054,396.92307692307696 121.09890109890108,396.92307692307696" fill="none" stroke="purple" stroke-width="1" />
|
|
212
212
|
</g>
|
|
213
213
|
<g>
|
|
214
|
-
<polyline data-points="3.05,-1.5 3.935,-1.5" data-type="line" data-label="" points="
|
|
214
|
+
<polyline data-points="3.05,-1.5 3.935,-1.5" data-type="line" data-label="" points="478.24175824175825,396.92307692307696 526.868131868132,396.92307692307696" fill="none" stroke="purple" stroke-width="1" />
|
|
215
215
|
</g>
|
|
216
216
|
<g>
|
|
217
|
-
<polyline data-points="-1.4500000000000002,-1.5 -1.25,-1.5 -1.25,-2.25 -3.75,-2.25 -3.75,-3 -3.55,-3" data-type="line" data-label="" points="
|
|
217
|
+
<polyline data-points="-1.4500000000000002,-1.5 -1.25,-1.5 -1.25,-2.25 -3.75,-2.25 -3.75,-3 -3.55,-3" data-type="line" data-label="" points="230.98901098901098,396.92307692307696 241.97802197802196,396.92307692307696 241.97802197802196,438.1318681318682 104.61538461538458,438.1318681318682 104.61538461538458,479.3406593406594 115.60439560439559,479.3406593406594" fill="none" stroke="purple" stroke-width="1" />
|
|
218
218
|
</g>
|
|
219
219
|
<g>
|
|
220
|
-
<polyline data-points="
|
|
220
|
+
<polyline data-points="2.7,2.2 4.75,2.2 4.75,1.5 4.55,1.5" data-type="line" data-label="" points="459.0109890109891,193.6263736263736 571.6483516483518,193.6263736263736 571.6483516483518,232.08791208791212 560.6593406593407,232.08791208791212" fill="none" stroke="purple" stroke-width="1" />
|
|
221
221
|
</g>
|
|
222
222
|
<g>
|
|
223
|
-
<polyline data-points="2.
|
|
223
|
+
<polyline data-points="0.2999999999999998,2.8 0.09999999999999981,2.8 0.09999999999999981,3.2 2.9000000000000004,3.2 2.9000000000000004,2.8 2.7,2.8" data-type="line" data-label="" points="327.14285714285717,160.65934065934067 316.15384615384613,160.65934065934067 316.15384615384613,138.68131868131866 470.00000000000006,138.68131868131866 470.00000000000006,160.65934065934067 459.0109890109891,160.65934065934067" fill="none" stroke="purple" stroke-width="1" />
|
|
224
224
|
</g>
|
|
225
225
|
<g>
|
|
226
|
-
<polyline data-points="
|
|
226
|
+
<polyline data-points="-3.525,2.9699999999999998 -3.525,3.101 -2.931,3.101 -2.931,2.899 -2.45,2.899 -2.45,1.5" data-type="line" data-label="" points="116.97802197802196,151.31868131868134 116.97802197802196,144.12087912087912 149.61538461538458,144.12087912087912 149.61538461538458,155.21978021978023 176.04395604395603,155.21978021978023 176.04395604395603,232.08791208791212" fill="none" stroke="purple" stroke-width="1" />
|
|
227
227
|
</g>
|
|
228
228
|
<g>
|
|
229
|
-
<
|
|
229
|
+
<polyline data-points="-2.45,-3 -2.349,-3 -2.349,-3.4509999999999996" data-type="line" data-label="" points="176.04395604395603,479.3406593406594 181.59340659340657,479.3406593406594 181.59340659340657,504.1208791208792" fill="none" stroke="purple" stroke-width="1" />
|
|
230
230
|
</g>
|
|
231
231
|
<g>
|
|
232
|
-
<
|
|
232
|
+
<polyline data-points="5.0649999999999995,-1.5 5.1659999999999995,-1.5 5.1659999999999995,-1.851" data-type="line" data-label="" points="588.9560439560439,396.92307692307696 594.5054945054945,396.92307692307696 594.5054945054945,416.20879120879124" fill="none" stroke="purple" stroke-width="1" />
|
|
233
233
|
</g>
|
|
234
234
|
<g>
|
|
235
|
-
<
|
|
235
|
+
<polyline data-points="-1.62,3 -1.5190000000000001,3 -1.5190000000000001,3.251" data-type="line" data-label="" points="221.64835164835165,149.67032967032966 227.1978021978022,149.67032967032966 227.1978021978022,135.87912087912088" fill="none" stroke="purple" stroke-width="1" />
|
|
236
236
|
</g>
|
|
237
237
|
<g>
|
|
238
|
-
<
|
|
238
|
+
<polyline data-points="-3.55,1.5 -3.651,1.5 -3.651,1.9509999999999998" data-type="line" data-label="" points="115.60439560439559,232.08791208791212 110.05494505494505,232.08791208791212 110.05494505494505,207.30769230769232" fill="none" stroke="purple" stroke-width="1" />
|
|
239
239
|
</g>
|
|
240
240
|
<g>
|
|
241
|
-
<
|
|
241
|
+
<polyline data-points="-4.550000000000001,-1.5 -4.651000000000001,-1.5 -4.651000000000001,-1.2990000000000002" data-type="line" data-label="" points="60.659340659340586,396.92307692307696 55.109890109890046,396.92307692307696 55.109890109890046,385.87912087912093" fill="none" stroke="purple" stroke-width="1" />
|
|
242
242
|
</g>
|
|
243
243
|
<g>
|
|
244
|
-
<rect data-type="rect" data-label="
|
|
244
|
+
<rect data-type="rect" data-label="schematic_component_0" data-x="-4" data-y="3" x="64.78021978021977" y="141.7032967032967" width="52.19780219780219" height="15.934065934065927" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
245
245
|
</g>
|
|
246
246
|
<g>
|
|
247
|
-
<rect data-type="rect" data-label="
|
|
247
|
+
<rect data-type="rect" data-label="schematic_component_1" data-x="-2" data-y="3" x="179.89010989010987" y="135.93406593406593" width="41.75824175824178" height="27.472527472527474" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
248
248
|
</g>
|
|
249
249
|
<g>
|
|
250
|
-
<rect data-type="rect" data-label="
|
|
250
|
+
<rect data-type="rect" data-label="schematic_component_2" data-x="-3" data-y="1.5" x="115.60439560439559" y="209.01098901098902" width="60.43956043956044" height="46.15384615384616" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
251
251
|
</g>
|
|
252
252
|
<g>
|
|
253
|
-
<rect data-type="rect" data-label="
|
|
253
|
+
<rect data-type="rect" data-label="schematic_component_3" data-x="1.5" data-y="2.5" x="327.14285714285717" y="149.67032967032966" width="131.8681318681319" height="54.94505494505498" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
254
254
|
</g>
|
|
255
255
|
<g>
|
|
256
|
-
<rect data-type="rect" data-label="
|
|
256
|
+
<rect data-type="rect" data-label="schematic_component_4" data-x="4" data-y="1.5" x="500.2197802197803" y="209.01098901098902" width="60.43956043956041" height="46.15384615384616" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
257
|
+
</g>
|
|
258
|
+
<g>
|
|
259
|
+
<rect data-type="rect" data-label="schematic_component_5" data-x="-4" data-y="-1.5" x="60.659340659340586" y="386.2387170329671" width="60.439560439560495" height="21.36871978021975" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
260
|
+
</g>
|
|
261
|
+
<g>
|
|
262
|
+
<rect data-type="rect" data-label="schematic_component_6" data-x="-2" data-y="-1.5" x="170.54945054945054" y="386.2387170329671" width="60.43956043956044" height="21.36871978021975" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
263
|
+
</g>
|
|
264
|
+
<g>
|
|
265
|
+
<rect data-type="rect" data-label="schematic_component_7" data-x="-3" data-y="-3" x="115.60439560439559" y="456.2637362637363" width="60.43956043956044" height="46.15384615384619" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
266
|
+
</g>
|
|
267
|
+
<g>
|
|
268
|
+
<rect data-type="rect" data-label="schematic_component_8" data-x="2.5" data-y="-1.5" x="417.80219780219784" y="386.2387170329671" width="60.43956043956041" height="21.36871978021975" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
269
|
+
</g>
|
|
270
|
+
<g>
|
|
271
|
+
<rect data-type="rect" data-label="schematic_component_9" data-x="4.5" data-y="-1.5" x="526.868131868132" y="379.06593406593413" width="62.087912087911945" height="35.71428571428572" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.018199999999999997" />
|
|
257
272
|
</g>
|
|
258
273
|
<g>
|
|
259
274
|
<rect data-type="rect" data-label="netId: .B1 > .pin1 to .SW1 > .pin1
|
|
260
|
-
globalConnNetId: connectivity_net0" data-x="-4.701" data-y="2.9699999999999998" x="40" y="
|
|
275
|
+
globalConnNetId: connectivity_net0" data-x="-4.701" data-y="2.9699999999999998" x="40" y="145.82417582417582" width="24.725274725274687" height="10.989010989011007" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
261
276
|
</g>
|
|
262
277
|
<g>
|
|
263
278
|
<rect data-type="rect" data-label="netId: .B1 > .pin1 to .SW1 > .pin1
|
|
264
|
-
globalConnNetId: connectivity_net0" data-x="-2.606" data-y="3" x="
|
|
279
|
+
globalConnNetId: connectivity_net0" data-x="-2.606" data-y="3" x="155.1098901098901" y="144.17582417582418" width="24.725274725274744" height="10.989010989011007" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
265
280
|
</g>
|
|
266
281
|
<g>
|
|
267
282
|
<rect data-type="rect" data-label="netId: GND
|
|
268
|
-
globalConnNetId: connectivity_net6" data-x="-2.9699999999999998" data-y="2.
|
|
283
|
+
globalConnNetId: connectivity_net6" data-x="-2.9699999999999998" data-y="2.951" x="141.97802197802196" y="144.12087912087912" width="10.989010989011007" height="16.483516483516468" fill="#00000066" stroke="#000000" stroke-width="0.018199999999999997" />
|
|
269
284
|
</g>
|
|
270
285
|
<g>
|
|
271
286
|
<rect data-type="rect" data-label="netId: GND
|
|
272
|
-
globalConnNetId: connectivity_net6" data-x="4.75" data-y="1.35" x="
|
|
287
|
+
globalConnNetId: connectivity_net6" data-x="4.75" data-y="1.35" x="566.1538461538462" y="232.08791208791212" width="10.989010989010922" height="16.483516483516468" fill="#00000066" stroke="#000000" stroke-width="0.018199999999999997" />
|
|
273
288
|
</g>
|
|
274
289
|
<g>
|
|
275
290
|
<rect data-type="rect" data-label="netId: GND
|
|
276
|
-
globalConnNetId: connectivity_net6" data-x="-2.
|
|
291
|
+
globalConnNetId: connectivity_net6" data-x="-2.349" data-y="-3.6009999999999995" x="176.09890109890108" y="504.1208791208792" width="10.989010989010978" height="16.483516483516496" fill="#00000066" stroke="#000000" stroke-width="0.018199999999999997" />
|
|
277
292
|
</g>
|
|
278
293
|
<g>
|
|
279
294
|
<rect data-type="rect" data-label="netId: GND
|
|
280
|
-
globalConnNetId: connectivity_net6" data-x="5.
|
|
295
|
+
globalConnNetId: connectivity_net6" data-x="5.1659999999999995" data-y="-2.001" x="589.0109890109891" y="416.20879120879124" width="10.989010989010922" height="16.483516483516496" fill="#00000066" stroke="#000000" stroke-width="0.018199999999999997" />
|
|
281
296
|
</g>
|
|
282
297
|
<g>
|
|
283
298
|
<rect data-type="rect" data-label="netId: VCC
|
|
284
|
-
globalConnNetId: connectivity_net7" data-x="-1.
|
|
299
|
+
globalConnNetId: connectivity_net7" data-x="-1.5190000000000001" data-y="3.401" x="221.7032967032967" y="119.39560439560441" width="10.989010989010978" height="16.483516483516468" fill="#ef444466" stroke="#ef4444" stroke-width="0.018199999999999997" />
|
|
285
300
|
</g>
|
|
286
301
|
<g>
|
|
287
302
|
<rect data-type="rect" data-label="netId: VCC
|
|
288
|
-
globalConnNetId: connectivity_net7" data-x="-3.
|
|
303
|
+
globalConnNetId: connectivity_net7" data-x="-3.651" data-y="2.101" x="104.56043956043953" y="190.82417582417582" width="10.989010989011007" height="16.483516483516496" fill="#ef444466" stroke="#ef4444" stroke-width="0.018199999999999997" />
|
|
289
304
|
</g>
|
|
290
305
|
<g>
|
|
291
306
|
<rect data-type="rect" data-label="netId: VCC
|
|
292
|
-
globalConnNetId: connectivity_net7" data-x="0.09999999999999981" data-y="3.35" x="
|
|
307
|
+
globalConnNetId: connectivity_net7" data-x="0.09999999999999981" data-y="3.35" x="310.65934065934067" y="122.19780219780219" width="10.989010989010978" height="16.483516483516468" fill="#ef444466" stroke="#ef4444" stroke-width="0.018199999999999997" />
|
|
293
308
|
</g>
|
|
294
309
|
<g>
|
|
295
310
|
<rect data-type="rect" data-label="netId: VCC
|
|
296
|
-
globalConnNetId: connectivity_net7" data-x="-4.
|
|
311
|
+
globalConnNetId: connectivity_net7" data-x="-4.651000000000001" data-y="-1.1490000000000002" x="49.615384615384585" y="369.39560439560444" width="10.989010989010922" height="16.483516483516496" fill="#ef444466" stroke="#ef4444" stroke-width="0.018199999999999997" />
|
|
297
312
|
</g>
|
|
298
313
|
<g>
|
|
299
314
|
<rect data-type="rect" data-label="netId: .U1 > .THRES to .C1 > .pin1
|
|
300
|
-
globalConnNetId: connectivity_net2" data-x="-0.1250000000000002" data-y="2.4" x="
|
|
315
|
+
globalConnNetId: connectivity_net2" data-x="-0.1250000000000002" data-y="2.4" x="291.42857142857144" y="177.14285714285714" width="24.725274725274687" height="10.989010989011007" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
301
316
|
</g>
|
|
302
317
|
<g>
|
|
303
318
|
<rect data-type="rect" data-label="netId: .R2 > .pin2 to .U1 > .THRES
|
|
304
|
-
globalConnNetId: connectivity_net2" data-x="-1.25" data-y="-1.275" x="
|
|
319
|
+
globalConnNetId: connectivity_net2" data-x="-1.25" data-y="-1.275" x="236.4835164835165" y="372.1978021978022" width="10.989010989010978" height="24.725274725274744" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
305
320
|
</g>
|
|
306
321
|
<g>
|
|
307
322
|
<rect data-type="rect" data-label="netId: .U1 > .OUT to .R3 > .pin1
|
|
308
|
-
globalConnNetId: connectivity_net4" data-x="2.926" data-y="2.6" x="
|
|
323
|
+
globalConnNetId: connectivity_net4" data-x="2.926" data-y="2.6" x="459.06593406593413" y="166.15384615384616" width="24.725274725274744" height="10.989010989010978" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
309
324
|
</g>
|
|
310
325
|
<g>
|
|
311
326
|
<rect data-type="rect" data-label="netId: .U1 > .OUT to .R3 > .pin1
|
|
312
|
-
globalConnNetId: connectivity_net4" data-x="1.724" data-y="-1.5" x="
|
|
327
|
+
globalConnNetId: connectivity_net4" data-x="1.724" data-y="-1.5" x="393.02197802197804" y="391.42857142857144" width="24.725274725274744" height="10.989010989011035" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
313
328
|
</g>
|
|
314
329
|
<g>
|
|
315
330
|
<rect data-type="rect" data-label="netId: .U1 > .CTRL to .C2 > .pin1
|
|
316
|
-
globalConnNetId: connectivity_net1" data-x="0.07399999999999982" data-y="2.6" x="
|
|
331
|
+
globalConnNetId: connectivity_net1" data-x="0.07399999999999982" data-y="2.6" x="302.3626373626374" y="166.15384615384616" width="24.725274725274744" height="10.989010989010978" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
317
332
|
</g>
|
|
318
333
|
<g>
|
|
319
334
|
<rect data-type="rect" data-label="netId: .U1 > .CTRL to .C2 > .pin1
|
|
320
|
-
globalConnNetId: connectivity_net1" data-x="3.224" data-y="1.5" x="
|
|
335
|
+
globalConnNetId: connectivity_net1" data-x="3.224" data-y="1.5" x="475.4395604395605" y="226.5934065934066" width="24.725274725274744" height="10.989010989011007" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
321
336
|
</g>
|
|
322
337
|
<g>
|
|
323
338
|
<rect data-type="rect" data-label="netId: .U1 > .DISCH to .R2 > .pin1
|
|
324
|
-
globalConnNetId: connectivity_net3" data-x="-3" data-y="-1.275" x="
|
|
339
|
+
globalConnNetId: connectivity_net3" data-x="-3" data-y="-1.275" x="140.3296703296703" y="372.1978021978022" width="10.989010989011007" height="24.725274725274744" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
325
340
|
</g>
|
|
326
341
|
<g>
|
|
327
342
|
<rect data-type="rect" data-label="netId: .U1 > .DISCH to .R2 > .pin1
|
|
328
|
-
globalConnNetId: connectivity_net3" data-x="2.926" data-y="2.4" x="
|
|
343
|
+
globalConnNetId: connectivity_net3" data-x="2.926" data-y="2.4" x="459.06593406593413" y="177.14285714285714" width="24.725274725274744" height="10.989010989011007" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
329
344
|
</g>
|
|
330
345
|
<g>
|
|
331
346
|
<rect data-type="rect" data-label="netId: .R3 > .pin2 to .D1 > .pin1
|
|
332
|
-
globalConnNetId: connectivity_net5" data-x="3.4924999999999997" data-y="-1.275" x="
|
|
347
|
+
globalConnNetId: connectivity_net5" data-x="3.4924999999999997" data-y="-1.275" x="497.0604395604396" y="372.1978021978022" width="10.989010989011035" height="24.725274725274744" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.018199999999999997" />
|
|
333
348
|
</g>
|
|
334
349
|
<g id="crosshair" style="display: none">
|
|
335
350
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -359,12 +374,12 @@ globalConnNetId: connectivity_net5" data-x="3.4924999999999997" data-y="-1.275"
|
|
|
359
374
|
|
|
360
375
|
// Calculate real coordinates using inverse transformation
|
|
361
376
|
const matrix = {
|
|
362
|
-
"a": 54.
|
|
377
|
+
"a": 54.945054945054956,
|
|
363
378
|
"c": 0,
|
|
364
|
-
"e":
|
|
379
|
+
"e": 310.65934065934067,
|
|
365
380
|
"b": 0,
|
|
366
|
-
"d": -54.
|
|
367
|
-
"f":
|
|
381
|
+
"d": -54.945054945054956,
|
|
382
|
+
"f": 314.50549450549454
|
|
368
383
|
};
|
|
369
384
|
// Manually invert and apply the affine transform
|
|
370
385
|
// Since we only use translate and scale, we can directly compute:
|