@tscircuit/3d-viewer 0.0.471 → 0.0.472

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 +36 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -28509,7 +28509,7 @@ import * as THREE15 from "three";
28509
28509
  // package.json
28510
28510
  var package_default = {
28511
28511
  name: "@tscircuit/3d-viewer",
28512
- version: "0.0.470",
28512
+ version: "0.0.471",
28513
28513
  main: "./dist/index.js",
28514
28514
  module: "./dist/index.js",
28515
28515
  type: "module",
@@ -32420,6 +32420,7 @@ function createSilkscreenTextureForLayer({
32420
32420
  const pcbSilkscreenRects = su6(circuitJson).pcb_silkscreen_rect.list();
32421
32421
  const pcbSilkscreenCircles = su6(circuitJson).pcb_silkscreen_circle.list();
32422
32422
  const pcbFabricationNoteRects = su6(circuitJson).pcb_fabrication_note_rect.list();
32423
+ const pcbNoteLines = su6(circuitJson).pcb_note_line.list();
32423
32424
  const textsOnLayer = pcbSilkscreenTexts.filter((t) => t.layer === layer);
32424
32425
  const pathsOnLayer = pcbSilkscreenPaths.filter((p) => p.layer === layer);
32425
32426
  const linesOnLayer = pcbSilkscreenLines.filter((l) => l.layer === layer);
@@ -32428,7 +32429,10 @@ function createSilkscreenTextureForLayer({
32428
32429
  const fabricationNoteRectsOnLayer = pcbFabricationNoteRects.filter(
32429
32430
  (r) => r.layer === layer
32430
32431
  );
32431
- if (textsOnLayer.length === 0 && pathsOnLayer.length === 0 && linesOnLayer.length === 0 && rectsOnLayer.length === 0 && circlesOnLayer.length === 0 && fabricationNoteRectsOnLayer.length === 0) {
32432
+ const noteLinesOnLayer = pcbNoteLines.filter(
32433
+ (l) => l.layer === layer
32434
+ );
32435
+ if (textsOnLayer.length === 0 && pathsOnLayer.length === 0 && linesOnLayer.length === 0 && rectsOnLayer.length === 0 && circlesOnLayer.length === 0 && fabricationNoteRectsOnLayer.length === 0 && noteLinesOnLayer.length === 0) {
32432
32436
  return null;
32433
32437
  }
32434
32438
  const canvas = document.createElement("canvas");
@@ -32459,6 +32463,36 @@ function createSilkscreenTextureForLayer({
32459
32463
  ctx.lineTo(canvasXFromPcb(endXmm), canvasYFromPcb(endYmm));
32460
32464
  ctx.stroke();
32461
32465
  });
32466
+ noteLinesOnLayer.forEach((lineEl) => {
32467
+ const startXmm = parseDimensionToMm(lineEl.x1) ?? 0;
32468
+ const startYmm = parseDimensionToMm(lineEl.y1) ?? 0;
32469
+ const endXmm = parseDimensionToMm(lineEl.x2) ?? 0;
32470
+ const endYmm = parseDimensionToMm(lineEl.y2) ?? 0;
32471
+ if (startXmm === endXmm && startYmm === endYmm) return;
32472
+ ctx.save();
32473
+ let strokeColor = silkscreenColor;
32474
+ if (lineEl.color) {
32475
+ strokeColor = parseFabricationNoteColor(lineEl.color);
32476
+ } else {
32477
+ strokeColor = "rgb(255, 243, 204)";
32478
+ }
32479
+ ctx.strokeStyle = strokeColor;
32480
+ ctx.beginPath();
32481
+ ctx.lineWidth = coerceDimensionToMm(lineEl.stroke_width, 0.1) * traceTextureResolution;
32482
+ ctx.lineCap = "round";
32483
+ const isDashed = lineEl.is_dashed ?? false;
32484
+ if (isDashed) {
32485
+ const dashLength = Math.max(ctx.lineWidth * 2, 1);
32486
+ ctx.setLineDash([dashLength, dashLength]);
32487
+ }
32488
+ ctx.moveTo(canvasXFromPcb(startXmm), canvasYFromPcb(startYmm));
32489
+ ctx.lineTo(canvasXFromPcb(endXmm), canvasYFromPcb(endYmm));
32490
+ ctx.stroke();
32491
+ if (isDashed) {
32492
+ ctx.setLineDash([]);
32493
+ }
32494
+ ctx.restore();
32495
+ });
32462
32496
  pathsOnLayer.forEach((path) => {
32463
32497
  if (path.route.length < 2) return;
32464
32498
  ctx.beginPath();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/3d-viewer",
3
- "version": "0.0.471",
3
+ "version": "0.0.472",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "type": "module",