@snaptrude/plugin-core 0.9.1 → 0.9.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.
- package/CHANGELOG.md +12 -0
- package/api-manifest.json +21 -1108
- package/dist/api/core/geom/create/index.d.ts +406 -11
- package/dist/api/core/geom/create/index.d.ts.map +1 -1
- package/dist/api/core/geom/query/brep.d.ts +44 -0
- package/dist/api/core/geom/query/brep.d.ts.map +1 -1
- package/dist/api/core/io/terrain/index.d.ts +4 -1
- package/dist/api/core/io/terrain/index.d.ts.map +1 -1
- package/dist/api/design/create/index.d.ts +103 -4
- package/dist/api/design/create/index.d.ts.map +1 -1
- package/dist/api/design/query/index.d.ts +10 -10
- package/dist/api/design/selection/index.d.ts +4 -4
- package/dist/api/program/index.d.ts +2 -2
- package/dist/api/program/index.d.ts.map +1 -1
- package/dist/api/program/site.d.ts +118 -7
- package/dist/api/program/site.d.ts.map +1 -1
- package/dist/handles.d.ts +2 -2
- package/dist/index.cjs +128 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +114 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/api/core/geom/create/index.ts +445 -10
- package/src/api/core/geom/query/brep.ts +45 -0
- package/src/api/core/io/terrain/index.ts +4 -1
- package/src/api/design/create/index.ts +119 -4
- package/src/api/program/index.ts +2 -2
- package/src/api/program/site.ts +131 -8
- package/src/handles.ts +2 -2
- package/api-manifest.full.json +0 -7703
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as z from "zod";
|
|
2
2
|
import { PluginApiReturn } from "../../../../types";
|
|
3
|
-
import { Vec3Handle, LineHandle, ArcHandle, CircleHandle, CurveHandle, ProfileHandle, ContourHandle, BrepHandle, Vec3Components } from "../../../../handles";
|
|
3
|
+
import { Vec3Handle, LineHandle, ArcHandle, CircleHandle, CurveHandle, ProfileHandle, ContourHandle, BrepHandle, FaceHandle, EdgeHandle, Vec3Components } from "../../../../handles";
|
|
4
4
|
/**
|
|
5
5
|
* Curve creation — construct new geometric curves from point handles (all-handle
|
|
6
6
|
* model, §11).
|
|
@@ -231,25 +231,36 @@ export declare abstract class PluginGeomCreateApi {
|
|
|
231
231
|
abstract brepFromExtrusion(contour: ContourHandle, direction: Vec3Components, amount: number): PluginApiReturn<BrepHandle>;
|
|
232
232
|
/**
|
|
233
233
|
* Create a closed solid **B-rep** by lofting between a bottom and a top
|
|
234
|
-
* contour. Host API call —
|
|
235
|
-
*
|
|
236
|
-
* connect corresponding edges by authored index.
|
|
237
|
-
*
|
|
238
|
-
*
|
|
234
|
+
* contour, optionally through intermediate cross-sections. Host API call —
|
|
235
|
+
* returns a {@linkcode BrepHandle}. All sections must have the same number
|
|
236
|
+
* of edges; side faces connect corresponding edges by authored index.
|
|
237
|
+
* Corresponding edges must stay coplanar segment to segment (matching hole
|
|
238
|
+
* counts allowed in the two-section form) — a twisted loft would produce
|
|
239
|
+
* non-planar side faces and is rejected. With intermediates the loft is a
|
|
240
|
+
* chain of ruled segments folded into one solid: sections must be planar
|
|
241
|
+
* and hole-free, ordered bottom → intermediates → top. The contours are
|
|
242
|
+
* copied — the input handles are never mutated.
|
|
239
243
|
*
|
|
240
244
|
* Inspect the result via `core.geom.query.brep.*`, or commit it to the scene
|
|
241
245
|
* with `design.create.massFromBrep`.
|
|
242
246
|
*
|
|
243
247
|
* @param bottomContour The bottom cross-section
|
|
244
|
-
* @param topContour The top cross-section (same edge
|
|
248
|
+
* @param topContour The top cross-section (same edge count as the bottom)
|
|
249
|
+
* @param intermediateContours Optional in-between cross-sections, ordered
|
|
250
|
+
* bottom to top (hole-free, same edge count as the bottom and top)
|
|
245
251
|
* @returns The new solid as a {@linkcode BrepHandle}
|
|
246
|
-
* @throws if the contours are coincident, their edge or hole
|
|
247
|
-
*
|
|
248
|
-
*
|
|
252
|
+
* @throws VALIDATION if the contours are coincident, their edge or hole
|
|
253
|
+
* counts differ, any section has holes when intermediates are present
|
|
254
|
+
* (multi-section lofts take hole-free sections), a section is non-planar,
|
|
255
|
+
* or a side face between corresponding edges would be non-planar (a
|
|
256
|
+
* twisted section pair — the error names the offending sections)
|
|
257
|
+
* @throws OPERATION_FAILED if the lofted segments cannot be joined into a
|
|
258
|
+
* valid solid
|
|
249
259
|
*
|
|
250
260
|
* @examplePrompt Make a tapered tower from these two outlines
|
|
251
261
|
* @examplePrompt Loft between a large base and a smaller top
|
|
252
262
|
* @examplePrompt Create a frustum from two squares
|
|
263
|
+
* @examplePrompt Loft the tower through these three floor outlines
|
|
253
264
|
*
|
|
254
265
|
* # Example
|
|
255
266
|
* ```ts
|
|
@@ -263,7 +274,7 @@ export declare abstract class PluginGeomCreateApi {
|
|
|
263
274
|
* const faceCount = await snaptrude.core.geom.query.brep.getFaceCount(brep) // 6
|
|
264
275
|
* ```
|
|
265
276
|
*/
|
|
266
|
-
abstract brepFromLoft(bottomContour: ContourHandle, topContour: ContourHandle): PluginApiReturn<BrepHandle>;
|
|
277
|
+
abstract brepFromLoft(bottomContour: ContourHandle, topContour: ContourHandle, intermediateContours?: ContourHandle[]): PluginApiReturn<BrepHandle>;
|
|
267
278
|
/**
|
|
268
279
|
* Create a closed solid **B-rep** from indexed mesh data: a vertex position
|
|
269
280
|
* array plus face loops of indices into it. Host API call — returns a
|
|
@@ -389,6 +400,265 @@ export declare abstract class PluginGeomCreateApi {
|
|
|
389
400
|
* ```
|
|
390
401
|
*/
|
|
391
402
|
abstract brepFromIntersection(a: BrepHandle, b: BrepHandle): PluginApiReturn<BrepHandle>;
|
|
403
|
+
/**
|
|
404
|
+
* Rounds the given straight edges of a solid with a constant radius. Host
|
|
405
|
+
* API call — returns a new {@linkcode BrepHandle}; the input brep is
|
|
406
|
+
* read-only.
|
|
407
|
+
*
|
|
408
|
+
* v1 fillets straight edges only, and no two filleted edges may share a
|
|
409
|
+
* vertex — corner blends produce spherical patches Snaptrude cannot
|
|
410
|
+
* represent. Runs on the OpenCascade kernel (the first kernel call loads a
|
|
411
|
+
* wasm of tens of MB — expect a pause of seconds).
|
|
412
|
+
*
|
|
413
|
+
* Inspect the result via `core.geom.query.brep.*`, or commit it to the scene
|
|
414
|
+
* with `design.create.massFromBrep`.
|
|
415
|
+
*
|
|
416
|
+
* @param brep The solid whose edges to round
|
|
417
|
+
* @param edges The straight edges to fillet (≥1, all on `brep`, no two sharing a vertex)
|
|
418
|
+
* @param radius Fillet radius (positive, finite)
|
|
419
|
+
* @returns The filleted solid as a new {@linkcode BrepHandle}
|
|
420
|
+
* @throws VALIDATION if `edges` is empty, `radius` is not a positive finite
|
|
421
|
+
* number, an edge is not on `brep`, an edge is an arc (v1 fillets straight
|
|
422
|
+
* edges only), or two edges share a vertex (fillet non-adjacent edges)
|
|
423
|
+
* @throws OPERATION_FAILED if the kernel cannot build the fillet (the radius
|
|
424
|
+
* likely exceeds the adjacent face size — reduce it) or the result
|
|
425
|
+
* contains curved surfaces Snaptrude cannot represent
|
|
426
|
+
*
|
|
427
|
+
* @examplePrompt Round the edges of this mass
|
|
428
|
+
* @examplePrompt Fillet the corners of the podium with a 0.5m radius
|
|
429
|
+
* @examplePrompt Soften the vertical edges of this tower
|
|
430
|
+
*
|
|
431
|
+
* # Example
|
|
432
|
+
* ```ts
|
|
433
|
+
* const brep = await snaptrude.core.geom.create.brepFromExtrusion(contour, { x: 0, y: 1, z: 0 }, 3)
|
|
434
|
+
* const edges = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
435
|
+
* const rounded = await snaptrude.core.geom.create.brepFromFillet(brep, [edges[0]], 0.3)
|
|
436
|
+
* ```
|
|
437
|
+
*/
|
|
438
|
+
abstract brepFromFillet(brep: BrepHandle, edges: EdgeHandle[], radius: number): PluginApiReturn<BrepHandle>;
|
|
439
|
+
/**
|
|
440
|
+
* Grows or shrinks a solid by offsetting every face — positive distance
|
|
441
|
+
* moves faces outward, negative moves them inward. Host API call — returns
|
|
442
|
+
* a new {@linkcode BrepHandle}; the input brep is read-only.
|
|
443
|
+
*
|
|
444
|
+
* Runs on the OpenCascade kernel (the first kernel call loads a wasm of
|
|
445
|
+
* tens of MB — expect a pause of seconds).
|
|
446
|
+
*
|
|
447
|
+
* Inspect the result via `core.geom.query.brep.*`, or commit it to the scene
|
|
448
|
+
* with `design.create.massFromBrep`.
|
|
449
|
+
*
|
|
450
|
+
* @param brep The solid to offset
|
|
451
|
+
* @param distance Offset distance (finite, non-zero; positive grows, negative shrinks)
|
|
452
|
+
* @returns The offset solid as a new {@linkcode BrepHandle}
|
|
453
|
+
* @throws VALIDATION if `distance` is not finite, is too small to offset
|
|
454
|
+
* anything, or an inward distance consumes the solid entirely
|
|
455
|
+
* @throws OPERATION_FAILED if the kernel cannot build the offset or the
|
|
456
|
+
* result contains curved surfaces Snaptrude cannot represent
|
|
457
|
+
*
|
|
458
|
+
* @examplePrompt Grow this solid by 0.5m in every direction
|
|
459
|
+
* @examplePrompt Shrink this mass by 200mm
|
|
460
|
+
* @examplePrompt Offset the building envelope outward by 1m
|
|
461
|
+
*
|
|
462
|
+
* # Example
|
|
463
|
+
* ```ts
|
|
464
|
+
* const brep = await snaptrude.core.geom.create.brepFromExtrusion(contour, { x: 0, y: 1, z: 0 }, 3)
|
|
465
|
+
* const grown = await snaptrude.core.geom.create.brepFromOffset(brep, 0.5)
|
|
466
|
+
* ```
|
|
467
|
+
*/
|
|
468
|
+
abstract brepFromOffset(brep: BrepHandle, distance: number): PluginApiReturn<BrepHandle>;
|
|
469
|
+
/**
|
|
470
|
+
* Hollows a solid into constant-thickness walls, removing the given faces
|
|
471
|
+
* as openings. Host API call — returns a new {@linkcode BrepHandle}; the
|
|
472
|
+
* input brep is read-only. The outer surface is kept and the walls grow
|
|
473
|
+
* inward.
|
|
474
|
+
*
|
|
475
|
+
* Runs on the OpenCascade kernel (the first kernel call loads a wasm of
|
|
476
|
+
* tens of MB — expect a pause of seconds).
|
|
477
|
+
*
|
|
478
|
+
* Inspect the result via `core.geom.query.brep.*`, or commit it to the scene
|
|
479
|
+
* with `design.create.massFromBrep`.
|
|
480
|
+
*
|
|
481
|
+
* @param brep The solid to hollow
|
|
482
|
+
* @param openFaces The faces to remove as openings (≥1, all on `brep`)
|
|
483
|
+
* @param thickness Wall thickness (positive, finite, smaller than half the solid's smallest span)
|
|
484
|
+
* @returns The hollowed solid as a new {@linkcode BrepHandle}
|
|
485
|
+
* @throws VALIDATION if `openFaces` is empty, a face is not on `brep`,
|
|
486
|
+
* `thickness` is not a positive finite number, or the thickness is too
|
|
487
|
+
* large (it must be smaller than half the solid's smallest span)
|
|
488
|
+
* @throws OPERATION_FAILED if the kernel cannot build the shell or the
|
|
489
|
+
* result contains curved surfaces Snaptrude cannot represent
|
|
490
|
+
*
|
|
491
|
+
* @examplePrompt Hollow this mass into 200mm walls
|
|
492
|
+
* @examplePrompt Shell this form with the top face open
|
|
493
|
+
* @examplePrompt Turn this solid tower into a tube open at both ends
|
|
494
|
+
*
|
|
495
|
+
* # Example
|
|
496
|
+
* ```ts
|
|
497
|
+
* const brep = await snaptrude.core.geom.create.brepFromExtrusion(contour, { x: 0, y: 1, z: 0 }, 3)
|
|
498
|
+
* const faces = await snaptrude.core.geom.query.brep.listFaces(brep)
|
|
499
|
+
* const hollow = await snaptrude.core.geom.create.brepFromShell(brep, [faces[0]], 0.2)
|
|
500
|
+
* ```
|
|
501
|
+
*/
|
|
502
|
+
abstract brepFromShell(brep: BrepHandle, openFaces: FaceHandle[], thickness: number): PluginApiReturn<BrepHandle>;
|
|
503
|
+
/**
|
|
504
|
+
* Cuts a solid by an infinite plane and returns one brep per resulting
|
|
505
|
+
* piece — a single piece if the plane misses the solid. Host API call —
|
|
506
|
+
* returns new {@linkcode BrepHandle}s; the input brep is read-only. The
|
|
507
|
+
* plane is defined by a point on it and its normal direction.
|
|
508
|
+
*
|
|
509
|
+
* Runs on the OpenCascade kernel (the first kernel call loads a wasm of
|
|
510
|
+
* tens of MB — expect a pause of seconds).
|
|
511
|
+
*
|
|
512
|
+
* Inspect each result via `core.geom.query.brep.*`, or commit them to the
|
|
513
|
+
* scene with `design.create.massFromBrep`.
|
|
514
|
+
*
|
|
515
|
+
* @param brep The solid to split
|
|
516
|
+
* @param planeOrigin A point on the cutting plane as plain `{x, y, z}` components
|
|
517
|
+
* @param planeNormal The plane normal as plain `{x, y, z}` components (non-zero)
|
|
518
|
+
* @returns The resulting pieces as {@linkcode BrepHandle}`[]` (one per solid)
|
|
519
|
+
* @throws VALIDATION if `planeNormal` is zero-length or the origin/normal
|
|
520
|
+
* components are not finite
|
|
521
|
+
* @throws OPERATION_FAILED if the kernel cannot split the solid
|
|
522
|
+
*
|
|
523
|
+
* @examplePrompt Cut this building at 12m height
|
|
524
|
+
* @examplePrompt Split the tower from the podium with a horizontal plane
|
|
525
|
+
* @examplePrompt Slice this mass along a vertical plane
|
|
526
|
+
*
|
|
527
|
+
* # Example
|
|
528
|
+
* ```ts
|
|
529
|
+
* const pieces = await snaptrude.core.geom.create.brepsFromSplit(
|
|
530
|
+
* towerBrep,
|
|
531
|
+
* { x: 0, y: 12, z: 0 },
|
|
532
|
+
* { x: 0, y: 1, z: 0 },
|
|
533
|
+
* )
|
|
534
|
+
* console.log("pieces:", pieces.length)
|
|
535
|
+
* ```
|
|
536
|
+
*/
|
|
537
|
+
abstract brepsFromSplit(brep: BrepHandle, planeOrigin: Vec3Components, planeNormal: Vec3Components): PluginApiReturn<BrepHandle[]>;
|
|
538
|
+
/**
|
|
539
|
+
* Bevels the given straight edges of a solid with a symmetric planar cut.
|
|
540
|
+
* Host API call — returns a new {@linkcode BrepHandle}; the input brep is
|
|
541
|
+
* read-only.
|
|
542
|
+
*
|
|
543
|
+
* v1 chamfers straight edges only, and no two chamfered edges may share a
|
|
544
|
+
* vertex. Runs on the OpenCascade kernel (the first kernel call loads a
|
|
545
|
+
* wasm of tens of MB — expect a pause of seconds).
|
|
546
|
+
*
|
|
547
|
+
* Inspect the result via `core.geom.query.brep.*`, or commit it to the scene
|
|
548
|
+
* with `design.create.massFromBrep`.
|
|
549
|
+
*
|
|
550
|
+
* @param brep The solid whose edges to bevel
|
|
551
|
+
* @param edges The straight edges to chamfer (≥1, all on `brep`, no two sharing a vertex)
|
|
552
|
+
* @param distance Chamfer distance from the edge on each adjacent face (positive, finite)
|
|
553
|
+
* @returns The chamfered solid as a new {@linkcode BrepHandle}
|
|
554
|
+
* @throws VALIDATION if `edges` is empty, `distance` is not a positive
|
|
555
|
+
* finite number, an edge is not on `brep`, an edge is an arc (v1 chamfers
|
|
556
|
+
* straight edges only), or two edges share a vertex (chamfer non-adjacent
|
|
557
|
+
* edges)
|
|
558
|
+
* @throws OPERATION_FAILED if the kernel cannot build the chamfer (the
|
|
559
|
+
* distance likely exceeds the adjacent face size — reduce it)
|
|
560
|
+
*
|
|
561
|
+
* @examplePrompt Bevel these edges by 100mm
|
|
562
|
+
* @examplePrompt Chamfer the top edges of the plinth
|
|
563
|
+
* @examplePrompt Cut a 45-degree flat along the corners of this mass
|
|
564
|
+
*
|
|
565
|
+
* # Example
|
|
566
|
+
* ```ts
|
|
567
|
+
* const brep = await snaptrude.core.geom.create.brepFromExtrusion(contour, { x: 0, y: 1, z: 0 }, 3)
|
|
568
|
+
* const edges = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
569
|
+
* const beveled = await snaptrude.core.geom.create.brepFromChamfer(brep, [edges[0]], 0.1)
|
|
570
|
+
* ```
|
|
571
|
+
*/
|
|
572
|
+
abstract brepFromChamfer(brep: BrepHandle, edges: EdgeHandle[], distance: number): PluginApiReturn<BrepHandle>;
|
|
573
|
+
/**
|
|
574
|
+
* Sweeps a planar profile along an open polyline path, with mitred corners
|
|
575
|
+
* at each bend. Host API call — returns a new {@linkcode BrepHandle}; the
|
|
576
|
+
* input contour is read-only. The profile must be hole-free and must not
|
|
577
|
+
* lie in a plane containing the first path segment's direction.
|
|
578
|
+
*
|
|
579
|
+
* Runs on the OpenCascade kernel (the first kernel call loads a wasm of
|
|
580
|
+
* tens of MB — expect a pause of seconds).
|
|
581
|
+
*
|
|
582
|
+
* Inspect the result via `core.geom.query.brep.*`, or commit it to the scene
|
|
583
|
+
* with `design.create.massFromBrep`.
|
|
584
|
+
*
|
|
585
|
+
* @param profile The cross-section to sweep (hole-free contour)
|
|
586
|
+
* @param path The polyline path as plain `{x, y, z}` points (≥2, open — first ≠ last)
|
|
587
|
+
* @returns The swept solid as a new {@linkcode BrepHandle}
|
|
588
|
+
* @throws VALIDATION if the profile has holes, the path has fewer than 2
|
|
589
|
+
* points, consecutive path points coincide, the path is closed (open
|
|
590
|
+
* paths only in v1), a coordinate is not finite, or the profile plane
|
|
591
|
+
* contains the first path segment's direction (degenerate sweep)
|
|
592
|
+
* @throws OPERATION_FAILED if the kernel cannot sweep the profile into a
|
|
593
|
+
* valid solid or a transition patch is a curved surface Snaptrude cannot
|
|
594
|
+
* represent
|
|
595
|
+
*
|
|
596
|
+
* @examplePrompt Sweep this profile along the corridor path
|
|
597
|
+
* @examplePrompt Extrude the railing section along this route
|
|
598
|
+
* @examplePrompt Run a duct profile through these points
|
|
599
|
+
*
|
|
600
|
+
* # Example
|
|
601
|
+
* ```ts
|
|
602
|
+
* const rect = await snaptrude.core.geom.create.profileRect(0.4, 0.4)
|
|
603
|
+
* const profile = await snaptrude.core.geom.create.contourFromProfile(rect)
|
|
604
|
+
* // profileRect lies in the XZ plane, so the path must START out of that
|
|
605
|
+
* // plane (here: straight up), then it can run horizontally.
|
|
606
|
+
* const duct = await snaptrude.core.geom.create.brepFromSweep(profile, [
|
|
607
|
+
* { x: 0, y: 0, z: 0 },
|
|
608
|
+
* { x: 0, y: 2.8, z: 0 },
|
|
609
|
+
* { x: 10, y: 2.8, z: 0 },
|
|
610
|
+
* ])
|
|
611
|
+
* ```
|
|
612
|
+
*/
|
|
613
|
+
abstract brepFromSweep(profile: ContourHandle, path: Vec3Components[]): PluginApiReturn<BrepHandle>;
|
|
614
|
+
/**
|
|
615
|
+
* Revolves a planar profile about an axis to make a solid of revolution — a
|
|
616
|
+
* full turn by default. Host API call — returns a new
|
|
617
|
+
* {@linkcode BrepHandle}; the input contour is read-only. Holes in the
|
|
618
|
+
* profile are allowed. Profile segments must stay parallel or perpendicular
|
|
619
|
+
* to the axis — inclined or arc segments would revolve into surfaces
|
|
620
|
+
* Snaptrude cannot represent.
|
|
621
|
+
*
|
|
622
|
+
* Runs on the OpenCascade kernel (the first kernel call loads a wasm of
|
|
623
|
+
* tens of MB — expect a pause of seconds).
|
|
624
|
+
*
|
|
625
|
+
* Inspect the result via `core.geom.query.brep.*`, or commit it to the scene
|
|
626
|
+
* with `design.create.massFromBrep`.
|
|
627
|
+
*
|
|
628
|
+
* @param profile The cross-section to revolve (planar contour, holes allowed)
|
|
629
|
+
* @param axisOrigin A point on the revolution axis as plain `{x, y, z}` components
|
|
630
|
+
* @param axisDirection The axis direction as plain `{x, y, z}` components (non-zero)
|
|
631
|
+
* @param angleInDegrees Optional revolution angle in degrees (0 < angle ≤ 360; default 360)
|
|
632
|
+
* @returns The revolved solid as a new {@linkcode BrepHandle}
|
|
633
|
+
* @throws VALIDATION if `axisDirection` is zero-length, `angleInDegrees` is
|
|
634
|
+
* not in (0, 360], the axis passes through the profile interior, or a
|
|
635
|
+
* coordinate is not finite
|
|
636
|
+
* @throws OPERATION_FAILED if the kernel cannot revolve the profile or the
|
|
637
|
+
* result contains curved surfaces Snaptrude cannot represent (keep
|
|
638
|
+
* profile segments parallel or perpendicular to the axis)
|
|
639
|
+
*
|
|
640
|
+
* @examplePrompt Create a dome from this section
|
|
641
|
+
* @examplePrompt Revolve this profile 360 degrees around the vertical axis
|
|
642
|
+
* @examplePrompt Build a rotunda by revolving this wall section
|
|
643
|
+
*
|
|
644
|
+
* # Example
|
|
645
|
+
* ```ts
|
|
646
|
+
* // A cylinder: revolve a 2m-wide, 3m-tall rectangle about the Y axis at its edge
|
|
647
|
+
* const rect = await snaptrude.core.geom.create.profileFromLinePoints([
|
|
648
|
+
* await snaptrude.core.math.vec3.new(0, 0, 0),
|
|
649
|
+
* await snaptrude.core.math.vec3.new(2, 0, 0),
|
|
650
|
+
* await snaptrude.core.math.vec3.new(2, 3, 0),
|
|
651
|
+
* await snaptrude.core.math.vec3.new(0, 3, 0),
|
|
652
|
+
* ])
|
|
653
|
+
* const profile = await snaptrude.core.geom.create.contourFromProfile(rect)
|
|
654
|
+
* const cylinder = await snaptrude.core.geom.create.brepFromRevolution(
|
|
655
|
+
* profile,
|
|
656
|
+
* { x: 0, y: 0, z: 0 },
|
|
657
|
+
* { x: 0, y: 1, z: 0 },
|
|
658
|
+
* )
|
|
659
|
+
* ```
|
|
660
|
+
*/
|
|
661
|
+
abstract brepFromRevolution(profile: ContourHandle, axisOrigin: Vec3Components, axisDirection: Vec3Components, angleInDegrees?: number): PluginApiReturn<BrepHandle>;
|
|
392
662
|
}
|
|
393
663
|
/**
|
|
394
664
|
* Arguments for {@linkcode PluginGeomCreateApi.line}.
|
|
@@ -522,10 +792,12 @@ export type PluginGeomCreateBrepFromExtrusionArgs = z.infer<typeof PluginGeomCre
|
|
|
522
792
|
* |---|---|---|
|
|
523
793
|
* | `bottomContour` | {@linkcode ContourHandle} | The bottom cross-section |
|
|
524
794
|
* | `topContour` | {@linkcode ContourHandle} | The top cross-section |
|
|
795
|
+
* | `intermediateContours` | {@linkcode ContourHandle}`[]`? | Optional in-between cross-sections, ordered bottom to top |
|
|
525
796
|
*/
|
|
526
797
|
export declare const PluginGeomCreateBrepFromLoftArgs: z.ZodObject<{
|
|
527
798
|
bottomContour: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"contour">, string>>;
|
|
528
799
|
topContour: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"contour">, string>>;
|
|
800
|
+
intermediateContours: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"contour">, string>>>>;
|
|
529
801
|
}, z.core.$strip>;
|
|
530
802
|
export type PluginGeomCreateBrepFromLoftArgs = z.infer<typeof PluginGeomCreateBrepFromLoftArgs>;
|
|
531
803
|
/**
|
|
@@ -561,4 +833,127 @@ export declare const PluginGeomCreateBrepBooleanArgs: z.ZodObject<{
|
|
|
561
833
|
b: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
|
|
562
834
|
}, z.core.$strip>;
|
|
563
835
|
export type PluginGeomCreateBrepBooleanArgs = z.infer<typeof PluginGeomCreateBrepBooleanArgs>;
|
|
836
|
+
/**
|
|
837
|
+
* Arguments for {@linkcode PluginGeomCreateApi.brepFromFillet}.
|
|
838
|
+
*
|
|
839
|
+
* | Property | Type | Description |
|
|
840
|
+
* |---|---|---|
|
|
841
|
+
* | `brep` | {@linkcode BrepHandle} | The solid whose edges to round |
|
|
842
|
+
* | `edges` | {@linkcode EdgeHandle}`[]` | The straight edges to fillet (≥1) |
|
|
843
|
+
* | `radius` | `number` | Fillet radius (positive, finite) |
|
|
844
|
+
*/
|
|
845
|
+
export declare const PluginGeomCreateBrepFromFilletArgs: z.ZodObject<{
|
|
846
|
+
brep: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
|
|
847
|
+
edges: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"edge">, string>>>;
|
|
848
|
+
radius: z.ZodNumber;
|
|
849
|
+
}, z.core.$strip>;
|
|
850
|
+
export type PluginGeomCreateBrepFromFilletArgs = z.infer<typeof PluginGeomCreateBrepFromFilletArgs>;
|
|
851
|
+
/**
|
|
852
|
+
* Arguments for {@linkcode PluginGeomCreateApi.brepFromOffset}.
|
|
853
|
+
*
|
|
854
|
+
* | Property | Type | Description |
|
|
855
|
+
* |---|---|---|
|
|
856
|
+
* | `brep` | {@linkcode BrepHandle} | The solid to offset |
|
|
857
|
+
* | `distance` | `number` | Offset distance (finite, non-zero; positive grows, negative shrinks) |
|
|
858
|
+
*/
|
|
859
|
+
export declare const PluginGeomCreateBrepFromOffsetArgs: z.ZodObject<{
|
|
860
|
+
brep: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
|
|
861
|
+
distance: z.ZodNumber;
|
|
862
|
+
}, z.core.$strip>;
|
|
863
|
+
export type PluginGeomCreateBrepFromOffsetArgs = z.infer<typeof PluginGeomCreateBrepFromOffsetArgs>;
|
|
864
|
+
/**
|
|
865
|
+
* Arguments for {@linkcode PluginGeomCreateApi.brepFromShell}.
|
|
866
|
+
*
|
|
867
|
+
* | Property | Type | Description |
|
|
868
|
+
* |---|---|---|
|
|
869
|
+
* | `brep` | {@linkcode BrepHandle} | The solid to hollow |
|
|
870
|
+
* | `openFaces` | {@linkcode FaceHandle}`[]` | The faces to remove as openings (≥1) |
|
|
871
|
+
* | `thickness` | `number` | Wall thickness (positive, finite) |
|
|
872
|
+
*/
|
|
873
|
+
export declare const PluginGeomCreateBrepFromShellArgs: z.ZodObject<{
|
|
874
|
+
brep: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
|
|
875
|
+
openFaces: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"face">, string>>>;
|
|
876
|
+
thickness: z.ZodNumber;
|
|
877
|
+
}, z.core.$strip>;
|
|
878
|
+
export type PluginGeomCreateBrepFromShellArgs = z.infer<typeof PluginGeomCreateBrepFromShellArgs>;
|
|
879
|
+
/**
|
|
880
|
+
* Arguments for {@linkcode PluginGeomCreateApi.brepsFromSplit}.
|
|
881
|
+
*
|
|
882
|
+
* | Property | Type | Description |
|
|
883
|
+
* |---|---|---|
|
|
884
|
+
* | `brep` | {@linkcode BrepHandle} | The solid to split |
|
|
885
|
+
* | `planeOrigin` | {@linkcode Vec3Components} | A point on the cutting plane (finite components) |
|
|
886
|
+
* | `planeNormal` | {@linkcode Vec3Components} | The plane normal (non-zero, finite components) |
|
|
887
|
+
*/
|
|
888
|
+
export declare const PluginGeomCreateBrepsFromSplitArgs: z.ZodObject<{
|
|
889
|
+
brep: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
|
|
890
|
+
planeOrigin: z.ZodObject<{
|
|
891
|
+
x: z.ZodNumber;
|
|
892
|
+
y: z.ZodNumber;
|
|
893
|
+
z: z.ZodNumber;
|
|
894
|
+
}, z.core.$strip>;
|
|
895
|
+
planeNormal: z.ZodObject<{
|
|
896
|
+
x: z.ZodNumber;
|
|
897
|
+
y: z.ZodNumber;
|
|
898
|
+
z: z.ZodNumber;
|
|
899
|
+
}, z.core.$strip>;
|
|
900
|
+
}, z.core.$strip>;
|
|
901
|
+
export type PluginGeomCreateBrepsFromSplitArgs = z.infer<typeof PluginGeomCreateBrepsFromSplitArgs>;
|
|
902
|
+
/**
|
|
903
|
+
* Arguments for {@linkcode PluginGeomCreateApi.brepFromChamfer}.
|
|
904
|
+
*
|
|
905
|
+
* | Property | Type | Description |
|
|
906
|
+
* |---|---|---|
|
|
907
|
+
* | `brep` | {@linkcode BrepHandle} | The solid whose edges to bevel |
|
|
908
|
+
* | `edges` | {@linkcode EdgeHandle}`[]` | The straight edges to chamfer (≥1) |
|
|
909
|
+
* | `distance` | `number` | Chamfer distance from the edge on each adjacent face (positive, finite) |
|
|
910
|
+
*/
|
|
911
|
+
export declare const PluginGeomCreateBrepFromChamferArgs: z.ZodObject<{
|
|
912
|
+
brep: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
|
|
913
|
+
edges: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"edge">, string>>>;
|
|
914
|
+
distance: z.ZodNumber;
|
|
915
|
+
}, z.core.$strip>;
|
|
916
|
+
export type PluginGeomCreateBrepFromChamferArgs = z.infer<typeof PluginGeomCreateBrepFromChamferArgs>;
|
|
917
|
+
/**
|
|
918
|
+
* Arguments for {@linkcode PluginGeomCreateApi.brepFromSweep}.
|
|
919
|
+
*
|
|
920
|
+
* | Property | Type | Description |
|
|
921
|
+
* |---|---|---|
|
|
922
|
+
* | `profile` | {@linkcode ContourHandle} | The cross-section to sweep (hole-free) |
|
|
923
|
+
* | `path` | {@linkcode Vec3Components}`[]` | The open polyline path (≥2 points, finite components) |
|
|
924
|
+
*/
|
|
925
|
+
export declare const PluginGeomCreateBrepFromSweepArgs: z.ZodObject<{
|
|
926
|
+
profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"contour">, string>>;
|
|
927
|
+
path: z.ZodArray<z.ZodObject<{
|
|
928
|
+
x: z.ZodNumber;
|
|
929
|
+
y: z.ZodNumber;
|
|
930
|
+
z: z.ZodNumber;
|
|
931
|
+
}, z.core.$strip>>;
|
|
932
|
+
}, z.core.$strip>;
|
|
933
|
+
export type PluginGeomCreateBrepFromSweepArgs = z.infer<typeof PluginGeomCreateBrepFromSweepArgs>;
|
|
934
|
+
/**
|
|
935
|
+
* Arguments for {@linkcode PluginGeomCreateApi.brepFromRevolution}.
|
|
936
|
+
*
|
|
937
|
+
* | Property | Type | Description |
|
|
938
|
+
* |---|---|---|
|
|
939
|
+
* | `profile` | {@linkcode ContourHandle} | The cross-section to revolve (holes allowed) |
|
|
940
|
+
* | `axisOrigin` | {@linkcode Vec3Components} | A point on the revolution axis (finite components) |
|
|
941
|
+
* | `axisDirection` | {@linkcode Vec3Components} | The axis direction (non-zero, finite components) |
|
|
942
|
+
* | `angleInDegrees` | `number`? | Revolution angle in degrees (0 < angle ≤ 360; default 360) |
|
|
943
|
+
*/
|
|
944
|
+
export declare const PluginGeomCreateBrepFromRevolutionArgs: z.ZodObject<{
|
|
945
|
+
profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"contour">, string>>;
|
|
946
|
+
axisOrigin: z.ZodObject<{
|
|
947
|
+
x: z.ZodNumber;
|
|
948
|
+
y: z.ZodNumber;
|
|
949
|
+
z: z.ZodNumber;
|
|
950
|
+
}, z.core.$strip>;
|
|
951
|
+
axisDirection: z.ZodObject<{
|
|
952
|
+
x: z.ZodNumber;
|
|
953
|
+
y: z.ZodNumber;
|
|
954
|
+
z: z.ZodNumber;
|
|
955
|
+
}, z.core.$strip>;
|
|
956
|
+
angleInDegrees: z.ZodOptional<z.ZodNumber>;
|
|
957
|
+
}, z.core.$strip>;
|
|
958
|
+
export type PluginGeomCreateBrepFromRevolutionArgs = z.infer<typeof PluginGeomCreateBrepFromRevolutionArgs>;
|
|
564
959
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/geom/create/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/geom/create/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -288,6 +288,37 @@ export declare abstract class PluginGeomQueryBrepApi {
|
|
|
288
288
|
* ```
|
|
289
289
|
*/
|
|
290
290
|
abstract isEqual(brepA: BrepHandle, brepB: BrepHandle): PluginApiReturn<boolean>;
|
|
291
|
+
/**
|
|
292
|
+
* Measures the minimum distance between two solids, with the closest witness
|
|
293
|
+
* point on each. Touching or overlapping solids report a distance of 0 with
|
|
294
|
+
* contact points.
|
|
295
|
+
*
|
|
296
|
+
* @param brepA First solid
|
|
297
|
+
* @param brepB Second solid
|
|
298
|
+
* @returns `{ distance, pointA, pointB }` — the minimum distance and the
|
|
299
|
+
* closest points on `brepA` and `brepB` as {@linkcode Vec3Components}
|
|
300
|
+
* @throws OPERATION_FAILED if the kernel cannot compute the distance
|
|
301
|
+
*
|
|
302
|
+
* @examplePrompt What is the clearance between these two masses?
|
|
303
|
+
* @examplePrompt How far apart are the tower and the neighbouring building?
|
|
304
|
+
* @examplePrompt Find the closest points between these two solids
|
|
305
|
+
*
|
|
306
|
+
* # Example
|
|
307
|
+
* ```ts
|
|
308
|
+
* const [a, b] = await snaptrude.design.query.listMasses()
|
|
309
|
+
* const brepA = await snaptrude.design.query.geometry.getBrep(a)
|
|
310
|
+
* const brepB = await snaptrude.design.query.geometry.getBrep(b)
|
|
311
|
+
* if (brepA && brepB) {
|
|
312
|
+
* const { distance, pointA, pointB } = await snaptrude.core.geom.query.brep.getDistance(brepA, brepB)
|
|
313
|
+
* console.log("clearance:", distance)
|
|
314
|
+
* }
|
|
315
|
+
* ```
|
|
316
|
+
*/
|
|
317
|
+
abstract getDistance(brepA: BrepHandle, brepB: BrepHandle): PluginApiReturn<{
|
|
318
|
+
distance: number;
|
|
319
|
+
pointA: Vec3Components;
|
|
320
|
+
pointB: Vec3Components;
|
|
321
|
+
}>;
|
|
291
322
|
}
|
|
292
323
|
/** Arguments for {@linkcode PluginGeomQueryBrepApi.listFaces}. `{ brep: BrepHandle }` */
|
|
293
324
|
export declare const PluginGeomQueryBrepListFacesArgs: z.ZodObject<{
|
|
@@ -399,4 +430,17 @@ export declare const PluginGeomQueryBrepIsEqualArgs: z.ZodObject<{
|
|
|
399
430
|
brepB: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
|
|
400
431
|
}, z.core.$strip>;
|
|
401
432
|
export type PluginGeomQueryBrepIsEqualArgs = z.infer<typeof PluginGeomQueryBrepIsEqualArgs>;
|
|
433
|
+
/**
|
|
434
|
+
* Arguments for {@linkcode PluginGeomQueryBrepApi.getDistance}.
|
|
435
|
+
*
|
|
436
|
+
* | Property | Type | Description |
|
|
437
|
+
* |---|---|---|
|
|
438
|
+
* | `brepA` | {@linkcode BrepHandle} | First solid |
|
|
439
|
+
* | `brepB` | {@linkcode BrepHandle} | Second solid |
|
|
440
|
+
*/
|
|
441
|
+
export declare const PluginGeomQueryBrepGetDistanceArgs: z.ZodObject<{
|
|
442
|
+
brepA: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
|
|
443
|
+
brepB: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
|
|
444
|
+
}, z.core.$strip>;
|
|
445
|
+
export type PluginGeomQueryBrepGetDistanceArgs = z.infer<typeof PluginGeomQueryBrepGetDistanceArgs>;
|
|
402
446
|
//# sourceMappingURL=brep.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brep.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/geom/query/brep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,qBAAqB,CAAA;AAE5B;;;;;;;;;;;;GAYG;AACH,8BAAsB,sBAAsB;;IAG1C;;;;;;;;;;;;;OAaG;aACa,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;IAE1E;;;;;;;;;;;;;OAaG;aACa,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;IAE1E;;;;;;;;;;;;;OAaG;aACa,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;IAE/E;;;;;;;;;;;;;OAaG;aACa,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,cAAc,EAAE,CAAC;IAElF;;;;;;;;;;;;;;;;;;;OAmBG;aACa,OAAO,CACrB,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;IAErC;;;;;;;;;;;;;;;;OAgBG;aACa,OAAO,CACrB,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,eAAe,CAAC,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;OAiBG;aACa,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,eAAe,CAAC,UAAU,EAAE,CAAC;IAEhC;;;;;;;;;;;;;;;OAeG;aACa,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,eAAe,CAAC,cAAc,CAAC;IAElC;;;;;;;;;;;;;;;;;OAiBG;aACa,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,cAAc,EAAE,CAAC;IAExF;;;;;;;;;;;;;;;;;OAiBG;aACa,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC;IAE9E;;;;;;;;;;;;;OAaG;aACa,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;IAEvE;;;;;;;;;;;;;OAaG;aACa,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;IAEvE;;;;;;;;;;;;;OAaG;aACa,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;IAEzE;;;;;;;;;;;;;OAaG;aACa,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC;IAE3E;;;;;;;;;;;;;;;;;OAiBG;aACa,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC;IAEjF;;;;;;;;;;;;;;;;;;OAkBG;aACa,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"brep.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/geom/query/brep.ts"],"names":[],"mappings":"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"}
|
|
@@ -160,7 +160,10 @@ export declare abstract class PluginCoreIoTerrainApi {
|
|
|
160
160
|
abstract disableSatellite(): PluginApiReturn<void>;
|
|
161
161
|
/**
|
|
162
162
|
* Replace the terrain surface with a caller-supplied triangle mesh. Undoable
|
|
163
|
-
* (one step), and the replacement persists with the project.
|
|
163
|
+
* (one step), and the replacement persists with the project. The returned
|
|
164
|
+
* promise resolves only after the surface is fully applied and recorded —
|
|
165
|
+
* it is safe to toggle terrain resolution or read the surface back the
|
|
166
|
+
* moment it resolves.
|
|
164
167
|
*
|
|
165
168
|
* `positions` is a flat `[x, y, z, …]` array in **world space** — the same
|
|
166
169
|
* frame `design.query.geometry.getTriangulatedMeshes` reads — so a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/io/terrain/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,sBAAsB;;IAG1C;;;;;;;;;;;;;;OAcG;aACa,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC;IAElD;;;;;;;;;OASG;aACa,GAAG,IAAI,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC;IAE5D;;;;;;;;;;;OAWG;aACa,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAE1D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;IAE/D;;;;;;;;;;OAUG;aACa,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC;IAE/C;;;;;;;;;;;;;;OAcG;aACa,SAAS,IAAI,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC;IAElE,0EAA0E;aAC1D,kBAAkB,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;IACrE;;;;;;;;OAQG;aACa,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC;IACxD;;;;;;;;OAQG;aACa,gBAAgB,IAAI,eAAe,CAAC,IAAI,CAAC;IAEzD,gFAAgF;aAChE,kBAAkB,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;IACrE;;;;;;;;OAQG;aACa,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC;IACxD;;;;;;;;OAQG;aACa,gBAAgB,IAAI,eAAe,CAAC,IAAI,CAAC;IAEzD
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/io/terrain/index.ts"],"names":[],"mappings":"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"}
|