@tscircuit/core 0.0.1243 → 0.0.1245
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 -64
- 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
|
}
|
|
@@ -11428,7 +11522,6 @@ var NormalComponent3 = class extends PrimitiveComponent2 {
|
|
|
11428
11522
|
*
|
|
11429
11523
|
*/
|
|
11430
11524
|
initPorts(opts = {}) {
|
|
11431
|
-
if (this.root?.schematicDisabled) return;
|
|
11432
11525
|
this._inferredInternallyConnectedPinNames = [];
|
|
11433
11526
|
const { config } = this;
|
|
11434
11527
|
const portsToCreate = [];
|
|
@@ -12457,7 +12550,6 @@ var NormalComponent3 = class extends PrimitiveComponent2 {
|
|
|
12457
12550
|
const cadModel = cadModelProp2 === void 0 ? this._asyncFootprintCadModel : cadModelProp2;
|
|
12458
12551
|
const footprint = this.getFootprinterString() ?? this._getImpliedFootprintString();
|
|
12459
12552
|
if (!this.pcb_component_id) return;
|
|
12460
|
-
if (!cadModel && !footprint) return;
|
|
12461
12553
|
if (cadModel === null) return;
|
|
12462
12554
|
const bounds = this._getPcbCircuitJsonBounds();
|
|
12463
12555
|
if (typeof cadModel === "string") {
|
|
@@ -12486,6 +12578,28 @@ var NormalComponent3 = class extends PrimitiveComponent2 {
|
|
|
12486
12578
|
const preLayoutRotation = decomposedTransform.rotation.angle * 180 / Math.PI;
|
|
12487
12579
|
const totalRotation = pcbComponent?.position_mode === "packed" ? pcbComponent.rotation ?? preLayoutRotation : preLayoutRotation;
|
|
12488
12580
|
const isBottomLayer = computedLayer === "bottom";
|
|
12581
|
+
if (!cadModel && !footprint) {
|
|
12582
|
+
const cad_component = db.cad_component.insert({
|
|
12583
|
+
position: {
|
|
12584
|
+
x: bounds.center.x,
|
|
12585
|
+
y: bounds.center.y,
|
|
12586
|
+
z: computedLayer === "bottom" ? -boardThickness / 2 : boardThickness / 2
|
|
12587
|
+
},
|
|
12588
|
+
rotation: {
|
|
12589
|
+
x: 0,
|
|
12590
|
+
y: isBottomLayer ? 180 : 0,
|
|
12591
|
+
z: normalizeDegrees2(isBottomLayer ? -totalRotation : totalRotation)
|
|
12592
|
+
},
|
|
12593
|
+
pcb_component_id: this.pcb_component_id,
|
|
12594
|
+
source_component_id: this.source_component_id,
|
|
12595
|
+
model_origin_alignment: "center_of_component_on_board_surface",
|
|
12596
|
+
anchor_alignment: "center_of_component_on_board_surface",
|
|
12597
|
+
show_as_bounding_box: true,
|
|
12598
|
+
show_as_translucent_model: this._parsedProps.showAsTranslucentModel
|
|
12599
|
+
});
|
|
12600
|
+
this.cad_component_id = cad_component.cad_component_id;
|
|
12601
|
+
return;
|
|
12602
|
+
}
|
|
12489
12603
|
const rotationWithOffset = totalRotation + (rotationOffset.z ?? 0);
|
|
12490
12604
|
const cadRotationZ = normalizeDegrees2(rotationWithOffset);
|
|
12491
12605
|
const cad_model = db.cad_component.insert({
|
|
@@ -12797,7 +12911,7 @@ import {
|
|
|
12797
12911
|
} from "@tscircuit/checks";
|
|
12798
12912
|
import { getBoundsFromPoints as getBoundsFromPoints5 } from "@tscircuit/math-utils";
|
|
12799
12913
|
import { boardProps } from "@tscircuit/props";
|
|
12800
|
-
import { compose as
|
|
12914
|
+
import { compose as compose6, translate as translate6 } from "transformation-matrix";
|
|
12801
12915
|
|
|
12802
12916
|
// lib/utils/autorouting/getAncestorSubcircuitIds.ts
|
|
12803
12917
|
var getDescendantSubcircuitIds = (db, root_subcircuit_id) => {
|
|
@@ -12976,7 +13090,7 @@ var Capacitor = class extends NormalComponent3 {
|
|
|
12976
13090
|
|
|
12977
13091
|
// lib/utils/extractPcbPrimitivesFromCircuitJson.ts
|
|
12978
13092
|
import { transformPCBElements } from "@tscircuit/circuit-json-util";
|
|
12979
|
-
import { compose as
|
|
13093
|
+
import { compose as compose4, inverse, rotate as rotate2, translate as translate3 } from "transformation-matrix";
|
|
12980
13094
|
var extractPcbPrimitivesFromCircuitJson = ({
|
|
12981
13095
|
pcbComponent,
|
|
12982
13096
|
db,
|
|
@@ -12985,8 +13099,8 @@ var extractPcbPrimitivesFromCircuitJson = ({
|
|
|
12985
13099
|
const componentCenter = pcbComponent.center || { x: 0, y: 0 };
|
|
12986
13100
|
const componentRotation = pcbComponent.rotation || 0;
|
|
12987
13101
|
const absoluteToComponentRelativeTransform = inverse(
|
|
12988
|
-
|
|
12989
|
-
|
|
13102
|
+
compose4(
|
|
13103
|
+
translate3(componentCenter.x, componentCenter.y),
|
|
12990
13104
|
rotate2(componentRotation * Math.PI / 180)
|
|
12991
13105
|
)
|
|
12992
13106
|
);
|
|
@@ -13960,7 +14074,7 @@ var applyEditEventsToManualEditsFile = ({
|
|
|
13960
14074
|
|
|
13961
14075
|
// lib/utils/edit-events/apply-edit-events-to-circuit-json.ts
|
|
13962
14076
|
import { transformPCBElement } from "@tscircuit/circuit-json-util";
|
|
13963
|
-
import { translate as
|
|
14077
|
+
import { translate as translate4 } from "transformation-matrix";
|
|
13964
14078
|
|
|
13965
14079
|
// lib/utils/edit-events/apply-trace-hint-edit-event.ts
|
|
13966
14080
|
import { su as su3 } from "@tscircuit/circuit-json-util";
|
|
@@ -14005,7 +14119,7 @@ var applyEditEvents = ({
|
|
|
14005
14119
|
);
|
|
14006
14120
|
const needsMovement = !component || component.center.x !== editEvent.new_center.x || component.center.y !== editEvent.new_center.y;
|
|
14007
14121
|
if (needsMovement && editEvent.original_center) {
|
|
14008
|
-
const mat =
|
|
14122
|
+
const mat = translate4(
|
|
14009
14123
|
editEvent.new_center.x - editEvent.original_center.x,
|
|
14010
14124
|
editEvent.new_center.y - editEvent.original_center.y
|
|
14011
14125
|
);
|
|
@@ -15716,7 +15830,7 @@ var applyComponentConstraintClusters = (group, packInput) => {
|
|
|
15716
15830
|
};
|
|
15717
15831
|
|
|
15718
15832
|
// lib/components/primitive-components/Group/Group_doInitialPcbLayoutPack/applyPackOutput.ts
|
|
15719
|
-
import { translate as
|
|
15833
|
+
import { translate as translate5, rotate as rotate3, compose as compose5 } from "transformation-matrix";
|
|
15720
15834
|
import {
|
|
15721
15835
|
transformPCBElements as transformPCBElements2
|
|
15722
15836
|
} from "@tscircuit/circuit-json-util";
|
|
@@ -15771,11 +15885,11 @@ var applyPackOutput = (group, packOutput, clusterMap) => {
|
|
|
15771
15885
|
const member = db.pcb_component.get(memberId);
|
|
15772
15886
|
if (!member) continue;
|
|
15773
15887
|
const originalCenter2 = member.center;
|
|
15774
|
-
const transformMatrix2 =
|
|
15888
|
+
const transformMatrix2 = compose5(
|
|
15775
15889
|
group._computePcbGlobalTransformBeforeLayout(),
|
|
15776
|
-
|
|
15890
|
+
translate5(center.x + rotatedRel.x, center.y + rotatedRel.y),
|
|
15777
15891
|
rotate3(angleRad),
|
|
15778
|
-
|
|
15892
|
+
translate5(-originalCenter2.x, -originalCenter2.y)
|
|
15779
15893
|
);
|
|
15780
15894
|
const related = db.toArray().filter(
|
|
15781
15895
|
(elm) => "pcb_component_id" in elm && elm.pcb_component_id === memberId
|
|
@@ -15805,11 +15919,11 @@ var applyPackOutput = (group, packOutput, clusterMap) => {
|
|
|
15805
15919
|
}
|
|
15806
15920
|
const originalCenter2 = pcbComponent.center;
|
|
15807
15921
|
const rotationDegrees2 = ccwRotationDegrees ?? ccwRotationOffset ?? 0;
|
|
15808
|
-
const transformMatrix2 =
|
|
15922
|
+
const transformMatrix2 = compose5(
|
|
15809
15923
|
group._computePcbGlobalTransformBeforeLayout(),
|
|
15810
|
-
|
|
15924
|
+
translate5(center.x, center.y),
|
|
15811
15925
|
rotate3(rotationDegrees2 * Math.PI / 180),
|
|
15812
|
-
|
|
15926
|
+
translate5(-originalCenter2.x, -originalCenter2.y)
|
|
15813
15927
|
);
|
|
15814
15928
|
const related = db.toArray().filter(
|
|
15815
15929
|
(elm) => "pcb_component_id" in elm && elm.pcb_component_id === componentId
|
|
@@ -15827,11 +15941,11 @@ var applyPackOutput = (group, packOutput, clusterMap) => {
|
|
|
15827
15941
|
if (!pcbGroup) continue;
|
|
15828
15942
|
const originalCenter = pcbGroup.center;
|
|
15829
15943
|
const rotationDegrees = ccwRotationDegrees ?? ccwRotationOffset ?? 0;
|
|
15830
|
-
const transformMatrix =
|
|
15944
|
+
const transformMatrix = compose5(
|
|
15831
15945
|
group._computePcbGlobalTransformBeforeLayout(),
|
|
15832
|
-
|
|
15946
|
+
translate5(center.x, center.y),
|
|
15833
15947
|
rotate3(rotationDegrees * Math.PI / 180),
|
|
15834
|
-
|
|
15948
|
+
translate5(-originalCenter.x, -originalCenter.y)
|
|
15835
15949
|
);
|
|
15836
15950
|
const relatedElements = db.toArray().filter((elm) => {
|
|
15837
15951
|
if ("source_group_id" in elm && elm.source_group_id) {
|
|
@@ -20778,8 +20892,11 @@ function pcbTraceRouteToPcbPath(route) {
|
|
|
20778
20892
|
const firstPoint = route[0];
|
|
20779
20893
|
const lastPoint = route[route.length - 1];
|
|
20780
20894
|
return route.slice(1, -1).filter((point6) => {
|
|
20781
|
-
const
|
|
20782
|
-
const
|
|
20895
|
+
const position = getRoutePointPosition(point6);
|
|
20896
|
+
const firstPosition = getRoutePointPosition(firstPoint);
|
|
20897
|
+
const lastPosition = getRoutePointPosition(lastPoint);
|
|
20898
|
+
const isSameAsFirst = position.x === firstPosition.x && position.y === firstPosition.y;
|
|
20899
|
+
const isSameAsLast = position.x === lastPosition.x && position.y === lastPosition.y;
|
|
20783
20900
|
return !isSameAsFirst && !isSameAsLast;
|
|
20784
20901
|
}).map((point6) => {
|
|
20785
20902
|
if (point6.route_type === "via") {
|
|
@@ -20791,7 +20908,8 @@ function pcbTraceRouteToPcbPath(route) {
|
|
|
20791
20908
|
toLayer: point6.to_layer
|
|
20792
20909
|
};
|
|
20793
20910
|
}
|
|
20794
|
-
|
|
20911
|
+
const position = getRoutePointPosition(point6);
|
|
20912
|
+
return { x: position.x, y: position.y };
|
|
20795
20913
|
});
|
|
20796
20914
|
}
|
|
20797
20915
|
|
|
@@ -21098,7 +21216,7 @@ import { identity as identity5 } from "transformation-matrix";
|
|
|
21098
21216
|
var package_default = {
|
|
21099
21217
|
name: "@tscircuit/core",
|
|
21100
21218
|
type: "module",
|
|
21101
|
-
version: "0.0.
|
|
21219
|
+
version: "0.0.1244",
|
|
21102
21220
|
types: "dist/index.d.ts",
|
|
21103
21221
|
main: "dist/index.js",
|
|
21104
21222
|
module: "dist/index.js",
|
|
@@ -21158,7 +21276,7 @@ var package_default = {
|
|
|
21158
21276
|
"bun-match-svg": "0.0.12",
|
|
21159
21277
|
"calculate-elbow": "^0.0.12",
|
|
21160
21278
|
"chokidar-cli": "^3.0.0",
|
|
21161
|
-
"circuit-json": "^0.0.
|
|
21279
|
+
"circuit-json": "^0.0.425",
|
|
21162
21280
|
"circuit-json-to-bpc": "^0.0.13",
|
|
21163
21281
|
"circuit-json-to-connectivity-map": "^0.0.23",
|
|
21164
21282
|
"circuit-json-to-gltf": "^0.0.96",
|
|
@@ -21750,9 +21868,9 @@ var Board = class extends Group6 {
|
|
|
21750
21868
|
_computePcbGlobalTransformBeforeLayout() {
|
|
21751
21869
|
if (this._panelPositionOffset) {
|
|
21752
21870
|
const parentTransform = this.parent?._computePcbGlobalTransformBeforeLayout?.() ?? { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };
|
|
21753
|
-
return
|
|
21871
|
+
return compose6(
|
|
21754
21872
|
parentTransform,
|
|
21755
|
-
|
|
21873
|
+
translate6(this._panelPositionOffset.x, this._panelPositionOffset.y)
|
|
21756
21874
|
);
|
|
21757
21875
|
}
|
|
21758
21876
|
return super._computePcbGlobalTransformBeforeLayout();
|
|
@@ -22270,7 +22388,7 @@ import { distance as distance13 } from "circuit-json";
|
|
|
22270
22388
|
// lib/components/normal-components/Subpanel.ts
|
|
22271
22389
|
import { subpanelProps } from "@tscircuit/props";
|
|
22272
22390
|
import { distance as distance12 } from "circuit-json";
|
|
22273
|
-
import { compose as
|
|
22391
|
+
import { compose as compose7, identity as identity6, translate as translate7 } from "transformation-matrix";
|
|
22274
22392
|
|
|
22275
22393
|
// lib/utils/panels/generate-panel-tabs-and-mouse-bites.ts
|
|
22276
22394
|
import * as Flatten from "@flatten-js/core";
|
|
@@ -22731,9 +22849,9 @@ var Subpanel = class _Subpanel extends Group6 {
|
|
|
22731
22849
|
_computePcbGlobalTransformBeforeLayout() {
|
|
22732
22850
|
if (this._panelPositionOffset) {
|
|
22733
22851
|
const parentTransform = this.parent?._computePcbGlobalTransformBeforeLayout?.() ?? identity6();
|
|
22734
|
-
return
|
|
22852
|
+
return compose7(
|
|
22735
22853
|
parentTransform,
|
|
22736
|
-
|
|
22854
|
+
translate7(this._panelPositionOffset.x, this._panelPositionOffset.y)
|
|
22737
22855
|
);
|
|
22738
22856
|
}
|
|
22739
22857
|
return super._computePcbGlobalTransformBeforeLayout();
|
|
@@ -24222,7 +24340,7 @@ import { netLabelProps } from "@tscircuit/props";
|
|
|
24222
24340
|
import {
|
|
24223
24341
|
applyToPoint as applyToPoint20,
|
|
24224
24342
|
identity as identity7,
|
|
24225
|
-
translate as
|
|
24343
|
+
translate as translate8
|
|
24226
24344
|
} from "transformation-matrix";
|
|
24227
24345
|
import { calculateElbow as calculateElbow2 } from "calculate-elbow";
|
|
24228
24346
|
var NetLabel = class extends PrimitiveComponent2 {
|
|
@@ -24275,7 +24393,7 @@ var NetLabel = class extends PrimitiveComponent2 {
|
|
|
24275
24393
|
this.parent?.computeSchematicGlobalTransform?.() ?? identity7(),
|
|
24276
24394
|
{ x: 0, y: 0 }
|
|
24277
24395
|
);
|
|
24278
|
-
return
|
|
24396
|
+
return translate8(portPos.x - parentCenter.x, portPos.y - parentCenter.y);
|
|
24279
24397
|
}
|
|
24280
24398
|
}
|
|
24281
24399
|
return super.computeSchematicPropsTransform();
|
|
@@ -26954,7 +27072,7 @@ var SchematicCell = class extends PrimitiveComponent2 {
|
|
|
26954
27072
|
|
|
26955
27073
|
// lib/components/primitive-components/Symbol/Symbol.ts
|
|
26956
27074
|
import { symbolProps } from "@tscircuit/props";
|
|
26957
|
-
import { compose as
|
|
27075
|
+
import { compose as compose8, translate as translate9, scale } from "transformation-matrix";
|
|
26958
27076
|
var SymbolComponent = class extends PrimitiveComponent2 {
|
|
26959
27077
|
isPrimitiveContainer = true;
|
|
26960
27078
|
schematic_symbol_id;
|
|
@@ -27064,10 +27182,10 @@ var SymbolComponent = class extends PrimitiveComponent2 {
|
|
|
27064
27182
|
const scaleX = targetWidth !== void 0 && currentWidth > 0 ? targetWidth / currentWidth : 1;
|
|
27065
27183
|
const scaleY = targetHeight !== void 0 && currentHeight > 0 ? targetHeight / currentHeight : 1;
|
|
27066
27184
|
const globalPos = this._getGlobalSchematicPositionBeforeLayout();
|
|
27067
|
-
this.userCoordinateToResizedSymbolTransformMat =
|
|
27068
|
-
|
|
27069
|
-
|
|
27070
|
-
|
|
27185
|
+
this.userCoordinateToResizedSymbolTransformMat = compose8(
|
|
27186
|
+
translate9(globalPos.x, globalPos.y),
|
|
27187
|
+
scale(scaleX, scaleY),
|
|
27188
|
+
translate9(-currentCenterX, -currentCenterY)
|
|
27071
27189
|
);
|
|
27072
27190
|
}
|
|
27073
27191
|
};
|
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.1245",
|
|
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",
|