okgeometry-api 1.48.0 → 1.49.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.
@@ -136,7 +136,7 @@ export declare class MeshBooleanExecutionError extends Error {
136
136
  readonly details?: string;
137
137
  constructor(payload: MeshBooleanErrorPayload);
138
138
  }
139
- export type MeshHeavyOperation = "unionAll" | "differenceAll" | "makeWatertight" | "voxelRemesh" | "isotropicRemesh" | "chamferEdges" | "filletEdges" | "brepBoolean" | "split" | "solidSplitBySurface" | "diagnostics" | "repair" | "importStl" | "hlrProject";
139
+ export type MeshHeavyOperation = "unionAll" | "differenceAll" | "makeWatertight" | "voxelRemesh" | "isotropicRemesh" | "chamferEdges" | "filletEdges" | "brepBoolean" | "split" | "solidSplitBySurface" | "diagnostics" | "repair" | "importStl" | "hlrProject" | "planeSectionFills";
140
140
  export interface MeshHeavyParams {
141
141
  resolution?: number;
142
142
  iso?: number;
@@ -179,6 +179,19 @@ export interface MeshHeavyParams {
179
179
  preserveFeatures?: boolean;
180
180
  /** isotropicRemesh: re-project onto the original surface each iteration. */
181
181
  project?: boolean;
182
+ /** planeSectionFills: one cutting plane per request mesh (aligned). */
183
+ sectionPlanes?: Array<{
184
+ origin: {
185
+ x: number;
186
+ y: number;
187
+ z: number;
188
+ };
189
+ normal: {
190
+ x: number;
191
+ y: number;
192
+ z: number;
193
+ };
194
+ }>;
182
195
  /** hlrProject: view/section parameters + optional per-mesh row-major
183
196
  * transforms (aligned with the request buffers, baked worker-side). */
184
197
  hlr?: {
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-boolean.protocol.d.ts","sourceRoot":"","sources":["../src/mesh-boolean.protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh-boolean.protocol.d.ts","sourceRoot":"","sources":["../src/mesh-boolean.protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-boolean.worker.d.ts","sourceRoot":"","sources":["../src/mesh-boolean.worker.ts"],"names":[],"mappings":"AA+tBA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"mesh-boolean.worker.d.ts","sourceRoot":"","sources":["../src/mesh-boolean.worker.ts"],"names":[],"mappings":"AAywBA,OAAO,EAAE,CAAC"}
@@ -2,6 +2,8 @@ import { init, initThreads, isInitialized } from "./engine.js";
2
2
  import { Brep } from "./Brep.js";
3
3
  import { Mesh } from "./Mesh.js";
4
4
  import { Point } from "./Point.js";
5
+ import { Plane } from "./Plane.js";
6
+ import { Vec3 } from "./Vec3.js";
5
7
  const workerScope = self;
6
8
  const workerGlobal = globalThis;
7
9
  const cancelledJobs = new Set();
@@ -228,6 +230,44 @@ function runHeavyOperation(message) {
228
230
  const result = mesh.voxelRemesh(params.resolution ?? 0, params.iso ?? 0.5);
229
231
  return packSingleResult(result, params);
230
232
  }
233
+ case "planeSectionFills": {
234
+ const planes = params.sectionPlanes;
235
+ if (!planes)
236
+ throw new Error("planeSectionFills requires sectionPlanes params");
237
+ const input = meshes();
238
+ // Per mesh: [loopCount, (closed, pointCount, xyz...)...,
239
+ // vertFloatLen, idxLen, positions..., indices...]
240
+ const parts = [input.length];
241
+ for (let i = 0; i < input.length; i++) {
242
+ let section = null;
243
+ try {
244
+ const p = planes[i];
245
+ const plane = new Plane(new Point(p.origin.x, p.origin.y, p.origin.z), new Vec3(p.normal.x, p.normal.y, p.normal.z));
246
+ section = input[i].planeSection(plane);
247
+ }
248
+ catch {
249
+ section = null; // one bad mesh never blocks the batch
250
+ }
251
+ const loops = section?.loops ?? [];
252
+ parts.push(loops.length);
253
+ for (const loop of loops) {
254
+ parts.push(loop.isClosed() ? 1 : 0, loop.points.length);
255
+ for (const pt of loop.points)
256
+ parts.push(pt.x, pt.y, pt.z);
257
+ }
258
+ const fill = section?.fill ?? null;
259
+ if (!fill || fill.indices.length === 0) {
260
+ parts.push(0, 0);
261
+ continue;
262
+ }
263
+ parts.push(fill.positions.length, fill.indices.length);
264
+ for (let k = 0; k < fill.positions.length; k++)
265
+ parts.push(fill.positions[k]);
266
+ for (let k = 0; k < fill.indices.length; k++)
267
+ parts.push(fill.indices[k]);
268
+ }
269
+ return { buffer: new Float64Array(parts).buffer };
270
+ }
231
271
  case "hlrProject": {
232
272
  const view = params.hlr;
233
273
  if (!view)
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-boolean.worker.js","sourceRoot":"","sources":["../src/mesh-boolean.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh-boolean.worker.js","sourceRoot":"","sources":["../src/mesh-boolean.worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "okgeometry-api",
3
- "version": "1.48.0",
3
+ "version": "1.49.0",
4
4
  "description": "Geometry engine API for AEC applications - NURBS, meshes, booleans, intersections. Powered by Rust/WASM.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/Mesh.ts CHANGED
@@ -4323,6 +4323,117 @@ export class Mesh {
4323
4323
  };
4324
4324
  }
4325
4325
 
4326
+ /**
4327
+ * Batched plane sections on the worker pool: one job cuts every mesh at
4328
+ * its own plane and returns cut LOOPS + the fill triangulation per mesh
4329
+ * (okdraw poché + vector cut linework). The per-mesh synchronous
4330
+ * `planeSection` calls scale with SCENE size on an interactive path
4331
+ * (section drags, geometry commits in a view, sheet vector computes),
4332
+ * which is exactly the shape that must not run on the UI thread. Worker
4333
+ * infrastructure failures fall back to the synchronous loop; a kernel
4334
+ * failure on one mesh yields an empty section for that mesh only.
4335
+ */
4336
+ static async planeSectionsAsync(
4337
+ meshes: Mesh[],
4338
+ planes: Array<{
4339
+ origin: { x: number; y: number; z: number };
4340
+ normal: { x: number; y: number; z: number };
4341
+ }>,
4342
+ asyncOptions?: MeshBooleanAsyncOptions
4343
+ ): Promise<
4344
+ Array<{
4345
+ loops: Array<{ closed: boolean; points: Float64Array }>;
4346
+ fill: { positions: Float64Array; indices: Uint32Array } | null;
4347
+ }>
4348
+ > {
4349
+ if (meshes.length === 0) return [];
4350
+ const syncSections = (): Array<{
4351
+ loops: Array<{ closed: boolean; points: Float64Array }>;
4352
+ fill: { positions: Float64Array; indices: Uint32Array } | null;
4353
+ }> =>
4354
+ meshes.map((mesh, i) => {
4355
+ try {
4356
+ const p = planes[i];
4357
+ const plane = new Plane(
4358
+ new Point(p.origin.x, p.origin.y, p.origin.z),
4359
+ new Vec3(p.normal.x, p.normal.y, p.normal.z)
4360
+ );
4361
+ const section = mesh.planeSection(plane);
4362
+ return {
4363
+ loops: section.loops.map((loop) => {
4364
+ const pts = new Float64Array(loop.points.length * 3);
4365
+ for (let k = 0; k < loop.points.length; k++) {
4366
+ pts[k * 3] = loop.points[k].x;
4367
+ pts[k * 3 + 1] = loop.points[k].y;
4368
+ pts[k * 3 + 2] = loop.points[k].z;
4369
+ }
4370
+ return { closed: loop.isClosed(), points: pts };
4371
+ }),
4372
+ fill: section.fill
4373
+ ? { positions: section.fill.positions, indices: section.fill.indices }
4374
+ : null,
4375
+ };
4376
+ } catch {
4377
+ return { loops: [], fill: null };
4378
+ }
4379
+ });
4380
+ try {
4381
+ const { buffer } = await runMeshHeavyInWorkerPool(
4382
+ "planeSectionFills",
4383
+ meshes.map((m) => m._buffer),
4384
+ {
4385
+ ...asyncOptions,
4386
+ trusted: meshes.map((m) => m._trustedBooleanInput),
4387
+ residents: meshes,
4388
+ params: { sectionPlanes: planes },
4389
+ }
4390
+ );
4391
+ // Packing per mesh: [loopCount, (closed, pointCount, xyz...)...,
4392
+ // vertFloatLen, idxLen, positions..., indices...]
4393
+ const data = new Float64Array(buffer);
4394
+ const out: Array<{
4395
+ loops: Array<{ closed: boolean; points: Float64Array }>;
4396
+ fill: { positions: Float64Array; indices: Uint32Array } | null;
4397
+ }> = [];
4398
+ let offset = 0;
4399
+ const count = data[offset++] ?? 0;
4400
+ for (let i = 0; i < count; i++) {
4401
+ const loopCount = data[offset++];
4402
+ const loops: Array<{ closed: boolean; points: Float64Array }> = [];
4403
+ for (let l = 0; l < loopCount; l++) {
4404
+ const closed = data[offset++] === 1;
4405
+ const pointCount = data[offset++];
4406
+ const points = new Float64Array(
4407
+ data.subarray(offset, offset + pointCount * 3)
4408
+ );
4409
+ offset += pointCount * 3;
4410
+ loops.push({ closed, points });
4411
+ }
4412
+ const vertLen = data[offset++];
4413
+ const idxLen = data[offset++];
4414
+ let fill: { positions: Float64Array; indices: Uint32Array } | null = null;
4415
+ if (idxLen > 0) {
4416
+ const positions = new Float64Array(data.subarray(offset, offset + vertLen));
4417
+ offset += vertLen;
4418
+ const indices = new Uint32Array(idxLen);
4419
+ for (let k = 0; k < idxLen; k++) indices[k] = data[offset++];
4420
+ fill = { positions, indices };
4421
+ } else {
4422
+ offset += vertLen;
4423
+ }
4424
+ out.push({ loops, fill });
4425
+ }
4426
+ return out;
4427
+ } catch (error) {
4428
+ if (!shouldFallbackFromWorkerFailure(error)) throw error;
4429
+ console.warn(
4430
+ "Mesh.planeSectionsAsync worker failed; falling back to main thread.",
4431
+ error
4432
+ );
4433
+ return syncSections();
4434
+ }
4435
+ }
4436
+
4326
4437
  /**
4327
4438
  * Hidden-line removal for orthographic drawing views (okdraw
4328
4439
  * presentation sheets): project every input mesh's drawable edges
@@ -210,7 +210,12 @@ export type MeshHeavyOperation =
210
210
  // ride `params.hlr.transforms` and bake worker-side).
211
211
  // Response buffer = the raw f64 hlr result (parse with
212
212
  // Mesh.parseHlrResult).
213
- | "hlrProject";
213
+ | "hlrProject"
214
+ // planeSectionFills: [mesh0, mesh1, ...] cut at params.sectionPlanes[i];
215
+ // response per mesh = [loopCount, (closed, pointCount,
216
+ // xyz...)..., vertFloatLen, idxLen, positions...,
217
+ // indices...] — cut loops + fill (idxLen 0 = no fill).
218
+ | "planeSectionFills";
214
219
 
215
220
  export interface MeshHeavyParams {
216
221
  resolution?: number;
@@ -254,6 +259,11 @@ export interface MeshHeavyParams {
254
259
  preserveFeatures?: boolean;
255
260
  /** isotropicRemesh: re-project onto the original surface each iteration. */
256
261
  project?: boolean;
262
+ /** planeSectionFills: one cutting plane per request mesh (aligned). */
263
+ sectionPlanes?: Array<{
264
+ origin: { x: number; y: number; z: number };
265
+ normal: { x: number; y: number; z: number };
266
+ }>;
257
267
  /** hlrProject: view/section parameters + optional per-mesh row-major
258
268
  * transforms (aligned with the request buffers, baked worker-side). */
259
269
  hlr?: {
@@ -2,6 +2,8 @@ import { init, initThreads, isInitialized } from "./engine.js";
2
2
  import { Brep } from "./Brep.js";
3
3
  import { Mesh } from "./Mesh.js";
4
4
  import { Point } from "./Point.js";
5
+ import { Plane } from "./Plane.js";
6
+ import { Vec3 } from "./Vec3.js";
5
7
  import type {
6
8
  MeshBooleanErrorPayload,
7
9
  MeshBooleanWorkerErrorResponse,
@@ -268,6 +270,10 @@ function runHeavyOperation(message: {
268
270
  featureAngleDeg?: number;
269
271
  preserveFeatures?: boolean;
270
272
  project?: boolean;
273
+ sectionPlanes?: Array<{
274
+ origin: { x: number; y: number; z: number };
275
+ normal: { x: number; y: number; z: number };
276
+ }>;
271
277
  hlr?: {
272
278
  viewDir: { x: number; y: number; z: number };
273
279
  up: { x: number; y: number; z: number };
@@ -319,6 +325,42 @@ function runHeavyOperation(message: {
319
325
  const result = mesh.voxelRemesh(params.resolution ?? 0, params.iso ?? 0.5);
320
326
  return packSingleResult(result, params);
321
327
  }
328
+ case "planeSectionFills": {
329
+ const planes = params.sectionPlanes;
330
+ if (!planes) throw new Error("planeSectionFills requires sectionPlanes params");
331
+ const input = meshes();
332
+ // Per mesh: [loopCount, (closed, pointCount, xyz...)...,
333
+ // vertFloatLen, idxLen, positions..., indices...]
334
+ const parts: number[] = [input.length];
335
+ for (let i = 0; i < input.length; i++) {
336
+ let section: ReturnType<Mesh["planeSection"]> | null = null;
337
+ try {
338
+ const p = planes[i];
339
+ const plane = new Plane(
340
+ new Point(p.origin.x, p.origin.y, p.origin.z),
341
+ new Vec3(p.normal.x, p.normal.y, p.normal.z),
342
+ );
343
+ section = input[i].planeSection(plane);
344
+ } catch {
345
+ section = null; // one bad mesh never blocks the batch
346
+ }
347
+ const loops = section?.loops ?? [];
348
+ parts.push(loops.length);
349
+ for (const loop of loops) {
350
+ parts.push(loop.isClosed() ? 1 : 0, loop.points.length);
351
+ for (const pt of loop.points) parts.push(pt.x, pt.y, pt.z);
352
+ }
353
+ const fill = section?.fill ?? null;
354
+ if (!fill || fill.indices.length === 0) {
355
+ parts.push(0, 0);
356
+ continue;
357
+ }
358
+ parts.push(fill.positions.length, fill.indices.length);
359
+ for (let k = 0; k < fill.positions.length; k++) parts.push(fill.positions[k]);
360
+ for (let k = 0; k < fill.indices.length; k++) parts.push(fill.indices[k]);
361
+ }
362
+ return { buffer: new Float64Array(parts).buffer };
363
+ }
322
364
  case "hlrProject": {
323
365
  const view = params.hlr;
324
366
  if (!view) throw new Error("hlrProject requires hlr params");