forgecad 0.9.14 → 0.9.16
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/LICENSE +6 -4
- package/README.md +8 -4
- package/dist/assets/{AdminPage-eWGs2K6H.js → AdminPage-CXvls4-J.js} +2 -2
- package/dist/assets/{BenchmarkPage-CTrLKfpo.js → BenchmarkPage-B27zk8xL.js} +4 -15
- package/dist/assets/{BlogPage-5nPesyds.js → BlogPage-CMAVvgQL.js} +2 -2
- package/dist/assets/{DocsPage-C4Y3nbYc.js → DocsPage-knf4I4h7.js} +9 -3
- package/dist/assets/EditorApp-BHMQlJ-D.js +14686 -0
- package/dist/assets/{EditorApp-BAnckbsk.css → EditorApp-BpjZgzk0.css} +846 -0
- package/dist/assets/{EmbedViewer-C8fB4n5U.js → EmbedViewer-D7ZGlFjx.js} +3 -3
- package/dist/assets/{LandingPageProofDriven-jSz0LaMM.js → LandingPageProofDriven-CnevhTE8.js} +36 -38
- package/dist/assets/LegalPage-BPTUmqeg.js +39 -0
- package/dist/assets/LegalPage-BRlScr9A.css +91 -0
- package/dist/assets/{PricingPage-B83B90zh.js → PricingPage-B0D4goG_.js} +19 -19
- package/dist/assets/{PricingPage-BMedqFef.css → PricingPage-BPF6HKyO.css} +25 -0
- package/dist/assets/{SettingsPage-DY889pcu.js → SettingsPage-CFF-UgjI.js} +2 -2
- package/dist/assets/app-CE3sYcV7.css +3890 -0
- package/dist/assets/{app-bEww1ic4.js → app-T0pDcSX4.js} +3382 -1069
- package/dist/assets/cli/{render-Cho2uKG_.js → render-C5pcIISc.js} +477 -29
- package/dist/assets/{constructionHistoryWorker-HYwzJY4m.js → constructionHistoryWorker-Ba2Hm58b.js} +928 -243
- package/dist/assets/{evalWorker-CjQwJSE-.js → evalWorker-vkx310U2.js} +8883 -6040
- package/dist/assets/{forgecad_geometry-CH2nvuLA.js → forgecad_geometry-Dgceylq9.js} +43 -1
- package/dist/assets/forgecad_geometry_bg-dD4RNQF1.wasm +0 -0
- package/dist/assets/{inspectWorker-DeRnMVv1.js → inspectWorker-BuTJDVX6.js} +1179 -273
- package/dist/assets/{javascript-70-4uGcz.js → javascript-1kQXfVaz.js} +1 -1
- package/dist/assets/{targets-D6PWsv6X.js → jointPose-B_Cgedn9.js} +71 -3
- package/dist/assets/landing-proof-driven-DiGqdtWa.js +18 -0
- package/dist/assets/{landing-proof-driven-oFYW6mjz.css → landing-proof-driven-ORyigZ6p.css} +13 -7
- package/dist/assets/legalContent-ZfFGMmi4.js +251 -0
- package/dist/assets/{manifold-rmfAcdwF.js → manifold-BWgsjmAM.js} +1 -1
- package/dist/assets/{manifold-uRzgk5O8.js → manifold-D6IFSkhH.js} +2 -2
- package/dist/assets/{manifold-CG9Fokx-.js → manifold-rZexZI0G.js} +1 -1
- package/dist/assets/{reportWorker-4cW_ZpoS.js → reportWorker-0AGij1Ru.js} +8659 -12771
- package/dist/assets/{scalar-sampling-budget-CfDiFvh7.js → scalar-sampling-budget-J5cuzxT1.js} +8050 -6203
- package/dist/assets/{scanProxyWorker-Bs2TDgLw.js → scanProxyWorker-Vl4Wxa1y.js} +50 -6
- package/dist/assets/{solver-DuJAO8S6.js → solver-BZ9LPTHs.js} +1 -1
- package/dist/assets/solver_bg-DAHZJ_rw.wasm +0 -0
- package/dist/assets/{vendor-react-Da3A2QmU.js → vendor-react-6j1Kke-Y.js} +6 -5
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +2 -2
- package/dist/docs-raw/AI/ai-native-cad.md +50 -0
- package/dist/docs-raw/AI/usage.md +5 -12
- package/dist/docs-raw/CLI.md +34 -10
- package/dist/docs-raw/component-model.md +27 -11
- package/dist/docs-raw/generated/assembly.md +374 -187
- package/dist/docs-raw/generated/concepts.md +245 -237
- package/dist/docs-raw/generated/core.md +283 -6
- package/dist/docs-raw/generated/curves.md +274 -361
- package/dist/docs-raw/generated/lib.md +9 -19
- package/dist/docs-raw/generated/output.md +29 -4
- package/dist/docs-raw/generated/runtime-names.md +49 -0
- package/dist/docs-raw/generated/sdf.md +31 -0
- package/dist/docs-raw/generated/sheet-metal.md +9 -0
- package/dist/docs-raw/generated/sketch.md +44 -1
- package/dist/docs-raw/generated/viewport.md +11 -3
- package/dist/docs-raw/guides/coordinate-system.md +20 -16
- package/dist/docs-raw/guides/geometry-conventions.md +2 -2
- package/dist/docs-raw/guides/inspection-bundles.md +2 -1
- package/dist/docs-raw/guides/joint-design.md +24 -0
- package/dist/docs-raw/guides/positioning.md +13 -3
- package/dist/docs-raw/legal/privacy.md +63 -0
- package/dist/docs-raw/legal/software-license.md +55 -0
- package/dist/docs-raw/legal/terms.md +87 -0
- package/dist/docs-raw/skills/forgecad-3d-reconstruction.md +1 -1
- package/dist/docs-raw/skills/forgecad-blockout-model.md +1 -1
- package/dist/docs-raw/skills/forgecad-component-model.md +11 -2
- package/dist/docs-raw/skills/forgecad-high-level-spec.md +1 -1
- package/dist/docs-raw/skills/forgecad-image-replicator.md +8 -8
- package/dist/docs-raw/skills/forgecad-lld.md +1 -1
- package/dist/docs-raw/skills/forgecad-make-a-model.md +40 -39
- package/dist/docs-raw/skills/forgecad-model-grader.md +2 -2
- package/dist/docs-raw/skills/forgecad-prepare-prompt.md +2 -2
- package/dist/docs-raw/skills/forgecad-project.md +3 -1
- package/dist/docs-raw/skills/forgecad-reconstruction-benchmark.md +1 -1
- package/dist/docs-raw/skills/forgecad-render-inspect.md +4 -2
- package/dist/docs-raw/skills/forgecad-visual-spec.md +1 -1
- package/dist/docs-raw/skills/forgecad.md +4 -3
- package/dist/docs-raw/welcome.md +2 -0
- package/dist/index.html +40 -12
- package/dist/llms.txt +8 -0
- package/dist/site.webmanifest +1 -1
- package/dist/sitemap.xml +49 -13
- package/dist-cli/{check-compiler-U5SOPN7X.js → check-compiler-SYQ2PWOB.js} +1 -2
- package/dist-cli/{check-query-propagation-XOKNSSYU.js → check-query-propagation-HIAGV62W.js} +1 -2
- package/dist-cli/{chunk-EXWGNL6K.js → chunk-SPZE3DUY.js} +20659 -17930
- package/dist-cli/forgecad.js +3568 -1250
- package/dist-cli/{forgecad_geometry-GYVNKPIE.js → forgecad_geometry-QOQIIP53.js} +42 -1
- package/dist-cli/forgecad_geometry_bg.wasm +0 -0
- package/dist-cli/{solver-46FFSK2U.js → solver-OK4HECRH.js} +0 -1
- package/dist-cli/solver_bg.wasm +0 -0
- package/dist-skill/CONTEXT.md +1192 -725
- package/dist-skill/SKILL.md +3 -2
- package/dist-skill/docs/API/core/concepts.md +64 -1
- package/dist-skill/docs/CLI.md +34 -10
- package/dist-skill/docs/generated/assembly.md +339 -213
- package/dist-skill/docs/generated/core.md +283 -6
- package/dist-skill/docs/generated/curves.md +272 -362
- package/dist-skill/docs/generated/lib.md +9 -19
- package/dist-skill/docs/generated/output.md +29 -4
- package/dist-skill/docs/generated/runtime-names.md +40 -0
- package/dist-skill/docs/generated/sdf.md +31 -0
- package/dist-skill/docs/generated/sheet-metal.md +9 -0
- package/dist-skill/docs/generated/sketch.md +44 -2
- package/dist-skill/docs/generated/viewport.md +2 -87
- package/dist-skill/docs/guides/coordinate-system.md +20 -16
- package/dist-skill/docs/guides/geometry-conventions.md +2 -2
- package/dist-skill/docs/guides/inspection-bundles.md +2 -1
- package/dist-skill/docs/guides/joint-design.md +24 -0
- package/dist-skill/docs/guides/positioning.md +13 -3
- package/dist-skill/library/forgecad-component-model/SKILL.md +10 -1
- package/dist-skill/library/forgecad-image-replicator/SKILL.md +6 -6
- package/dist-skill/library/forgecad-image-replicator/scripts/compare_images.py +166 -0
- package/dist-skill/library/forgecad-make-a-model/SKILL.md +39 -38
- package/dist-skill/library/forgecad-model-grader/SKILL.md +1 -1
- package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +1 -1
- package/dist-skill/library/forgecad-project/SKILL.md +2 -0
- package/dist-skill/library/forgecad-render-inspect/SKILL.md +3 -1
- package/examples/api/assembly-kinematics-foundation.forge.js +65 -0
- package/examples/api/assembly-kinematics-four-bar.forge.js +115 -0
- package/examples/api/assembly-kinematics-limb.forge.js +116 -0
- package/examples/api/connector-frame-rig-chain.forge.js +102 -0
- package/examples/api/exact-sheet-shell-assembly.forge.js +0 -2
- package/examples/api/exact-surface-studio.forge.js +6 -8
- package/examples/api/helix-basics.forge.js +8 -8
- package/examples/api/lean-foundations/README.md +12 -0
- package/examples/api/lean-foundations/curve-blend-exact.forge.js +22 -0
- package/examples/api/lean-foundations/curve-fit-interpolation.forge.js +18 -0
- package/examples/api/lean-foundations/curve-helix-canonicalization.forge.js +27 -0
- package/examples/api/lean-foundations/curve-route-canonicalization.forge.js +16 -0
- package/examples/api/lean-foundations/curve-trim-reverse.forge.js +24 -0
- package/examples/api/lean-foundations/exact-curve-arc.forge.js +36 -0
- package/examples/api/mixed-edge-finishes-proof.forge.js +8 -11
- package/examples/api/route3d-elbow.forge.js +71 -0
- package/examples/api/transition-curves.forge.js +44 -15
- package/examples/api/variable-sweep-test.forge.js +3 -1
- package/examples/api/y-blend-corner-showcase.forge.js +0 -2
- package/examples/generative/coral-vase.forge.js +1 -1
- package/examples/nurbs-tube.forge.js +1 -1
- package/package.json +17 -13
- package/dist/assets/EditorApp-lXv53A1m.js +0 -13610
- package/dist/assets/app-CsHnaBWt.css +0 -1789
- package/dist/assets/forgecad_geometry_bg-C5_E9Oa9.wasm +0 -0
- package/dist/assets/solver_bg-CWvv4lnN.wasm +0 -0
- package/dist/docs-raw/API/README.md +0 -16
- package/dist/docs-raw/API/core/concepts.md +0 -118
- package/dist/docs-raw/INDEX.md +0 -138
- package/dist/docs-raw/RELEASING.md +0 -87
- package/dist/docs-raw/agent-native-api.md +0 -27
- package/dist/docs-raw/beta-deployment.md +0 -304
- package/dist/docs-raw/beta-operations.md +0 -325
- package/dist/docs-raw/blueprint-first.md +0 -145
- package/dist/docs-raw/cli-monetization.md +0 -112
- package/dist/docs-raw/coding-best-practices.md +0 -120
- package/dist/docs-raw/coding.md +0 -340
- package/dist/docs-raw/deployment.md +0 -374
- package/dist/docs-raw/guides/skill-maintenance.md +0 -161
- package/dist/docs-raw/guides/surface-members.md +0 -82
- package/dist/docs-raw/harbor-cli.md +0 -854
- package/dist/docs-raw/internals/backend-vocabulary.md +0 -35
- package/dist/docs-raw/internals/compiler.md +0 -307
- package/dist/docs-raw/internals/constraint-solver-quality.md +0 -161
- package/dist/docs-raw/internals/constraint-solver.md +0 -176
- package/dist/docs-raw/internals/shape-from-slices.md +0 -152
- package/dist/docs-raw/internals/sketch-2d-pipeline.md +0 -108
- package/dist/docs-raw/platform/admin.md +0 -45
- package/dist/docs-raw/platform/architecture.md +0 -82
- package/dist/docs-raw/platform/auth.md +0 -139
- package/dist/docs-raw/platform/email.md +0 -67
- package/dist/docs-raw/platform/google-oauth-setup.md +0 -88
- package/dist/docs-raw/platform/observability.md +0 -197
- package/dist/docs-raw/platform/projects.md +0 -111
- package/dist/docs-raw/platform/sharing.md +0 -90
- package/dist/docs-raw/product/README.md +0 -39
- package/dist/docs-raw/product/api-as-product-language.md +0 -13
- package/dist/docs-raw/product/business-model.md +0 -15
- package/dist/docs-raw/product/competitive-positioning.md +0 -17
- package/dist/docs-raw/product/creative-manufacturing.md +0 -15
- package/dist/docs-raw/product/founder-story.md +0 -11
- package/dist/docs-raw/product/manufacturing-workflows.md +0 -15
- package/dist/docs-raw/product/onboarding-first-experience.md +0 -256
- package/dist/docs-raw/product/product-loop.md +0 -17
- package/dist/docs-raw/product/strategic-decisions.md +0 -22
- package/dist/docs-raw/product/user-outreach-email-templates.md +0 -161
- package/dist/docs-raw/product/user-segments.md +0 -15
- package/dist/docs-raw/product/vision.md +0 -26
- package/dist/docs-raw/rl-environments.md +0 -350
- package/dist/docs-raw/runbook.md +0 -611
- package/dist-cli/check-compiler-U5SOPN7X.js.map +0 -1
- package/dist-cli/check-query-propagation-XOKNSSYU.js.map +0 -1
- package/dist-cli/chunk-EXWGNL6K.js.map +0 -1
- package/dist-cli/forgecad.js.map +0 -1
- package/dist-cli/forgecad_geometry-GYVNKPIE.js.map +0 -1
- package/dist-cli/solver-46FFSK2U.js.map +0 -1
- package/dist-skill/SKILL-dev.md +0 -145
- package/dist-skill/docs-dev/API/core/concepts.md +0 -118
- package/dist-skill/docs-dev/CLI.md +0 -677
- package/dist-skill/docs-dev/agent-native-api.md +0 -27
- package/dist-skill/docs-dev/blueprint-first.md +0 -145
- package/dist-skill/docs-dev/coding-best-practices.md +0 -120
- package/dist-skill/docs-dev/coding.md +0 -340
- package/dist-skill/docs-dev/component-model.md +0 -164
- package/dist-skill/docs-dev/generated/assembly.md +0 -794
- package/dist-skill/docs-dev/generated/core.md +0 -2117
- package/dist-skill/docs-dev/generated/curves.md +0 -2583
- package/dist-skill/docs-dev/generated/lib.md +0 -169
- package/dist-skill/docs-dev/generated/output.md +0 -247
- package/dist-skill/docs-dev/generated/sdf.md +0 -446
- package/dist-skill/docs-dev/generated/sheet-metal.md +0 -504
- package/dist-skill/docs-dev/generated/sketch.md +0 -1811
- package/dist-skill/docs-dev/generated/viewport.md +0 -585
- package/dist-skill/docs-dev/generated/wood.md +0 -108
- package/dist-skill/docs-dev/guides/coordinate-system.md +0 -46
- package/dist-skill/docs-dev/guides/geometry-conventions.md +0 -52
- package/dist-skill/docs-dev/guides/inspection-bundles.md +0 -485
- package/dist-skill/docs-dev/guides/joint-design.md +0 -78
- package/dist-skill/docs-dev/guides/modeling-recipes.md +0 -78
- package/dist-skill/docs-dev/guides/positioning.md +0 -161
- package/dist-skill/docs-dev/guides/skill-maintenance.md +0 -161
- package/dist-skill/docs-dev/internals/backend-vocabulary.md +0 -35
- package/dist-skill/docs-dev/internals/compiler.md +0 -307
- package/dist-skill/docs-dev/internals/constraint-solver-quality.md +0 -161
- package/dist-skill/docs-dev/internals/constraint-solver.md +0 -176
- package/dist-skill/docs-dev/internals/sketch-2d-pipeline.md +0 -108
- package/dist-skill/library/forgecad-image-replicator/scripts/compare_images.mjs +0 -289
- package/examples/api/bolted-service-cover.forge.js +0 -17
- package/examples/api/cable-gland-anchor.forge.js +0 -14
- package/examples/api/captured-cartridge-guide.forge.js +0 -14
- package/examples/api/captured-linear-slide.forge.js +0 -13
- package/examples/api/clevis-pin-joint.forge.js +0 -13
- package/examples/api/datum-enclosure.forge.js +0 -16
- package/examples/api/hose-barb-port.forge.js +0 -14
- package/examples/api/knuckled-hinge-assembly.forge.js +0 -15
- package/examples/api/living-hinge-cover.forge.js +0 -14
- package/examples/api/pcb-terminal-block.forge.js +0 -22
- package/examples/api/pinned-lever-pivot-stack.forge.js +0 -14
- package/examples/api/retained-shaft-knob-stack.forge.js +0 -15
- package/examples/api/routed-tube-clip.forge.js +0 -15
- package/examples/api/seated-bearing-stack.forge.js +0 -30
- package/examples/api/snap-latch-cover.forge.js +0 -14
- package/examples/api/thumb-screw-clamp.forge.js +0 -15
|
@@ -7569,14 +7569,16 @@ function createScanProxyGeometry(source, options = {}) {
|
|
|
7569
7569
|
addLookup(lookup, shell, "shell");
|
|
7570
7570
|
addLookup(lookup, hiddenInterior, "core");
|
|
7571
7571
|
const shellMesh = buildCellGeometry(shell, "shell", spec, lookup);
|
|
7572
|
+
const cellCenters = buildCellCenterGeometry(shell, spec);
|
|
7572
7573
|
const coreMesh = { geometry: null, faces: 0 };
|
|
7573
7574
|
const signalMesh = { geometry: null, faces: 0 };
|
|
7574
7575
|
applyOutputMatrix(shellMesh.geometry, options.outputMatrix);
|
|
7576
|
+
applyOutputMatrix(cellCenters, options.outputMatrix);
|
|
7575
7577
|
applyOutputMatrix(coreMesh.geometry, options.outputMatrix);
|
|
7576
7578
|
applyOutputMatrix(signalMesh.geometry, options.outputMatrix);
|
|
7577
7579
|
const sourceBytes = options.sourceBytes ?? scanProxySourceBytes(source);
|
|
7578
7580
|
const proxyTriangles = (shellMesh.faces + coreMesh.faces + signalMesh.faces) * 2;
|
|
7579
|
-
const proxyBytes = geometryBytes(shellMesh.geometry) + geometryBytes(coreMesh.geometry) + geometryBytes(signalMesh.geometry);
|
|
7581
|
+
const proxyBytes = geometryBytes(shellMesh.geometry) + geometryBytes(coreMesh.geometry) + geometryBytes(signalMesh.geometry) + geometryBytes(cellCenters);
|
|
7580
7582
|
const isTriangleLighter = proxyTriangles < sourceTriangles;
|
|
7581
7583
|
const isByteLighter = proxyBytes < sourceBytes;
|
|
7582
7584
|
return {
|
|
@@ -7585,7 +7587,9 @@ function createScanProxyGeometry(source, options = {}) {
|
|
|
7585
7587
|
core: coreMesh.geometry,
|
|
7586
7588
|
signal: signalMesh.geometry
|
|
7587
7589
|
},
|
|
7590
|
+
cellCenters,
|
|
7588
7591
|
cellSize: spec.cellSize,
|
|
7592
|
+
grid: scanProxyGridFromSpec(spec),
|
|
7589
7593
|
cells: {
|
|
7590
7594
|
shell: shell.size,
|
|
7591
7595
|
core: 0,
|
|
@@ -7627,15 +7631,18 @@ function scanProxyPayloadTransferables(payload) {
|
|
|
7627
7631
|
const transferables = [];
|
|
7628
7632
|
for (const layer of Object.values(payload.geometries)) {
|
|
7629
7633
|
if (!layer) continue;
|
|
7630
|
-
transferables.push(layer.positions.buffer, layer.normals.buffer);
|
|
7634
|
+
transferables.push(layer.positions.buffer, layer.normals.buffer, layer.cells.buffer);
|
|
7631
7635
|
}
|
|
7636
|
+
if (payload.cellCenters) transferables.push(payload.cellCenters.positions.buffer);
|
|
7632
7637
|
return transferables;
|
|
7633
7638
|
}
|
|
7634
7639
|
function disposeScanProxyGeometry(proxy) {
|
|
7640
|
+
var _a;
|
|
7635
7641
|
if (!proxy) return;
|
|
7636
7642
|
for (const geometry of Object.values(proxy.geometries)) {
|
|
7637
7643
|
geometry == null ? void 0 : geometry.dispose();
|
|
7638
7644
|
}
|
|
7645
|
+
(_a = proxy.cellCenters) == null ? void 0 : _a.dispose();
|
|
7639
7646
|
}
|
|
7640
7647
|
function scanProxyGeometryToPayload(proxy) {
|
|
7641
7648
|
return {
|
|
@@ -7644,22 +7651,50 @@ function scanProxyGeometryToPayload(proxy) {
|
|
|
7644
7651
|
core: layerPayloadFromGeometry(proxy.geometries.core),
|
|
7645
7652
|
signal: layerPayloadFromGeometry(proxy.geometries.signal)
|
|
7646
7653
|
},
|
|
7654
|
+
cellCenters: pointPayloadFromGeometry(proxy.cellCenters),
|
|
7647
7655
|
cellSize: proxy.cellSize,
|
|
7656
|
+
grid: proxy.grid,
|
|
7648
7657
|
cells: proxy.cells,
|
|
7649
7658
|
faces: proxy.faces,
|
|
7650
7659
|
telemetry: proxy.telemetry
|
|
7651
7660
|
};
|
|
7652
7661
|
}
|
|
7662
|
+
function pointPayloadFromGeometry(geometry) {
|
|
7663
|
+
if (!geometry) return null;
|
|
7664
|
+
const positions = geometry.getAttribute("position");
|
|
7665
|
+
if (!positions) return null;
|
|
7666
|
+
return {
|
|
7667
|
+
positions: positions.array
|
|
7668
|
+
};
|
|
7669
|
+
}
|
|
7653
7670
|
function layerPayloadFromGeometry(geometry) {
|
|
7654
7671
|
if (!geometry) return null;
|
|
7655
7672
|
const positions = geometry.getAttribute("position");
|
|
7656
7673
|
const normals = geometry.getAttribute("normal");
|
|
7657
|
-
|
|
7674
|
+
const cells = geometry.getAttribute("scanCell");
|
|
7675
|
+
if (!positions || !normals || !cells) return null;
|
|
7658
7676
|
return {
|
|
7659
7677
|
positions: positions.array,
|
|
7660
|
-
normals: normals.array
|
|
7678
|
+
normals: normals.array,
|
|
7679
|
+
cells: cells.array
|
|
7661
7680
|
};
|
|
7662
7681
|
}
|
|
7682
|
+
function buildCellCenterGeometry(cells, spec) {
|
|
7683
|
+
if (cells.size === 0) return null;
|
|
7684
|
+
const positions = new Float32Array(cells.size * 3);
|
|
7685
|
+
let index = 0;
|
|
7686
|
+
for (const cell of cells.values()) {
|
|
7687
|
+
const center = cellCenter(cell, spec);
|
|
7688
|
+
positions[index] = center.x;
|
|
7689
|
+
positions[index + 1] = center.y;
|
|
7690
|
+
positions[index + 2] = center.z;
|
|
7691
|
+
index += 3;
|
|
7692
|
+
}
|
|
7693
|
+
const geometry = new BufferGeometry();
|
|
7694
|
+
geometry.setAttribute("position", new BufferAttribute(positions, 3));
|
|
7695
|
+
geometry.computeBoundingSphere();
|
|
7696
|
+
return geometry;
|
|
7697
|
+
}
|
|
7663
7698
|
function sampleShellCells(source, position, triangleCount, spec, sourceMatrix) {
|
|
7664
7699
|
const shell = /* @__PURE__ */ new Map();
|
|
7665
7700
|
const index = source.index;
|
|
@@ -7748,6 +7783,7 @@ function buildCellGeometry(cells, material, spec, lookup) {
|
|
|
7748
7783
|
if (cells.size === 0) return { geometry: null, faces: 0 };
|
|
7749
7784
|
const positions = [];
|
|
7750
7785
|
const normals = [];
|
|
7786
|
+
const cellCoords = [];
|
|
7751
7787
|
let faces = 0;
|
|
7752
7788
|
for (const cell of cells.values()) {
|
|
7753
7789
|
for (const dir of FACE_DIRS) {
|
|
@@ -7755,7 +7791,7 @@ function buildCellGeometry(cells, material, spec, lookup) {
|
|
|
7755
7791
|
const neighborMaterial = lookup.get(neighborKey);
|
|
7756
7792
|
if (neighborMaterial === material) continue;
|
|
7757
7793
|
if (neighborMaterial && neighborMaterial !== "shell") continue;
|
|
7758
|
-
addFace(positions, normals, cell, dir, spec);
|
|
7794
|
+
addFace(positions, normals, cellCoords, cell, dir, spec);
|
|
7759
7795
|
faces += 1;
|
|
7760
7796
|
}
|
|
7761
7797
|
}
|
|
@@ -7763,10 +7799,11 @@ function buildCellGeometry(cells, material, spec, lookup) {
|
|
|
7763
7799
|
const geometry = new BufferGeometry();
|
|
7764
7800
|
geometry.setAttribute("position", new Float32BufferAttribute(positions, 3));
|
|
7765
7801
|
geometry.setAttribute("normal", new Float32BufferAttribute(normals, 3));
|
|
7802
|
+
geometry.setAttribute("scanCell", new Float32BufferAttribute(cellCoords, 3));
|
|
7766
7803
|
geometry.computeBoundingSphere();
|
|
7767
7804
|
return { geometry, faces };
|
|
7768
7805
|
}
|
|
7769
|
-
function addFace(positions, normals, cell, dir, spec) {
|
|
7806
|
+
function addFace(positions, normals, cellCoords, cell, dir, spec) {
|
|
7770
7807
|
const half = (spec.cellSize - scanProxyCellGap(spec.cellSize)) / 2;
|
|
7771
7808
|
const center = cellCenter(cell, spec);
|
|
7772
7809
|
const normal = new Vector3(dir.normal[0], dir.normal[1], dir.normal[2]);
|
|
@@ -7784,6 +7821,7 @@ function addFace(positions, normals, cell, dir, spec) {
|
|
|
7784
7821
|
for (const point of pts) {
|
|
7785
7822
|
positions.push(point.x, point.y, point.z);
|
|
7786
7823
|
normals.push(normal.x, normal.y, normal.z);
|
|
7824
|
+
cellCoords.push(cell.ix, cell.iy, cell.iz);
|
|
7787
7825
|
}
|
|
7788
7826
|
}
|
|
7789
7827
|
function boundsForPosition(position, matrix) {
|
|
@@ -7868,6 +7906,12 @@ function cellCenter(cell, spec) {
|
|
|
7868
7906
|
spec.min.z + (cell.iz + 0.5) * spec.cellSize
|
|
7869
7907
|
);
|
|
7870
7908
|
}
|
|
7909
|
+
function scanProxyGridFromSpec(spec) {
|
|
7910
|
+
return {
|
|
7911
|
+
cellSize: spec.cellSize,
|
|
7912
|
+
origin: [spec.min.x, spec.min.y, spec.min.z]
|
|
7913
|
+
};
|
|
7914
|
+
}
|
|
7871
7915
|
function clampCellIndex(index, count) {
|
|
7872
7916
|
return Math.max(0, Math.min(count - 1, index));
|
|
7873
7917
|
}
|
|
@@ -328,7 +328,7 @@ async function __wbg_init(module_or_path) {
|
|
|
328
328
|
}
|
|
329
329
|
}
|
|
330
330
|
if (module_or_path === void 0) {
|
|
331
|
-
module_or_path = new URL("/assets/solver_bg-
|
|
331
|
+
module_or_path = new URL("/assets/solver_bg-DAHZJ_rw.wasm", import.meta.url);
|
|
332
332
|
}
|
|
333
333
|
const imports = __wbg_get_imports();
|
|
334
334
|
if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {
|
|
Binary file
|
|
@@ -15171,12 +15171,13 @@ export {
|
|
|
15171
15171
|
reactDomExports as d,
|
|
15172
15172
|
useSearchParams as e,
|
|
15173
15173
|
useNavigate as f,
|
|
15174
|
-
|
|
15175
|
-
|
|
15176
|
-
|
|
15174
|
+
useLocation as g,
|
|
15175
|
+
Routes as h,
|
|
15176
|
+
Route as i,
|
|
15177
15177
|
jsxRuntimeExports as j,
|
|
15178
|
-
|
|
15179
|
-
|
|
15178
|
+
getDefaultExportFromCjs as k,
|
|
15179
|
+
getAugmentedNamespace as l,
|
|
15180
|
+
commonjsGlobal as m,
|
|
15180
15181
|
reactExports as r,
|
|
15181
15182
|
schedulerExports as s,
|
|
15182
15183
|
useParams as u
|
package/dist/cli/render.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html>
|
|
3
|
-
<head><title>ForgeCAD Headless Render</title> <script type="module" crossorigin src="/assets/cli/render-
|
|
3
|
+
<head><title>ForgeCAD Headless Render</title> <script type="module" crossorigin src="/assets/cli/render-C5pcIISc.js"></script>
|
|
4
4
|
</head>
|
|
5
5
|
<body>
|
|
6
6
|
<canvas id="canvas" width="1024" height="1024"></canvas>
|