@tscircuit/pcb-viewer 1.11.356 → 1.11.358
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 +84 -100
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -7507,7 +7507,7 @@ function getExpandedStroke(strokeInput, defaultWidth) {
|
|
|
7507
7507
|
}
|
|
7508
7508
|
|
|
7509
7509
|
// src/lib/convert-element-to-primitive.ts
|
|
7510
|
-
import { distance
|
|
7510
|
+
import { distance } from "circuit-json";
|
|
7511
7511
|
|
|
7512
7512
|
// src/lib/element-to-primitive-converters/convert-smtpad-rect.ts
|
|
7513
7513
|
var convertSmtpadRect = (element, metadata) => {
|
|
@@ -7704,49 +7704,12 @@ var convertSmtpadRotatedPill = (element, metadata) => {
|
|
|
7704
7704
|
return primitives;
|
|
7705
7705
|
};
|
|
7706
7706
|
|
|
7707
|
-
// src/lib/element-to-primitive/convert-pcb-copper-text-to-primitive.ts
|
|
7708
|
-
import { distance } from "circuit-json";
|
|
7709
|
-
var convertPcbCopperTextToPrimitive = (element, metadata) => {
|
|
7710
|
-
const { _parent_pcb_component, _parent_source_component } = metadata;
|
|
7711
|
-
const copperText = element;
|
|
7712
|
-
const fontSize = typeof copperText.font_size === "string" ? distance.parse(copperText.font_size) : copperText.font_size ?? 0.2;
|
|
7713
|
-
let knockoutPadding;
|
|
7714
|
-
if (copperText.knockout_padding) {
|
|
7715
|
-
knockoutPadding = {
|
|
7716
|
-
left: typeof copperText.knockout_padding.left === "string" ? distance.parse(copperText.knockout_padding.left) : copperText.knockout_padding.left,
|
|
7717
|
-
top: typeof copperText.knockout_padding.top === "string" ? distance.parse(copperText.knockout_padding.top) : copperText.knockout_padding.top,
|
|
7718
|
-
bottom: typeof copperText.knockout_padding.bottom === "string" ? distance.parse(copperText.knockout_padding.bottom) : copperText.knockout_padding.bottom,
|
|
7719
|
-
right: typeof copperText.knockout_padding.right === "string" ? distance.parse(copperText.knockout_padding.right) : copperText.knockout_padding.right
|
|
7720
|
-
};
|
|
7721
|
-
}
|
|
7722
|
-
return [
|
|
7723
|
-
{
|
|
7724
|
-
_pcb_drawing_object_id: getNewPcbDrawingObjectId("text"),
|
|
7725
|
-
pcb_drawing_type: "text",
|
|
7726
|
-
x: copperText.anchor_position.x,
|
|
7727
|
-
y: copperText.anchor_position.y,
|
|
7728
|
-
layer: copperText.layer,
|
|
7729
|
-
// "top", "bottom", or inner layers
|
|
7730
|
-
align: copperText.anchor_alignment ?? "center",
|
|
7731
|
-
text: copperText.text,
|
|
7732
|
-
size: fontSize,
|
|
7733
|
-
ccw_rotation: copperText.ccw_rotation,
|
|
7734
|
-
is_mirrored: copperText.is_mirrored,
|
|
7735
|
-
is_knockout: copperText.is_knockout,
|
|
7736
|
-
knockout_padding: knockoutPadding,
|
|
7737
|
-
_element: element,
|
|
7738
|
-
_parent_pcb_component,
|
|
7739
|
-
_parent_source_component
|
|
7740
|
-
}
|
|
7741
|
-
];
|
|
7742
|
-
};
|
|
7743
|
-
|
|
7744
7707
|
// src/lib/convert-element-to-primitive.ts
|
|
7745
7708
|
var globalPcbDrawingObjectCount = 0;
|
|
7746
7709
|
var getNewPcbDrawingObjectId = (prefix) => `${prefix}_${globalPcbDrawingObjectCount++}`;
|
|
7747
7710
|
var normalizePolygonPoints = (points) => (points ?? []).map((point) => ({
|
|
7748
|
-
x:
|
|
7749
|
-
y:
|
|
7711
|
+
x: distance.parse(point.x),
|
|
7712
|
+
y: distance.parse(point.y)
|
|
7750
7713
|
}));
|
|
7751
7714
|
var convertElementToPrimitives = (element, allElements) => {
|
|
7752
7715
|
const _parent_pcb_component = "pcb_component_id" in element ? allElements.find(
|
|
@@ -7973,8 +7936,8 @@ var convertElementToPrimitives = (element, allElements) => {
|
|
|
7973
7936
|
hole_offset_x,
|
|
7974
7937
|
hole_offset_y
|
|
7975
7938
|
} = element;
|
|
7976
|
-
const parsed_hole_offset_x =
|
|
7977
|
-
const parsed_hole_offset_y =
|
|
7939
|
+
const parsed_hole_offset_x = distance.parse(hole_offset_x ?? 0);
|
|
7940
|
+
const parsed_hole_offset_y = distance.parse(hole_offset_y ?? 0);
|
|
7978
7941
|
return [
|
|
7979
7942
|
{
|
|
7980
7943
|
_pcb_drawing_object_id: `rect_${globalPcbDrawingObjectCount++}`,
|
|
@@ -8138,8 +8101,8 @@ var convertElementToPrimitives = (element, allElements) => {
|
|
|
8138
8101
|
hole_offset_x,
|
|
8139
8102
|
hole_offset_y
|
|
8140
8103
|
} = element;
|
|
8141
|
-
const parsed_hole_offset_x =
|
|
8142
|
-
const parsed_hole_offset_y =
|
|
8104
|
+
const parsed_hole_offset_x = distance.parse(hole_offset_x ?? 0);
|
|
8105
|
+
const parsed_hole_offset_y = distance.parse(hole_offset_y ?? 0);
|
|
8143
8106
|
const pcb_outline = pad_outline;
|
|
8144
8107
|
const padPrimitives = [];
|
|
8145
8108
|
if (pcb_outline && Array.isArray(pcb_outline)) {
|
|
@@ -8209,12 +8172,6 @@ var convertElementToPrimitives = (element, allElements) => {
|
|
|
8209
8172
|
return [];
|
|
8210
8173
|
}
|
|
8211
8174
|
}
|
|
8212
|
-
case "pcb_copper_text": {
|
|
8213
|
-
return convertPcbCopperTextToPrimitive(element, {
|
|
8214
|
-
_parent_pcb_component,
|
|
8215
|
-
_parent_source_component
|
|
8216
|
-
});
|
|
8217
|
-
}
|
|
8218
8175
|
}
|
|
8219
8176
|
return [];
|
|
8220
8177
|
};
|
|
@@ -9104,8 +9061,26 @@ function drawPcbBoardElements({
|
|
|
9104
9061
|
}
|
|
9105
9062
|
}
|
|
9106
9063
|
|
|
9107
|
-
// src/lib/draw-pcb-
|
|
9064
|
+
// src/lib/draw-pcb-copper-text.ts
|
|
9108
9065
|
import { CircuitToCanvasDrawer as CircuitToCanvasDrawer5 } from "circuit-to-canvas";
|
|
9066
|
+
function isPcbCopperText(element) {
|
|
9067
|
+
return element.type === "pcb_copper_text";
|
|
9068
|
+
}
|
|
9069
|
+
function drawPcbCopperTextElementsForLayer({
|
|
9070
|
+
canvas,
|
|
9071
|
+
elements,
|
|
9072
|
+
layers,
|
|
9073
|
+
realToCanvasMat
|
|
9074
|
+
}) {
|
|
9075
|
+
const copperTextElements = elements.filter(isPcbCopperText);
|
|
9076
|
+
if (copperTextElements.length === 0) return;
|
|
9077
|
+
const drawer = new CircuitToCanvasDrawer5(canvas);
|
|
9078
|
+
drawer.realToCanvasMat = realToCanvasMat;
|
|
9079
|
+
drawer.drawElements(copperTextElements, { layers });
|
|
9080
|
+
}
|
|
9081
|
+
|
|
9082
|
+
// src/lib/draw-pcb-cutout.ts
|
|
9083
|
+
import { CircuitToCanvasDrawer as CircuitToCanvasDrawer6 } from "circuit-to-canvas";
|
|
9109
9084
|
function isPcbCutout(element) {
|
|
9110
9085
|
return element.type === "pcb_cutout";
|
|
9111
9086
|
}
|
|
@@ -9115,14 +9090,14 @@ function drawPcbCutoutElementsForLayer({
|
|
|
9115
9090
|
layers,
|
|
9116
9091
|
realToCanvasMat
|
|
9117
9092
|
}) {
|
|
9118
|
-
const drawer = new
|
|
9093
|
+
const drawer = new CircuitToCanvasDrawer6(canvas);
|
|
9119
9094
|
drawer.realToCanvasMat = realToCanvasMat;
|
|
9120
9095
|
const cutoutElements = elements.filter(isPcbCutout);
|
|
9121
9096
|
drawer.drawElements(cutoutElements, { layers });
|
|
9122
9097
|
}
|
|
9123
9098
|
|
|
9124
9099
|
// src/lib/draw-pcb-keepout.ts
|
|
9125
|
-
import { CircuitToCanvasDrawer as
|
|
9100
|
+
import { CircuitToCanvasDrawer as CircuitToCanvasDrawer7 } from "circuit-to-canvas";
|
|
9126
9101
|
function isPcbKeepout(element) {
|
|
9127
9102
|
return element.type === "pcb_keepout";
|
|
9128
9103
|
}
|
|
@@ -9134,14 +9109,14 @@ function drawPcbKeepoutElementsForLayer({
|
|
|
9134
9109
|
}) {
|
|
9135
9110
|
const keepoutElements = elements.filter(isPcbKeepout);
|
|
9136
9111
|
if (keepoutElements.length === 0) return;
|
|
9137
|
-
const drawer = new
|
|
9112
|
+
const drawer = new CircuitToCanvasDrawer7(canvas);
|
|
9138
9113
|
drawer.realToCanvasMat = realToCanvasMat;
|
|
9139
9114
|
drawer.drawElements(keepoutElements, { layers: [] });
|
|
9140
9115
|
}
|
|
9141
9116
|
|
|
9142
9117
|
// src/lib/draw-pcb-note.ts
|
|
9143
9118
|
import {
|
|
9144
|
-
CircuitToCanvasDrawer as
|
|
9119
|
+
CircuitToCanvasDrawer as CircuitToCanvasDrawer8
|
|
9145
9120
|
} from "circuit-to-canvas";
|
|
9146
9121
|
function isPcbNote(element) {
|
|
9147
9122
|
return element.type.startsWith("pcb_note_");
|
|
@@ -9152,14 +9127,14 @@ function drawPcbNoteElementsForLayer({
|
|
|
9152
9127
|
layers,
|
|
9153
9128
|
realToCanvasMat
|
|
9154
9129
|
}) {
|
|
9155
|
-
const drawer = new
|
|
9130
|
+
const drawer = new CircuitToCanvasDrawer8(canvas);
|
|
9156
9131
|
drawer.realToCanvasMat = realToCanvasMat;
|
|
9157
9132
|
const pcbNoteElements = elements.filter(isPcbNote);
|
|
9158
9133
|
drawer.drawElements(pcbNoteElements, { layers });
|
|
9159
9134
|
}
|
|
9160
9135
|
|
|
9161
9136
|
// src/lib/draw-pcb-panel.ts
|
|
9162
|
-
import { CircuitToCanvasDrawer as
|
|
9137
|
+
import { CircuitToCanvasDrawer as CircuitToCanvasDrawer9 } from "circuit-to-canvas";
|
|
9163
9138
|
function isPcbPanelElement(element) {
|
|
9164
9139
|
return element.type === "pcb_panel";
|
|
9165
9140
|
}
|
|
@@ -9170,7 +9145,7 @@ function drawPcbPanelElements({
|
|
|
9170
9145
|
realToCanvasMat,
|
|
9171
9146
|
drawSoldermask
|
|
9172
9147
|
}) {
|
|
9173
|
-
const drawer = new
|
|
9148
|
+
const drawer = new CircuitToCanvasDrawer9(canvas);
|
|
9174
9149
|
drawer.realToCanvasMat = realToCanvasMat;
|
|
9175
9150
|
const pcbPanelElements = elements.filter(isPcbPanelElement);
|
|
9176
9151
|
for (const element of pcbPanelElements) {
|
|
@@ -9180,7 +9155,7 @@ function drawPcbPanelElements({
|
|
|
9180
9155
|
|
|
9181
9156
|
// src/lib/draw-pcb-smtpad.ts
|
|
9182
9157
|
import {
|
|
9183
|
-
CircuitToCanvasDrawer as
|
|
9158
|
+
CircuitToCanvasDrawer as CircuitToCanvasDrawer10,
|
|
9184
9159
|
DEFAULT_PCB_COLOR_MAP as DEFAULT_PCB_COLOR_MAP3
|
|
9185
9160
|
} from "circuit-to-canvas";
|
|
9186
9161
|
import color from "color";
|
|
@@ -9239,12 +9214,12 @@ function drawPcbSmtPadElementsForLayer({
|
|
|
9239
9214
|
(element) => !highlightedElementIds.has(element.pcb_smtpad_id)
|
|
9240
9215
|
);
|
|
9241
9216
|
if (nonHighlightedElements.length > 0) {
|
|
9242
|
-
const drawer = new
|
|
9217
|
+
const drawer = new CircuitToCanvasDrawer10(canvas);
|
|
9243
9218
|
drawer.realToCanvasMat = realToCanvasMat;
|
|
9244
9219
|
drawer.drawElements(nonHighlightedElements, { layers, drawSoldermask });
|
|
9245
9220
|
}
|
|
9246
9221
|
if (highlightedElements.length > 0) {
|
|
9247
|
-
const highlightDrawer = new
|
|
9222
|
+
const highlightDrawer = new CircuitToCanvasDrawer10(canvas);
|
|
9248
9223
|
highlightDrawer.configure({ colorOverrides: HOVER_COLOR_MAP });
|
|
9249
9224
|
highlightDrawer.realToCanvasMat = realToCanvasMat;
|
|
9250
9225
|
highlightDrawer.drawElements(highlightedElements, {
|
|
@@ -9256,7 +9231,7 @@ function drawPcbSmtPadElementsForLayer({
|
|
|
9256
9231
|
|
|
9257
9232
|
// src/lib/draw-pcb-trace.ts
|
|
9258
9233
|
import {
|
|
9259
|
-
CircuitToCanvasDrawer as
|
|
9234
|
+
CircuitToCanvasDrawer as CircuitToCanvasDrawer11,
|
|
9260
9235
|
DEFAULT_PCB_COLOR_MAP as DEFAULT_PCB_COLOR_MAP4
|
|
9261
9236
|
} from "circuit-to-canvas";
|
|
9262
9237
|
import color2 from "color";
|
|
@@ -9318,12 +9293,12 @@ function drawPcbTraceElementsForLayer({
|
|
|
9318
9293
|
}
|
|
9319
9294
|
}
|
|
9320
9295
|
if (nonHighlightedElements.length > 0) {
|
|
9321
|
-
const drawer = new
|
|
9296
|
+
const drawer = new CircuitToCanvasDrawer11(canvas);
|
|
9322
9297
|
drawer.realToCanvasMat = realToCanvasMat;
|
|
9323
9298
|
drawer.drawElements(nonHighlightedElements, { layers });
|
|
9324
9299
|
}
|
|
9325
9300
|
if (highlightedElements.length > 0) {
|
|
9326
|
-
const highlightDrawer = new
|
|
9301
|
+
const highlightDrawer = new CircuitToCanvasDrawer11(canvas);
|
|
9327
9302
|
highlightDrawer.configure({ colorOverrides: HOVER_COLOR_MAP2 });
|
|
9328
9303
|
highlightDrawer.realToCanvasMat = realToCanvasMat;
|
|
9329
9304
|
highlightDrawer.drawElements(highlightedElements, { layers });
|
|
@@ -9332,7 +9307,7 @@ function drawPcbTraceElementsForLayer({
|
|
|
9332
9307
|
|
|
9333
9308
|
// src/lib/draw-plated-hole.ts
|
|
9334
9309
|
import {
|
|
9335
|
-
CircuitToCanvasDrawer as
|
|
9310
|
+
CircuitToCanvasDrawer as CircuitToCanvasDrawer12,
|
|
9336
9311
|
DEFAULT_PCB_COLOR_MAP as DEFAULT_PCB_COLOR_MAP5
|
|
9337
9312
|
} from "circuit-to-canvas";
|
|
9338
9313
|
import color3 from "color";
|
|
@@ -9372,12 +9347,12 @@ function drawPlatedHolePads({
|
|
|
9372
9347
|
(element) => !highlightedElementIds.has(element.pcb_plated_hole_id)
|
|
9373
9348
|
);
|
|
9374
9349
|
if (nonHighlightedElements.length > 0) {
|
|
9375
|
-
const drawer = new
|
|
9350
|
+
const drawer = new CircuitToCanvasDrawer12(canvas);
|
|
9376
9351
|
drawer.realToCanvasMat = realToCanvasMat;
|
|
9377
9352
|
drawer.drawElements(nonHighlightedElements, { layers, drawSoldermask });
|
|
9378
9353
|
}
|
|
9379
9354
|
if (highlightedElements.length > 0) {
|
|
9380
|
-
const highlightDrawer = new
|
|
9355
|
+
const highlightDrawer = new CircuitToCanvasDrawer12(canvas);
|
|
9381
9356
|
highlightDrawer.configure({ colorOverrides: HOVER_COLOR_MAP3 });
|
|
9382
9357
|
highlightDrawer.realToCanvasMat = realToCanvasMat;
|
|
9383
9358
|
highlightDrawer.drawElements(highlightedElements, {
|
|
@@ -9782,7 +9757,7 @@ var drawPrimitives = (drawer, primitives) => {
|
|
|
9782
9757
|
|
|
9783
9758
|
// src/lib/draw-soldermask.ts
|
|
9784
9759
|
import {
|
|
9785
|
-
CircuitToCanvasDrawer as
|
|
9760
|
+
CircuitToCanvasDrawer as CircuitToCanvasDrawer13,
|
|
9786
9761
|
DEFAULT_PCB_COLOR_MAP as DEFAULT_PCB_COLOR_MAP6
|
|
9787
9762
|
} from "circuit-to-canvas";
|
|
9788
9763
|
import color5 from "color";
|
|
@@ -9814,7 +9789,7 @@ function drawSoldermaskElementsForLayer({
|
|
|
9814
9789
|
drawSoldermaskBottom,
|
|
9815
9790
|
primitives
|
|
9816
9791
|
}) {
|
|
9817
|
-
const drawer = new
|
|
9792
|
+
const drawer = new CircuitToCanvasDrawer13(canvas);
|
|
9818
9793
|
drawer.realToCanvasMat = realToCanvasMat;
|
|
9819
9794
|
const boards = elements.filter((element) => element.type === "pcb_board");
|
|
9820
9795
|
if (boards.length <= 1) {
|
|
@@ -9866,7 +9841,7 @@ function drawSoldermaskElementsForLayer({
|
|
|
9866
9841
|
return false;
|
|
9867
9842
|
});
|
|
9868
9843
|
if (hoveredElements.length === 0) return;
|
|
9869
|
-
const hoverDrawer = new
|
|
9844
|
+
const hoverDrawer = new CircuitToCanvasDrawer13(canvas);
|
|
9870
9845
|
hoverDrawer.configure({ colorOverrides: HOVER_SOLDERMASK_COLOR_MAP });
|
|
9871
9846
|
hoverDrawer.realToCanvasMat = realToCanvasMat;
|
|
9872
9847
|
hoverDrawer.drawElements(hoveredElements, {
|
|
@@ -9880,7 +9855,7 @@ function drawSoldermaskElementsForLayer({
|
|
|
9880
9855
|
|
|
9881
9856
|
// src/lib/draw-silkscreen.ts
|
|
9882
9857
|
import {
|
|
9883
|
-
CircuitToCanvasDrawer as
|
|
9858
|
+
CircuitToCanvasDrawer as CircuitToCanvasDrawer14,
|
|
9884
9859
|
DEFAULT_PCB_COLOR_MAP as DEFAULT_PCB_COLOR_MAP7
|
|
9885
9860
|
} from "circuit-to-canvas";
|
|
9886
9861
|
var PCB_VIEWER_COLOR_MAP2 = {
|
|
@@ -9899,7 +9874,7 @@ function drawSilkscreenElementsForLayer({
|
|
|
9899
9874
|
layers,
|
|
9900
9875
|
realToCanvasMat
|
|
9901
9876
|
}) {
|
|
9902
|
-
const drawer = new
|
|
9877
|
+
const drawer = new CircuitToCanvasDrawer14(canvas);
|
|
9903
9878
|
drawer.configure({
|
|
9904
9879
|
colorOverrides: PCB_VIEWER_COLOR_MAP2
|
|
9905
9880
|
});
|
|
@@ -9911,7 +9886,7 @@ function drawSilkscreenElementsForLayer({
|
|
|
9911
9886
|
// src/lib/draw-via.ts
|
|
9912
9887
|
import {
|
|
9913
9888
|
DEFAULT_PCB_COLOR_MAP as DEFAULT_PCB_COLOR_MAP8,
|
|
9914
|
-
CircuitToCanvasDrawer as
|
|
9889
|
+
CircuitToCanvasDrawer as CircuitToCanvasDrawer15
|
|
9915
9890
|
} from "circuit-to-canvas";
|
|
9916
9891
|
import color6 from "color";
|
|
9917
9892
|
var HOVER_COLOR_MAP4 = {
|
|
@@ -9952,12 +9927,12 @@ function drawPcbViaElementsForLayer({
|
|
|
9952
9927
|
(element) => !highlightedElementIds.has(element.pcb_via_id)
|
|
9953
9928
|
);
|
|
9954
9929
|
if (nonHighlightedElements.length > 0) {
|
|
9955
|
-
const drawer = new
|
|
9930
|
+
const drawer = new CircuitToCanvasDrawer15(canvas);
|
|
9956
9931
|
drawer.realToCanvasMat = realToCanvasMat;
|
|
9957
9932
|
drawer.drawElements(nonHighlightedElements, { layers, drawSoldermask });
|
|
9958
9933
|
}
|
|
9959
9934
|
if (highlightedElements.length > 0) {
|
|
9960
|
-
const highlightDrawer = new
|
|
9935
|
+
const highlightDrawer = new CircuitToCanvasDrawer15(canvas);
|
|
9961
9936
|
highlightDrawer.configure({ colorOverrides: HOVER_COLOR_MAP4 });
|
|
9962
9937
|
highlightDrawer.realToCanvasMat = realToCanvasMat;
|
|
9963
9938
|
highlightDrawer.drawElements(highlightedElements, {
|
|
@@ -9969,7 +9944,7 @@ function drawPcbViaElementsForLayer({
|
|
|
9969
9944
|
|
|
9970
9945
|
// src/lib/draw-courtyard.ts
|
|
9971
9946
|
import {
|
|
9972
|
-
CircuitToCanvasDrawer as
|
|
9947
|
+
CircuitToCanvasDrawer as CircuitToCanvasDrawer16,
|
|
9973
9948
|
DEFAULT_PCB_COLOR_MAP as DEFAULT_PCB_COLOR_MAP9
|
|
9974
9949
|
} from "circuit-to-canvas";
|
|
9975
9950
|
var PCB_VIEWER_COLOR_MAP3 = {
|
|
@@ -9988,7 +9963,7 @@ function drawCourtyardElementsForLayer({
|
|
|
9988
9963
|
layers,
|
|
9989
9964
|
realToCanvasMat
|
|
9990
9965
|
}) {
|
|
9991
|
-
const drawer = new
|
|
9966
|
+
const drawer = new CircuitToCanvasDrawer16(canvas);
|
|
9992
9967
|
drawer.configure({
|
|
9993
9968
|
colorOverrides: PCB_VIEWER_COLOR_MAP3
|
|
9994
9969
|
});
|
|
@@ -10059,7 +10034,7 @@ var CanvasPrimitiveRenderer = ({
|
|
|
10059
10034
|
drawer.foregroundLayer = selectedLayer;
|
|
10060
10035
|
const filteredPrimitives = primitives.filter((p) => isShowingSolderMask || !p.layer?.includes("soldermask")).filter((p) => isShowingSilkscreen || !p.layer?.includes("silkscreen")).filter(
|
|
10061
10036
|
(p) => isShowingFabricationNotes || !p.layer?.includes("fabrication")
|
|
10062
|
-
).filter((p) => p.layer !== "board").filter((p) => p._element?.type !== "pcb_smtpad").filter((p) => p._element?.type !== "pcb_plated_hole").filter((p) => p._element?.type !== "pcb_via").filter((p) => p._element?.type !== "pcb_trace");
|
|
10037
|
+
).filter((p) => p.layer !== "board").filter((p) => p._element?.type !== "pcb_smtpad").filter((p) => p._element?.type !== "pcb_plated_hole").filter((p) => p._element?.type !== "pcb_via").filter((p) => p._element?.type !== "pcb_trace").filter((p) => p._element?.type !== "pcb_copper_text");
|
|
10063
10038
|
drawPrimitives(drawer, filteredPrimitives);
|
|
10064
10039
|
if (transform) {
|
|
10065
10040
|
const topCanvas = canvasRefs.current.top;
|
|
@@ -10090,6 +10065,15 @@ var CanvasPrimitiveRenderer = ({
|
|
|
10090
10065
|
primitives
|
|
10091
10066
|
});
|
|
10092
10067
|
}
|
|
10068
|
+
for (const { canvas, copperLayer } of copperLayers) {
|
|
10069
|
+
if (!canvas) continue;
|
|
10070
|
+
drawPcbCopperTextElementsForLayer({
|
|
10071
|
+
canvas,
|
|
10072
|
+
elements,
|
|
10073
|
+
layers: [copperLayer],
|
|
10074
|
+
realToCanvasMat: transform
|
|
10075
|
+
});
|
|
10076
|
+
}
|
|
10093
10077
|
if (topCanvas) {
|
|
10094
10078
|
drawPlatedHolePads({
|
|
10095
10079
|
canvas: topCanvas,
|
|
@@ -11016,7 +11000,7 @@ function calculateDiagonalLabel(params) {
|
|
|
11016
11000
|
} = params;
|
|
11017
11001
|
const deltaX = dimensionEnd.x - dimensionStart.x;
|
|
11018
11002
|
const deltaY = dimensionEnd.y - dimensionStart.y;
|
|
11019
|
-
const
|
|
11003
|
+
const distance3 = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
|
|
11020
11004
|
const screenDeltaX = screenDimensionEnd.x - screenDimensionStart.x;
|
|
11021
11005
|
const screenDeltaY = screenDimensionEnd.y - screenDimensionStart.y;
|
|
11022
11006
|
const screenDistance = Math.sqrt(
|
|
@@ -11058,11 +11042,11 @@ function calculateDiagonalLabel(params) {
|
|
|
11058
11042
|
const x = midX + offsetX;
|
|
11059
11043
|
const y = midY + offsetY;
|
|
11060
11044
|
return {
|
|
11061
|
-
distance:
|
|
11045
|
+
distance: distance3,
|
|
11062
11046
|
screenDistance,
|
|
11063
11047
|
x,
|
|
11064
11048
|
y,
|
|
11065
|
-
show:
|
|
11049
|
+
show: distance3 > 0.01 && screenDistance > 30 && isDiagonal
|
|
11066
11050
|
};
|
|
11067
11051
|
}
|
|
11068
11052
|
|
|
@@ -11357,11 +11341,11 @@ var DimensionOverlay = ({
|
|
|
11357
11341
|
for (const snap of snappingPointsWithScreen) {
|
|
11358
11342
|
const dx = snap.screenPoint.x - screenPoint.x;
|
|
11359
11343
|
const dy = snap.screenPoint.y - screenPoint.y;
|
|
11360
|
-
const
|
|
11361
|
-
if (
|
|
11362
|
-
if (!bestMatch ||
|
|
11344
|
+
const distance3 = Math.hypot(dx, dy);
|
|
11345
|
+
if (distance3 > SNAP_THRESHOLD_PX) continue;
|
|
11346
|
+
if (!bestMatch || distance3 < bestMatch.distance) {
|
|
11363
11347
|
bestMatch = {
|
|
11364
|
-
distance:
|
|
11348
|
+
distance: distance3,
|
|
11365
11349
|
id: snap.id,
|
|
11366
11350
|
point: snap.point
|
|
11367
11351
|
};
|
|
@@ -11951,10 +11935,10 @@ var isInsideOfSmtpad = (elm, point, padding = 0) => {
|
|
|
11951
11935
|
};
|
|
11952
11936
|
var isInsideOfPlatedHole = (hole, point, padding = 0) => {
|
|
11953
11937
|
if (hole.shape === "circle") {
|
|
11954
|
-
const
|
|
11938
|
+
const distance3 = Math.sqrt(
|
|
11955
11939
|
(point.x - hole.x) ** 2 + (point.y - hole.y) ** 2
|
|
11956
11940
|
);
|
|
11957
|
-
return
|
|
11941
|
+
return distance3 <= hole.outer_diameter / 2 + padding;
|
|
11958
11942
|
} else if (hole.shape === "circular_hole_with_rect_pad") {
|
|
11959
11943
|
const dx = Math.abs(point.x - hole.x);
|
|
11960
11944
|
const dy = Math.abs(point.y - hole.y);
|
|
@@ -12785,7 +12769,7 @@ var ErrorOverlay = ({
|
|
|
12785
12769
|
|
|
12786
12770
|
// src/components/MouseElementTracker.tsx
|
|
12787
12771
|
import { pointToSegmentDistance } from "@tscircuit/math-utils";
|
|
12788
|
-
import { distance as
|
|
12772
|
+
import { distance as distance2 } from "circuit-json";
|
|
12789
12773
|
|
|
12790
12774
|
// src/lib/util/if-sets-match-exactly.ts
|
|
12791
12775
|
function ifSetsMatchExactly(set1, set2) {
|
|
@@ -13772,22 +13756,22 @@ var getPrimitivesUnderPoint = (primitives, rwPoint, transform) => {
|
|
|
13772
13756
|
for (const primitive of primitives) {
|
|
13773
13757
|
if (!primitive._element) continue;
|
|
13774
13758
|
if ("x1" in primitive && primitive._element?.type === "pcb_trace") {
|
|
13775
|
-
const
|
|
13759
|
+
const distance3 = pointToSegmentDistance(
|
|
13776
13760
|
{ x: rwPoint.x, y: rwPoint.y },
|
|
13777
13761
|
{ x: primitive.x1, y: primitive.y1 },
|
|
13778
13762
|
{ x: primitive.x2, y: primitive.y2 }
|
|
13779
13763
|
);
|
|
13780
13764
|
const lineWidth = primitive.width || 0.5;
|
|
13781
13765
|
const detectionThreshold = Math.max(lineWidth * 25, 2) / transform.a;
|
|
13782
|
-
if (
|
|
13766
|
+
if (distance3 < detectionThreshold) {
|
|
13783
13767
|
newMousedPrimitives.push(primitive);
|
|
13784
13768
|
}
|
|
13785
13769
|
continue;
|
|
13786
13770
|
}
|
|
13787
13771
|
if (primitive.pcb_drawing_type === "polygon") {
|
|
13788
13772
|
const points = primitive.points.map((point) => ({
|
|
13789
|
-
x:
|
|
13790
|
-
y:
|
|
13773
|
+
x: distance2.parse(point.x),
|
|
13774
|
+
y: distance2.parse(point.y)
|
|
13791
13775
|
}));
|
|
13792
13776
|
const boundingBox = getPolygonBoundingBox(points);
|
|
13793
13777
|
if (!boundingBox) continue;
|
|
@@ -13801,8 +13785,8 @@ var getPrimitivesUnderPoint = (primitives, rwPoint, transform) => {
|
|
|
13801
13785
|
}
|
|
13802
13786
|
if (primitive.pcb_drawing_type === "polygon_with_arcs") {
|
|
13803
13787
|
const points = primitive.brep_shape.outer_ring.vertices.map((v) => ({
|
|
13804
|
-
x:
|
|
13805
|
-
y:
|
|
13788
|
+
x: distance2.parse(v.x),
|
|
13789
|
+
y: distance2.parse(v.y)
|
|
13806
13790
|
}));
|
|
13807
13791
|
const boundingBox = getPolygonBoundingBox(points);
|
|
13808
13792
|
if (!boundingBox) continue;
|
|
@@ -14288,11 +14272,11 @@ var RatsNestOverlay = ({ transform, soup, children }) => {
|
|
|
14288
14272
|
connectedIds.forEach((id) => {
|
|
14289
14273
|
const pos = getElementPosition(id);
|
|
14290
14274
|
if (pos) {
|
|
14291
|
-
const
|
|
14275
|
+
const distance3 = Math.sqrt(
|
|
14292
14276
|
(sourcePoint.x - pos.x) ** 2 + (sourcePoint.y - pos.y) ** 2
|
|
14293
14277
|
);
|
|
14294
|
-
if (
|
|
14295
|
-
minDistance =
|
|
14278
|
+
if (distance3 < minDistance && distance3 > 0) {
|
|
14279
|
+
minDistance = distance3;
|
|
14296
14280
|
nearestPoint = pos;
|
|
14297
14281
|
}
|
|
14298
14282
|
}
|
|
@@ -14378,7 +14362,7 @@ import { css as css3 } from "@emotion/css";
|
|
|
14378
14362
|
// package.json
|
|
14379
14363
|
var package_default = {
|
|
14380
14364
|
name: "@tscircuit/pcb-viewer",
|
|
14381
|
-
version: "1.11.
|
|
14365
|
+
version: "1.11.357",
|
|
14382
14366
|
main: "dist/index.js",
|
|
14383
14367
|
type: "module",
|
|
14384
14368
|
repository: "tscircuit/pcb-viewer",
|
|
@@ -14428,11 +14412,11 @@ var package_default = {
|
|
|
14428
14412
|
},
|
|
14429
14413
|
dependencies: {
|
|
14430
14414
|
"@emotion/css": "^11.11.2",
|
|
14431
|
-
"@tscircuit/alphabet": "^0.0.
|
|
14415
|
+
"@tscircuit/alphabet": "^0.0.23",
|
|
14432
14416
|
"@tscircuit/math-utils": "^0.0.29",
|
|
14433
14417
|
"@vitejs/plugin-react": "^5.0.2",
|
|
14434
14418
|
"circuit-json": "^0.0.403",
|
|
14435
|
-
"circuit-to-canvas": "^0.0.
|
|
14419
|
+
"circuit-to-canvas": "^0.0.94",
|
|
14436
14420
|
"circuit-to-svg": "^0.0.337",
|
|
14437
14421
|
color: "^4.2.3",
|
|
14438
14422
|
"react-supergrid": "^1.0.10",
|