@splinetool/modelling-wasm 1.12.81 → 1.12.83

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/package.json +13 -3
  2. package/process.d.ts +233 -0
package/package.json CHANGED
@@ -1,17 +1,27 @@
1
1
  {
2
2
  "name": "@splinetool/modelling-wasm",
3
- "version": "1.12.81",
3
+ "version": "1.12.83",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "git+https://github.com/splinetool/spline.git",
7
+ "directory": "packages/modelling-wasm"
8
+ },
4
9
  "type": "module",
5
10
  "sideEffects": false,
6
11
  "main": "./build/process.js",
7
12
  "types": "./process.d.ts",
13
+ "publishConfig": {
14
+ "registry": "https://registry.npmjs.org",
15
+ "access": "public"
16
+ },
8
17
  "files": [
9
18
  "build",
10
- "boolean-wasm.d.ts"
19
+ "process.d.ts"
11
20
  ],
12
21
  "scripts": {
13
22
  "dev": "serve web/",
14
- "build": "rimraf build/* && rimraf tmp/ && make-dir tmp/ && (cd tmp && emcmake cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. && cmake --build .)"
23
+ "build": "rimraf build/* && rimraf tmp/ && make-dir tmp/ && (cd tmp && emcmake cmake -G Ninja -DCMAKE_BUILD_TYPE=Release .. && cmake --build .)",
24
+ "prepublishOnly": "node ../../scripts/verify-publish-target.mjs"
15
25
  },
16
26
  "devDependencies": {
17
27
  "@types/emscripten": "1.39.6",
package/process.d.ts ADDED
@@ -0,0 +1,233 @@
1
+ /// <reference types="emscripten" />
2
+
3
+ import { Matrix } from "spline-data";
4
+
5
+ type Vector3Tuple = [number, number, number];
6
+
7
+ export type TransformFunc = (
8
+ addr: number,
9
+ id: number,
10
+ pivot: Vector3Tuple,
11
+ mat: Matrix
12
+ ) => void;
13
+
14
+ export type GetVectorFunc = (addr: number, id: number) => [number, number, number];
15
+ type SetFloat32Array = (
16
+ addr: number,
17
+ id: number,
18
+ value: Float32Array | Float32Array[] | number[]
19
+ ) => void;
20
+
21
+ export type SingleOpFunc = (addr: number, id: number) => void;
22
+ export type MultiOpFunc = (addr: number, id: number, count: number) => void;
23
+ export type CountFunc = (addr: number) => number;
24
+
25
+ export type cppVector<T> = {
26
+ get: (i: number) => T;
27
+ size: () => number;
28
+ }
29
+
30
+ export type EdgeSlideRails = {
31
+ ids: cppVector<{ idx: number }>;
32
+ positionsOriginal: cppVector<Vector3Tuple>;
33
+ positionsPos: cppVector<Vector3Tuple>;
34
+ positionsNeg: cppVector<Vector3Tuple>;
35
+ }
36
+ export interface ProcessModule extends EmscriptenModule {
37
+ alloc_subdivision_surface: (
38
+ vertex_data: number,
39
+ num_vertices: number,
40
+ index_data: number,
41
+ num_indices: number,
42
+ vertices_per_face_data: number,
43
+ num_vertices_per_face: number,
44
+ ) => number;
45
+
46
+ alloc_subdivision_surface2: (
47
+ vertex_data: number,
48
+ num_vertices: number,
49
+ index_data: number,
50
+ num_indices: number,
51
+ vertices_per_face_data: number,
52
+ num_vertices_per_face: number,
53
+ shearScale: Matrix
54
+ ) => number;
55
+
56
+ free_subdivision_surface(addr: number): void;
57
+ copy_subdivision_surface(addr: number): number;
58
+ should_refine(addr: number, refinement_active: boolean): void;
59
+
60
+ get_mesh_data: (
61
+ addr: number,
62
+ level: number,
63
+ phong_angle: number,
64
+ ) => number;
65
+
66
+ get_mesh_data2: (
67
+ addr: number,
68
+ level: number,
69
+ phong_angle: number,
70
+ matrix: Matrix
71
+ ) => number;
72
+
73
+ free_mesh_data: (addr: number) => void;
74
+
75
+ get_topological_data: (addr: number, level: number) => number;
76
+ get_topological_data2: (addr: number, level: number, shearScaleInv: Matrix) => number;
77
+ free_topological_data: (addr: number) => void;
78
+
79
+ find_closest_vertex_on_face(
80
+ addr: number,
81
+ face_id: number,
82
+ x: number,
83
+ y: number,
84
+ z: number
85
+ ): { position: Vector3Tuple; vertex: { idx: number } };
86
+ find_closest_edge_on_face(
87
+ addr: number,
88
+ face_id: number,
89
+ x: number,
90
+ y: number,
91
+ z: number
92
+ ): { position: [Vector3Tuple, Vector3Tuple]; edge: { idx: number } };
93
+ find_closest_edge_on_face2(
94
+ addr: number,
95
+ face_id: number,
96
+ x: number,
97
+ y: number,
98
+ z: number
99
+ ): { position: [Vector3Tuple, Vector3Tuple]; edge: { idx: number } };
100
+
101
+ find_shared_edge(
102
+ addr: number,
103
+ vertex_id_1: number,
104
+ vertex_id_2: number
105
+ ): { position: [Vector3Tuple, Vector3Tuple]; edge: { idx: number } };
106
+
107
+ set_destination_refinement_level(addr: number, level: number): void;
108
+ get_wireframe_data_for_base_level(addr: number): number;
109
+ free_wireframe_data_for_base_level(addr: number): void;
110
+
111
+ transform_vertex: TransformFunc;
112
+ transform_edge: TransformFunc;
113
+ transform_face: TransformFunc;
114
+ move_face(
115
+ addr: number,
116
+ face_id: number,
117
+ tx: number,
118
+ ty: number,
119
+ tz: number
120
+ ): void;
121
+
122
+ get_vertex_position: GetVectorFunc;
123
+ get_face_vertex_positions(addr:number, id:Number): Vector3Tuple[];
124
+ get_edge_vertex_positions(addr:number, id:Number): Vector3Tuple[];
125
+ get_edge_midpoint: GetVectorFunc;
126
+ get_face_center: GetVectorFunc;
127
+
128
+ get_vertex_normal: GetVectorFunc;
129
+ get_edge_normal: GetVectorFunc;
130
+ get_face_normal: GetVectorFunc;
131
+
132
+ set_vertex_position: SetFloat32Array;
133
+ set_face_vertex_positions: SetFloat32Array;
134
+ set_edge_vertex_positions: SetFloat32Array;
135
+
136
+ cache_vertex: SingleOpFunc;
137
+ cache_face: SingleOpFunc;
138
+ cache_edge: SingleOpFunc;
139
+
140
+ extrude_faces(
141
+ addr: number,
142
+ indices: number,
143
+ count: number,
144
+ ExtrusionMode: number
145
+ ): cppVector<{ idx: number; position: Vector3Tuple }>
146
+
147
+ inset_faces(
148
+ addr: number,
149
+ indices: number,
150
+ count: number,
151
+ ExtrusionMode: number,
152
+ distance: number
153
+ ): cppVector<{ idx: number; position: Vector3Tuple }>
154
+
155
+ inset_apply_offset(addr: number, distance: number): void;
156
+
157
+ inset_finished(addr: number): void;
158
+
159
+ inset_face(addr: number, id: number): cppVector<{ idx: number }>;
160
+ get_loop_cut_preview_vertices(addr: number, id: number): { positions: cppVector<[number, number, number]>; isCompletedLoop: boolean };
161
+ loop_cut(addr: number, id: number): cppVector<{ idx: number }>;
162
+ get_loop(addr: number, id: number): cppVector<{ idx: number }>;
163
+ get_vertex_extrude_displacements(addr: number, indices: number, count: number): cppVector<{ vertex: { idx: number }; position: Vector3Tuple }>;
164
+
165
+ remove_vertices: MultiOpFunc;
166
+ remove_faces: MultiOpFunc;
167
+ remove_edges: MultiOpFunc;
168
+
169
+ dissolve_edge: SingleOpFunc;
170
+ dissolve_vertex: SingleOpFunc;
171
+ dissolve_edge_loop: (addr: number, arrayPtr: number, count: number) => void;
172
+ fill_hole: (addr: number, id: number, mode: number) => void;
173
+ is_boundary: (addr: number, id: number) => boolean;
174
+
175
+ vertex_count: CountFunc;
176
+ face_count: CountFunc;
177
+ edge_count: CountFunc;
178
+
179
+ get_average_neighbor_position: GetVectorFunc;
180
+ get_cached_vertex_position: GetVectorFunc;
181
+
182
+ get_vertices_within_sphere(
183
+ addr: number,
184
+ center: Float32Array | Float32Array[] | number[],
185
+ radius: number
186
+ ): cppVector<{
187
+ vertex: { idx: number };
188
+ position: Vector3Tuple;
189
+ normal: Vector3Tuple;
190
+ weight: number;
191
+ }>;
192
+
193
+ get_ids_within_sphere(
194
+ addr: number,
195
+ mode: number,
196
+ center: Vector3Tuple,
197
+ radius: number
198
+ ): cppVector<number>;
199
+
200
+ ExtrusionMode: {
201
+ INDIVIDUAL: number;
202
+ REGION: number;
203
+ };
204
+
205
+ Level: {
206
+ CONTROL: number;
207
+ REFINED: number;
208
+ };
209
+
210
+ SelectionMode: {
211
+ FACES: number;
212
+ EDGES: number;
213
+ VERTICES: number;
214
+ };
215
+
216
+ HoleFillingMode : {
217
+ FLAT: number;
218
+ CURVED: number;
219
+ NGON: number;
220
+ }
221
+
222
+ get_edge_slide_rails(addr: number, indices: number, count: number): EdgeSlideRails;
223
+
224
+ // BVH related function signatures / structs
225
+ build_bvh(addr: number): number[];
226
+ free_bvh(addr: number);
227
+ raycast_bvh(addr: number, origin: Float32Array | Float32Array[] | number[], direction: Float32Array | Float32Array[] | number[], zRange: number): { idx: number; position: Vector3Tuple; };
228
+ refit_bvh(addr: number): number[];
229
+ }
230
+
231
+ declare const Module: EmscriptenModuleFactory<ProcessModule>;
232
+
233
+ export default Module;