@tscircuit/3d-viewer 0.0.587 → 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.
Files changed (2) hide show
  1. package/dist/index.js +24 -6
  2. 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.586",
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.118",
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",
@@ -37224,6 +37224,7 @@ var drawSilkscreenLayer = ({
37224
37224
  layer,
37225
37225
  bounds,
37226
37226
  elements,
37227
+ apertureElements,
37227
37228
  silkscreenColor
37228
37229
  }) => {
37229
37230
  const renderLayer = layer === "top" ? "top_silkscreen" : "bottom_silkscreen";
@@ -37274,8 +37275,9 @@ var drawSilkscreenLayer = ({
37274
37275
  }
37275
37276
  });
37276
37277
  setDrawerBounds5(drawer, bounds);
37277
- drawer.drawElements(elements, {
37278
- layers: [renderLayer]
37278
+ drawer.drawElements([...elements, ...apertureElements], {
37279
+ layers: [renderLayer],
37280
+ clearDrillHoles: true
37279
37281
  });
37280
37282
  };
37281
37283
 
@@ -37285,17 +37287,31 @@ var isSilkscreenElement = (element, layer) => {
37285
37287
  const elementType = element.type;
37286
37288
  return elementType.startsWith("pcb_silkscreen_");
37287
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
+ };
37288
37300
  function createSilkscreenTextureForLayer({
37289
37301
  layer,
37290
37302
  circuitJson,
37291
37303
  boardData,
37292
37304
  traceTextureResolution = TRACE_TEXTURE_RESOLUTION,
37293
- silkscreenColor = "rgb(255,255,255)"
37305
+ silkscreenColor = "rgb(255,255,255)",
37306
+ soldermaskVisible = true
37294
37307
  }) {
37295
37308
  const elements = circuitJson.filter(
37296
37309
  (element) => isSilkscreenElement(element, layer)
37297
37310
  );
37298
37311
  if (elements.length === 0) return null;
37312
+ const apertureElements = circuitJson.filter(
37313
+ (element) => isOpenSurfaceAperture(element, soldermaskVisible)
37314
+ );
37299
37315
  const bounds = getSoldermaskRenderBounds(circuitJson, boardData);
37300
37316
  const canvasWidth = Math.floor(bounds.width * traceTextureResolution);
37301
37317
  const canvasHeight = Math.floor(bounds.height * traceTextureResolution);
@@ -37314,6 +37330,7 @@ function createSilkscreenTextureForLayer({
37314
37330
  layer,
37315
37331
  bounds,
37316
37332
  elements,
37333
+ apertureElements,
37317
37334
  silkscreenColor
37318
37335
  });
37319
37336
  const texture = new THREE33.CanvasTexture(canvas);
@@ -37767,7 +37784,8 @@ function createCombinedBoardTextures({
37767
37784
  circuitJson,
37768
37785
  boardData,
37769
37786
  silkscreenColor,
37770
- traceTextureResolution
37787
+ traceTextureResolution,
37788
+ soldermaskVisible: showMask
37771
37789
  }) : null;
37772
37790
  const fabricationNoteTexture = showSilkscreen ? createFabricationNoteTextureForLayer({
37773
37791
  layer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/3d-viewer",
3
- "version": "0.0.587",
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.118",
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",