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 +73 -0
- package/dist/Mesh.d.ts.map +1 -1
- package/dist/Mesh.js +181 -0
- package/dist/Mesh.js.map +1 -1
- package/dist/NurbsCurve.d.ts +26 -0
- package/dist/NurbsCurve.d.ts.map +1 -1
- package/dist/NurbsCurve.js +42 -0
- package/dist/NurbsCurve.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 +90 -0
- package/dist/wasm-bindings.d.ts.map +1 -1
- package/dist/wasm-bindings.js +148 -0
- package/dist/wasm-bindings.js.map +1 -1
- package/package.json +48 -47
- package/src/Mesh.ts +1167 -954
- package/src/NurbsCurve.ts +126 -80
- package/src/wasm-base64.ts +1 -1
- package/src/wasm-bindings.d.ts +79 -0
- package/src/wasm-bindings.js +156 -0
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.
|
package/dist/Mesh.d.ts.map
CHANGED
|
@@ -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.
|