@danielsimonjr/sciengjs 0.6.0 → 0.7.1

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 (50) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_NOTICES.md +9 -5
  3. package/assets/licenses/MIT-three.txt +21 -0
  4. package/assets/three.BufferGeometryUtils.js +1523 -0
  5. package/assets/three.GLTFLoader.js +5006 -0
  6. package/assets/three.OrbitControls.js +1985 -0
  7. package/assets/three.SkeletonUtils.js +496 -0
  8. package/assets/three.core.js +61162 -0
  9. package/assets/three.module.js +19537 -0
  10. package/dist/browser/pinned.d.ts +23 -0
  11. package/dist/browser/pinned.js +18 -0
  12. package/dist/browser/pinned.js.map +1 -1
  13. package/dist/browser/render.d.ts +6 -0
  14. package/dist/browser/render.js +10 -1
  15. package/dist/browser/render.js.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/mesh/backend-glb.d.ts +25 -0
  20. package/dist/mesh/backend-glb.js +74 -0
  21. package/dist/mesh/backend-glb.js.map +1 -0
  22. package/dist/mesh/backend-html.d.ts +6 -0
  23. package/dist/mesh/backend-html.js +12 -0
  24. package/dist/mesh/backend-html.js.map +1 -0
  25. package/dist/mesh/backend-png.d.ts +6 -0
  26. package/dist/mesh/backend-png.js +35 -0
  27. package/dist/mesh/backend-png.js.map +1 -0
  28. package/dist/mesh/glb.d.ts +9 -0
  29. package/dist/mesh/glb.js +163 -0
  30. package/dist/mesh/glb.js.map +1 -0
  31. package/dist/mesh/index.d.ts +5 -0
  32. package/dist/mesh/index.js +5 -0
  33. package/dist/mesh/index.js.map +1 -0
  34. package/dist/mesh/pinned-three.d.ts +6 -0
  35. package/dist/mesh/pinned-three.js +21 -0
  36. package/dist/mesh/pinned-three.js.map +1 -0
  37. package/dist/mesh/read.d.ts +27 -0
  38. package/dist/mesh/read.js +56 -0
  39. package/dist/mesh/read.js.map +1 -0
  40. package/dist/mesh/viewer-script.d.ts +6 -0
  41. package/dist/mesh/viewer-script.js +207 -0
  42. package/dist/mesh/viewer-script.js.map +1 -0
  43. package/dist/mesh/viewer.d.ts +14 -0
  44. package/dist/mesh/viewer.js +39 -0
  45. package/dist/mesh/viewer.js.map +1 -0
  46. package/dist/registry.js +9 -0
  47. package/dist/registry.js.map +1 -1
  48. package/dist/version.d.ts +1 -1
  49. package/dist/version.js +1 -1
  50. package/package.json +8 -2
@@ -22,3 +22,26 @@ export declare const PLOTLY_SHA256 = "fde93964a7511bfa54c5745c49b5d0e41715cbde0c
22
22
  export declare const PLOTLY_SRI = "sha256-/ek5ZKdRG/pUxXRcSbXQ5BcVy94Mxevq4/mgLeA5bK4=";
23
23
  /** The address that a plot page names for the pinned Plotly build. */
24
24
  export declare const PLOTLY_CDN_URL = "https://cdn.jsdelivr.net/npm/plotly.js-dist-min@4.2.0/plotly.min.js";
25
+ /** The pinned Three.js version. It equals the exact devDependency three of the repository. */
26
+ export declare const THREE_VERSION = "0.187.0";
27
+ /** The CDN folder of the pinned Three.js package. Every module URL starts with it. */
28
+ export declare const THREE_CDN_BASE = "https://cdn.jsdelivr.net/npm/three@0.187.0/";
29
+ /** One pinned Three.js module: its URL, its file in the assets folder, its MIME type and its hashes. */
30
+ export interface ThreeModule {
31
+ /** The path inside the package, for example build/three.module.js. */
32
+ path: string;
33
+ url: string;
34
+ file: string;
35
+ mime: string;
36
+ /** The SHA-256 in hex. The client refuses a local copy with other bytes. */
37
+ sha256: string;
38
+ /** The Subresource Integrity value. The browser refuses other bytes. */
39
+ sri: string;
40
+ }
41
+ /**
42
+ * The modules that the viewer page loads. The GLTFLoader imports the two utility modules by relative path, and
43
+ * three.module.js imports three.core.js by relative path, so six files are pinned.
44
+ */
45
+ export declare const THREE_MODULES: readonly ThreeModule[];
46
+ /** The URL of the three module. The import map of the viewer page maps the bare name three to it. */
47
+ export declare const THREE_MAIN_URL: string;
@@ -18,4 +18,22 @@ export const PLOTLY_SHA256 = "fde93964a7511bfa54c5745c49b5d0e41715cbde0cc5ebeae3
18
18
  export const PLOTLY_SRI = "sha256-/ek5ZKdRG/pUxXRcSbXQ5BcVy94Mxevq4/mgLeA5bK4=";
19
19
  /** The address that a plot page names for the pinned Plotly build. */
20
20
  export const PLOTLY_CDN_URL = `https://cdn.jsdelivr.net/npm/plotly.js-dist-min@${PLOTLY_VERSION}/plotly.min.js`;
21
+ /** The pinned Three.js version. It equals the exact devDependency three of the repository. */
22
+ export const THREE_VERSION = "0.187.0";
23
+ /** The CDN folder of the pinned Three.js package. Every module URL starts with it. */
24
+ export const THREE_CDN_BASE = `https://cdn.jsdelivr.net/npm/three@${THREE_VERSION}/`;
25
+ /**
26
+ * The modules that the viewer page loads. The GLTFLoader imports the two utility modules by relative path, and
27
+ * three.module.js imports three.core.js by relative path, so six files are pinned.
28
+ */
29
+ export const THREE_MODULES = [
30
+ { path: "build/three.module.js", url: `${THREE_CDN_BASE}build/three.module.js`, file: "three.module.js", mime: "text/javascript", sha256: "104f56145899722094556490d787aae0617cc2fc3382f31df02d724ea1aee341", sri: "sha256-EE9WFFiZciCUVWSQ14eq4GF8wvwzgvMd8C1yTqGu40E=" },
31
+ { path: "build/three.core.js", url: `${THREE_CDN_BASE}build/three.core.js`, file: "three.core.js", mime: "text/javascript", sha256: "613e370f76638fdef83926642bf256dc9615684922de1ce1f63a8583e5d78578", sri: "sha256-YT43D3Zjj974OSZkK/JW3JYVaEki3hzh9jqFg+XXhXg=" },
32
+ { path: "examples/jsm/controls/OrbitControls.js", url: `${THREE_CDN_BASE}examples/jsm/controls/OrbitControls.js`, file: "three.OrbitControls.js", mime: "text/javascript", sha256: "e7fca2fe9e7670a828af9b28084669a5909445b7f36f1f26cee9bf8f2961c32c", sri: "sha256-5/yi/p52cKgor5soCEZppZCURbfzbx8mzum/jylhwyw=" },
33
+ { path: "examples/jsm/loaders/GLTFLoader.js", url: `${THREE_CDN_BASE}examples/jsm/loaders/GLTFLoader.js`, file: "three.GLTFLoader.js", mime: "text/javascript", sha256: "532ac726e120039acbcd6cf54328c57acbf7b438176afaa6951257126d11bff1", sri: "sha256-UyrHJuEgA5rLzWz1QyjFesv3tDgXavqmlRJXEm0Rv/E=" },
34
+ { path: "examples/jsm/utils/BufferGeometryUtils.js", url: `${THREE_CDN_BASE}examples/jsm/utils/BufferGeometryUtils.js`, file: "three.BufferGeometryUtils.js", mime: "text/javascript", sha256: "7bda2a8ba836b2bcf67cb938d4b9e1bb5d1b1bc616817103ed858c0b58296ce7", sri: "sha256-e9oqi6g2srz2fLk41Lnhu10bG8YWgXED7YWMC1gpbOc=" },
35
+ { path: "examples/jsm/utils/SkeletonUtils.js", url: `${THREE_CDN_BASE}examples/jsm/utils/SkeletonUtils.js`, file: "three.SkeletonUtils.js", mime: "text/javascript", sha256: "b1632a703206c3d830de9fcbe515696770d04b71a15ee6b50afa6d2c3298c86f", sri: "sha256-sWMqcDIGw9gw3p/L5RVpZ3DQS3GhXua1CvptLDKYyG8=" },
36
+ ];
37
+ /** The URL of the three module. The import map of the viewer page maps the bare name three to it. */
38
+ export const THREE_MAIN_URL = THREE_MODULES[0].url;
21
39
  //# sourceMappingURL=pinned.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pinned.js","sourceRoot":"","sources":["../../src/browser/pinned.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AACzC,iGAAiG;AACjG,MAAM,CAAC,MAAM,cAAc,GAAG,kEAAkE,CAAC;AACjG,gGAAgG;AAChG,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC7C,gHAAgH;AAChH,MAAM,CAAC,MAAM,eAAe,GAAG,wCAAwC,eAAe,sBAAsB,CAAC;AAS7G,+FAA+F;AAC/F,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;CAC7E,CAAC;AAEF,yGAAyG;AACzG,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,sDAAsD;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,kEAAkE,CAAC;AAChG,mGAAmG;AACnG,MAAM,CAAC,MAAM,UAAU,GAAG,qDAAqD,CAAC;AAChF,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,mDAAmD,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"pinned.js","sourceRoot":"","sources":["../../src/browser/pinned.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AACzC,iGAAiG;AACjG,MAAM,CAAC,MAAM,cAAc,GAAG,kEAAkE,CAAC;AACjG,gGAAgG;AAChG,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC7C,gHAAgH;AAChH,MAAM,CAAC,MAAM,eAAe,GAAG,wCAAwC,eAAe,sBAAsB,CAAC;AAS7G,+FAA+F;AAC/F,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,EAAE;CAC7E,CAAC;AAEF,yGAAyG;AACzG,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,sDAAsD;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,kEAAkE,CAAC;AAChG,mGAAmG;AACnG,MAAM,CAAC,MAAM,UAAU,GAAG,qDAAqD,CAAC;AAChF,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,mDAAmD,cAAc,gBAAgB,CAAC;AAEhH,8FAA8F;AAC9F,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,sFAAsF;AACtF,MAAM,CAAC,MAAM,cAAc,GAAG,sCAAsC,aAAa,GAAG,CAAC;AAerF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,GAAG,cAAc,uBAAuB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,kEAAkE,EAAE,GAAG,EAAE,qDAAqD,EAAE;IAC1Q,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAG,cAAc,qBAAqB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,kEAAkE,EAAE,GAAG,EAAE,qDAAqD,EAAE;IACpQ,EAAE,IAAI,EAAE,wCAAwC,EAAE,GAAG,EAAE,GAAG,cAAc,wCAAwC,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,kEAAkE,EAAE,GAAG,EAAE,qDAAqD,EAAE;IACnT,EAAE,IAAI,EAAE,oCAAoC,EAAE,GAAG,EAAE,GAAG,cAAc,oCAAoC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,kEAAkE,EAAE,GAAG,EAAE,qDAAqD,EAAE;IACxS,EAAE,IAAI,EAAE,2CAA2C,EAAE,GAAG,EAAE,GAAG,cAAc,2CAA2C,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,kEAAkE,EAAE,GAAG,EAAE,qDAAqD,EAAE;IAC/T,EAAE,IAAI,EAAE,qCAAqC,EAAE,GAAG,EAAE,GAAG,cAAc,qCAAqC,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,kEAAkE,EAAE,GAAG,EAAE,qDAAqD,EAAE;CAC9S,CAAC;AAEF,qGAAqG;AACrG,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC"}
@@ -23,6 +23,12 @@ interface HtmlPageBase {
23
23
  * that reports ok false rejects with E_INPUT. A png or pdf then draws the diagram in the element sciengjs-diagram.
24
24
  */
25
25
  awaitDone?: boolean;
26
+ /**
27
+ * The page sets window.__sciengDone, as with awaitDone, but the capture is a plain screenshot of the viewport and
28
+ * the report holds no svg. A viewer page of WebGL uses it. A page that reports ok false rejects with E_INTERNAL
29
+ * when internal is true, else with E_INPUT.
30
+ */
31
+ awaitReady?: boolean;
26
32
  }
27
33
  /** One page to draw. A png has a size and a device scale. A pdf has neither. An svg needs awaitDone. */
28
34
  export type HtmlPageRequest = (HtmlPageBase & {
@@ -157,7 +157,11 @@ class Interceptor {
157
157
  .send("Fetch.fulfillRequest", {
158
158
  requestId: paused.requestId,
159
159
  responseCode: 200,
160
- responseHeaders: [{ name: "Content-Type", value: asset.mime }],
160
+ // A module script and a script with integrity are cross-origin requests, so the reply allows any origin.
161
+ responseHeaders: [
162
+ { name: "Content-Type", value: asset.mime },
163
+ { name: "Access-Control-Allow-Origin", value: "*" },
164
+ ],
161
165
  body: Buffer.from(asset.bytes).toString("base64"),
162
166
  }, sessionId)
163
167
  .catch(this.record);
@@ -222,6 +226,11 @@ async function capture(cdp, req) {
222
226
  });
223
227
  }
224
228
  let bytes;
229
+ if (req.awaitReady === true) {
230
+ const done = await awaitDoneReport(cdp, s);
231
+ if (!done.ok)
232
+ throw new RenderError(done.internal === true ? "E_INTERNAL" : "E_INPUT", done.message);
233
+ }
225
234
  if (req.awaitDone === true) {
226
235
  const done = await awaitDoneReport(cdp, s);
227
236
  // A page that cannot run the pinned build is a fault of the engine, not of the source.
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/browser/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/browser/render.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import type { SciengConfig } from "./config.ts";
2
2
  import type { Capability, RenderRequest, RenderResult } from "./types.ts";
3
3
  export { RenderError, RENDER_ERROR_CODES, type RenderErrorCode } from "./errors.ts";
4
4
  export { loadConfig, type SciengConfig, type NetworkPolicy } from "./config.ts";
5
- export { INPUT_TYPES, OUTPUT_FORMATS, type InputType, type OutputFormat, type RenderOptions, type RenderRequest, type RenderResult, type RenderAsset, type Capability, } from "./types.ts";
5
+ export { INPUT_TYPES, BINARY_INPUT_TYPES, OUTPUT_FORMATS, type InputType, type OutputFormat, type RenderOptions, type RenderRequest, type RenderResult, type RenderAsset, type Capability, } from "./types.ts";
6
6
  /** Renders one source to the requested format. Rejects with a RenderError. Never falls back to another format. */
7
7
  export declare function render(req: RenderRequest, config?: Partial<SciengConfig>): Promise<RenderResult>;
8
8
  /** Reports each supported pair, its stage and whether that stage is ready on this machine. */
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { capabilitiesWithRegistry, renderWithRegistry } from "./core.js";
2
2
  import { DEFAULT_REGISTRY } from "./registry.js";
3
3
  export { RenderError, RENDER_ERROR_CODES } from "./errors.js";
4
4
  export { loadConfig } from "./config.js";
5
- export { INPUT_TYPES, OUTPUT_FORMATS, } from "./types.js";
5
+ export { INPUT_TYPES, BINARY_INPUT_TYPES, OUTPUT_FORMATS, } from "./types.js";
6
6
  /** Renders one source to the requested format. Rejects with a RenderError. Never falls back to another format. */
7
7
  export function render(req, config) {
8
8
  return renderWithRegistry(req, config ?? {}, DEFAULT_REGISTRY);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAwB,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,UAAU,EAAyC,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,WAAW,EACX,cAAc,GAQf,MAAM,YAAY,CAAC;AAEpB,kHAAkH;AAClH,MAAM,UAAU,MAAM,CAAC,GAAkB,EAAE,MAA8B;IACvE,OAAO,kBAAkB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;AACjE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,YAAY,CAAC,MAA8B;IACzD,OAAO,wBAAwB,CAAC,MAAM,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAwB,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,UAAU,EAAyC,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,GAQf,MAAM,YAAY,CAAC;AAEpB,kHAAkH;AAClH,MAAM,UAAU,MAAM,CAAC,GAAkB,EAAE,MAA8B;IACvE,OAAO,kBAAkB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;AACjE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,YAAY,CAAC,MAA8B;IACzD,OAAO,wBAAwB,CAAC,MAAM,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { BackendOutput, WorkerJob } from "../worker/protocol.ts";
2
+ import { readCad, type CadFormat, type CadMesh, type LinearUnit } from "./read.ts";
3
+ /**
4
+ * The number of copies of the geometry that a glb render holds at its peak: the typed arrays of the
5
+ * reader result, the arrays of the writer, the BIN chunk, and the output file.
6
+ */
7
+ export declare const GLB_COPIES = 4;
8
+ /** Estimates the peak memory of the glb output of the meshes, in bytes, with all copies. */
9
+ export declare function estimateGlbBytes(meshes: CadMesh[]): number;
10
+ /**
11
+ * Checks the options of a glb render. STEP and IGES take linearUnit. BREP takes no option.
12
+ * An unknown key or an unknown unit rejects with E_INPUT.
13
+ */
14
+ export declare function readMeshOptions(format: CadFormat, options: Record<string, unknown>): {
15
+ linearUnit: LinearUnit;
16
+ };
17
+ /** The reader of a glb render. A test gives a fake reader. */
18
+ export interface GlbDeps {
19
+ readCad: typeof readCad;
20
+ }
21
+ /**
22
+ * Renders a STEP, IGES or BREP file to glTF binary. The worker calls this function.
23
+ * An output over maxMemoryMb rejects with E_LIMIT before the writer starts.
24
+ */
25
+ export declare function render(request: WorkerJob["request"], deps?: GlbDeps): Promise<BackendOutput>;
@@ -0,0 +1,74 @@
1
+ import { RenderError } from "../errors.js";
2
+ import { writeGlb } from "./glb.js";
3
+ import { readCad } from "./read.js";
4
+ /** The linear units that the STEP and IGES readers accept. Each value has one definition, here. */
5
+ const LINEAR_UNITS = ["millimeter", "meter"];
6
+ /** The default linear unit of the STEP and IGES readers. */
7
+ const DEFAULT_LINEAR_UNIT = "millimeter";
8
+ /**
9
+ * The number of copies of the geometry that a glb render holds at its peak: the typed arrays of the
10
+ * reader result, the arrays of the writer, the BIN chunk, and the output file.
11
+ */
12
+ export const GLB_COPIES = 4;
13
+ /** The largest glb file: the header holds the file length as a 32-bit unsigned integer. */
14
+ const MAX_GLB_BYTES = 0xffffffff;
15
+ /** The bytes of one copy of the geometry: positions, normals and indices, four bytes per value. */
16
+ function geometryBytes(meshes) {
17
+ return meshes.reduce((n, m) => n + 4 * (m.positions.length + (m.normals?.length ?? 0) + m.indices.length), 0);
18
+ }
19
+ /** Estimates the peak memory of the glb output of the meshes, in bytes, with all copies. */
20
+ export function estimateGlbBytes(meshes) {
21
+ return geometryBytes(meshes) * GLB_COPIES;
22
+ }
23
+ /** Rejects with E_LIMIT when the glb output of the meshes needs more than maxMemoryMb, or more than a glb file can hold. */
24
+ function checkGlbLimit(meshes, maxMemoryMb) {
25
+ const limitBytes = maxMemoryMb * 1048576;
26
+ const needed = estimateGlbBytes(meshes);
27
+ if (needed > limitBytes) {
28
+ throw new RenderError("E_LIMIT", "the glb output needs " + needed + " bytes; the limit is " + limitBytes + " bytes");
29
+ }
30
+ const single = geometryBytes(meshes);
31
+ if (single > MAX_GLB_BYTES) {
32
+ throw new RenderError("E_LIMIT", "the glb geometry has " + single + " bytes; a glb file holds at most " + MAX_GLB_BYTES + " bytes");
33
+ }
34
+ }
35
+ /** The input formats of this backend. */
36
+ const FORMATS = ["step", "iges", "brep"];
37
+ /**
38
+ * Checks the options of a glb render. STEP and IGES take linearUnit. BREP takes no option.
39
+ * An unknown key or an unknown unit rejects with E_INPUT.
40
+ */
41
+ export function readMeshOptions(format, options) {
42
+ for (const key of Object.keys(options)) {
43
+ if (format === "brep" || key !== "linearUnit") {
44
+ throw new RenderError("E_INPUT", `${format} to glb takes no option ${key}`);
45
+ }
46
+ }
47
+ const unit = options.linearUnit ?? DEFAULT_LINEAR_UNIT;
48
+ if (!LINEAR_UNITS.includes(unit)) {
49
+ throw new RenderError("E_INPUT", "option linearUnit must be millimeter or meter");
50
+ }
51
+ return { linearUnit: unit };
52
+ }
53
+ /**
54
+ * Renders a STEP, IGES or BREP file to glTF binary. The worker calls this function.
55
+ * An output over maxMemoryMb rejects with E_LIMIT before the writer starts.
56
+ */
57
+ export async function render(request, deps = { readCad }) {
58
+ const format = request.type;
59
+ if (!FORMATS.includes(format)) {
60
+ throw new RenderError("E_INPUT", `${request.type} is not a mesh input`);
61
+ }
62
+ if (!(request.source instanceof Uint8Array)) {
63
+ throw new RenderError("E_INPUT", `${format} takes bytes, not text`);
64
+ }
65
+ const { linearUnit } = readMeshOptions(format, request.options);
66
+ const meshes = await deps.readCad(format, request.source, linearUnit);
67
+ const triangles = meshes.reduce((n, m) => n + m.indices.length / 3, 0);
68
+ if (triangles === 0) {
69
+ throw new RenderError("E_INPUT", `the ${format} file holds no triangles`);
70
+ }
71
+ checkGlbLimit(meshes, request.settings.maxMemoryMb);
72
+ return { bytes: writeGlb(meshes) };
73
+ }
74
+ //# sourceMappingURL=backend-glb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-glb.js","sourceRoot":"","sources":["../../src/mesh/backend-glb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { BackendOutput, WorkerJob } from "../worker/protocol.ts";
2
+ /**
3
+ * Renders a STEP, IGES or BREP file to html: one page with a Three.js viewer that embeds the glb. The page names the
4
+ * pinned Three.js URLs. The options are the options of the glb render. The worker calls this function.
5
+ */
6
+ export declare function render(request: WorkerJob["request"]): Promise<BackendOutput>;
@@ -0,0 +1,12 @@
1
+ import { render as renderGlb } from "./backend-glb.js";
2
+ import { viewerPageHtml } from "./viewer.js";
3
+ /**
4
+ * Renders a STEP, IGES or BREP file to html: one page with a Three.js viewer that embeds the glb. The page names the
5
+ * pinned Three.js URLs. The options are the options of the glb render. The worker calls this function.
6
+ */
7
+ export async function render(request) {
8
+ const glb = await renderGlb(request);
9
+ const html = viewerPageHtml(glb.bytes, { title: `${request.type} model`, controls: true });
10
+ return { bytes: new TextEncoder().encode(html), warnings: glb.warnings };
11
+ }
12
+ //# sourceMappingURL=backend-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-html.js","sourceRoot":"","sources":["../../src/mesh/backend-html.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAA6B;IACxD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3F,OAAO,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { BackendOutput, WorkerJob } from "../worker/protocol.ts";
2
+ /**
3
+ * Renders a STEP, IGES or BREP file to png: the viewer page in the headless browser. The client fulfils the pinned
4
+ * Three.js URLs from the assets folder, so no request leaves the process. The worker calls this function.
5
+ */
6
+ export declare function render(request: WorkerJob["request"]): Promise<BackendOutput>;
@@ -0,0 +1,35 @@
1
+ import { blockedWarnings, browserPathOf, parsePngOptions } from "../browser/input.js";
2
+ import { renderHtmlPage } from "../browser/render.js";
3
+ import { render as renderGlb } from "./backend-glb.js";
4
+ import { pinnedThree } from "./pinned-three.js";
5
+ import { viewerPageHtml } from "./viewer.js";
6
+ /** The options that the png render reads itself. The glb render reads the others. */
7
+ const PNG_KEYS = ["width", "height", "scale"];
8
+ /**
9
+ * Renders a STEP, IGES or BREP file to png: the viewer page in the headless browser. The client fulfils the pinned
10
+ * Three.js URLs from the assets folder, so no request leaves the process. The worker calls this function.
11
+ */
12
+ export async function render(request) {
13
+ const pngOptions = {};
14
+ const meshOptions = {};
15
+ for (const [key, value] of Object.entries(request.options)) {
16
+ (PNG_KEYS.includes(key) ? pngOptions : meshOptions)[key] = value;
17
+ }
18
+ const size = parsePngOptions(pngOptions);
19
+ const browser = browserPathOf(request.settings.browser);
20
+ const glb = await renderGlb({ ...request, options: meshOptions });
21
+ const pinned = pinnedThree(request.settings.assetsUrl);
22
+ const out = await renderHtmlPage({
23
+ html: viewerPageHtml(glb.bytes, { title: `${request.type} model`, controls: false }),
24
+ format: "png",
25
+ width: size.width,
26
+ height: size.height,
27
+ scale: size.scale,
28
+ browser,
29
+ timeoutMs: request.settings.timeoutMs,
30
+ pinned,
31
+ awaitReady: true,
32
+ });
33
+ return { bytes: out.bytes, warnings: [...(glb.warnings ?? []), ...blockedWarnings(out.blocked)] };
34
+ }
35
+ //# sourceMappingURL=backend-png.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-png.js","sourceRoot":"","sources":["../../src/mesh/backend-png.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,qFAAqF;AACrF,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAA6B;IACxD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAgC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAChG,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC;QAC/B,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACpF,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;QACrC,MAAM;QACN,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AACpG,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CadMesh } from "./read.ts";
2
+ /**
3
+ * Writes meshes as one glTF 2.0 binary file. Each mesh is one glTF mesh. Its triangles are grouped
4
+ * by face colour, and each colour is one primitive with one material. Faces without a colour use a
5
+ * default grey material. The positions and the normals are shared by the primitives of one mesh.
6
+ * A mesh without triangles is left out. Input with no triangle at all rejects with E_INPUT, because a
7
+ * glTF buffer cannot have zero bytes.
8
+ */
9
+ export declare function writeGlb(meshes: CadMesh[]): Uint8Array;
@@ -0,0 +1,163 @@
1
+ import { RenderError } from "../errors.js";
2
+ const MAGIC = 0x46546c67; // "glTF"
3
+ const VERSION = 2;
4
+ const CHUNK_JSON = 0x4e4f534a; // "JSON"
5
+ const CHUNK_BIN = 0x004e4942; // "BIN" and a zero byte
6
+ const COMPONENT_UINT32 = 5125;
7
+ const COMPONENT_FLOAT32 = 5126;
8
+ const MODE_TRIANGLES = 4;
9
+ const DEFAULT_COLOUR = [0.8, 0.8, 0.8];
10
+ /** Maps each triangle of a mesh to the key of its material: a colour, or "default". */
11
+ function triangleGroups(mesh) {
12
+ const triangles = mesh.indices.length / 3;
13
+ const keyOf = new Array(triangles).fill("default");
14
+ for (const face of mesh.faces) {
15
+ if (face.color === null)
16
+ continue;
17
+ const key = face.color.join(",");
18
+ for (let t = face.first; t <= face.last && t < triangles; t++)
19
+ keyOf[t] = key;
20
+ }
21
+ const groups = new Map();
22
+ for (let t = 0; t < triangles; t++) {
23
+ const key = keyOf[t];
24
+ const list = groups.get(key);
25
+ if (list === undefined)
26
+ groups.set(key, [t]);
27
+ else
28
+ list.push(t);
29
+ }
30
+ return groups;
31
+ }
32
+ /** Packs a typed array as the bytes of one buffer view. */
33
+ function bytesOf(array) {
34
+ return new Uint8Array(array.buffer, array.byteOffset, array.byteLength);
35
+ }
36
+ /** Pads a byte array with the given byte to a multiple of four bytes. */
37
+ function pad4(bytes, fill) {
38
+ const padded = (bytes.byteLength + 3) & ~3;
39
+ if (padded === bytes.byteLength)
40
+ return bytes;
41
+ const out = new Uint8Array(padded).fill(fill);
42
+ out.set(bytes);
43
+ return out;
44
+ }
45
+ /**
46
+ * Writes meshes as one glTF 2.0 binary file. Each mesh is one glTF mesh. Its triangles are grouped
47
+ * by face colour, and each colour is one primitive with one material. Faces without a colour use a
48
+ * default grey material. The positions and the normals are shared by the primitives of one mesh.
49
+ * A mesh without triangles is left out. Input with no triangle at all rejects with E_INPUT, because a
50
+ * glTF buffer cannot have zero bytes.
51
+ */
52
+ export function writeGlb(meshes) {
53
+ const materials = [];
54
+ const materialIndex = new Map();
55
+ const materialOf = (key) => {
56
+ let index = materialIndex.get(key);
57
+ if (index === undefined) {
58
+ index = materials.length;
59
+ const colour = key === "default" ? DEFAULT_COLOUR : key.split(",").map(Number);
60
+ materials.push({ name: key === "default" ? "default" : `face ${key}`, colour });
61
+ materialIndex.set(key, index);
62
+ }
63
+ return index;
64
+ };
65
+ const accessors = [];
66
+ const addAccessor = (accessor) => {
67
+ accessors.push(accessor);
68
+ return accessors.length - 1;
69
+ };
70
+ const gltfMeshes = [];
71
+ const nodes = [];
72
+ for (const mesh of meshes) {
73
+ // A mesh with no triangle gets no accessor, so that the file holds no unused accessor.
74
+ const groups = triangleGroups(mesh);
75
+ if (groups.size === 0)
76
+ continue;
77
+ const positions = Float32Array.from(mesh.positions);
78
+ const vertexCount = positions.length / 3;
79
+ const min = [Infinity, Infinity, Infinity];
80
+ const max = [-Infinity, -Infinity, -Infinity];
81
+ for (let i = 0; i < positions.length; i++) {
82
+ const k = i % 3;
83
+ min[k] = Math.min(min[k], positions[i]);
84
+ max[k] = Math.max(max[k], positions[i]);
85
+ }
86
+ const attributes = {
87
+ POSITION: addAccessor({ bytes: bytesOf(positions), componentType: COMPONENT_FLOAT32, type: "VEC3", count: vertexCount, min, max }),
88
+ };
89
+ if (mesh.normals !== undefined) {
90
+ const normals = Float32Array.from(mesh.normals);
91
+ attributes.NORMAL = addAccessor({ bytes: bytesOf(normals), componentType: COMPONENT_FLOAT32, type: "VEC3", count: normals.length / 3 });
92
+ }
93
+ const primitives = [];
94
+ for (const [key, triangles] of groups) {
95
+ const indices = new Uint32Array(triangles.length * 3);
96
+ triangles.forEach((t, n) => {
97
+ indices[n * 3] = mesh.indices[t * 3];
98
+ indices[n * 3 + 1] = mesh.indices[t * 3 + 1];
99
+ indices[n * 3 + 2] = mesh.indices[t * 3 + 2];
100
+ });
101
+ const indexAccessor = addAccessor({ bytes: bytesOf(indices), componentType: COMPONENT_UINT32, type: "SCALAR", count: indices.length });
102
+ primitives.push({ attributes, indices: indexAccessor, material: materialOf(key), mode: MODE_TRIANGLES });
103
+ }
104
+ nodes.push({ mesh: gltfMeshes.length, name: mesh.name });
105
+ gltfMeshes.push({ name: mesh.name, primitives });
106
+ }
107
+ if (gltfMeshes.length === 0) {
108
+ throw new RenderError("E_INPUT", "the meshes hold no triangles");
109
+ }
110
+ // Lay out the buffer: one buffer view per accessor, each on a four-byte boundary.
111
+ const views = [];
112
+ const chunks = [];
113
+ let total = 0;
114
+ for (const accessor of accessors) {
115
+ chunks.push(accessor.bytes);
116
+ views.push({ byteOffset: total, byteLength: accessor.bytes.byteLength });
117
+ total += accessor.bytes.byteLength;
118
+ }
119
+ const bin = new Uint8Array(total);
120
+ let cursor = 0;
121
+ for (const chunk of chunks) {
122
+ bin.set(chunk, cursor);
123
+ cursor += chunk.byteLength;
124
+ }
125
+ const json = {
126
+ asset: { version: "2.0", generator: "sciengjs" },
127
+ scene: 0,
128
+ scenes: [{ nodes: nodes.map((_, i) => i) }],
129
+ nodes,
130
+ meshes: gltfMeshes,
131
+ materials: materials.map((m) => ({
132
+ name: m.name,
133
+ pbrMetallicRoughness: { baseColorFactor: [...m.colour, 1], metallicFactor: 0, roughnessFactor: 1 },
134
+ })),
135
+ accessors: accessors.map((a, i) => ({
136
+ bufferView: i,
137
+ byteOffset: 0,
138
+ componentType: a.componentType,
139
+ count: a.count,
140
+ type: a.type,
141
+ ...(a.min !== undefined ? { min: a.min, max: a.max } : {}),
142
+ })),
143
+ bufferViews: views.map((v) => ({ buffer: 0, byteOffset: v.byteOffset, byteLength: v.byteLength })),
144
+ buffers: [{ byteLength: total }],
145
+ };
146
+ const jsonBytes = pad4(new TextEncoder().encode(JSON.stringify(json)), 0x20);
147
+ const binBytes = pad4(bin, 0);
148
+ const length = 12 + 8 + jsonBytes.byteLength + 8 + binBytes.byteLength;
149
+ const out = new Uint8Array(length);
150
+ const view = new DataView(out.buffer);
151
+ view.setUint32(0, MAGIC, true);
152
+ view.setUint32(4, VERSION, true);
153
+ view.setUint32(8, length, true);
154
+ view.setUint32(12, jsonBytes.byteLength, true);
155
+ view.setUint32(16, CHUNK_JSON, true);
156
+ out.set(jsonBytes, 20);
157
+ const binHeader = 20 + jsonBytes.byteLength;
158
+ view.setUint32(binHeader, binBytes.byteLength, true);
159
+ view.setUint32(binHeader + 4, CHUNK_BIN, true);
160
+ out.set(binBytes, binHeader + 8);
161
+ return out;
162
+ }
163
+ //# sourceMappingURL=glb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glb.js","sourceRoot":"","sources":["../../src/mesh/glb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** The mesh stage: STEP, IGES and BREP through occt-import-js, and the glTF binary writer. */
2
+ export { readCad } from "./read.ts";
3
+ export type { CadFormat, CadFace, CadMesh, LinearUnit } from "./read.ts";
4
+ export { writeGlb } from "./glb.ts";
5
+ export { readMeshOptions } from "./backend-glb.ts";
@@ -0,0 +1,5 @@
1
+ /** The mesh stage: STEP, IGES and BREP through occt-import-js, and the glTF binary writer. */
2
+ export { readCad } from "./read.js";
3
+ export { writeGlb } from "./glb.js";
4
+ export { readMeshOptions } from "./backend-glb.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mesh/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { PinnedBytes } from "../browser/render.ts";
2
+ /**
3
+ * Reads the pinned Three.js files from the assets folder and checks the SHA-256 of each. A missing file rejects with
4
+ * E_STAGE_MISSING. A file with other bytes rejects with E_INTEGRITY, so a changed copy never runs in a page.
5
+ */
6
+ export declare function pinnedThree(assetsUrl: string): ReadonlyMap<string, PinnedBytes>;