okgeometry-api 1.2.1 → 1.5.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/Mesh.d.ts CHANGED
@@ -436,6 +436,20 @@ export declare class Mesh {
436
436
  * @returns New Mesh representing the lofted surface
437
437
  */
438
438
  static loftPolylines(polylines: Point[][], segments: number, caps?: boolean): Mesh;
439
+ /**
440
+ * Loft through multiple raw profiles with kernel-managed compatibility:
441
+ * profiles are resampled to a common point count (uniform arc length), and
442
+ * closed profiles get seam alignment + winding direction matching so the
443
+ * loft does not twist.
444
+ *
445
+ * @param profiles - Array of point arrays defining cross-sections. Closed
446
+ * profiles must NOT repeat the first point at the end.
447
+ * @param closed - Whether profiles are closed loops (tube) or open rows (sheet)
448
+ * @param caps - Cap first/last profiles (closed profiles only) to produce a
449
+ * watertight solid ready for booleans (default false)
450
+ * @returns New Mesh representing the lofted surface
451
+ */
452
+ static loftProfiles(profiles: Point[][], closed: boolean, caps?: boolean): Mesh;
439
453
  /**
440
454
  * Sweep a profile polyline along a path polyline.
441
455
  * @param profilePoints - Profile cross-section points
@@ -558,6 +572,38 @@ export declare class Mesh {
558
572
  * @returns New mesh containing only the overlapping volume
559
573
  */
560
574
  intersect(other: Mesh, options?: MeshBooleanOptions): Mesh;
575
+ /**
576
+ * Union many meshes into a single mesh in ONE WASM call.
577
+ *
578
+ * Substantially faster than chaining pairwise `union()` calls: every input
579
+ * crosses the JS/WASM boundary once, intermediate results never round-trip
580
+ * through buffers, mutually disjoint inputs are concatenated instead of
581
+ * run through CSG, and overlapping inputs are merged smallest-first.
582
+ *
583
+ * Requires all inputs to be closed volumes.
584
+ * @param meshes - Meshes to union (order does not affect the result)
585
+ * @param options - Optional safety overrides
586
+ * @returns New mesh containing the combined volume of all inputs
587
+ */
588
+ static unionAll(meshes: Mesh[], options?: MeshBooleanOptions): Mesh;
589
+ /**
590
+ * Subtract many cutter meshes from this mesh in ONE WASM call.
591
+ *
592
+ * The kernel culls cutters that miss this mesh's bounds, unions mutually
593
+ * overlapping cutters, combines disjoint cutters into one multi-shell
594
+ * operand, and performs a single CSG subtraction — instead of N pairwise
595
+ * subtractions that re-process the shrinking host every time.
596
+ *
597
+ * The fast batched path requires this mesh and all cutters to be closed
598
+ * volumes; open-mesh combinations fall back to sequential pairwise
599
+ * `subtract()` (which carries the split-based open-host trim semantics).
600
+ * @param others - Cutter meshes to subtract
601
+ * @param options - Optional safety overrides
602
+ * @returns New mesh with all cutter volumes removed from this
603
+ */
604
+ subtractAll(others: Mesh[], options?: MeshBooleanOptions): Mesh;
605
+ private static enforceBatchBooleanLimits;
606
+ private static decodeBatchBooleanResult;
561
607
  private splitWithMesh;
562
608
  private splitWithPlane;
563
609
  private splitWithCurve;
@@ -655,6 +701,33 @@ export declare class Mesh {
655
701
  * Find edge-connected coplanar triangles that belong to the same planar face.
656
702
  */
657
703
  getCoplanarFaceIndices(faceIndex: number): number[];
704
+ /**
705
+ * Find the edge-connected smooth face group containing a triangle: flood
706
+ * fill crossing only edges whose dihedral angle is below `maxAngleDeg`.
707
+ * On a tessellated curved surface (cylinder wall, lofted patch) this
708
+ * returns the whole smooth region (`isPlanar: false`); on a flat face it
709
+ * matches the coplanar group (`isPlanar: true`).
710
+ */
711
+ getSmoothFaceGroup(faceIndex: number, maxAngleDeg?: number): {
712
+ faceIndices: number[];
713
+ isPlanar: boolean;
714
+ };
715
+ /**
716
+ * Display-ready render buffers computed in one kernel pass: creased
717
+ * (crease-split) vertex normals plus feature edge segments. Replaces
718
+ * per-mesh THREE.toCreasedNormals + EdgesGeometry in app layers.
719
+ *
720
+ * `positions`/`normals` are non-indexed, three floats per vertex, in the
721
+ * mesh's triangle order (raycast face indices stay valid). `featureEdges`
722
+ * holds two endpoints (six floats) per feature edge segment: boundary
723
+ * edges, non-manifold edges, and edges whose dihedral angle exceeds
724
+ * `creaseAngleDeg`.
725
+ */
726
+ buildRenderBuffers(creaseAngleDeg?: number): {
727
+ positions: Float32Array;
728
+ normals: Float32Array;
729
+ featureEdges: Float32Array;
730
+ };
658
731
  /**
659
732
  * Coplanar connected face region and its projection bounds on a plane basis.
660
733
  * Returns null for invalid inputs or empty regions.
@@ -1 +1 @@
1
- {"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../src/Mesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../src/Mesh.ts"],"names":[],"mappings":"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"}
package/dist/Mesh.js CHANGED
@@ -1124,6 +1124,31 @@ export class Mesh {
1124
1124
  }
1125
1125
  return Mesh.fromTrustedBuffer(wasm.loft_polylines(new Float64Array(parts), segments, caps));
1126
1126
  }
1127
+ /**
1128
+ * Loft through multiple raw profiles with kernel-managed compatibility:
1129
+ * profiles are resampled to a common point count (uniform arc length), and
1130
+ * closed profiles get seam alignment + winding direction matching so the
1131
+ * loft does not twist.
1132
+ *
1133
+ * @param profiles - Array of point arrays defining cross-sections. Closed
1134
+ * profiles must NOT repeat the first point at the end.
1135
+ * @param closed - Whether profiles are closed loops (tube) or open rows (sheet)
1136
+ * @param caps - Cap first/last profiles (closed profiles only) to produce a
1137
+ * watertight solid ready for booleans (default false)
1138
+ * @returns New Mesh representing the lofted surface
1139
+ */
1140
+ static loftProfiles(profiles, closed, caps = false) {
1141
+ ensureInit();
1142
+ // Format: [count1, x,y,z,..., count2, x,y,z,...]
1143
+ const parts = [];
1144
+ for (const profile of profiles) {
1145
+ parts.push(profile.length);
1146
+ for (const p of profile) {
1147
+ parts.push(p.x, p.y, p.z);
1148
+ }
1149
+ }
1150
+ return Mesh.fromTrustedBuffer(wasm.loft_profiles(new Float64Array(parts), closed, caps));
1151
+ }
1127
1152
  /**
1128
1153
  * Sweep a profile polyline along a path polyline.
1129
1154
  * @param profilePoints - Profile cross-section points
@@ -1589,6 +1614,115 @@ export class Mesh {
1589
1614
  const operationToken = Mesh.encodeBooleanOperationToken("intersection", lhs, rhs, options);
1590
1615
  return lhs.runBoolean(rhs, "intersection", () => wasm.mesh_boolean_operation(lhs._vertexCount, lhs._buffer, rhs._vertexCount, rhs._buffer, operationToken), options);
1591
1616
  }
1617
+ /**
1618
+ * Union many meshes into a single mesh in ONE WASM call.
1619
+ *
1620
+ * Substantially faster than chaining pairwise `union()` calls: every input
1621
+ * crosses the JS/WASM boundary once, intermediate results never round-trip
1622
+ * through buffers, mutually disjoint inputs are concatenated instead of
1623
+ * run through CSG, and overlapping inputs are merged smallest-first.
1624
+ *
1625
+ * Requires all inputs to be closed volumes.
1626
+ * @param meshes - Meshes to union (order does not affect the result)
1627
+ * @param options - Optional safety overrides
1628
+ * @returns New mesh containing the combined volume of all inputs
1629
+ */
1630
+ static unionAll(meshes, options) {
1631
+ ensureInit();
1632
+ const inputs = meshes
1633
+ .filter((mesh) => mesh.faceCount > 0)
1634
+ .map((mesh) => Mesh.normalizeClosedVolumeOrientation(mesh));
1635
+ if (inputs.length === 0)
1636
+ return Mesh.emptyMesh();
1637
+ if (inputs.length === 1)
1638
+ return Mesh.cloneMesh(inputs[0]);
1639
+ const openCount = inputs.reduce((count, mesh) => count + (mesh.isClosedVolume() ? 0 : 1), 0);
1640
+ if (openCount > 0) {
1641
+ throw new Error(`Boolean unionAll requires all inputs to be closed volumes (${openCount} of ${inputs.length} inputs are open). `
1642
+ + "Close or cap the open meshes before calling unionAll().");
1643
+ }
1644
+ Mesh.enforceBatchBooleanLimits("unionAll", inputs, options);
1645
+ const flags = inputs.every((mesh) => mesh._trustedBooleanInput) ? "trustedInput" : "";
1646
+ const result = wasm.mesh_boolean_union_all(Mesh.packMeshes(inputs), flags);
1647
+ return Mesh.decodeBatchBooleanResult("unionAll", result);
1648
+ }
1649
+ /**
1650
+ * Subtract many cutter meshes from this mesh in ONE WASM call.
1651
+ *
1652
+ * The kernel culls cutters that miss this mesh's bounds, unions mutually
1653
+ * overlapping cutters, combines disjoint cutters into one multi-shell
1654
+ * operand, and performs a single CSG subtraction — instead of N pairwise
1655
+ * subtractions that re-process the shrinking host every time.
1656
+ *
1657
+ * The fast batched path requires this mesh and all cutters to be closed
1658
+ * volumes; open-mesh combinations fall back to sequential pairwise
1659
+ * `subtract()` (which carries the split-based open-host trim semantics).
1660
+ * @param others - Cutter meshes to subtract
1661
+ * @param options - Optional safety overrides
1662
+ * @returns New mesh with all cutter volumes removed from this
1663
+ */
1664
+ subtractAll(others, options) {
1665
+ ensureInit();
1666
+ if (this.faceCount === 0)
1667
+ return Mesh.emptyMesh();
1668
+ const host = Mesh.normalizeClosedVolumeOrientation(this);
1669
+ const cutters = others
1670
+ .filter((mesh) => mesh.faceCount > 0)
1671
+ .map((mesh) => Mesh.normalizeClosedVolumeOrientation(mesh));
1672
+ if (cutters.length === 0)
1673
+ return Mesh.cloneMesh(host);
1674
+ if (cutters.length === 1)
1675
+ return host.subtract(cutters[0], options);
1676
+ if (!host.isClosedVolume() || cutters.some((mesh) => !mesh.isClosedVolume())) {
1677
+ return cutters.reduce((acc, cutter) => acc.subtract(cutter, options), host);
1678
+ }
1679
+ // Cheap bounds cull before crossing into WASM at all.
1680
+ const hostBounds = Mesh.computeRawBounds(host);
1681
+ const relevant = cutters.filter((cutter) => {
1682
+ const cutterBounds = Mesh.computeRawBounds(cutter);
1683
+ const contactTol = Mesh.booleanContactTolerance(hostBounds, cutterBounds);
1684
+ return Mesh.boundsOverlap(hostBounds, cutterBounds, contactTol);
1685
+ });
1686
+ if (relevant.length === 0)
1687
+ return Mesh.cloneMesh(host);
1688
+ Mesh.enforceBatchBooleanLimits("subtractAll", [host, ...relevant], options);
1689
+ const flags = host._trustedBooleanInput && relevant.every((mesh) => mesh._trustedBooleanInput)
1690
+ ? "trustedInput"
1691
+ : "";
1692
+ const result = wasm.mesh_boolean_difference_all(Mesh.packMeshes([host, ...relevant]), flags);
1693
+ return Mesh.decodeBatchBooleanResult("subtractAll", result);
1694
+ }
1695
+ static enforceBatchBooleanLimits(operation, inputs, options) {
1696
+ if (options?.allowUnsafe)
1697
+ return;
1698
+ const limits = Mesh.resolveBooleanLimits(options?.limits);
1699
+ let combinedInputFaces = 0;
1700
+ for (const mesh of inputs) {
1701
+ if (mesh.faceCount > limits.maxInputFacesPerMesh) {
1702
+ throw new Error(`Boolean ${operation} blocked by safety limits `
1703
+ + `(input faces=${mesh.faceCount} > maxInputFacesPerMesh=${limits.maxInputFacesPerMesh}). `
1704
+ + "Simplify inputs, run in a Worker, or pass allowUnsafe: true to force execution.");
1705
+ }
1706
+ combinedInputFaces += mesh.faceCount;
1707
+ }
1708
+ if (combinedInputFaces > limits.maxCombinedInputFaces) {
1709
+ throw new Error(`Boolean ${operation} blocked by safety limits `
1710
+ + `(combined faces=${combinedInputFaces} > maxCombinedInputFaces=${limits.maxCombinedInputFaces}). `
1711
+ + "Simplify inputs, run in a Worker, or pass allowUnsafe: true to force execution.");
1712
+ }
1713
+ }
1714
+ static decodeBatchBooleanResult(operation, result) {
1715
+ if (result.length === 0) {
1716
+ throw new Error(`Boolean ${operation} failed and returned an invalid mesh buffer.`);
1717
+ }
1718
+ const vertexCount = result[0];
1719
+ if (!Number.isFinite(vertexCount) || vertexCount < 0) {
1720
+ throw new Error(`Boolean ${operation} failed and returned a corrupt mesh buffer.`);
1721
+ }
1722
+ if (vertexCount === 0)
1723
+ return Mesh.emptyMesh();
1724
+ return Mesh.fromTrustedBuffer(result);
1725
+ }
1592
1726
  splitWithMesh(other, options) {
1593
1727
  ensureInit();
1594
1728
  const faceCountA = this.faceCount;
@@ -1909,6 +2043,53 @@ export class Mesh {
1909
2043
  }
1910
2044
  return out;
1911
2045
  }
2046
+ /**
2047
+ * Find the edge-connected smooth face group containing a triangle: flood
2048
+ * fill crossing only edges whose dihedral angle is below `maxAngleDeg`.
2049
+ * On a tessellated curved surface (cylinder wall, lofted patch) this
2050
+ * returns the whole smooth region (`isPlanar: false`); on a flat face it
2051
+ * matches the coplanar group (`isPlanar: true`).
2052
+ */
2053
+ getSmoothFaceGroup(faceIndex, maxAngleDeg = 30) {
2054
+ ensureInit();
2055
+ if (!Number.isFinite(faceIndex) || faceIndex < 0) {
2056
+ return { faceIndices: [], isPlanar: true };
2057
+ }
2058
+ const r = wasm.mesh_get_smooth_face_group(this._vertexCount, this._buffer, Math.floor(faceIndex), maxAngleDeg);
2059
+ const count = Math.max(0, Math.floor(r[0] ?? 0));
2060
+ const isPlanar = (r[1] ?? 1) !== 0;
2061
+ const faceIndices = [];
2062
+ for (let i = 0; i < count; i++) {
2063
+ faceIndices.push(Math.floor(r[2 + i] ?? 0));
2064
+ }
2065
+ return { faceIndices, isPlanar };
2066
+ }
2067
+ /**
2068
+ * Display-ready render buffers computed in one kernel pass: creased
2069
+ * (crease-split) vertex normals plus feature edge segments. Replaces
2070
+ * per-mesh THREE.toCreasedNormals + EdgesGeometry in app layers.
2071
+ *
2072
+ * `positions`/`normals` are non-indexed, three floats per vertex, in the
2073
+ * mesh's triangle order (raycast face indices stay valid). `featureEdges`
2074
+ * holds two endpoints (six floats) per feature edge segment: boundary
2075
+ * edges, non-manifold edges, and edges whose dihedral angle exceeds
2076
+ * `creaseAngleDeg`.
2077
+ */
2078
+ buildRenderBuffers(creaseAngleDeg = 30) {
2079
+ ensureInit();
2080
+ const r = wasm.mesh_build_render_buffers(this._vertexCount, this._buffer, creaseAngleDeg);
2081
+ const vertexCount = Math.max(0, Math.floor(r[0] ?? 0));
2082
+ const posStart = 1;
2083
+ const norStart = posStart + vertexCount * 3;
2084
+ const edgeCountIndex = norStart + vertexCount * 3;
2085
+ const edgeCount = Math.max(0, Math.floor(r[edgeCountIndex] ?? 0));
2086
+ const edgeStart = edgeCountIndex + 1;
2087
+ return {
2088
+ positions: r.subarray(posStart, posStart + vertexCount * 3),
2089
+ normals: r.subarray(norStart, norStart + vertexCount * 3),
2090
+ featureEdges: r.subarray(edgeStart, edgeStart + edgeCount * 6),
2091
+ };
2092
+ }
1912
2093
  /**
1913
2094
  * Coplanar connected face region and its projection bounds on a plane basis.
1914
2095
  * Returns null for invalid inputs or empty regions.