@taulabs/openrscad-engine 0.11.0-beta.0
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-APACHE +201 -0
- package/LICENSE-MIT +21 -0
- package/README.md +194 -0
- package/dist/browser.d.ts +16 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +33 -0
- package/dist/browser.js.map +1 -0
- package/dist/core.d.ts +158 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +133 -0
- package/dist/core.js.map +1 -0
- package/dist/node.d.ts +14 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +30 -0
- package/dist/node.js.map +1 -0
- package/examples/node-render.mjs +19 -0
- package/examples/worker.js +18 -0
- package/package.json +87 -0
- package/pkg/node/openrscad.d.ts +174 -0
- package/pkg/node/openrscad.js +914 -0
- package/pkg/node/openrscad_bg.wasm +0 -0
- package/pkg/node/openrscad_bg.wasm.d.ts +56 -0
- package/pkg/node/package.json +16 -0
- package/pkg/web/openrscad.d.ts +255 -0
- package/pkg/web/openrscad.js +997 -0
- package/pkg/web/openrscad_bg.wasm +0 -0
- package/pkg/web/openrscad_bg.wasm.d.ts +56 -0
- package/pkg/web/package.json +20 -0
|
Binary file
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
export const memory: WebAssembly.Memory;
|
|
4
|
+
export const version: () => [number, number];
|
|
5
|
+
export const __wbg_renderresult_free: (a: number, b: number) => void;
|
|
6
|
+
export const renderresult_positions: (a: number) => [number, number];
|
|
7
|
+
export const renderresult_normals: (a: number) => [number, number];
|
|
8
|
+
export const renderresult_echo: (a: number) => [number, number];
|
|
9
|
+
export const renderresult_warnings: (a: number) => [number, number];
|
|
10
|
+
export const renderresult_error: (a: number) => [number, number];
|
|
11
|
+
export const renderresult_ok: (a: number) => number;
|
|
12
|
+
export const renderresult_geom_errors: (a: number) => [number, number];
|
|
13
|
+
export const renderresult_diagnostics: (a: number) => [number, number];
|
|
14
|
+
export const renderresult_preview_positions: (a: number) => [number, number];
|
|
15
|
+
export const renderresult_preview_normals: (a: number) => [number, number];
|
|
16
|
+
export const renderresult_groups: (a: number) => [number, number];
|
|
17
|
+
export const renderresult_provenance_positions: (a: number) => [number, number];
|
|
18
|
+
export const renderresult_provenance_normals: (a: number) => [number, number];
|
|
19
|
+
export const renderresult_provenance: (a: number) => [number, number];
|
|
20
|
+
export const renderresult_viewport: (a: number) => [number, number];
|
|
21
|
+
export const renderresult_triangle_count: (a: number) => number;
|
|
22
|
+
export const renderresult_vertex_count: (a: number) => number;
|
|
23
|
+
export const renderresult_is_2d: (a: number) => number;
|
|
24
|
+
export const __wbg_exportshape3dresult_free: (a: number, b: number) => void;
|
|
25
|
+
export const exportshape3dresult_take_bytes: (a: number) => [number, number];
|
|
26
|
+
export const exportshape3dresult_format: (a: number) => [number, number];
|
|
27
|
+
export const exportshape3dresult_ok: (a: number) => number;
|
|
28
|
+
export const exportshape3dresult_error: (a: number) => [number, number];
|
|
29
|
+
export const exportshape3dresult_echo: (a: number) => [number, number];
|
|
30
|
+
export const exportshape3dresult_warnings: (a: number) => [number, number];
|
|
31
|
+
export const exportshape3dresult_geom_errors: (a: number) => [number, number];
|
|
32
|
+
export const exportshape3dresult_diagnostics: (a: number) => [number, number];
|
|
33
|
+
export const exportshape3dresult_viewport: (a: number) => [number, number];
|
|
34
|
+
export const exportshape3dresult_triangle_count: (a: number) => number;
|
|
35
|
+
export const exportshape3dresult_vertex_count: (a: number) => number;
|
|
36
|
+
export const exportshape3dresult_volume: (a: number) => number;
|
|
37
|
+
export const exportshape3dresult_area: (a: number) => number;
|
|
38
|
+
export const exportshape3dresult_is_2d: (a: number) => number;
|
|
39
|
+
export const export_3d: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number) => number;
|
|
40
|
+
export const render_to_glb: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => number;
|
|
41
|
+
export const export_2d: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number) => [number, number];
|
|
42
|
+
export const parameters: (a: number, b: number) => [number, number];
|
|
43
|
+
export const render: (a: number, b: number) => number;
|
|
44
|
+
export const render_with_params: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
45
|
+
export const render_with_files: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number) => number;
|
|
46
|
+
export const render_preview_with_files: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number) => number;
|
|
47
|
+
export const start: () => void;
|
|
48
|
+
export const clear_cache: () => void;
|
|
49
|
+
export const renderresult_volume: (a: number) => number;
|
|
50
|
+
export const renderresult_area: (a: number) => number;
|
|
51
|
+
export const __wbindgen_malloc: (a: number, b: number) => number;
|
|
52
|
+
export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
53
|
+
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
54
|
+
export const __wbindgen_externrefs: WebAssembly.Table;
|
|
55
|
+
export const __externref_table_alloc: () => number;
|
|
56
|
+
export const __wbindgen_start: () => void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "openrscad-wasm",
|
|
3
|
+
"version": "0.11.0-beta.0",
|
|
4
|
+
"license": "Apache-2.0 OR MIT",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/matthova/openrscad"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"openrscad_bg.wasm",
|
|
11
|
+
"openrscad.js",
|
|
12
|
+
"openrscad.d.ts"
|
|
13
|
+
],
|
|
14
|
+
"main": "openrscad.js",
|
|
15
|
+
"types": "openrscad.d.ts"
|
|
16
|
+
}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* One owned native 3D artifact plus the operational metadata needed by hosts.
|
|
6
|
+
*/
|
|
7
|
+
export class ExportShape3DResult {
|
|
8
|
+
private constructor();
|
|
9
|
+
free(): void;
|
|
10
|
+
[Symbol.dispose](): void;
|
|
11
|
+
/**
|
|
12
|
+
* Transfer artifact ownership to JavaScript. A second call returns empty.
|
|
13
|
+
*/
|
|
14
|
+
take_bytes(): Uint8Array;
|
|
15
|
+
readonly area: number;
|
|
16
|
+
readonly diagnostics: string;
|
|
17
|
+
readonly echo: string;
|
|
18
|
+
readonly error: string;
|
|
19
|
+
readonly format: string;
|
|
20
|
+
readonly geom_errors: string;
|
|
21
|
+
readonly is_2d: boolean;
|
|
22
|
+
readonly ok: boolean;
|
|
23
|
+
readonly triangle_count: number;
|
|
24
|
+
readonly vertex_count: number;
|
|
25
|
+
readonly viewport: string;
|
|
26
|
+
readonly volume: number;
|
|
27
|
+
readonly warnings: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The result of rendering a `.scad` source string.
|
|
32
|
+
*
|
|
33
|
+
* Mesh data is a non-indexed triangle soup with flat (per-face) normals:
|
|
34
|
+
* `positions` and `normals` both hold 9 floats per triangle.
|
|
35
|
+
*/
|
|
36
|
+
export class RenderResult {
|
|
37
|
+
private constructor();
|
|
38
|
+
free(): void;
|
|
39
|
+
[Symbol.dispose](): void;
|
|
40
|
+
readonly area: number;
|
|
41
|
+
/**
|
|
42
|
+
* Structured diagnostics as a JSON array (`[{severity,message,start,end}]`),
|
|
43
|
+
* where start/end are byte offsets into the source, or -1 when unknown.
|
|
44
|
+
*/
|
|
45
|
+
readonly diagnostics: string;
|
|
46
|
+
/**
|
|
47
|
+
* Newline-joined `ECHO:` output.
|
|
48
|
+
*/
|
|
49
|
+
readonly echo: string;
|
|
50
|
+
/**
|
|
51
|
+
* Error message, or empty string if the render succeeded.
|
|
52
|
+
*/
|
|
53
|
+
readonly error: string;
|
|
54
|
+
/**
|
|
55
|
+
* Newline-joined recoverable geometry errors (degraded render), or empty
|
|
56
|
+
* when the geometry is exact. See the field docs on `geom_errors`.
|
|
57
|
+
*/
|
|
58
|
+
readonly geom_errors: string;
|
|
59
|
+
/**
|
|
60
|
+
* Per-group ranges/colors as JSON (`[{start,count,color,mode}]`); empty `[]`
|
|
61
|
+
* when the model uses no display attributes.
|
|
62
|
+
*/
|
|
63
|
+
readonly groups: string;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the model is a 2D object (exportable to DXF/SVG) vs a 3D solid.
|
|
66
|
+
*/
|
|
67
|
+
readonly is_2d: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Per-face normals (9 f32 per triangle) as a `Float32Array`.
|
|
70
|
+
*/
|
|
71
|
+
readonly normals: Float32Array;
|
|
72
|
+
/**
|
|
73
|
+
* Whether the render succeeded (no error).
|
|
74
|
+
*/
|
|
75
|
+
readonly ok: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Triangle-soup vertex positions (9 f32 per triangle) as a `Float32Array`.
|
|
78
|
+
*/
|
|
79
|
+
readonly positions: Float32Array;
|
|
80
|
+
readonly preview_normals: Float32Array;
|
|
81
|
+
/**
|
|
82
|
+
* Preview triangle soup (concatenated colored groups); empty when the model
|
|
83
|
+
* uses no color/`#`/`%` (the viewer then uses `positions`).
|
|
84
|
+
*/
|
|
85
|
+
readonly preview_positions: Float32Array;
|
|
86
|
+
/**
|
|
87
|
+
* Per-group provenance ranges/span-stacks as JSON (`[{start,count,spans}]`);
|
|
88
|
+
* empty when the model has no pickable geometry.
|
|
89
|
+
*/
|
|
90
|
+
readonly provenance: string;
|
|
91
|
+
readonly provenance_normals: Float32Array;
|
|
92
|
+
/**
|
|
93
|
+
* Provenance triangle soup (concatenated per-statement groups); empty only
|
|
94
|
+
* for models with no geometry.
|
|
95
|
+
*/
|
|
96
|
+
readonly provenance_positions: Float32Array;
|
|
97
|
+
readonly triangle_count: number;
|
|
98
|
+
readonly vertex_count: number;
|
|
99
|
+
/**
|
|
100
|
+
* `$vp*` viewport variables as JSON, or empty when the source has no `$vp`.
|
|
101
|
+
*/
|
|
102
|
+
readonly viewport: string;
|
|
103
|
+
readonly volume: number;
|
|
104
|
+
/**
|
|
105
|
+
* Newline-joined warnings.
|
|
106
|
+
*/
|
|
107
|
+
readonly warnings: string;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Drop the persistent geometry cache (e.g. when loading a new document).
|
|
112
|
+
*/
|
|
113
|
+
export function clear_cache(): void;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Render a 2D model and serialize it to DXF or SVG text. Returns an empty
|
|
117
|
+
* string if the model isn't 2D or fails to evaluate (the caller checks
|
|
118
|
+
* `RenderResult.is_2d` first). `format` is "dxf" or "svg".
|
|
119
|
+
*/
|
|
120
|
+
export function export_2d(source: string, names: string[], values: string[], file_names: string[], file_contents: string[], bin_names: string[], bin_data: string[], font_blobs: string[], format: string): string;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Evaluate a 3D source and serialize it natively to one owned artifact.
|
|
124
|
+
*/
|
|
125
|
+
export function export_3d(source: string, names: string[], values: string[], file_names: string[], file_contents: string[], bin_names: string[], bin_data: string[], font_blobs: string[], format: string, include_edges: boolean, source_unit_to_meters: number, coordinate_system: string): ExportShape3DResult;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* The customizer parameter schema for a source string, as a JSON string
|
|
129
|
+
* (`{"params":[…]}`). The playground renders a control panel from this.
|
|
130
|
+
*/
|
|
131
|
+
export function parameters(source: string): string;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Run the full pipeline on a source string.
|
|
135
|
+
*/
|
|
136
|
+
export function render(source: string): RenderResult;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Like [`render_with_files`], but renders the fast, **non-watertight** preview
|
|
140
|
+
* (see `openrscad_geom::render_preview_cached_diag`): unions are concatenated rather
|
|
141
|
+
* than run through the CSG kernel. Suitable for opaque on-screen display only —
|
|
142
|
+
* stats and export still use the exact path. Differences/intersections/hulls
|
|
143
|
+
* still resolve exactly, so holes and clips look correct.
|
|
144
|
+
*/
|
|
145
|
+
export function render_preview_with_files(source: string, names: string[], values: string[], file_names: string[], file_contents: string[], bin_names: string[], bin_data: string[], font_blobs: string[]): RenderResult;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Render a preview-semantics GLB for interactive viewers.
|
|
149
|
+
*/
|
|
150
|
+
export function render_to_glb(source: string, names: string[], values: string[], file_names: string[], file_contents: string[], bin_names: string[], bin_data: string[], font_blobs: string[], include_edges: boolean): ExportShape3DResult;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Like [`render_with_params`], but `include`/`use` resolve against an in-memory
|
|
154
|
+
* set of files (`file_names[i]` → `file_contents[i]`) — the playground's other
|
|
155
|
+
* files and/or a bundled library.
|
|
156
|
+
*/
|
|
157
|
+
export function render_with_files(source: string, names: string[], values: string[], file_names: string[], file_contents: string[], bin_names: string[], bin_data: string[], font_blobs: string[]): RenderResult;
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Like [`render`], but with customizer overrides supplied as parallel arrays:
|
|
161
|
+
* `names[i]` is a top-level parameter and `values[i]` its new value as a
|
|
162
|
+
* literal string (`"30"`, `"true"`, `"\"hi\""`, `"[1,2,3]"`).
|
|
163
|
+
*/
|
|
164
|
+
export function render_with_params(source: string, names: string[], values: string[]): RenderResult;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Initialize panic hook for readable errors in the browser console.
|
|
168
|
+
*/
|
|
169
|
+
export function start(): void;
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Engine version string.
|
|
173
|
+
*/
|
|
174
|
+
export function version(): string;
|
|
175
|
+
|
|
176
|
+
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
|
177
|
+
|
|
178
|
+
export interface InitOutput {
|
|
179
|
+
readonly memory: WebAssembly.Memory;
|
|
180
|
+
readonly version: () => [number, number];
|
|
181
|
+
readonly __wbg_renderresult_free: (a: number, b: number) => void;
|
|
182
|
+
readonly renderresult_positions: (a: number) => [number, number];
|
|
183
|
+
readonly renderresult_normals: (a: number) => [number, number];
|
|
184
|
+
readonly renderresult_echo: (a: number) => [number, number];
|
|
185
|
+
readonly renderresult_warnings: (a: number) => [number, number];
|
|
186
|
+
readonly renderresult_error: (a: number) => [number, number];
|
|
187
|
+
readonly renderresult_ok: (a: number) => number;
|
|
188
|
+
readonly renderresult_geom_errors: (a: number) => [number, number];
|
|
189
|
+
readonly renderresult_diagnostics: (a: number) => [number, number];
|
|
190
|
+
readonly renderresult_preview_positions: (a: number) => [number, number];
|
|
191
|
+
readonly renderresult_preview_normals: (a: number) => [number, number];
|
|
192
|
+
readonly renderresult_groups: (a: number) => [number, number];
|
|
193
|
+
readonly renderresult_provenance_positions: (a: number) => [number, number];
|
|
194
|
+
readonly renderresult_provenance_normals: (a: number) => [number, number];
|
|
195
|
+
readonly renderresult_provenance: (a: number) => [number, number];
|
|
196
|
+
readonly renderresult_viewport: (a: number) => [number, number];
|
|
197
|
+
readonly renderresult_triangle_count: (a: number) => number;
|
|
198
|
+
readonly renderresult_vertex_count: (a: number) => number;
|
|
199
|
+
readonly renderresult_is_2d: (a: number) => number;
|
|
200
|
+
readonly __wbg_exportshape3dresult_free: (a: number, b: number) => void;
|
|
201
|
+
readonly exportshape3dresult_take_bytes: (a: number) => [number, number];
|
|
202
|
+
readonly exportshape3dresult_format: (a: number) => [number, number];
|
|
203
|
+
readonly exportshape3dresult_ok: (a: number) => number;
|
|
204
|
+
readonly exportshape3dresult_error: (a: number) => [number, number];
|
|
205
|
+
readonly exportshape3dresult_echo: (a: number) => [number, number];
|
|
206
|
+
readonly exportshape3dresult_warnings: (a: number) => [number, number];
|
|
207
|
+
readonly exportshape3dresult_geom_errors: (a: number) => [number, number];
|
|
208
|
+
readonly exportshape3dresult_diagnostics: (a: number) => [number, number];
|
|
209
|
+
readonly exportshape3dresult_viewport: (a: number) => [number, number];
|
|
210
|
+
readonly exportshape3dresult_triangle_count: (a: number) => number;
|
|
211
|
+
readonly exportshape3dresult_vertex_count: (a: number) => number;
|
|
212
|
+
readonly exportshape3dresult_volume: (a: number) => number;
|
|
213
|
+
readonly exportshape3dresult_area: (a: number) => number;
|
|
214
|
+
readonly exportshape3dresult_is_2d: (a: number) => number;
|
|
215
|
+
readonly export_3d: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number) => number;
|
|
216
|
+
readonly render_to_glb: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number) => number;
|
|
217
|
+
readonly export_2d: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number) => [number, number];
|
|
218
|
+
readonly parameters: (a: number, b: number) => [number, number];
|
|
219
|
+
readonly render: (a: number, b: number) => number;
|
|
220
|
+
readonly render_with_params: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
221
|
+
readonly render_with_files: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number) => number;
|
|
222
|
+
readonly render_preview_with_files: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number) => number;
|
|
223
|
+
readonly start: () => void;
|
|
224
|
+
readonly clear_cache: () => void;
|
|
225
|
+
readonly renderresult_volume: (a: number) => number;
|
|
226
|
+
readonly renderresult_area: (a: number) => number;
|
|
227
|
+
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
228
|
+
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
229
|
+
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
230
|
+
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
231
|
+
readonly __externref_table_alloc: () => number;
|
|
232
|
+
readonly __wbindgen_start: () => void;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Instantiates the given `module`, which can either be bytes or
|
|
239
|
+
* a precompiled `WebAssembly.Module`.
|
|
240
|
+
*
|
|
241
|
+
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
242
|
+
*
|
|
243
|
+
* @returns {InitOutput}
|
|
244
|
+
*/
|
|
245
|
+
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
249
|
+
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
250
|
+
*
|
|
251
|
+
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
252
|
+
*
|
|
253
|
+
* @returns {Promise<InitOutput>}
|
|
254
|
+
*/
|
|
255
|
+
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|