@tscircuit/3d-viewer 0.0.586 → 0.0.588
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 +49 -27
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -32710,7 +32710,7 @@ import * as THREE23 from "three";
|
|
|
32710
32710
|
// package.json
|
|
32711
32711
|
var package_default = {
|
|
32712
32712
|
name: "@tscircuit/3d-viewer",
|
|
32713
|
-
version: "0.0.
|
|
32713
|
+
version: "0.0.587",
|
|
32714
32714
|
main: "./dist/index.js",
|
|
32715
32715
|
module: "./dist/index.js",
|
|
32716
32716
|
type: "module",
|
|
@@ -32740,7 +32740,7 @@ var package_default = {
|
|
|
32740
32740
|
"@jscad/regl-renderer": "^2.6.12",
|
|
32741
32741
|
"@jscad/stl-serializer": "^2.1.20",
|
|
32742
32742
|
"circuit-json": "^0.0.465",
|
|
32743
|
-
"circuit-to-canvas": "^0.0.
|
|
32743
|
+
"circuit-to-canvas": "^0.0.119",
|
|
32744
32744
|
"react-hot-toast": "^2.6.0",
|
|
32745
32745
|
three: "^0.165.0",
|
|
32746
32746
|
"three-stdlib": "^2.36.0",
|
|
@@ -33725,6 +33725,7 @@ var REFERENCE_OBJECT_SPECS = {
|
|
|
33725
33725
|
}
|
|
33726
33726
|
};
|
|
33727
33727
|
var REFERENCE_OBJECT_OPTIONS = Object.values(REFERENCE_OBJECT_SPECS);
|
|
33728
|
+
var REFERENCE_OBJECT_MENU_OPTIONS = [{ type: null, label: "None" }, ...REFERENCE_OBJECT_OPTIONS];
|
|
33728
33729
|
var toggleReferenceObject = (current, selected) => current === selected ? null : selected;
|
|
33729
33730
|
var safeDimension = (dimension) => Number.isFinite(dimension) ? Math.max(dimension ?? 0, 0) : 0;
|
|
33730
33731
|
var safeCoordinate = (coordinate) => Number.isFinite(coordinate) ? coordinate ?? 0 : 0;
|
|
@@ -37223,6 +37224,7 @@ var drawSilkscreenLayer = ({
|
|
|
37223
37224
|
layer,
|
|
37224
37225
|
bounds,
|
|
37225
37226
|
elements,
|
|
37227
|
+
apertureElements,
|
|
37226
37228
|
silkscreenColor
|
|
37227
37229
|
}) => {
|
|
37228
37230
|
const renderLayer = layer === "top" ? "top_silkscreen" : "bottom_silkscreen";
|
|
@@ -37273,8 +37275,9 @@ var drawSilkscreenLayer = ({
|
|
|
37273
37275
|
}
|
|
37274
37276
|
});
|
|
37275
37277
|
setDrawerBounds5(drawer, bounds);
|
|
37276
|
-
drawer.drawElements(elements, {
|
|
37277
|
-
layers: [renderLayer]
|
|
37278
|
+
drawer.drawElements([...elements, ...apertureElements], {
|
|
37279
|
+
layers: [renderLayer],
|
|
37280
|
+
clearDrillHoles: true
|
|
37278
37281
|
});
|
|
37279
37282
|
};
|
|
37280
37283
|
|
|
@@ -37284,17 +37287,31 @@ var isSilkscreenElement = (element, layer) => {
|
|
|
37284
37287
|
const elementType = element.type;
|
|
37285
37288
|
return elementType.startsWith("pcb_silkscreen_");
|
|
37286
37289
|
};
|
|
37290
|
+
var isOpenSurfaceAperture = (element, soldermaskVisible) => {
|
|
37291
|
+
if (element.type === "pcb_cutout") return true;
|
|
37292
|
+
if (element.type === "pcb_via") {
|
|
37293
|
+
return !soldermaskVisible || element.is_tented !== true;
|
|
37294
|
+
}
|
|
37295
|
+
if (element.type === "pcb_hole" || element.type === "pcb_plated_hole") {
|
|
37296
|
+
return !soldermaskVisible || element.is_covered_with_solder_mask !== true;
|
|
37297
|
+
}
|
|
37298
|
+
return false;
|
|
37299
|
+
};
|
|
37287
37300
|
function createSilkscreenTextureForLayer({
|
|
37288
37301
|
layer,
|
|
37289
37302
|
circuitJson,
|
|
37290
37303
|
boardData,
|
|
37291
37304
|
traceTextureResolution = TRACE_TEXTURE_RESOLUTION,
|
|
37292
|
-
silkscreenColor = "rgb(255,255,255)"
|
|
37305
|
+
silkscreenColor = "rgb(255,255,255)",
|
|
37306
|
+
soldermaskVisible = true
|
|
37293
37307
|
}) {
|
|
37294
37308
|
const elements = circuitJson.filter(
|
|
37295
37309
|
(element) => isSilkscreenElement(element, layer)
|
|
37296
37310
|
);
|
|
37297
37311
|
if (elements.length === 0) return null;
|
|
37312
|
+
const apertureElements = circuitJson.filter(
|
|
37313
|
+
(element) => isOpenSurfaceAperture(element, soldermaskVisible)
|
|
37314
|
+
);
|
|
37298
37315
|
const bounds = getSoldermaskRenderBounds(circuitJson, boardData);
|
|
37299
37316
|
const canvasWidth = Math.floor(bounds.width * traceTextureResolution);
|
|
37300
37317
|
const canvasHeight = Math.floor(bounds.height * traceTextureResolution);
|
|
@@ -37313,6 +37330,7 @@ function createSilkscreenTextureForLayer({
|
|
|
37313
37330
|
layer,
|
|
37314
37331
|
bounds,
|
|
37315
37332
|
elements,
|
|
37333
|
+
apertureElements,
|
|
37316
37334
|
silkscreenColor
|
|
37317
37335
|
});
|
|
37318
37336
|
const texture = new THREE33.CanvasTexture(canvas);
|
|
@@ -37766,7 +37784,8 @@ function createCombinedBoardTextures({
|
|
|
37766
37784
|
circuitJson,
|
|
37767
37785
|
boardData,
|
|
37768
37786
|
silkscreenColor,
|
|
37769
|
-
traceTextureResolution
|
|
37787
|
+
traceTextureResolution,
|
|
37788
|
+
soldermaskVisible: showMask
|
|
37770
37789
|
}) : null;
|
|
37771
37790
|
const fabricationNoteTexture = showSilkscreen ? createFabricationNoteTextureForLayer({
|
|
37772
37791
|
layer,
|
|
@@ -47321,28 +47340,31 @@ var ContextMenu = ({
|
|
|
47321
47340
|
style: { ...contentStyles2, marginLeft: -2 },
|
|
47322
47341
|
collisionPadding: 10,
|
|
47323
47342
|
avoidCollisions: true,
|
|
47324
|
-
children:
|
|
47325
|
-
|
|
47326
|
-
|
|
47327
|
-
|
|
47328
|
-
|
|
47329
|
-
|
|
47330
|
-
|
|
47331
|
-
|
|
47332
|
-
|
|
47333
|
-
event.preventDefault()
|
|
47334
|
-
|
|
47343
|
+
children: REFERENCE_OBJECT_MENU_OPTIONS.map((option) => {
|
|
47344
|
+
const optionKey = option.type ?? "none";
|
|
47345
|
+
return /* @__PURE__ */ jsxs8(
|
|
47346
|
+
Item22,
|
|
47347
|
+
{
|
|
47348
|
+
style: {
|
|
47349
|
+
...itemStyles2,
|
|
47350
|
+
backgroundColor: hoveredItem === optionKey ? "#404040" : "transparent"
|
|
47351
|
+
},
|
|
47352
|
+
onSelect: (event) => event.preventDefault(),
|
|
47353
|
+
onPointerDown: (event) => {
|
|
47354
|
+
event.preventDefault();
|
|
47355
|
+
onReferenceObjectSelect(option.type);
|
|
47356
|
+
},
|
|
47357
|
+
onMouseEnter: () => setHoveredItem(optionKey),
|
|
47358
|
+
onMouseLeave: () => setHoveredItem(null),
|
|
47359
|
+
onTouchStart: () => setHoveredItem(optionKey),
|
|
47360
|
+
children: [
|
|
47361
|
+
/* @__PURE__ */ jsx34("span", { style: iconContainerStyles2, children: referenceObject === option.type && /* @__PURE__ */ jsx34(DotIcon, {}) }),
|
|
47362
|
+
/* @__PURE__ */ jsx34("span", { style: { display: "flex", alignItems: "center" }, children: option.label })
|
|
47363
|
+
]
|
|
47335
47364
|
},
|
|
47336
|
-
|
|
47337
|
-
|
|
47338
|
-
|
|
47339
|
-
children: [
|
|
47340
|
-
/* @__PURE__ */ jsx34("span", { style: iconContainerStyles2, children: referenceObject === option.type && /* @__PURE__ */ jsx34(DotIcon, {}) }),
|
|
47341
|
-
/* @__PURE__ */ jsx34("span", { style: { display: "flex", alignItems: "center" }, children: option.label })
|
|
47342
|
-
]
|
|
47343
|
-
},
|
|
47344
|
-
option.type
|
|
47345
|
-
))
|
|
47365
|
+
optionKey
|
|
47366
|
+
);
|
|
47367
|
+
})
|
|
47346
47368
|
}
|
|
47347
47369
|
) })
|
|
47348
47370
|
] }),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/3d-viewer",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.588",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@jscad/regl-renderer": "^2.6.12",
|
|
31
31
|
"@jscad/stl-serializer": "^2.1.20",
|
|
32
32
|
"circuit-json": "^0.0.465",
|
|
33
|
-
"circuit-to-canvas": "^0.0.
|
|
33
|
+
"circuit-to-canvas": "^0.0.119",
|
|
34
34
|
"react-hot-toast": "^2.6.0",
|
|
35
35
|
"three": "^0.165.0",
|
|
36
36
|
"three-stdlib": "^2.36.0",
|