okgeometry-api 1.5.0 → 1.9.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/dist/Brep.d.ts +177 -0
- package/dist/Brep.d.ts.map +1 -0
- package/dist/Brep.js +368 -0
- package/dist/Brep.js.map +1 -0
- package/dist/Mesh.d.ts +21 -1
- package/dist/Mesh.d.ts.map +1 -1
- package/dist/Mesh.js +63 -1
- package/dist/Mesh.js.map +1 -1
- package/dist/NurbsSurface.d.ts +121 -0
- package/dist/NurbsSurface.d.ts.map +1 -1
- package/dist/NurbsSurface.js +261 -7
- package/dist/NurbsSurface.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/wasm-base64.d.ts +1 -1
- package/dist/wasm-base64.d.ts.map +1 -1
- package/dist/wasm-base64.js +1 -1
- package/dist/wasm-base64.js.map +1 -1
- package/dist/wasm-bindings.d.ts +300 -0
- package/dist/wasm-bindings.d.ts.map +1 -1
- package/dist/wasm-bindings.js +589 -0
- package/dist/wasm-bindings.js.map +1 -1
- package/package.json +50 -48
- package/src/Brep.ts +437 -0
- package/src/Mesh.ts +73 -2
- package/src/NurbsSurface.ts +367 -62
- package/src/index.ts +77 -68
- package/src/wasm-base64.ts +1 -1
- package/src/wasm-bindings.d.ts +233 -0
- package/src/wasm-bindings.js +612 -0
package/dist/NurbsSurface.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Vec3 } from "./Vec3.js";
|
|
|
3
3
|
import { Plane } from "./Plane.js";
|
|
4
4
|
import { Mesh } from "./Mesh.js";
|
|
5
5
|
import { Polyline } from "./Polyline.js";
|
|
6
|
+
import { NurbsCurve } from "./NurbsCurve.js";
|
|
6
7
|
import type { Surface } from "./Surface.js";
|
|
7
8
|
import type { LoftableCurve, RotationAxis } from "./types.js";
|
|
8
9
|
/**
|
|
@@ -93,6 +94,126 @@ export declare class NurbsSurface implements Surface {
|
|
|
93
94
|
* @returns New NurbsSurface passing through all input curves
|
|
94
95
|
*/
|
|
95
96
|
static loftCurves(curves: LoftableCurve[], degreeV?: number): NurbsSurface;
|
|
97
|
+
/**
|
|
98
|
+
* Decode a NurbsSurface from the standard WASM surface buffer
|
|
99
|
+
* [degU, degV, numU, numV, cps..., weights..., knotsU..., knotsV...].
|
|
100
|
+
*/
|
|
101
|
+
static fromData(buf: Float64Array | number[]): NurbsSurface;
|
|
102
|
+
/** Raw WASM surface buffer (advanced use). */
|
|
103
|
+
get data(): Float64Array;
|
|
104
|
+
/**
|
|
105
|
+
* Analytic surface derivatives at (u, v) — exact rational derivatives
|
|
106
|
+
* (Piegl & Tiller A4.4), with respect to the normalized [0,1] parameters.
|
|
107
|
+
*/
|
|
108
|
+
derivatives(u: number, v: number): {
|
|
109
|
+
point: Point;
|
|
110
|
+
du: Vec3;
|
|
111
|
+
dv: Vec3;
|
|
112
|
+
duu: Vec3;
|
|
113
|
+
duv: Vec3;
|
|
114
|
+
dvv: Vec3;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Principal curvatures and curvature invariants at (u, v), from the exact
|
|
118
|
+
* first/second fundamental forms.
|
|
119
|
+
*/
|
|
120
|
+
curvature(u: number, v: number): {
|
|
121
|
+
k1: number;
|
|
122
|
+
k2: number;
|
|
123
|
+
gaussian: number;
|
|
124
|
+
mean: number;
|
|
125
|
+
normal: Vec3;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Closest point on the surface to `p` (Newton point inversion with grid
|
|
129
|
+
* seeding). Returns normalized (u, v) and the surface point.
|
|
130
|
+
*/
|
|
131
|
+
closestPoint(p: Point): {
|
|
132
|
+
u: number;
|
|
133
|
+
v: number;
|
|
134
|
+
point: Point;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Exact iso-parametric curve running along the U direction at constant v.
|
|
138
|
+
* Rational surfaces yield exact rational curves (weights preserved).
|
|
139
|
+
* @param v - Normalized v parameter [0, 1]
|
|
140
|
+
*/
|
|
141
|
+
isoCurveU(v: number): NurbsCurve;
|
|
142
|
+
/**
|
|
143
|
+
* Exact iso-parametric curve running along the V direction at constant u.
|
|
144
|
+
* @param u - Normalized u parameter [0, 1]
|
|
145
|
+
*/
|
|
146
|
+
isoCurveV(u: number): NurbsCurve;
|
|
147
|
+
/**
|
|
148
|
+
* Exact knot insertion at normalized parameter t (shape-preserving; adds a
|
|
149
|
+
* row/column of control points for finer editing).
|
|
150
|
+
*/
|
|
151
|
+
insertKnot(direction: "u" | "v", t: number, times?: number): NurbsSurface;
|
|
152
|
+
/**
|
|
153
|
+
* Exact degree elevation by `t` in one direction (shape-preserving).
|
|
154
|
+
*/
|
|
155
|
+
elevateDegree(direction: "u" | "v", t?: number): NurbsSurface;
|
|
156
|
+
/**
|
|
157
|
+
* Exact split at normalized parameter t. Returns [lower, upper].
|
|
158
|
+
*/
|
|
159
|
+
split(direction: "u" | "v", t: number): [NurbsSurface, NurbsSurface];
|
|
160
|
+
/**
|
|
161
|
+
* Exact sub-patch over normalized parameter ranges.
|
|
162
|
+
*/
|
|
163
|
+
extractRegion(u0: number, u1: number, v0: number, v1: number): NurbsSurface;
|
|
164
|
+
/**
|
|
165
|
+
* Return a copy with one control point (and optionally its weight) replaced —
|
|
166
|
+
* the primitive for interactive control-point editing.
|
|
167
|
+
*/
|
|
168
|
+
withControlPoint(i: number, j: number, point: Point, weight?: number): NurbsSurface;
|
|
169
|
+
/**
|
|
170
|
+
* Curvature-adaptive tessellation: flat regions stay coarse, curved regions
|
|
171
|
+
* refine until the chordal `tolerance` is met.
|
|
172
|
+
*/
|
|
173
|
+
tessellateAdaptive(tolerance: number, maxSegmentsPerSpan?: number): Mesh;
|
|
174
|
+
/**
|
|
175
|
+
* Convert to a mesh sheet for boolean/trim operations with meshes
|
|
176
|
+
* (adaptive tessellation at the given chordal tolerance). A sheet
|
|
177
|
+
* intersected with a closed solid via `Mesh.intersect`/`Mesh.subtract`
|
|
178
|
+
* trims to the portion inside/outside that solid.
|
|
179
|
+
*/
|
|
180
|
+
toMesh(tolerance?: number): Mesh;
|
|
181
|
+
/**
|
|
182
|
+
* Display-ready render tessellation computed in one kernel pass: a
|
|
183
|
+
* twist-aware adaptive grid with ANALYTIC surface normals, plus feature
|
|
184
|
+
* edges only where the surface genuinely has them (boundary iso-lines,
|
|
185
|
+
* kinked C0 knot lines, kinked closed seams — never quad diagonals).
|
|
186
|
+
*
|
|
187
|
+
* Prefer this over `tessellateAdaptive(...).buildRenderBuffers(...)` for
|
|
188
|
+
* displaying a NURBS surface: the mesh path reconstructs normals from
|
|
189
|
+
* triangle geometry and flags spurious crease edges on anisotropic grids.
|
|
190
|
+
*
|
|
191
|
+
* `positions`/`normals` are non-indexed, three floats per vertex;
|
|
192
|
+
* `featureEdges` holds two endpoints (six floats) per segment.
|
|
193
|
+
*/
|
|
194
|
+
tessellateRender(tolerance: number, maxSegmentsPerSpan?: number, creaseAngleDeg?: number): {
|
|
195
|
+
positions: Float32Array;
|
|
196
|
+
normals: Float32Array;
|
|
197
|
+
featureEdges: Float32Array;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Exact surface of revolution: revolve a profile curve around an axis.
|
|
201
|
+
* The circular direction is exactly rational (true circles, not approximations).
|
|
202
|
+
* @param angle - Revolve angle in radians (up to 2π)
|
|
203
|
+
*/
|
|
204
|
+
static revolve(profile: NurbsCurve, origin: Point, axis: Vec3, angle: number): NurbsSurface;
|
|
205
|
+
/** Exact extruded (translational) surface from a profile curve. */
|
|
206
|
+
static extrudeCurve(profile: NurbsCurve, direction: Vec3): NurbsSurface;
|
|
207
|
+
/** Exact ruled surface between two curves (degrees/knots unified automatically). */
|
|
208
|
+
static ruled(a: NurbsCurve, b: NurbsCurve): NurbsSurface;
|
|
209
|
+
/** Exact rational cylinder side surface. */
|
|
210
|
+
static cylinder(base: Point, axis: Vec3, radius: number, height: number): NurbsSurface;
|
|
211
|
+
/** Exact rational sphere surface. */
|
|
212
|
+
static sphere(center: Point, radius: number): NurbsSurface;
|
|
213
|
+
/** Exact rational cone/frustum side surface (radius1 may be 0). */
|
|
214
|
+
static cone(base: Point, axis: Vec3, radius0: number, radius1: number, height: number): NurbsSurface;
|
|
215
|
+
/** Exact rational torus surface (axis +Z through center). */
|
|
216
|
+
static torus(center: Point, major: number, minor: number): NurbsSurface;
|
|
96
217
|
/** Encode to WASM format */
|
|
97
218
|
private static encode;
|
|
98
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NurbsSurface.d.ts","sourceRoot":"","sources":["../src/NurbsSurface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"NurbsSurface.d.ts","sourceRoot":"","sources":["../src/NurbsSurface.ts"],"names":[],"mappings":"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"}
|
package/dist/NurbsSurface.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ensureInit } from "./engine.js";
|
|
2
2
|
import { Point } from "./Point.js";
|
|
3
|
+
import { Vec3 } from "./Vec3.js";
|
|
3
4
|
import { Mesh } from "./Mesh.js";
|
|
4
5
|
import { Polyline } from "./Polyline.js";
|
|
5
6
|
import { Polygon } from "./Polygon.js";
|
|
@@ -192,20 +193,29 @@ export class NurbsSurface {
|
|
|
192
193
|
const buf = wasm.loft_nurbs_surface(new Float64Array(parts));
|
|
193
194
|
if (buf.length < 4)
|
|
194
195
|
throw new Error("NurbsSurface loft failed");
|
|
196
|
+
return NurbsSurface.fromData(buf);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Decode a NurbsSurface from the standard WASM surface buffer
|
|
200
|
+
* [degU, degV, numU, numV, cps..., weights..., knotsU..., knotsV...].
|
|
201
|
+
*/
|
|
202
|
+
static fromData(buf) {
|
|
203
|
+
if (buf.length < 4)
|
|
204
|
+
throw new Error("NurbsSurface.fromData: buffer too short");
|
|
195
205
|
const degU = Number(buf[0] ?? 0);
|
|
196
|
-
const
|
|
206
|
+
const degV = Number(buf[1] ?? 0);
|
|
197
207
|
const numU = Number(buf[2] ?? 0);
|
|
198
208
|
const numV = Number(buf[3] ?? 0);
|
|
199
209
|
const totalPts = numU * numV;
|
|
200
|
-
const expectedLen = 4 + totalPts * 3 + totalPts + (degU + numU + 1) + (
|
|
210
|
+
const expectedLen = 4 + totalPts * 3 + totalPts + (degU + numU + 1) + (degV + numV + 1);
|
|
201
211
|
if (buf.length < expectedLen)
|
|
202
|
-
throw new Error("NurbsSurface
|
|
212
|
+
throw new Error("NurbsSurface.fromData: buffer too short");
|
|
203
213
|
let idx = 4;
|
|
204
214
|
const cp = [];
|
|
205
215
|
for (let u = 0; u < numU; u++) {
|
|
206
216
|
const row = [];
|
|
207
217
|
for (let v = 0; v < numV; v++) {
|
|
208
|
-
row.push(new Point(buf[idx], buf[idx + 1], buf[idx + 2]));
|
|
218
|
+
row.push(new Point(Number(buf[idx]), Number(buf[idx + 1]), Number(buf[idx + 2])));
|
|
209
219
|
idx += 3;
|
|
210
220
|
}
|
|
211
221
|
cp.push(row);
|
|
@@ -214,16 +224,260 @@ export class NurbsSurface {
|
|
|
214
224
|
for (let u = 0; u < numU; u++) {
|
|
215
225
|
const row = [];
|
|
216
226
|
for (let v = 0; v < numV; v++) {
|
|
217
|
-
row.push(buf[idx++]);
|
|
227
|
+
row.push(Number(buf[idx++]));
|
|
218
228
|
}
|
|
219
229
|
weights.push(row);
|
|
220
230
|
}
|
|
221
231
|
const knotsULen = degU + numU + 1;
|
|
222
|
-
const knotsVLen =
|
|
232
|
+
const knotsVLen = degV + numV + 1;
|
|
223
233
|
const knotsU = Array.from(buf.slice(idx, idx + knotsULen), (value) => Number(value));
|
|
224
234
|
idx += knotsULen;
|
|
225
235
|
const knotsV = Array.from(buf.slice(idx, idx + knotsVLen), (value) => Number(value));
|
|
226
|
-
return new NurbsSurface(degU,
|
|
236
|
+
return new NurbsSurface(degU, degV, cp, weights, knotsU, knotsV);
|
|
237
|
+
}
|
|
238
|
+
/** Raw WASM surface buffer (advanced use). */
|
|
239
|
+
get data() {
|
|
240
|
+
return this._data;
|
|
241
|
+
}
|
|
242
|
+
// ── Analytic queries ──
|
|
243
|
+
/**
|
|
244
|
+
* Analytic surface derivatives at (u, v) — exact rational derivatives
|
|
245
|
+
* (Piegl & Tiller A4.4), with respect to the normalized [0,1] parameters.
|
|
246
|
+
*/
|
|
247
|
+
derivatives(u, v) {
|
|
248
|
+
ensureInit();
|
|
249
|
+
const r = wasm.nurbs_surface_derivatives(this._data, u, v);
|
|
250
|
+
if (r.length < 18)
|
|
251
|
+
throw new Error("NurbsSurface.derivatives failed");
|
|
252
|
+
const vec = (i) => new Vec3(r[i], r[i + 1], r[i + 2]);
|
|
253
|
+
return {
|
|
254
|
+
point: new Point(r[0], r[1], r[2]),
|
|
255
|
+
du: vec(3),
|
|
256
|
+
dv: vec(6),
|
|
257
|
+
duu: vec(9),
|
|
258
|
+
duv: vec(12),
|
|
259
|
+
dvv: vec(15),
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Principal curvatures and curvature invariants at (u, v), from the exact
|
|
264
|
+
* first/second fundamental forms.
|
|
265
|
+
*/
|
|
266
|
+
curvature(u, v) {
|
|
267
|
+
ensureInit();
|
|
268
|
+
const r = wasm.nurbs_surface_curvature(this._data, u, v);
|
|
269
|
+
if (r.length < 7)
|
|
270
|
+
throw new Error("NurbsSurface.curvature failed");
|
|
271
|
+
return {
|
|
272
|
+
k1: r[0],
|
|
273
|
+
k2: r[1],
|
|
274
|
+
gaussian: r[2],
|
|
275
|
+
mean: r[3],
|
|
276
|
+
normal: new Vec3(r[4], r[5], r[6]),
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Closest point on the surface to `p` (Newton point inversion with grid
|
|
281
|
+
* seeding). Returns normalized (u, v) and the surface point.
|
|
282
|
+
*/
|
|
283
|
+
closestPoint(p) {
|
|
284
|
+
ensureInit();
|
|
285
|
+
const r = wasm.nurbs_surface_closest_point(this._data, p.x, p.y, p.z);
|
|
286
|
+
if (r.length < 5)
|
|
287
|
+
throw new Error("NurbsSurface.closestPoint failed");
|
|
288
|
+
return { u: r[0], v: r[1], point: new Point(r[2], r[3], r[4]) };
|
|
289
|
+
}
|
|
290
|
+
// ── Iso-curves (exact rational extraction) ──
|
|
291
|
+
/**
|
|
292
|
+
* Exact iso-parametric curve running along the U direction at constant v.
|
|
293
|
+
* Rational surfaces yield exact rational curves (weights preserved).
|
|
294
|
+
* @param v - Normalized v parameter [0, 1]
|
|
295
|
+
*/
|
|
296
|
+
isoCurveU(v) {
|
|
297
|
+
ensureInit();
|
|
298
|
+
const buf = wasm.nurbs_surface_iso_curve(this._data, v, true);
|
|
299
|
+
if (buf.length < 2)
|
|
300
|
+
throw new Error("NurbsSurface.isoCurveU failed");
|
|
301
|
+
return NurbsCurve.fromData(buf);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Exact iso-parametric curve running along the V direction at constant u.
|
|
305
|
+
* @param u - Normalized u parameter [0, 1]
|
|
306
|
+
*/
|
|
307
|
+
isoCurveV(u) {
|
|
308
|
+
ensureInit();
|
|
309
|
+
const buf = wasm.nurbs_surface_iso_curve(this._data, u, false);
|
|
310
|
+
if (buf.length < 2)
|
|
311
|
+
throw new Error("NurbsSurface.isoCurveV failed");
|
|
312
|
+
return NurbsCurve.fromData(buf);
|
|
313
|
+
}
|
|
314
|
+
// ── Exact refinement / editing ──
|
|
315
|
+
/**
|
|
316
|
+
* Exact knot insertion at normalized parameter t (shape-preserving; adds a
|
|
317
|
+
* row/column of control points for finer editing).
|
|
318
|
+
*/
|
|
319
|
+
insertKnot(direction, t, times = 1) {
|
|
320
|
+
ensureInit();
|
|
321
|
+
const buf = wasm.nurbs_surface_insert_knot(this._data, direction === "u", t, times);
|
|
322
|
+
if (buf.length < 4)
|
|
323
|
+
throw new Error("NurbsSurface.insertKnot failed");
|
|
324
|
+
return NurbsSurface.fromData(buf);
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Exact degree elevation by `t` in one direction (shape-preserving).
|
|
328
|
+
*/
|
|
329
|
+
elevateDegree(direction, t = 1) {
|
|
330
|
+
ensureInit();
|
|
331
|
+
const buf = wasm.nurbs_surface_elevate_degree(this._data, direction === "u", t);
|
|
332
|
+
if (buf.length < 4)
|
|
333
|
+
throw new Error("NurbsSurface.elevateDegree failed");
|
|
334
|
+
return NurbsSurface.fromData(buf);
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Exact split at normalized parameter t. Returns [lower, upper].
|
|
338
|
+
*/
|
|
339
|
+
split(direction, t) {
|
|
340
|
+
ensureInit();
|
|
341
|
+
const buf = wasm.nurbs_surface_split(this._data, direction === "u", t);
|
|
342
|
+
if (buf.length < 2)
|
|
343
|
+
throw new Error("NurbsSurface.split failed");
|
|
344
|
+
const lenA = Number(buf[0]);
|
|
345
|
+
const a = buf.slice(1, 1 + lenA);
|
|
346
|
+
const lenB = Number(buf[1 + lenA]);
|
|
347
|
+
const b = buf.slice(2 + lenA, 2 + lenA + lenB);
|
|
348
|
+
return [NurbsSurface.fromData(a), NurbsSurface.fromData(b)];
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Exact sub-patch over normalized parameter ranges.
|
|
352
|
+
*/
|
|
353
|
+
extractRegion(u0, u1, v0, v1) {
|
|
354
|
+
ensureInit();
|
|
355
|
+
const buf = wasm.nurbs_surface_extract_region(this._data, u0, u1, v0, v1);
|
|
356
|
+
if (buf.length < 4)
|
|
357
|
+
throw new Error("NurbsSurface.extractRegion failed");
|
|
358
|
+
return NurbsSurface.fromData(buf);
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Return a copy with one control point (and optionally its weight) replaced —
|
|
362
|
+
* the primitive for interactive control-point editing.
|
|
363
|
+
*/
|
|
364
|
+
withControlPoint(i, j, point, weight) {
|
|
365
|
+
if (i < 0 || i >= this.controlPoints.length || j < 0 || j >= (this.controlPoints[0]?.length ?? 0)) {
|
|
366
|
+
throw new Error(`Control point index (${i}, ${j}) out of range`);
|
|
367
|
+
}
|
|
368
|
+
const cps = this.controlPoints.map((row, ri) => row.map((p, rj) => (ri === i && rj === j ? point : p)));
|
|
369
|
+
const weights = this.weights.map((row, ri) => row.map((w, rj) => (ri === i && rj === j && weight !== undefined ? weight : w)));
|
|
370
|
+
return new NurbsSurface(this.degreeU, this.degreeV, cps, weights, this.knotsU, this.knotsV);
|
|
371
|
+
}
|
|
372
|
+
// ── Tessellation ──
|
|
373
|
+
/**
|
|
374
|
+
* Curvature-adaptive tessellation: flat regions stay coarse, curved regions
|
|
375
|
+
* refine until the chordal `tolerance` is met.
|
|
376
|
+
*/
|
|
377
|
+
tessellateAdaptive(tolerance, maxSegmentsPerSpan = 64) {
|
|
378
|
+
ensureInit();
|
|
379
|
+
const buf = wasm.nurbs_surface_tessellate_adaptive(this._data, tolerance, maxSegmentsPerSpan);
|
|
380
|
+
if (buf.length < 1)
|
|
381
|
+
throw new Error("NurbsSurface.tessellateAdaptive failed");
|
|
382
|
+
return Mesh.fromBuffer(buf);
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Convert to a mesh sheet for boolean/trim operations with meshes
|
|
386
|
+
* (adaptive tessellation at the given chordal tolerance). A sheet
|
|
387
|
+
* intersected with a closed solid via `Mesh.intersect`/`Mesh.subtract`
|
|
388
|
+
* trims to the portion inside/outside that solid.
|
|
389
|
+
*/
|
|
390
|
+
toMesh(tolerance = 0.01) {
|
|
391
|
+
return this.tessellateAdaptive(tolerance);
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Display-ready render tessellation computed in one kernel pass: a
|
|
395
|
+
* twist-aware adaptive grid with ANALYTIC surface normals, plus feature
|
|
396
|
+
* edges only where the surface genuinely has them (boundary iso-lines,
|
|
397
|
+
* kinked C0 knot lines, kinked closed seams — never quad diagonals).
|
|
398
|
+
*
|
|
399
|
+
* Prefer this over `tessellateAdaptive(...).buildRenderBuffers(...)` for
|
|
400
|
+
* displaying a NURBS surface: the mesh path reconstructs normals from
|
|
401
|
+
* triangle geometry and flags spurious crease edges on anisotropic grids.
|
|
402
|
+
*
|
|
403
|
+
* `positions`/`normals` are non-indexed, three floats per vertex;
|
|
404
|
+
* `featureEdges` holds two endpoints (six floats) per segment.
|
|
405
|
+
*/
|
|
406
|
+
tessellateRender(tolerance, maxSegmentsPerSpan = 64, creaseAngleDeg = 30) {
|
|
407
|
+
ensureInit();
|
|
408
|
+
const r = wasm.nurbs_surface_tessellate_render(this._data, tolerance, maxSegmentsPerSpan, creaseAngleDeg);
|
|
409
|
+
const vertexCount = Math.max(0, Math.floor(r[0] ?? 0));
|
|
410
|
+
const posStart = 1;
|
|
411
|
+
const norStart = posStart + vertexCount * 3;
|
|
412
|
+
const edgeCountIndex = norStart + vertexCount * 3;
|
|
413
|
+
const edgeCount = Math.max(0, Math.floor(r[edgeCountIndex] ?? 0));
|
|
414
|
+
const edgeStart = edgeCountIndex + 1;
|
|
415
|
+
return {
|
|
416
|
+
positions: r.subarray(posStart, posStart + vertexCount * 3),
|
|
417
|
+
normals: r.subarray(norStart, norStart + vertexCount * 3),
|
|
418
|
+
featureEdges: r.subarray(edgeStart, edgeStart + edgeCount * 6),
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
// ── Exact constructors ──
|
|
422
|
+
/**
|
|
423
|
+
* Exact surface of revolution: revolve a profile curve around an axis.
|
|
424
|
+
* The circular direction is exactly rational (true circles, not approximations).
|
|
425
|
+
* @param angle - Revolve angle in radians (up to 2π)
|
|
426
|
+
*/
|
|
427
|
+
static revolve(profile, origin, axis, angle) {
|
|
428
|
+
ensureInit();
|
|
429
|
+
const buf = wasm.nurbs_surface_revolve(profile.data, origin.x, origin.y, origin.z, axis.x, axis.y, axis.z, angle);
|
|
430
|
+
if (buf.length < 4)
|
|
431
|
+
throw new Error("NurbsSurface.revolve failed");
|
|
432
|
+
return NurbsSurface.fromData(buf);
|
|
433
|
+
}
|
|
434
|
+
/** Exact extruded (translational) surface from a profile curve. */
|
|
435
|
+
static extrudeCurve(profile, direction) {
|
|
436
|
+
ensureInit();
|
|
437
|
+
const buf = wasm.nurbs_surface_extrude(profile.data, direction.x, direction.y, direction.z);
|
|
438
|
+
if (buf.length < 4)
|
|
439
|
+
throw new Error("NurbsSurface.extrudeCurve failed");
|
|
440
|
+
return NurbsSurface.fromData(buf);
|
|
441
|
+
}
|
|
442
|
+
/** Exact ruled surface between two curves (degrees/knots unified automatically). */
|
|
443
|
+
static ruled(a, b) {
|
|
444
|
+
ensureInit();
|
|
445
|
+
const buf = wasm.nurbs_surface_ruled(a.data, b.data);
|
|
446
|
+
if (buf.length < 4)
|
|
447
|
+
throw new Error("NurbsSurface.ruled failed");
|
|
448
|
+
return NurbsSurface.fromData(buf);
|
|
449
|
+
}
|
|
450
|
+
/** Exact rational cylinder side surface. */
|
|
451
|
+
static cylinder(base, axis, radius, height) {
|
|
452
|
+
ensureInit();
|
|
453
|
+
const buf = wasm.nurbs_surface_primitive("cylinder", new Float64Array([base.x, base.y, base.z, axis.x, axis.y, axis.z, radius, height]));
|
|
454
|
+
if (buf.length < 4)
|
|
455
|
+
throw new Error("NurbsSurface.cylinder failed");
|
|
456
|
+
return NurbsSurface.fromData(buf);
|
|
457
|
+
}
|
|
458
|
+
/** Exact rational sphere surface. */
|
|
459
|
+
static sphere(center, radius) {
|
|
460
|
+
ensureInit();
|
|
461
|
+
const buf = wasm.nurbs_surface_primitive("sphere", new Float64Array([center.x, center.y, center.z, radius]));
|
|
462
|
+
if (buf.length < 4)
|
|
463
|
+
throw new Error("NurbsSurface.sphere failed");
|
|
464
|
+
return NurbsSurface.fromData(buf);
|
|
465
|
+
}
|
|
466
|
+
/** Exact rational cone/frustum side surface (radius1 may be 0). */
|
|
467
|
+
static cone(base, axis, radius0, radius1, height) {
|
|
468
|
+
ensureInit();
|
|
469
|
+
const buf = wasm.nurbs_surface_primitive("cone", new Float64Array([base.x, base.y, base.z, axis.x, axis.y, axis.z, radius0, radius1, height]));
|
|
470
|
+
if (buf.length < 4)
|
|
471
|
+
throw new Error("NurbsSurface.cone failed");
|
|
472
|
+
return NurbsSurface.fromData(buf);
|
|
473
|
+
}
|
|
474
|
+
/** Exact rational torus surface (axis +Z through center). */
|
|
475
|
+
static torus(center, major, minor) {
|
|
476
|
+
ensureInit();
|
|
477
|
+
const buf = wasm.nurbs_surface_primitive("torus", new Float64Array([center.x, center.y, center.z, major, minor]));
|
|
478
|
+
if (buf.length < 4)
|
|
479
|
+
throw new Error("NurbsSurface.torus failed");
|
|
480
|
+
return NurbsSurface.fromData(buf);
|
|
227
481
|
}
|
|
228
482
|
/** Encode to WASM format */
|
|
229
483
|
static encode(degU, degV, controlPoints, weights, knotsU, knotsV) {
|
package/dist/NurbsSurface.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NurbsSurface.js","sourceRoot":"","sources":["../src/NurbsSurface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NurbsSurface.js","sourceRoot":"","sources":["../src/NurbsSurface.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export { NurbsCurve } from "./NurbsCurve.js";
|
|
|
16
16
|
export { NurbsSurface } from "./NurbsSurface.js";
|
|
17
17
|
export { MeshSurface } from "./MeshSurface.js";
|
|
18
18
|
export type { Surface } from "./Surface.js";
|
|
19
|
+
export { Brep } from "./Brep.js";
|
|
20
|
+
export type { BrepInfo, BrepValidationReport, BrepBooleanOptions, BrepParametricBooleanOptions, } from "./Brep.js";
|
|
19
21
|
export { Mesh, MeshBooleanExecutionError } from "./Mesh.js";
|
|
20
22
|
export type { MeshBooleanOperation, MeshBooleanDebugProbeId, MeshBooleanDebugOptions, MeshBooleanDebugProbe, MeshBooleanDebugProbeSummary, MeshBooleanDebugReport, MeshBooleanReproOperand, MeshBooleanReproResult, MeshBooleanReproError, MeshBooleanReproPayload, MeshBooleanReproOptions, MeshSplitResult, MeshPlaneSplitResult, MeshPlaneSplitOptions, MeshCurveSplitOptions, MeshPlanarFace, MeshDebugBounds, MeshDebugRayHit, MeshDebugSummary, MeshBooleanLimits, MeshBooleanOptions, MeshBooleanAsyncOptions, MeshBooleanErrorCode, MeshBooleanErrorPayload, MeshBooleanProgressEvent, } from "./Mesh.js";
|
|
21
23
|
export { intersect } from "./Geometry.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGlD,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGlD,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EACV,QAAQ,EACR,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,8 @@ export { PolyCurve } from "./PolyCurve.js";
|
|
|
16
16
|
export { NurbsCurve } from "./NurbsCurve.js";
|
|
17
17
|
export { NurbsSurface } from "./NurbsSurface.js";
|
|
18
18
|
export { MeshSurface } from "./MeshSurface.js";
|
|
19
|
+
// Boundary representation
|
|
20
|
+
export { Brep } from "./Brep.js";
|
|
19
21
|
// Mesh and operations
|
|
20
22
|
export { Mesh, MeshBooleanExecutionError } from "./Mesh.js";
|
|
21
23
|
export { intersect } from "./Geometry.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYlD,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,kBAAkB;AAClB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,cAAc;AACd,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,sBAAsB;AACtB,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AA4B5D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYlD,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,kBAAkB;AAClB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,cAAc;AACd,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,0BAA0B;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,sBAAsB;AACtB,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AA4B5D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|