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.
- package/dist/index.js +23 -13
- 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
|
|
15583
|
-
const
|
|
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
|
-
|
|
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);
|