circuit-json-to-gltf 0.0.74 → 0.0.75

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 +23 -13
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -15199,8 +15199,8 @@ function scaleMesh(mesh, scale) {
15199
15199
 
15200
15200
  // lib/utils/pcb-board-cutouts.ts
15201
15201
  var import_extrusions = __toESM(require_extrusions(), 1);
15202
- var import_primitives = __toESM(require_primitives(), 1);
15203
15202
  var import_transforms = __toESM(require_transforms(), 1);
15203
+ var import_primitives = __toESM(require_primitives(), 1);
15204
15204
  var DEFAULT_SEGMENTS = 64;
15205
15205
  var REDUCED_SEGMENTS = 16;
15206
15206
  var HOLE_COUNT_THRESHOLD = 50;
@@ -15222,7 +15222,7 @@ var createCircularHole = (x, y, radius, thickness, segments = DEFAULT_SEGMENTS)
15222
15222
  radius,
15223
15223
  segments
15224
15224
  });
15225
- var createCutoutGeoms = (boardCenter, thickness, cutouts = []) => {
15225
+ var createCutoutGeoms = (boardCenter, thickness, cutouts = [], segments = DEFAULT_SEGMENTS) => {
15226
15226
  const geoms = [];
15227
15227
  for (const cutout of cutouts) {
15228
15228
  if (!cutout) continue;
@@ -15297,7 +15297,7 @@ var createCutoutGeoms = (boardCenter, thickness, cutouts = []) => {
15297
15297
  if (!radius) continue;
15298
15298
  const relX = center.x - boardCenter.x;
15299
15299
  const relY = -(center.y - boardCenter.y);
15300
- geoms.push(createCircularHole(relX, relY, radius, thickness));
15300
+ geoms.push(createCircularHole(relX, relY, radius, thickness, segments));
15301
15301
  break;
15302
15302
  }
15303
15303
  case "polygon": {
@@ -15329,12 +15329,12 @@ var filterCutoutsForBoard = (cutouts, board) => {
15329
15329
  };
15330
15330
 
15331
15331
  // lib/utils/pcb-board-geometry.ts
15332
- var import_extrusions2 = __toESM(require_extrusions(), 1);
15333
- var import_primitives2 = __toESM(require_primitives(), 1);
15334
- var import_transforms2 = __toESM(require_transforms(), 1);
15335
- var import_booleans2 = __toESM(require_booleans(), 1);
15336
15332
  var geom3 = __toESM(require_geom3(), 1);
15337
15333
  var import_measureBoundingBox = __toESM(require_measureBoundingBox2(), 1);
15334
+ var import_booleans2 = __toESM(require_booleans(), 1);
15335
+ var import_extrusions2 = __toESM(require_extrusions(), 1);
15336
+ var import_transforms2 = __toESM(require_transforms(), 1);
15337
+ var import_primitives2 = __toESM(require_primitives(), 1);
15338
15338
 
15339
15339
  // lib/utils/batched-union.ts
15340
15340
  var import_booleans = __toESM(require_booleans(), 1);
@@ -15553,7 +15553,7 @@ var createBoardMesh = (board, options) => {
15553
15553
  platedHoles,
15554
15554
  segments
15555
15555
  );
15556
- const cutoutGeoms = createCutoutGeoms(center, thickness, cutouts);
15556
+ const cutoutGeoms = createCutoutGeoms(center, thickness, cutouts, segments);
15557
15557
  const subtractGeoms = [...holeGeoms, ...cutoutGeoms];
15558
15558
  if (subtractGeoms.length > 0) {
15559
15559
  const unifiedHoles = batchedUnion(subtractGeoms);
@@ -15571,19 +15571,29 @@ var createBoardMesh = (board, options) => {
15571
15571
  };
15572
15572
 
15573
15573
  // lib/utils/pcb-panel-geometry.ts
15574
- var import_transforms3 = __toESM(require_transforms(), 1);
15575
- var import_booleans3 = __toESM(require_booleans(), 1);
15576
15574
  var geom32 = __toESM(require_geom3(), 1);
15577
15575
  var import_measureBoundingBox2 = __toESM(require_measureBoundingBox2(), 1);
15576
+ var import_booleans3 = __toESM(require_booleans(), 1);
15577
+ var import_transforms3 = __toESM(require_transforms(), 1);
15578
15578
  var createPanelMesh = (panel, options) => {
15579
15579
  const { thickness, holes = [], platedHoles = [], cutouts = [] } = options;
15580
15580
  const center = panel.center ?? { x: 0, y: 0 };
15581
15581
  let panelGeom = createBoardOutlineGeom(panel, center, thickness);
15582
- const holeGeoms = createHoleGeoms(center, thickness, holes, platedHoles);
15583
- const cutoutGeoms = createCutoutGeoms(center, thickness, cutouts);
15582
+ const totalHoleCount = holes.length + platedHoles.length;
15583
+ const useReducedSegments = totalHoleCount > HOLE_COUNT_THRESHOLD;
15584
+ const segments = useReducedSegments ? REDUCED_SEGMENTS : DEFAULT_SEGMENTS;
15585
+ const holeGeoms = createHoleGeoms(
15586
+ center,
15587
+ thickness,
15588
+ holes,
15589
+ platedHoles,
15590
+ segments
15591
+ );
15592
+ const cutoutGeoms = createCutoutGeoms(center, thickness, cutouts, segments);
15584
15593
  const subtractGeoms = [...holeGeoms, ...cutoutGeoms];
15585
15594
  if (subtractGeoms.length > 0) {
15586
- panelGeom = (0, import_booleans3.subtract)(panelGeom, ...subtractGeoms);
15595
+ const unifiedHoles = batchedUnion(subtractGeoms);
15596
+ panelGeom = (0, import_booleans3.subtract)(panelGeom, unifiedHoles);
15587
15597
  }
15588
15598
  panelGeom = (0, import_transforms3.rotateX)(-Math.PI / 2, panelGeom);
15589
15599
  const polygons = geom32.toPolygons(panelGeom);
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "circuit-json-to-gltf",
3
3
  "main": "dist/index.js",
4
4
  "type": "module",
5
- "version": "0.0.74",
5
+ "version": "0.0.75",
6
6
  "scripts": {
7
7
  "test": "bun test tests/",
8
8
  "test:playwright": "playwright test",