okgeometry-api 0.4.1 → 0.4.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Line.d.ts","sourceRoot":"","sources":["../src/Line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C;;;GAGG;AACH,qBAAa,IAAI;aAEG,KAAK,EAAE,KAAK;aACZ,GAAG,EAAE,KAAK;gBADV,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,KAAK;IAG5B;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK;IAUzB;;;OAGG;IACH,MAAM,IAAI,MAAM;IAQhB;;;OAGG;IACH,OAAO,IAAI,IAAI;IASf;;;;OAIG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;IAc1B;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAI7B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,IAAa,GAAG,IAAI;IASrD;;;;;OAKG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI;IAKtD;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,SAAI,GAAG,IAAI;CAU7C"}
1
+ {"version":3,"file":"Line.d.ts","sourceRoot":"","sources":["../src/Line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C;;;GAGG;AACH,qBAAa,IAAI;aAEG,KAAK,EAAE,KAAK;aACZ,GAAG,EAAE,KAAK;gBADV,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,KAAK;IAG5B;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK;IAUzB;;;OAGG;IACH,MAAM,IAAI,MAAM;IAQhB;;;OAGG;IACH,OAAO,IAAI,IAAI;IASf;;;;OAIG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;IAc1B;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAI7B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,IAAa,GAAG,IAAI;IAcrD;;;;;OAKG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI;IAKtD;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,SAAI,GAAG,IAAI;CAU7C"}
package/dist/Line.js CHANGED
@@ -77,9 +77,9 @@ export class Line {
77
77
  * @returns New offset line
78
78
  */
79
79
  offset(distance, normal = Vec3.Z) {
80
- const dir = new Vec3(this.end.x - this.start.x, this.end.y - this.start.y, this.end.z - this.start.z);
81
- const perp = normal.cross(dir).normalize();
82
- return new Line(new Point(this.start.x + perp.x * distance, this.start.y + perp.y * distance, this.start.z + perp.z * distance), new Point(this.end.x + perp.x * distance, this.end.y + perp.y * distance, this.end.z + perp.z * distance));
80
+ ensureInit();
81
+ const r = wasm.line_offset(this.start.x, this.start.y, this.start.z, this.end.x, this.end.y, this.end.z, distance, normal.x, normal.y, normal.z);
82
+ return new Line(new Point(r[0], r[1], r[2]), new Point(r[3], r[4], r[5]));
83
83
  }
84
84
  /**
85
85
  * Project this line onto a plane.
package/dist/Line.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Line.js","sourceRoot":"","sources":["../src/Line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Line.js","sourceRoot":"","sources":["../src/Line.ts"],"names":[],"mappings":"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"}
package/dist/Mesh.d.ts CHANGED
@@ -16,6 +16,7 @@ export declare class Mesh {
16
16
  private _indexBuffer;
17
17
  private _vertices;
18
18
  private _faces;
19
+ private _edgeVertexPairs;
19
20
  private constructor();
20
21
  /**
21
22
  * Float32 xyz positions for Three.js BufferGeometry.
@@ -135,6 +136,25 @@ export declare class Mesh {
135
136
  * @returns New Mesh representing the swept surface
136
137
  */
137
138
  static sweep(profilePoints: Point[], pathPoints: Point[], caps?: boolean): Mesh;
139
+ /**
140
+ * Compute a stable planar normal from ordered curve points.
141
+ * Closed curves use Newell's method; open curves use first non-collinear triple.
142
+ */
143
+ static computePlanarCurveNormal(points: Point[], closed: boolean): Vec3;
144
+ /**
145
+ * Extrude a planar curve along a direction.
146
+ * Open curves return an uncapped polysurface; closed curves are capped solids.
147
+ */
148
+ static extrudePlanarCurve(points: Point[], normal: Vec3, height: number, closed: boolean): Mesh;
149
+ /**
150
+ * Shift a closed cutter profile slightly opposite to travel direction and
151
+ * compensate height so the distal end remains at the user-intended depth.
152
+ */
153
+ static prepareBooleanCutterCurve(points: Point[], closed: boolean, normal: Vec3, height: number): {
154
+ points: Point[];
155
+ height: number;
156
+ epsilon: number;
157
+ };
138
158
  /**
139
159
  * Sweep any curve type along any curve type.
140
160
  * Passes exact curve data to WASM for native evaluation (no pre-sampling).
@@ -147,6 +167,11 @@ export declare class Mesh {
147
167
  static sweepCurves(profile: SweepableCurve, path: SweepableCurve, segments?: number, caps?: boolean): Mesh;
148
168
  /** Encode a curve into the WASM format for sweep_curves. */
149
169
  private static encodeCurve;
170
+ private static mergeMeshes;
171
+ /**
172
+ * Unique undirected triangle edges as vertex-index pairs.
173
+ */
174
+ private getUniqueEdgeVertexPairs;
150
175
  /**
151
176
  * Translate this mesh by an offset vector.
152
177
  * @param offset - Translation vector
@@ -212,7 +237,7 @@ export declare class Mesh {
212
237
  applyMatrix(matrix: number[]): Mesh;
213
238
  /**
214
239
  * Evaluate a point on the mesh surface at parametric coordinates.
215
- * Maps u [0,1] and v [0,1] across the mesh's bounding box and
240
+ * Maps u ∈ [0,1] and v ∈ [0,1] across the mesh's bounding box and
216
241
  * finds the corresponding surface point via ray casting.
217
242
  *
218
243
  * @param u - Parameter in first surface direction [0, 1]
@@ -226,12 +251,73 @@ export declare class Mesh {
226
251
  * @returns Array of polylines representing open boundaries
227
252
  */
228
253
  boundaryPolylines(): Polyline[];
254
+ /**
255
+ * Axis-aligned bounds of this mesh.
256
+ */
257
+ getBounds(): {
258
+ min: Point;
259
+ max: Point;
260
+ };
261
+ /**
262
+ * Unit normal of a triangle face.
263
+ */
264
+ getFaceNormal(faceIndex: number): Vec3;
265
+ /**
266
+ * Centroid of a triangle face.
267
+ */
268
+ getFaceCentroid(faceIndex: number): Point;
269
+ /**
270
+ * Area of a triangle face.
271
+ */
272
+ getFaceArea(faceIndex: number): number;
273
+ /**
274
+ * Find edge-connected coplanar triangles that belong to the same planar face.
275
+ */
276
+ getCoplanarFaceIndices(faceIndex: number): number[];
277
+ /**
278
+ * Coplanar connected face region and its projection bounds on a plane basis.
279
+ * Returns null for invalid inputs or empty regions.
280
+ */
281
+ getCoplanarFaceRegion(faceIndex: number, origin: Point, uAxis: Vec3, vAxis: Vec3, marginScale?: number, minMargin?: number): {
282
+ faceIndices: number[];
283
+ uMin: number;
284
+ uMax: number;
285
+ vMin: number;
286
+ vMax: number;
287
+ } | null;
288
+ /**
289
+ * Unique edge count for this triangulated mesh.
290
+ */
291
+ getEdgeCount(): number;
292
+ /**
293
+ * Return edge endpoints by edge index in the unique edge list.
294
+ */
295
+ getEdgeVertices(edgeIndex: number): [Point, Point];
296
+ /**
297
+ * Raycast against this mesh and return nearest hit.
298
+ */
299
+ raycast(origin: Point, direction: Vec3, maxDistance?: number): {
300
+ point: Point;
301
+ normal: Vec3;
302
+ faceIndex: number;
303
+ distance: number;
304
+ } | null;
305
+ /**
306
+ * Raycast against this mesh and return all hits sorted by distance.
307
+ */
308
+ raycastAll(origin: Point, direction: Vec3, maxDistance?: number): Array<{
309
+ point: Point;
310
+ normal: Vec3;
311
+ faceIndex: number;
312
+ distance: number;
313
+ }>;
314
+ /**
315
+ * Push/pull a planar face set by moving its coplanar connected region.
316
+ */
317
+ extrudeFace(faceIndex: number, distance: number): Mesh;
229
318
  /**
230
319
  * Check if this triangulated mesh represents a closed volume.
231
- * Returns true when no topological boundary edges are found.
232
- *
233
- * Uses kernel boundary extraction first, then falls back to a welded
234
- * edge-incidence pass to tolerate duplicated seam vertices.
320
+ * Returns true when no welded topological boundary edges are found.
235
321
  */
236
322
  isClosedVolume(): boolean;
237
323
  /**
@@ -240,19 +326,21 @@ export declare class Mesh {
240
326
  */
241
327
  containsPoint(point: Point): boolean;
242
328
  /**
243
- * Count unique ray/triangle crossings from origin along direction.
244
- * Distances are deduplicated to collapse paired hits on triangulated quads.
245
- */
246
- private countRayCrossings;
247
- /**
248
- * Map each raw vertex index to a welded topological vertex index.
249
- * Uses scale-aware quantization to merge duplicate seam vertices.
329
+ * Find the coplanar + edge-connected face group containing a triangle.
250
330
  */
251
- private buildWeldedVertexIndexMap;
331
+ findFaceByTriangleIndex(triangleIndex: number): {
332
+ centroid: Point;
333
+ normal: Vec3;
334
+ } | null;
252
335
  /**
253
- * Moller-Trumbore ray/triangle intersection distance.
336
+ * Find the best matching coplanar + edge-connected face group by normal
337
+ * similarity and optional point proximity.
254
338
  */
255
- private static rayTriangleDistance;
339
+ findFaceByNormal(targetNormal: Vec3, nearPoint?: Point): {
340
+ centroid: Point;
341
+ normal: Vec3;
342
+ } | null;
343
+ private buildCoplanarConnectedFaceGroups;
256
344
  /**
257
345
  * Export this mesh to OBJ format.
258
346
  * @returns OBJ file content as string
@@ -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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"}