@tscircuit/core 0.0.1243 → 0.0.1244
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.d.ts +222 -0
- package/dist/index.js +182 -63
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -83031,6 +83031,83 @@ declare const pcbTraceProps: z.ZodObject<{
|
|
|
83031
83031
|
outer_diameter?: string | number | undefined;
|
|
83032
83032
|
copper_pour_id?: string | undefined;
|
|
83033
83033
|
is_inside_copper_pour?: boolean | undefined;
|
|
83034
|
+
}>, z.ZodObject<{
|
|
83035
|
+
route_type: z.ZodLiteral<"through_pad">;
|
|
83036
|
+
start: z.ZodObject<{
|
|
83037
|
+
x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83038
|
+
y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83039
|
+
}, "strip", z.ZodTypeAny, {
|
|
83040
|
+
x: number;
|
|
83041
|
+
y: number;
|
|
83042
|
+
}, {
|
|
83043
|
+
x: string | number;
|
|
83044
|
+
y: string | number;
|
|
83045
|
+
}>;
|
|
83046
|
+
end: z.ZodObject<{
|
|
83047
|
+
x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83048
|
+
y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83049
|
+
}, "strip", z.ZodTypeAny, {
|
|
83050
|
+
x: number;
|
|
83051
|
+
y: number;
|
|
83052
|
+
}, {
|
|
83053
|
+
x: string | number;
|
|
83054
|
+
y: string | number;
|
|
83055
|
+
}>;
|
|
83056
|
+
width: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83057
|
+
start_layer: z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
|
|
83058
|
+
name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
|
|
83059
|
+
}, "strip", z.ZodTypeAny, {
|
|
83060
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83061
|
+
}, {
|
|
83062
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83063
|
+
}>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83064
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83065
|
+
}>;
|
|
83066
|
+
end_layer: z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
|
|
83067
|
+
name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
|
|
83068
|
+
}, "strip", z.ZodTypeAny, {
|
|
83069
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83070
|
+
}, {
|
|
83071
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83072
|
+
}>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83073
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83074
|
+
}>;
|
|
83075
|
+
pcb_smtpad_id: z.ZodOptional<z.ZodString>;
|
|
83076
|
+
pcb_plated_hole_id: z.ZodOptional<z.ZodString>;
|
|
83077
|
+
}, "strip", z.ZodTypeAny, {
|
|
83078
|
+
width: number;
|
|
83079
|
+
route_type: "through_pad";
|
|
83080
|
+
start: {
|
|
83081
|
+
x: number;
|
|
83082
|
+
y: number;
|
|
83083
|
+
};
|
|
83084
|
+
end: {
|
|
83085
|
+
x: number;
|
|
83086
|
+
y: number;
|
|
83087
|
+
};
|
|
83088
|
+
start_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83089
|
+
end_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83090
|
+
pcb_plated_hole_id?: string | undefined;
|
|
83091
|
+
pcb_smtpad_id?: string | undefined;
|
|
83092
|
+
}, {
|
|
83093
|
+
width: string | number;
|
|
83094
|
+
route_type: "through_pad";
|
|
83095
|
+
start: {
|
|
83096
|
+
x: string | number;
|
|
83097
|
+
y: string | number;
|
|
83098
|
+
};
|
|
83099
|
+
end: {
|
|
83100
|
+
x: string | number;
|
|
83101
|
+
y: string | number;
|
|
83102
|
+
};
|
|
83103
|
+
start_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83104
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83105
|
+
};
|
|
83106
|
+
end_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83107
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83108
|
+
};
|
|
83109
|
+
pcb_plated_hole_id?: string | undefined;
|
|
83110
|
+
pcb_smtpad_id?: string | undefined;
|
|
83034
83111
|
}>]>, "many">;
|
|
83035
83112
|
source_trace_id: z.ZodOptional<z.ZodString>;
|
|
83036
83113
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -83054,6 +83131,21 @@ declare const pcbTraceProps: z.ZodObject<{
|
|
|
83054
83131
|
outer_diameter?: number | undefined;
|
|
83055
83132
|
copper_pour_id?: string | undefined;
|
|
83056
83133
|
is_inside_copper_pour?: boolean | undefined;
|
|
83134
|
+
} | {
|
|
83135
|
+
width: number;
|
|
83136
|
+
route_type: "through_pad";
|
|
83137
|
+
start: {
|
|
83138
|
+
x: number;
|
|
83139
|
+
y: number;
|
|
83140
|
+
};
|
|
83141
|
+
end: {
|
|
83142
|
+
x: number;
|
|
83143
|
+
y: number;
|
|
83144
|
+
};
|
|
83145
|
+
start_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83146
|
+
end_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83147
|
+
pcb_plated_hole_id?: string | undefined;
|
|
83148
|
+
pcb_smtpad_id?: string | undefined;
|
|
83057
83149
|
})[];
|
|
83058
83150
|
source_trace_id?: string | undefined;
|
|
83059
83151
|
}, {
|
|
@@ -83083,6 +83175,25 @@ declare const pcbTraceProps: z.ZodObject<{
|
|
|
83083
83175
|
outer_diameter?: string | number | undefined;
|
|
83084
83176
|
copper_pour_id?: string | undefined;
|
|
83085
83177
|
is_inside_copper_pour?: boolean | undefined;
|
|
83178
|
+
} | {
|
|
83179
|
+
width: string | number;
|
|
83180
|
+
route_type: "through_pad";
|
|
83181
|
+
start: {
|
|
83182
|
+
x: string | number;
|
|
83183
|
+
y: string | number;
|
|
83184
|
+
};
|
|
83185
|
+
end: {
|
|
83186
|
+
x: string | number;
|
|
83187
|
+
y: string | number;
|
|
83188
|
+
};
|
|
83189
|
+
start_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83190
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83191
|
+
};
|
|
83192
|
+
end_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83193
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83194
|
+
};
|
|
83195
|
+
pcb_plated_hole_id?: string | undefined;
|
|
83196
|
+
pcb_smtpad_id?: string | undefined;
|
|
83086
83197
|
})[];
|
|
83087
83198
|
source_trace_id?: string | undefined;
|
|
83088
83199
|
}>;
|
|
@@ -83182,6 +83293,83 @@ declare class PcbTrace extends PrimitiveComponent<typeof pcbTraceProps> {
|
|
|
83182
83293
|
outer_diameter?: string | number | undefined;
|
|
83183
83294
|
copper_pour_id?: string | undefined;
|
|
83184
83295
|
is_inside_copper_pour?: boolean | undefined;
|
|
83296
|
+
}>, z.ZodObject<{
|
|
83297
|
+
route_type: z.ZodLiteral<"through_pad">;
|
|
83298
|
+
start: z.ZodObject<{
|
|
83299
|
+
x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83300
|
+
y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83301
|
+
}, "strip", z.ZodTypeAny, {
|
|
83302
|
+
x: number;
|
|
83303
|
+
y: number;
|
|
83304
|
+
}, {
|
|
83305
|
+
x: string | number;
|
|
83306
|
+
y: string | number;
|
|
83307
|
+
}>;
|
|
83308
|
+
end: z.ZodObject<{
|
|
83309
|
+
x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83310
|
+
y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83311
|
+
}, "strip", z.ZodTypeAny, {
|
|
83312
|
+
x: number;
|
|
83313
|
+
y: number;
|
|
83314
|
+
}, {
|
|
83315
|
+
x: string | number;
|
|
83316
|
+
y: string | number;
|
|
83317
|
+
}>;
|
|
83318
|
+
width: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
83319
|
+
start_layer: z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
|
|
83320
|
+
name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
|
|
83321
|
+
}, "strip", z.ZodTypeAny, {
|
|
83322
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83323
|
+
}, {
|
|
83324
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83325
|
+
}>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83326
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83327
|
+
}>;
|
|
83328
|
+
end_layer: z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
|
|
83329
|
+
name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
|
|
83330
|
+
}, "strip", z.ZodTypeAny, {
|
|
83331
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83332
|
+
}, {
|
|
83333
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83334
|
+
}>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83335
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83336
|
+
}>;
|
|
83337
|
+
pcb_smtpad_id: z.ZodOptional<z.ZodString>;
|
|
83338
|
+
pcb_plated_hole_id: z.ZodOptional<z.ZodString>;
|
|
83339
|
+
}, "strip", z.ZodTypeAny, {
|
|
83340
|
+
width: number;
|
|
83341
|
+
route_type: "through_pad";
|
|
83342
|
+
start: {
|
|
83343
|
+
x: number;
|
|
83344
|
+
y: number;
|
|
83345
|
+
};
|
|
83346
|
+
end: {
|
|
83347
|
+
x: number;
|
|
83348
|
+
y: number;
|
|
83349
|
+
};
|
|
83350
|
+
start_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83351
|
+
end_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83352
|
+
pcb_plated_hole_id?: string | undefined;
|
|
83353
|
+
pcb_smtpad_id?: string | undefined;
|
|
83354
|
+
}, {
|
|
83355
|
+
width: string | number;
|
|
83356
|
+
route_type: "through_pad";
|
|
83357
|
+
start: {
|
|
83358
|
+
x: string | number;
|
|
83359
|
+
y: string | number;
|
|
83360
|
+
};
|
|
83361
|
+
end: {
|
|
83362
|
+
x: string | number;
|
|
83363
|
+
y: string | number;
|
|
83364
|
+
};
|
|
83365
|
+
start_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83366
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83367
|
+
};
|
|
83368
|
+
end_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83369
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83370
|
+
};
|
|
83371
|
+
pcb_plated_hole_id?: string | undefined;
|
|
83372
|
+
pcb_smtpad_id?: string | undefined;
|
|
83185
83373
|
}>]>, "many">;
|
|
83186
83374
|
source_trace_id: z.ZodOptional<z.ZodString>;
|
|
83187
83375
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -83205,6 +83393,21 @@ declare class PcbTrace extends PrimitiveComponent<typeof pcbTraceProps> {
|
|
|
83205
83393
|
outer_diameter?: number | undefined;
|
|
83206
83394
|
copper_pour_id?: string | undefined;
|
|
83207
83395
|
is_inside_copper_pour?: boolean | undefined;
|
|
83396
|
+
} | {
|
|
83397
|
+
width: number;
|
|
83398
|
+
route_type: "through_pad";
|
|
83399
|
+
start: {
|
|
83400
|
+
x: number;
|
|
83401
|
+
y: number;
|
|
83402
|
+
};
|
|
83403
|
+
end: {
|
|
83404
|
+
x: number;
|
|
83405
|
+
y: number;
|
|
83406
|
+
};
|
|
83407
|
+
start_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83408
|
+
end_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83409
|
+
pcb_plated_hole_id?: string | undefined;
|
|
83410
|
+
pcb_smtpad_id?: string | undefined;
|
|
83208
83411
|
})[];
|
|
83209
83412
|
source_trace_id?: string | undefined;
|
|
83210
83413
|
}, {
|
|
@@ -83234,6 +83437,25 @@ declare class PcbTrace extends PrimitiveComponent<typeof pcbTraceProps> {
|
|
|
83234
83437
|
outer_diameter?: string | number | undefined;
|
|
83235
83438
|
copper_pour_id?: string | undefined;
|
|
83236
83439
|
is_inside_copper_pour?: boolean | undefined;
|
|
83440
|
+
} | {
|
|
83441
|
+
width: string | number;
|
|
83442
|
+
route_type: "through_pad";
|
|
83443
|
+
start: {
|
|
83444
|
+
x: string | number;
|
|
83445
|
+
y: string | number;
|
|
83446
|
+
};
|
|
83447
|
+
end: {
|
|
83448
|
+
x: string | number;
|
|
83449
|
+
y: string | number;
|
|
83450
|
+
};
|
|
83451
|
+
start_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83452
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83453
|
+
};
|
|
83454
|
+
end_layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
83455
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
83456
|
+
};
|
|
83457
|
+
pcb_plated_hole_id?: string | undefined;
|
|
83458
|
+
pcb_smtpad_id?: string | undefined;
|
|
83237
83459
|
})[];
|
|
83238
83460
|
source_trace_id?: string | undefined;
|
|
83239
83461
|
}>;
|
package/dist/index.js
CHANGED
|
@@ -233,9 +233,21 @@ function getDominantDirection(edge) {
|
|
|
233
233
|
return delta.y > 0 ? "down" : "up";
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
+
// lib/utils/pcb-trace-route-point-utils.ts
|
|
237
|
+
var getRoutePointPosition = (point6) => {
|
|
238
|
+
if (point6.route_type === "through_pad") return point6.start;
|
|
239
|
+
return { x: point6.x, y: point6.y };
|
|
240
|
+
};
|
|
241
|
+
var getRoutePointPositions = (point6) => {
|
|
242
|
+
if (point6.route_type === "through_pad") return [point6.start, point6.end];
|
|
243
|
+
return [{ x: point6.x, y: point6.y }];
|
|
244
|
+
};
|
|
245
|
+
|
|
236
246
|
// lib/utils/autorouting/mergeRoutes.ts
|
|
237
247
|
function pdist(a, b) {
|
|
238
|
-
|
|
248
|
+
const aPosition = getRoutePointPosition(a);
|
|
249
|
+
const bPosition = getRoutePointPosition(b);
|
|
250
|
+
return Math.hypot(aPosition.x - bPosition.x, aPosition.y - bPosition.y);
|
|
239
251
|
}
|
|
240
252
|
var mergeRoutes = (routes) => {
|
|
241
253
|
if (routes.length === 1) return routes[0];
|
|
@@ -2578,8 +2590,10 @@ var isRouteOutsideBoard = ({
|
|
|
2578
2590
|
const pcbBoard = db.pcb_board.get(pcbBoardId);
|
|
2579
2591
|
if (!pcbBoard) return false;
|
|
2580
2592
|
const boardOutlinePolygon = getPcbBoardOutlinePolygon(pcbBoard);
|
|
2581
|
-
return !mergedRoute.
|
|
2582
|
-
(
|
|
2593
|
+
return !mergedRoute.flatMap(getRoutePointPositions).every(
|
|
2594
|
+
(routePointPosition) => boardOutlinePolygon.contains(
|
|
2595
|
+
point2(routePointPosition.x, routePointPosition.y)
|
|
2596
|
+
)
|
|
2583
2597
|
);
|
|
2584
2598
|
};
|
|
2585
2599
|
|
|
@@ -3015,11 +3029,29 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
|
|
|
3015
3029
|
}
|
|
3016
3030
|
} else if (element.type === "pcb_trace") {
|
|
3017
3031
|
const traceObstacles = getObstaclesFromRoute(
|
|
3018
|
-
element.route.
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3032
|
+
element.route.flatMap((rp) => {
|
|
3033
|
+
if (rp.route_type === "through_pad") {
|
|
3034
|
+
return [
|
|
3035
|
+
{
|
|
3036
|
+
x: rp.start.x,
|
|
3037
|
+
y: rp.start.y,
|
|
3038
|
+
layer: rp.start_layer
|
|
3039
|
+
},
|
|
3040
|
+
{
|
|
3041
|
+
x: rp.end.x,
|
|
3042
|
+
y: rp.end.y,
|
|
3043
|
+
layer: rp.end_layer
|
|
3044
|
+
}
|
|
3045
|
+
];
|
|
3046
|
+
}
|
|
3047
|
+
return [
|
|
3048
|
+
{
|
|
3049
|
+
x: rp.x,
|
|
3050
|
+
y: rp.y,
|
|
3051
|
+
layer: rp.route_type === "wire" ? rp.layer : rp.from_layer
|
|
3052
|
+
}
|
|
3053
|
+
];
|
|
3054
|
+
}),
|
|
3023
3055
|
element.source_trace_id
|
|
3024
3056
|
);
|
|
3025
3057
|
obstacles.push(...traceObstacles);
|
|
@@ -3945,8 +3977,10 @@ function getTraceLength(route) {
|
|
|
3945
3977
|
if (point6.route_type === "wire") {
|
|
3946
3978
|
const nextPoint = route[i + 1];
|
|
3947
3979
|
if (nextPoint) {
|
|
3948
|
-
const
|
|
3949
|
-
const
|
|
3980
|
+
const nextPosition = getRoutePointPosition(nextPoint);
|
|
3981
|
+
const position = getRoutePointPosition(point6);
|
|
3982
|
+
const dx = nextPosition.x - position.x;
|
|
3983
|
+
const dy = nextPosition.y - position.y;
|
|
3950
3984
|
totalLength += Math.sqrt(dx * dx + dy * dy);
|
|
3951
3985
|
}
|
|
3952
3986
|
} else if (point6.route_type === "via") {
|
|
@@ -4631,16 +4665,32 @@ function Trace_doInitialPcbManualTraceRender(trace) {
|
|
|
4631
4665
|
const { maybeFlipLayer } = trace._getPcbPrimitiveFlippedHelpers();
|
|
4632
4666
|
const transform2 = trace._computePcbGlobalTransformBeforeLayout();
|
|
4633
4667
|
const transformedRoute = inflatedPcbTrace.route.map((point6) => {
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4668
|
+
if (point6.route_type === "wire") {
|
|
4669
|
+
const { x, y, ...restOfPoint } = point6;
|
|
4670
|
+
const transformedPoint = applyToPoint2(transform2, { x, y });
|
|
4637
4671
|
return {
|
|
4638
|
-
...transformedPoint,
|
|
4639
4672
|
...restOfPoint,
|
|
4673
|
+
...transformedPoint,
|
|
4640
4674
|
layer: maybeFlipLayer(point6.layer)
|
|
4641
4675
|
};
|
|
4642
4676
|
}
|
|
4643
|
-
|
|
4677
|
+
if (point6.route_type === "via") {
|
|
4678
|
+
const { x, y, ...restOfPoint } = point6;
|
|
4679
|
+
const transformedPoint = applyToPoint2(transform2, { x, y });
|
|
4680
|
+
return {
|
|
4681
|
+
...restOfPoint,
|
|
4682
|
+
...transformedPoint,
|
|
4683
|
+
from_layer: maybeFlipLayer(point6.from_layer),
|
|
4684
|
+
to_layer: maybeFlipLayer(point6.to_layer)
|
|
4685
|
+
};
|
|
4686
|
+
}
|
|
4687
|
+
return {
|
|
4688
|
+
...point6,
|
|
4689
|
+
start: applyToPoint2(transform2, point6.start),
|
|
4690
|
+
end: applyToPoint2(transform2, point6.end),
|
|
4691
|
+
start_layer: maybeFlipLayer(point6.start_layer),
|
|
4692
|
+
end_layer: maybeFlipLayer(point6.end_layer)
|
|
4693
|
+
};
|
|
4644
4694
|
});
|
|
4645
4695
|
const pcb_trace2 = db.pcb_trace.insert({
|
|
4646
4696
|
...inflatedPcbTrace,
|
|
@@ -6906,16 +6956,32 @@ var PcbTrace = class extends PrimitiveComponent2 {
|
|
|
6906
6956
|
const { maybeFlipLayer } = this._getPcbPrimitiveFlippedHelpers();
|
|
6907
6957
|
const parentTransform = this._computePcbGlobalTransformBeforeLayout();
|
|
6908
6958
|
const transformedRoute = props.route.map((point6) => {
|
|
6909
|
-
|
|
6910
|
-
|
|
6911
|
-
|
|
6959
|
+
if (point6.route_type === "wire") {
|
|
6960
|
+
const { x, y, ...restOfPoint } = point6;
|
|
6961
|
+
const transformedPoint = applyToPoint11(parentTransform, { x, y });
|
|
6912
6962
|
return {
|
|
6913
|
-
...transformedPoint,
|
|
6914
6963
|
...restOfPoint,
|
|
6964
|
+
...transformedPoint,
|
|
6915
6965
|
layer: maybeFlipLayer(point6.layer)
|
|
6916
6966
|
};
|
|
6917
6967
|
}
|
|
6918
|
-
|
|
6968
|
+
if (point6.route_type === "via") {
|
|
6969
|
+
const { x, y, ...restOfPoint } = point6;
|
|
6970
|
+
const transformedPoint = applyToPoint11(parentTransform, { x, y });
|
|
6971
|
+
return {
|
|
6972
|
+
...restOfPoint,
|
|
6973
|
+
...transformedPoint,
|
|
6974
|
+
from_layer: maybeFlipLayer(point6.from_layer),
|
|
6975
|
+
to_layer: maybeFlipLayer(point6.to_layer)
|
|
6976
|
+
};
|
|
6977
|
+
}
|
|
6978
|
+
return {
|
|
6979
|
+
...point6,
|
|
6980
|
+
start: applyToPoint11(parentTransform, point6.start),
|
|
6981
|
+
end: applyToPoint11(parentTransform, point6.end),
|
|
6982
|
+
start_layer: maybeFlipLayer(point6.start_layer),
|
|
6983
|
+
end_layer: maybeFlipLayer(point6.end_layer)
|
|
6984
|
+
};
|
|
6919
6985
|
});
|
|
6920
6986
|
const pcb_trace = db.pcb_trace.insert({
|
|
6921
6987
|
pcb_component_id: container.pcb_component_id,
|
|
@@ -6933,15 +6999,43 @@ var PcbTrace = class extends PrimitiveComponent2 {
|
|
|
6933
6999
|
}
|
|
6934
7000
|
let minX = Infinity, maxX = -Infinity, minY = Infinity, maxY = -Infinity;
|
|
6935
7001
|
for (const point6 of props.route) {
|
|
6936
|
-
|
|
6937
|
-
|
|
6938
|
-
|
|
6939
|
-
|
|
7002
|
+
if (point6.route_type === "through_pad") {
|
|
7003
|
+
minX = Math.min(minX, point6.start.x, point6.end.x);
|
|
7004
|
+
maxX = Math.max(maxX, point6.start.x, point6.end.x);
|
|
7005
|
+
minY = Math.min(minY, point6.start.y, point6.end.y);
|
|
7006
|
+
maxY = Math.max(maxY, point6.start.y, point6.end.y);
|
|
7007
|
+
} else {
|
|
7008
|
+
minX = Math.min(minX, point6.x);
|
|
7009
|
+
maxX = Math.max(maxX, point6.x);
|
|
7010
|
+
minY = Math.min(minY, point6.y);
|
|
7011
|
+
maxY = Math.max(maxY, point6.y);
|
|
7012
|
+
}
|
|
6940
7013
|
if (point6.route_type === "wire") {
|
|
6941
7014
|
minX = Math.min(minX, point6.x - point6.width / 2);
|
|
6942
7015
|
maxX = Math.max(maxX, point6.x + point6.width / 2);
|
|
6943
7016
|
minY = Math.min(minY, point6.y - point6.width / 2);
|
|
6944
7017
|
maxY = Math.max(maxY, point6.y + point6.width / 2);
|
|
7018
|
+
} else if (point6.route_type === "through_pad") {
|
|
7019
|
+
minX = Math.min(
|
|
7020
|
+
minX,
|
|
7021
|
+
point6.start.x - point6.width / 2,
|
|
7022
|
+
point6.end.x - point6.width / 2
|
|
7023
|
+
);
|
|
7024
|
+
maxX = Math.max(
|
|
7025
|
+
maxX,
|
|
7026
|
+
point6.start.x + point6.width / 2,
|
|
7027
|
+
point6.end.x + point6.width / 2
|
|
7028
|
+
);
|
|
7029
|
+
minY = Math.min(
|
|
7030
|
+
minY,
|
|
7031
|
+
point6.start.y - point6.width / 2,
|
|
7032
|
+
point6.end.y - point6.width / 2
|
|
7033
|
+
);
|
|
7034
|
+
maxY = Math.max(
|
|
7035
|
+
maxY,
|
|
7036
|
+
point6.start.y + point6.width / 2,
|
|
7037
|
+
point6.end.y + point6.width / 2
|
|
7038
|
+
);
|
|
6945
7039
|
}
|
|
6946
7040
|
}
|
|
6947
7041
|
if (minX === Infinity || maxX === -Infinity || minY === Infinity || maxY === -Infinity) {
|
|
@@ -7793,7 +7887,7 @@ var SilkscreenRect = class extends PrimitiveComponent2 {
|
|
|
7793
7887
|
import { silkscreenTextProps } from "@tscircuit/props";
|
|
7794
7888
|
import {
|
|
7795
7889
|
applyToPoint as applyToPoint14,
|
|
7796
|
-
compose as
|
|
7890
|
+
compose as compose2,
|
|
7797
7891
|
decomposeTSR as decomposeTSR5,
|
|
7798
7892
|
flipY as flipY2,
|
|
7799
7893
|
identity as identity4
|
|
@@ -7850,7 +7944,7 @@ var SilkscreenText = class extends PrimitiveComponent2 {
|
|
|
7850
7944
|
const fontSize = props.fontSize ?? resolvedPcbSxFontSize ?? this.getInheritedProperty("pcbStyle")?.silkscreenFontSize ?? this._footprinterFontSize ?? 1;
|
|
7851
7945
|
const hasResolvedPcbSxPosition = resolvedPcbSxPcbX !== void 0 || resolvedPcbSxPcbY !== void 0;
|
|
7852
7946
|
const position = hasResolvedPcbSxPosition && this._footprinterFontSize !== void 0 ? applyToPoint14(
|
|
7853
|
-
|
|
7947
|
+
compose2(
|
|
7854
7948
|
this.parent?._computePcbGlobalTransformBeforeLayout() ?? identity4(),
|
|
7855
7949
|
isFlipped ? flipY2() : identity4()
|
|
7856
7950
|
),
|
|
@@ -9003,7 +9097,7 @@ var SCHEMATIC_COMPONENT_OUTLINE_STROKE_WIDTH = 0.12;
|
|
|
9003
9097
|
|
|
9004
9098
|
// lib/components/primitive-components/Port/Port.ts
|
|
9005
9099
|
import "schematic-symbols";
|
|
9006
|
-
import { applyToPoint as applyToPoint16, compose as
|
|
9100
|
+
import { applyToPoint as applyToPoint16, compose as compose3, translate as translate2 } from "transformation-matrix";
|
|
9007
9101
|
import "zod";
|
|
9008
9102
|
|
|
9009
9103
|
// lib/components/primitive-components/Port/getCenterOfPcbPrimitives.ts
|
|
@@ -9250,9 +9344,9 @@ var Port = class extends PrimitiveComponent2 {
|
|
|
9250
9344
|
);
|
|
9251
9345
|
}
|
|
9252
9346
|
}
|
|
9253
|
-
const transform =
|
|
9347
|
+
const transform = compose3(
|
|
9254
9348
|
parentNormalComponent.computeSchematicGlobalTransform(),
|
|
9255
|
-
|
|
9349
|
+
translate2(-symbol.center.x, -symbol.center.y)
|
|
9256
9350
|
);
|
|
9257
9351
|
return applyToPoint16(transform, schematicSymbolPortDef);
|
|
9258
9352
|
}
|
|
@@ -12457,7 +12551,6 @@ var NormalComponent3 = class extends PrimitiveComponent2 {
|
|
|
12457
12551
|
const cadModel = cadModelProp2 === void 0 ? this._asyncFootprintCadModel : cadModelProp2;
|
|
12458
12552
|
const footprint = this.getFootprinterString() ?? this._getImpliedFootprintString();
|
|
12459
12553
|
if (!this.pcb_component_id) return;
|
|
12460
|
-
if (!cadModel && !footprint) return;
|
|
12461
12554
|
if (cadModel === null) return;
|
|
12462
12555
|
const bounds = this._getPcbCircuitJsonBounds();
|
|
12463
12556
|
if (typeof cadModel === "string") {
|
|
@@ -12486,6 +12579,28 @@ var NormalComponent3 = class extends PrimitiveComponent2 {
|
|
|
12486
12579
|
const preLayoutRotation = decomposedTransform.rotation.angle * 180 / Math.PI;
|
|
12487
12580
|
const totalRotation = pcbComponent?.position_mode === "packed" ? pcbComponent.rotation ?? preLayoutRotation : preLayoutRotation;
|
|
12488
12581
|
const isBottomLayer = computedLayer === "bottom";
|
|
12582
|
+
if (!cadModel && !footprint) {
|
|
12583
|
+
const cad_component = db.cad_component.insert({
|
|
12584
|
+
position: {
|
|
12585
|
+
x: bounds.center.x,
|
|
12586
|
+
y: bounds.center.y,
|
|
12587
|
+
z: computedLayer === "bottom" ? -boardThickness / 2 : boardThickness / 2
|
|
12588
|
+
},
|
|
12589
|
+
rotation: {
|
|
12590
|
+
x: 0,
|
|
12591
|
+
y: isBottomLayer ? 180 : 0,
|
|
12592
|
+
z: normalizeDegrees2(isBottomLayer ? -totalRotation : totalRotation)
|
|
12593
|
+
},
|
|
12594
|
+
pcb_component_id: this.pcb_component_id,
|
|
12595
|
+
source_component_id: this.source_component_id,
|
|
12596
|
+
model_origin_alignment: "center_of_component_on_board_surface",
|
|
12597
|
+
anchor_alignment: "center_of_component_on_board_surface",
|
|
12598
|
+
show_as_bounding_box: true,
|
|
12599
|
+
show_as_translucent_model: this._parsedProps.showAsTranslucentModel
|
|
12600
|
+
});
|
|
12601
|
+
this.cad_component_id = cad_component.cad_component_id;
|
|
12602
|
+
return;
|
|
12603
|
+
}
|
|
12489
12604
|
const rotationWithOffset = totalRotation + (rotationOffset.z ?? 0);
|
|
12490
12605
|
const cadRotationZ = normalizeDegrees2(rotationWithOffset);
|
|
12491
12606
|
const cad_model = db.cad_component.insert({
|
|
@@ -12797,7 +12912,7 @@ import {
|
|
|
12797
12912
|
} from "@tscircuit/checks";
|
|
12798
12913
|
import { getBoundsFromPoints as getBoundsFromPoints5 } from "@tscircuit/math-utils";
|
|
12799
12914
|
import { boardProps } from "@tscircuit/props";
|
|
12800
|
-
import { compose as
|
|
12915
|
+
import { compose as compose6, translate as translate6 } from "transformation-matrix";
|
|
12801
12916
|
|
|
12802
12917
|
// lib/utils/autorouting/getAncestorSubcircuitIds.ts
|
|
12803
12918
|
var getDescendantSubcircuitIds = (db, root_subcircuit_id) => {
|
|
@@ -12976,7 +13091,7 @@ var Capacitor = class extends NormalComponent3 {
|
|
|
12976
13091
|
|
|
12977
13092
|
// lib/utils/extractPcbPrimitivesFromCircuitJson.ts
|
|
12978
13093
|
import { transformPCBElements } from "@tscircuit/circuit-json-util";
|
|
12979
|
-
import { compose as
|
|
13094
|
+
import { compose as compose4, inverse, rotate as rotate2, translate as translate3 } from "transformation-matrix";
|
|
12980
13095
|
var extractPcbPrimitivesFromCircuitJson = ({
|
|
12981
13096
|
pcbComponent,
|
|
12982
13097
|
db,
|
|
@@ -12985,8 +13100,8 @@ var extractPcbPrimitivesFromCircuitJson = ({
|
|
|
12985
13100
|
const componentCenter = pcbComponent.center || { x: 0, y: 0 };
|
|
12986
13101
|
const componentRotation = pcbComponent.rotation || 0;
|
|
12987
13102
|
const absoluteToComponentRelativeTransform = inverse(
|
|
12988
|
-
|
|
12989
|
-
|
|
13103
|
+
compose4(
|
|
13104
|
+
translate3(componentCenter.x, componentCenter.y),
|
|
12990
13105
|
rotate2(componentRotation * Math.PI / 180)
|
|
12991
13106
|
)
|
|
12992
13107
|
);
|
|
@@ -13960,7 +14075,7 @@ var applyEditEventsToManualEditsFile = ({
|
|
|
13960
14075
|
|
|
13961
14076
|
// lib/utils/edit-events/apply-edit-events-to-circuit-json.ts
|
|
13962
14077
|
import { transformPCBElement } from "@tscircuit/circuit-json-util";
|
|
13963
|
-
import { translate as
|
|
14078
|
+
import { translate as translate4 } from "transformation-matrix";
|
|
13964
14079
|
|
|
13965
14080
|
// lib/utils/edit-events/apply-trace-hint-edit-event.ts
|
|
13966
14081
|
import { su as su3 } from "@tscircuit/circuit-json-util";
|
|
@@ -14005,7 +14120,7 @@ var applyEditEvents = ({
|
|
|
14005
14120
|
);
|
|
14006
14121
|
const needsMovement = !component || component.center.x !== editEvent.new_center.x || component.center.y !== editEvent.new_center.y;
|
|
14007
14122
|
if (needsMovement && editEvent.original_center) {
|
|
14008
|
-
const mat =
|
|
14123
|
+
const mat = translate4(
|
|
14009
14124
|
editEvent.new_center.x - editEvent.original_center.x,
|
|
14010
14125
|
editEvent.new_center.y - editEvent.original_center.y
|
|
14011
14126
|
);
|
|
@@ -15716,7 +15831,7 @@ var applyComponentConstraintClusters = (group, packInput) => {
|
|
|
15716
15831
|
};
|
|
15717
15832
|
|
|
15718
15833
|
// lib/components/primitive-components/Group/Group_doInitialPcbLayoutPack/applyPackOutput.ts
|
|
15719
|
-
import { translate as
|
|
15834
|
+
import { translate as translate5, rotate as rotate3, compose as compose5 } from "transformation-matrix";
|
|
15720
15835
|
import {
|
|
15721
15836
|
transformPCBElements as transformPCBElements2
|
|
15722
15837
|
} from "@tscircuit/circuit-json-util";
|
|
@@ -15771,11 +15886,11 @@ var applyPackOutput = (group, packOutput, clusterMap) => {
|
|
|
15771
15886
|
const member = db.pcb_component.get(memberId);
|
|
15772
15887
|
if (!member) continue;
|
|
15773
15888
|
const originalCenter2 = member.center;
|
|
15774
|
-
const transformMatrix2 =
|
|
15889
|
+
const transformMatrix2 = compose5(
|
|
15775
15890
|
group._computePcbGlobalTransformBeforeLayout(),
|
|
15776
|
-
|
|
15891
|
+
translate5(center.x + rotatedRel.x, center.y + rotatedRel.y),
|
|
15777
15892
|
rotate3(angleRad),
|
|
15778
|
-
|
|
15893
|
+
translate5(-originalCenter2.x, -originalCenter2.y)
|
|
15779
15894
|
);
|
|
15780
15895
|
const related = db.toArray().filter(
|
|
15781
15896
|
(elm) => "pcb_component_id" in elm && elm.pcb_component_id === memberId
|
|
@@ -15805,11 +15920,11 @@ var applyPackOutput = (group, packOutput, clusterMap) => {
|
|
|
15805
15920
|
}
|
|
15806
15921
|
const originalCenter2 = pcbComponent.center;
|
|
15807
15922
|
const rotationDegrees2 = ccwRotationDegrees ?? ccwRotationOffset ?? 0;
|
|
15808
|
-
const transformMatrix2 =
|
|
15923
|
+
const transformMatrix2 = compose5(
|
|
15809
15924
|
group._computePcbGlobalTransformBeforeLayout(),
|
|
15810
|
-
|
|
15925
|
+
translate5(center.x, center.y),
|
|
15811
15926
|
rotate3(rotationDegrees2 * Math.PI / 180),
|
|
15812
|
-
|
|
15927
|
+
translate5(-originalCenter2.x, -originalCenter2.y)
|
|
15813
15928
|
);
|
|
15814
15929
|
const related = db.toArray().filter(
|
|
15815
15930
|
(elm) => "pcb_component_id" in elm && elm.pcb_component_id === componentId
|
|
@@ -15827,11 +15942,11 @@ var applyPackOutput = (group, packOutput, clusterMap) => {
|
|
|
15827
15942
|
if (!pcbGroup) continue;
|
|
15828
15943
|
const originalCenter = pcbGroup.center;
|
|
15829
15944
|
const rotationDegrees = ccwRotationDegrees ?? ccwRotationOffset ?? 0;
|
|
15830
|
-
const transformMatrix =
|
|
15945
|
+
const transformMatrix = compose5(
|
|
15831
15946
|
group._computePcbGlobalTransformBeforeLayout(),
|
|
15832
|
-
|
|
15947
|
+
translate5(center.x, center.y),
|
|
15833
15948
|
rotate3(rotationDegrees * Math.PI / 180),
|
|
15834
|
-
|
|
15949
|
+
translate5(-originalCenter.x, -originalCenter.y)
|
|
15835
15950
|
);
|
|
15836
15951
|
const relatedElements = db.toArray().filter((elm) => {
|
|
15837
15952
|
if ("source_group_id" in elm && elm.source_group_id) {
|
|
@@ -20778,8 +20893,11 @@ function pcbTraceRouteToPcbPath(route) {
|
|
|
20778
20893
|
const firstPoint = route[0];
|
|
20779
20894
|
const lastPoint = route[route.length - 1];
|
|
20780
20895
|
return route.slice(1, -1).filter((point6) => {
|
|
20781
|
-
const
|
|
20782
|
-
const
|
|
20896
|
+
const position = getRoutePointPosition(point6);
|
|
20897
|
+
const firstPosition = getRoutePointPosition(firstPoint);
|
|
20898
|
+
const lastPosition = getRoutePointPosition(lastPoint);
|
|
20899
|
+
const isSameAsFirst = position.x === firstPosition.x && position.y === firstPosition.y;
|
|
20900
|
+
const isSameAsLast = position.x === lastPosition.x && position.y === lastPosition.y;
|
|
20783
20901
|
return !isSameAsFirst && !isSameAsLast;
|
|
20784
20902
|
}).map((point6) => {
|
|
20785
20903
|
if (point6.route_type === "via") {
|
|
@@ -20791,7 +20909,8 @@ function pcbTraceRouteToPcbPath(route) {
|
|
|
20791
20909
|
toLayer: point6.to_layer
|
|
20792
20910
|
};
|
|
20793
20911
|
}
|
|
20794
|
-
|
|
20912
|
+
const position = getRoutePointPosition(point6);
|
|
20913
|
+
return { x: position.x, y: position.y };
|
|
20795
20914
|
});
|
|
20796
20915
|
}
|
|
20797
20916
|
|
|
@@ -21098,7 +21217,7 @@ import { identity as identity5 } from "transformation-matrix";
|
|
|
21098
21217
|
var package_default = {
|
|
21099
21218
|
name: "@tscircuit/core",
|
|
21100
21219
|
type: "module",
|
|
21101
|
-
version: "0.0.
|
|
21220
|
+
version: "0.0.1243",
|
|
21102
21221
|
types: "dist/index.d.ts",
|
|
21103
21222
|
main: "dist/index.js",
|
|
21104
21223
|
module: "dist/index.js",
|
|
@@ -21158,7 +21277,7 @@ var package_default = {
|
|
|
21158
21277
|
"bun-match-svg": "0.0.12",
|
|
21159
21278
|
"calculate-elbow": "^0.0.12",
|
|
21160
21279
|
"chokidar-cli": "^3.0.0",
|
|
21161
|
-
"circuit-json": "^0.0.
|
|
21280
|
+
"circuit-json": "^0.0.425",
|
|
21162
21281
|
"circuit-json-to-bpc": "^0.0.13",
|
|
21163
21282
|
"circuit-json-to-connectivity-map": "^0.0.23",
|
|
21164
21283
|
"circuit-json-to-gltf": "^0.0.96",
|
|
@@ -21750,9 +21869,9 @@ var Board = class extends Group6 {
|
|
|
21750
21869
|
_computePcbGlobalTransformBeforeLayout() {
|
|
21751
21870
|
if (this._panelPositionOffset) {
|
|
21752
21871
|
const parentTransform = this.parent?._computePcbGlobalTransformBeforeLayout?.() ?? { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };
|
|
21753
|
-
return
|
|
21872
|
+
return compose6(
|
|
21754
21873
|
parentTransform,
|
|
21755
|
-
|
|
21874
|
+
translate6(this._panelPositionOffset.x, this._panelPositionOffset.y)
|
|
21756
21875
|
);
|
|
21757
21876
|
}
|
|
21758
21877
|
return super._computePcbGlobalTransformBeforeLayout();
|
|
@@ -22270,7 +22389,7 @@ import { distance as distance13 } from "circuit-json";
|
|
|
22270
22389
|
// lib/components/normal-components/Subpanel.ts
|
|
22271
22390
|
import { subpanelProps } from "@tscircuit/props";
|
|
22272
22391
|
import { distance as distance12 } from "circuit-json";
|
|
22273
|
-
import { compose as
|
|
22392
|
+
import { compose as compose7, identity as identity6, translate as translate7 } from "transformation-matrix";
|
|
22274
22393
|
|
|
22275
22394
|
// lib/utils/panels/generate-panel-tabs-and-mouse-bites.ts
|
|
22276
22395
|
import * as Flatten from "@flatten-js/core";
|
|
@@ -22731,9 +22850,9 @@ var Subpanel = class _Subpanel extends Group6 {
|
|
|
22731
22850
|
_computePcbGlobalTransformBeforeLayout() {
|
|
22732
22851
|
if (this._panelPositionOffset) {
|
|
22733
22852
|
const parentTransform = this.parent?._computePcbGlobalTransformBeforeLayout?.() ?? identity6();
|
|
22734
|
-
return
|
|
22853
|
+
return compose7(
|
|
22735
22854
|
parentTransform,
|
|
22736
|
-
|
|
22855
|
+
translate7(this._panelPositionOffset.x, this._panelPositionOffset.y)
|
|
22737
22856
|
);
|
|
22738
22857
|
}
|
|
22739
22858
|
return super._computePcbGlobalTransformBeforeLayout();
|
|
@@ -24222,7 +24341,7 @@ import { netLabelProps } from "@tscircuit/props";
|
|
|
24222
24341
|
import {
|
|
24223
24342
|
applyToPoint as applyToPoint20,
|
|
24224
24343
|
identity as identity7,
|
|
24225
|
-
translate as
|
|
24344
|
+
translate as translate8
|
|
24226
24345
|
} from "transformation-matrix";
|
|
24227
24346
|
import { calculateElbow as calculateElbow2 } from "calculate-elbow";
|
|
24228
24347
|
var NetLabel = class extends PrimitiveComponent2 {
|
|
@@ -24275,7 +24394,7 @@ var NetLabel = class extends PrimitiveComponent2 {
|
|
|
24275
24394
|
this.parent?.computeSchematicGlobalTransform?.() ?? identity7(),
|
|
24276
24395
|
{ x: 0, y: 0 }
|
|
24277
24396
|
);
|
|
24278
|
-
return
|
|
24397
|
+
return translate8(portPos.x - parentCenter.x, portPos.y - parentCenter.y);
|
|
24279
24398
|
}
|
|
24280
24399
|
}
|
|
24281
24400
|
return super.computeSchematicPropsTransform();
|
|
@@ -26954,7 +27073,7 @@ var SchematicCell = class extends PrimitiveComponent2 {
|
|
|
26954
27073
|
|
|
26955
27074
|
// lib/components/primitive-components/Symbol/Symbol.ts
|
|
26956
27075
|
import { symbolProps } from "@tscircuit/props";
|
|
26957
|
-
import { compose as
|
|
27076
|
+
import { compose as compose8, translate as translate9, scale } from "transformation-matrix";
|
|
26958
27077
|
var SymbolComponent = class extends PrimitiveComponent2 {
|
|
26959
27078
|
isPrimitiveContainer = true;
|
|
26960
27079
|
schematic_symbol_id;
|
|
@@ -27064,10 +27183,10 @@ var SymbolComponent = class extends PrimitiveComponent2 {
|
|
|
27064
27183
|
const scaleX = targetWidth !== void 0 && currentWidth > 0 ? targetWidth / currentWidth : 1;
|
|
27065
27184
|
const scaleY = targetHeight !== void 0 && currentHeight > 0 ? targetHeight / currentHeight : 1;
|
|
27066
27185
|
const globalPos = this._getGlobalSchematicPositionBeforeLayout();
|
|
27067
|
-
this.userCoordinateToResizedSymbolTransformMat =
|
|
27068
|
-
|
|
27069
|
-
|
|
27070
|
-
|
|
27186
|
+
this.userCoordinateToResizedSymbolTransformMat = compose8(
|
|
27187
|
+
translate9(globalPos.x, globalPos.y),
|
|
27188
|
+
scale(scaleX, scaleY),
|
|
27189
|
+
translate9(-currentCenterX, -currentCenterY)
|
|
27071
27190
|
);
|
|
27072
27191
|
}
|
|
27073
27192
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.1244",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.js",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"bun-match-svg": "0.0.12",
|
|
62
62
|
"calculate-elbow": "^0.0.12",
|
|
63
63
|
"chokidar-cli": "^3.0.0",
|
|
64
|
-
"circuit-json": "^0.0.
|
|
64
|
+
"circuit-json": "^0.0.425",
|
|
65
65
|
"circuit-json-to-bpc": "^0.0.13",
|
|
66
66
|
"circuit-json-to-connectivity-map": "^0.0.23",
|
|
67
67
|
"circuit-json-to-gltf": "^0.0.96",
|