@snaptrude/plugin-core 0.9.3 → 0.9.4

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.
@@ -232,28 +232,52 @@ export declare abstract class PluginGeomCreateApi {
232
232
  /**
233
233
  * Create a closed solid **B-rep** by lofting between a bottom and a top
234
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.
235
+ * returns a {@linkcode BrepHandle}. Sections with different edge counts are
236
+ * auto-matched: vertices are deterministically inserted on the smaller
237
+ * sections at the larger section's perimeter positions, so the same input
238
+ * always yields the same solid. For straight-edge (all-line) sections the
239
+ * seam is auto-aligned too winding and start-vertex correspondence are
240
+ * chosen to avoid a twist, so outlines authored from any starting corner
241
+ * loft cleanly; arc-bearing sections keep the authored correspondence
242
+ * unchanged. A pair whose side faces would be non-planar under every
243
+ * correspondence still builds for hole-free straight-edged pairs — planar
244
+ * side quads stay quads and warped ones split into planar triangles (the
245
+ * triangulated lane); arc-bearing or holed twisted pairs are rejected, as is
246
+ * auto-matching that would pair an arc with a straight edge. Matching hole
247
+ * counts are allowed in the two-section form. With intermediates the loft
248
+ * is a chain of ruled segments folded into one solid: sections must be
249
+ * planar and hole-free, ordered bottom → intermediates → top. The contours
250
+ * are copied — the input handles are never mutated.
243
251
  *
244
252
  * Inspect the result via `core.geom.query.brep.*`, or commit it to the scene
245
253
  * with `design.create.massFromBrep`.
246
254
  *
247
255
  * @param bottomContour The bottom cross-section
248
- * @param topContour The top cross-section (same edge count as the bottom)
256
+ * @param topContour The top cross-section (edge count may differ from the
257
+ * bottom — sections are auto-matched)
249
258
  * @param intermediateContours Optional in-between cross-sections, ordered
250
- * bottom to top (hole-free, same edge count as the bottom and top)
259
+ * bottom to top (hole-free; edge counts may differ every section is
260
+ * normalized to the largest)
261
+ * @param options Optional behavior switches. `compatibility` — `"auto"`
262
+ * (default) inserts vertices to match differing edge counts; `"strict"`
263
+ * skips normalization and throws VALIDATION when outer edge counts (or,
264
+ * in the two-section form, hole-pair counts) differ. `seamAlignment` —
265
+ * `"auto"` (default) searches seam rotations on straight-edge sections to
266
+ * avoid a twist; `"authored"` keeps the authored start-vertex
267
+ * correspondence unchanged (a twisted correspondence then builds through
268
+ * the triangulated lane for hole-free straight-edged pairs).
269
+ * `{ compatibility: "strict", seamAlignment: "authored" }` reproduces
270
+ * pre-0.9.4 lofting exactly.
251
271
  * @returns The new solid as a {@linkcode BrepHandle}
252
- * @throws VALIDATION if the contours are coincident, their edge or hole
253
- * counts differ, any section has holes when intermediates are present
272
+ * @throws VALIDATION if the contours are coincident, their hole counts
273
+ * differ, any section has holes when intermediates are present
254
274
  * (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 pairthe error names the offending sections)
275
+ * sections are too dissimilar to auto-match, auto-matching would pair an
276
+ * arc with a straight edge, or for arc-bearing or holed pairs only — no vertex correspondence avoids a twist (a
277
+ * side face between corresponding edges would be non-planar — the error
278
+ * names the offending sections); with `compatibility: "strict"`, if
279
+ * section edge counts (or hole-pair counts) differ — the error names the
280
+ * sections and counts and points at `compatibility: "auto"`
257
281
  * @throws OPERATION_FAILED if the lofted segments cannot be joined into a
258
282
  * valid solid
259
283
  *
@@ -261,6 +285,10 @@ export declare abstract class PluginGeomCreateApi {
261
285
  * @examplePrompt Loft between a large base and a smaller top
262
286
  * @examplePrompt Create a frustum from two squares
263
287
  * @examplePrompt Loft the tower through these three floor outlines
288
+ * @examplePrompt Loft a four-sided base to a five-sided top
289
+ * @examplePrompt Loft these outlines even though their corners don't line up
290
+ * @examplePrompt Loft these outlines exactly as authored, corner to corner
291
+ * @examplePrompt Fail the loft if my sections don't have matching edge counts
264
292
  *
265
293
  * # Example
266
294
  * ```ts
@@ -274,7 +302,10 @@ export declare abstract class PluginGeomCreateApi {
274
302
  * const faceCount = await snaptrude.core.geom.query.brep.getFaceCount(brep) // 6
275
303
  * ```
276
304
  */
277
- abstract brepFromLoft(bottomContour: ContourHandle, topContour: ContourHandle, intermediateContours?: ContourHandle[]): PluginApiReturn<BrepHandle>;
305
+ abstract brepFromLoft(bottomContour: ContourHandle, topContour: ContourHandle, intermediateContours?: ContourHandle[], options?: {
306
+ compatibility?: "strict" | "auto";
307
+ seamAlignment?: "authored" | "auto";
308
+ }): PluginApiReturn<BrepHandle>;
278
309
  /**
279
310
  * Create a closed solid **B-rep** from indexed mesh data: a vertex position
280
311
  * array plus face loops of indices into it. Host API call — returns a
@@ -571,24 +602,59 @@ export declare abstract class PluginGeomCreateApi {
571
602
  */
572
603
  abstract brepFromChamfer(brep: BrepHandle, edges: EdgeHandle[], distance: number): PluginApiReturn<BrepHandle>;
573
604
  /**
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
605
+ * Sweeps a planar profile along a polyline path, with mitred corners at
606
+ * each bend. Host API call — returns a new {@linkcode BrepHandle}; the
576
607
  * 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 MBexpect a pause of seconds).
608
+ * lie in a plane containing the first path segment's direction. Repeating
609
+ * the first point as the last closes the path into a ring solid (a picture
610
+ * frame): closed paths must be flat and straight-segmented and take a
611
+ * straight-edged (arc-free) profilethe ring's cross-section is the
612
+ * authored profile projected along the first leg onto the first mitre
613
+ * plane, so a profile not perpendicular to the first leg appears sheared.
614
+ * An optional scale law tapers the sweep: `startScale`/`endScale`
615
+ * interpolate linearly by arc length, or `scales` gives one factor per path
616
+ * point (scaling is about the profile centroid). A uniform scale (all
617
+ * factors equal) works on any path today's sweep accepts; a varying scale
618
+ * takes straight (collinear) open paths with straight-edged profiles —
619
+ * tapering across a bend or along an arc edge would create faces Snaptrude
620
+ * cannot represent and throws (sweep each straight run separately and union
621
+ * the results instead). An optional `transition` picks the corner
622
+ * treatment: `"miter"` (default) is today's sharp mitred bend;
623
+ * `{ bevel: b }` chamfers each turning corner by cutting `b` back along
624
+ * both adjacent legs (works on open and closed paths — each leg must be
625
+ * long enough for its cuts). On a corner-less path `transition` has no effect, and the
626
+ * varying-scale lane takes straight paths, so it never sees a corner.
627
+ *
628
+ * Open paths run on the OpenCascade kernel (the first kernel call loads a
629
+ * wasm of tens of MB — expect a pause of seconds); closed paths are
630
+ * computed host-side and never load the kernel.
581
631
  *
582
632
  * Inspect the result via `core.geom.query.brep.*`, or commit it to the scene
583
633
  * with `design.create.massFromBrep`.
584
634
  *
585
635
  * @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)
636
+ * @param path The polyline path as plain `{x, y, z}` points (≥2; repeat the
637
+ * first point as the last to close the path into a ring)
638
+ * @param options Optional scale law and corner transition. Scale law:
639
+ * `startScale`/`endScale` (linear taper by arc length) or `scales` (one
640
+ * factor per path point; mutually exclusive with
641
+ * `startScale`/`endScale`); every factor must be finite and within
642
+ * 1e-3..1e3. `transition`: `"miter"` (default, sharp corners) or
643
+ * `{ bevel: b }` (chamfered corners, `b` finite within 1e-3..1e3; open
644
+ * and closed paths)
587
645
  * @returns The swept solid as a new {@linkcode BrepHandle}
588
646
  * @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)
647
+ * points, consecutive path points coincide, a coordinate is not finite,
648
+ * or the profile plane contains the first path segment's direction
649
+ * (degenerate sweep); for closed paths, if the ring has fewer than 3
650
+ * distinct corners, the path is non-planar, a corner doubles back, the
651
+ * profile has an arc edge, or the profile is too large for a mitred
652
+ * corner; for scale options, if a factor is outside 1e-3..1e3, `scales`
653
+ * is combined with `startScale`/`endScale`, `scales` does not match the
654
+ * path length, or a varying scale is used on a bent or closed path or
655
+ * with an arc-edged profile; for `{ bevel }`, if a leg is too short for
656
+ * the cuts its beveled corners take from it or a corner nearly doubles
657
+ * back so its chamfer collapses (the errors name the corner)
592
658
  * @throws OPERATION_FAILED if the kernel cannot sweep the profile into a
593
659
  * valid solid or a transition patch is a curved surface Snaptrude cannot
594
660
  * represent
@@ -596,6 +662,10 @@ export declare abstract class PluginGeomCreateApi {
596
662
  * @examplePrompt Sweep this profile along the corridor path
597
663
  * @examplePrompt Extrude the railing section along this route
598
664
  * @examplePrompt Run a duct profile through these points
665
+ * @examplePrompt Sweep a frame profile around a closed rectangular loop
666
+ * @examplePrompt Taper this duct from 1x1 to 2x2 along its run
667
+ * @examplePrompt Sweep a column section that narrows toward the top
668
+ * @examplePrompt Chamfer the corners of this swept frame by 200mm
599
669
  *
600
670
  * # Example
601
671
  * ```ts
@@ -608,9 +678,33 @@ export declare abstract class PluginGeomCreateApi {
608
678
  * { x: 0, y: 2.8, z: 0 },
609
679
  * { x: 10, y: 2.8, z: 0 },
610
680
  * ])
681
+ * // A closed ring (picture frame): repeat the first point as the last
682
+ * const frame = await snaptrude.core.geom.create.brepFromSweep(profile, [
683
+ * { x: 0, y: 0, z: 0 },
684
+ * { x: 0, y: 3, z: 0 },
685
+ * { x: 4, y: 3, z: 0 },
686
+ * { x: 4, y: 0, z: 0 },
687
+ * { x: 0, y: 0, z: 0 },
688
+ * ])
689
+ * // A tapered straight run: 0.4x0.4 at the start, 0.8x0.8 at the end
690
+ * const flue = await snaptrude.core.geom.create.brepFromSweep(
691
+ * profile,
692
+ * [
693
+ * { x: 0, y: 0, z: 0 },
694
+ * { x: 0, y: 10, z: 0 },
695
+ * ],
696
+ * { startScale: 1, endScale: 2 },
697
+ * )
611
698
  * ```
612
699
  */
613
- abstract brepFromSweep(profile: ContourHandle, path: Vec3Components[]): PluginApiReturn<BrepHandle>;
700
+ abstract brepFromSweep(profile: ContourHandle, path: Vec3Components[], options?: {
701
+ startScale?: number;
702
+ endScale?: number;
703
+ scales?: number[];
704
+ transition?: "miter" | {
705
+ bevel: number;
706
+ };
707
+ }): PluginApiReturn<BrepHandle>;
614
708
  /**
615
709
  * Revolves a planar profile about an axis to make a solid of revolution — a
616
710
  * full turn by default. Host API call — returns a new
@@ -793,11 +887,22 @@ export type PluginGeomCreateBrepFromExtrusionArgs = z.infer<typeof PluginGeomCre
793
887
  * | `bottomContour` | {@linkcode ContourHandle} | The bottom cross-section |
794
888
  * | `topContour` | {@linkcode ContourHandle} | The top cross-section |
795
889
  * | `intermediateContours` | {@linkcode ContourHandle}`[]`? | Optional in-between cross-sections, ordered bottom to top |
890
+ * | `options` | `object`? | Optional behavior switches: `compatibility` (`"strict"` throws on mismatched edge counts instead of auto-matching; default `"auto"`) and `seamAlignment` (`"authored"` keeps the authored correspondence instead of searching seam rotations; default `"auto"`) |
796
891
  */
797
892
  export declare const PluginGeomCreateBrepFromLoftArgs: z.ZodObject<{
798
893
  bottomContour: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"contour">, string>>;
799
894
  topContour: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"contour">, string>>;
800
895
  intermediateContours: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"contour">, string>>>>;
896
+ options: z.ZodOptional<z.ZodObject<{
897
+ compatibility: z.ZodOptional<z.ZodEnum<{
898
+ strict: "strict";
899
+ auto: "auto";
900
+ }>>;
901
+ seamAlignment: z.ZodOptional<z.ZodEnum<{
902
+ auto: "auto";
903
+ authored: "authored";
904
+ }>>;
905
+ }, z.core.$strip>>;
801
906
  }, z.core.$strip>;
802
907
  export type PluginGeomCreateBrepFromLoftArgs = z.infer<typeof PluginGeomCreateBrepFromLoftArgs>;
803
908
  /**
@@ -920,7 +1025,8 @@ export type PluginGeomCreateBrepFromChamferArgs = z.infer<typeof PluginGeomCreat
920
1025
  * | Property | Type | Description |
921
1026
  * |---|---|---|
922
1027
  * | `profile` | {@linkcode ContourHandle} | The cross-section to sweep (hole-free) |
923
- * | `path` | {@linkcode Vec3Components}`[]` | The open polyline path (≥2 points, finite components) |
1028
+ * | `path` | {@linkcode Vec3Components}`[]` | The polyline path (≥2 points, finite components; repeating the first point as the last closes it into a ring — closed paths must be flat and straight-segmented and take a straight-edged profile) |
1029
+ * | `options` | `object`? | Optional scale law: `startScale`/`endScale` (linear taper by arc length) or per-point `scales` (mutually exclusive; factors finite, 1e-3..1e3; `scales.length` must equal `path.length`). Optional corner `transition`: `"miter"` (default) or `{ bevel }` (chamfered corners; finite, 1e-3..1e3) |
924
1030
  */
925
1031
  export declare const PluginGeomCreateBrepFromSweepArgs: z.ZodObject<{
926
1032
  profile: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"contour">, string>>;
@@ -929,6 +1035,14 @@ export declare const PluginGeomCreateBrepFromSweepArgs: z.ZodObject<{
929
1035
  y: z.ZodNumber;
930
1036
  z: z.ZodNumber;
931
1037
  }, z.core.$strip>>;
1038
+ options: z.ZodOptional<z.ZodObject<{
1039
+ startScale: z.ZodOptional<z.ZodNumber>;
1040
+ endScale: z.ZodOptional<z.ZodNumber>;
1041
+ scales: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1042
+ transition: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"miter">, z.ZodObject<{
1043
+ bevel: z.ZodNumber;
1044
+ }, z.core.$strip>]>>;
1045
+ }, z.core.$strip>>;
932
1046
  }, z.core.$strip>;
933
1047
  export type PluginGeomCreateBrepFromSweepArgs = z.infer<typeof PluginGeomCreateBrepFromSweepArgs>;
934
1048
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/geom/create/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/geom/create/index.ts"],"names":[],"mappings":"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"}
@@ -134,6 +134,61 @@ export declare abstract class PluginGeomQueryBrepApi {
134
134
  * ```
135
135
  */
136
136
  abstract listEdgesBetween(brep: BrepHandle, vertexIndexA: number, vertexIndexB: number): PluginApiReturn<EdgeHandle[]>;
137
+ /**
138
+ * Read the exact curve of a brep edge as plain values — a discriminated
139
+ * union on `type`. Pure read: no geometry kernel is loaded. Points and
140
+ * directions are {@linkcode Vec3Components}; lengths and radii are raw
141
+ * Babylon units.
142
+ *
143
+ * | `type` | Fields |
144
+ * |---|---|
145
+ * | `"line"` | `startPoint`, `endPoint`, `length` |
146
+ * | `"arc"` | `startPoint`, `endPoint`, `centre`, `axis`, `radius`, `length` |
147
+ * | `"circle"` | `centre`, `axis`, `radius`, `length` — a full-circle edge (e.g. a cylinder cap rim) |
148
+ *
149
+ * @param brep The brep the edge belongs to
150
+ * @param edge The edge whose curve to read
151
+ * @returns The curve data as a discriminated union on `type` (see table above)
152
+ * @throws VALIDATION if the edge is not on `brep`
153
+ *
154
+ * @examplePrompt Read the radius of this curved edge
155
+ * @examplePrompt Is this edge straight or an arc?
156
+ * @examplePrompt Get the exact start and end points of this edge
157
+ * @examplePrompt Measure the length of each edge of this mass
158
+ *
159
+ * # Example
160
+ * ```ts
161
+ * const [mass] = await snaptrude.design.query.listMasses()
162
+ * const brep = await snaptrude.design.query.geometry.getBrep(mass)
163
+ * if (brep) {
164
+ * const edges = await snaptrude.core.geom.query.brep.listEdges(brep)
165
+ * for (const edge of edges) {
166
+ * const curve = await snaptrude.core.geom.query.brep.getEdgeCurve(brep, edge)
167
+ * if (curve.type === "arc") console.log("arc radius:", curve.radius)
168
+ * }
169
+ * }
170
+ * ```
171
+ */
172
+ abstract getEdgeCurve(brep: BrepHandle, edge: EdgeHandle): PluginApiReturn<{
173
+ type: "line";
174
+ startPoint: Vec3Components;
175
+ endPoint: Vec3Components;
176
+ length: number;
177
+ } | {
178
+ type: "arc";
179
+ startPoint: Vec3Components;
180
+ endPoint: Vec3Components;
181
+ centre: Vec3Components;
182
+ axis: Vec3Components;
183
+ radius: number;
184
+ length: number;
185
+ } | {
186
+ type: "circle";
187
+ centre: Vec3Components;
188
+ axis: Vec3Components;
189
+ radius: number;
190
+ length: number;
191
+ }>;
137
192
  /**
138
193
  * Get the position of a vertex within a brep.
139
194
  * @param brep The brep to query
@@ -369,6 +424,19 @@ export declare const PluginGeomQueryBrepListEdgesBetweenArgs: z.ZodObject<{
369
424
  vertexIndexB: z.ZodNumber;
370
425
  }, z.core.$strip>;
371
426
  export type PluginGeomQueryBrepListEdgesBetweenArgs = z.infer<typeof PluginGeomQueryBrepListEdgesBetweenArgs>;
427
+ /**
428
+ * Arguments for {@linkcode PluginGeomQueryBrepApi.getEdgeCurve}.
429
+ *
430
+ * | Property | Type | Description |
431
+ * |---|---|---|
432
+ * | `brep` | {@linkcode BrepHandle} | The brep the edge belongs to |
433
+ * | `edge` | {@linkcode EdgeHandle} | The edge whose curve to read |
434
+ */
435
+ export declare const PluginGeomQueryBrepGetEdgeCurveArgs: z.ZodObject<{
436
+ brep: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"brep">, string>>;
437
+ edge: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../../..").Handle<"edge">, string>>;
438
+ }, z.core.$strip>;
439
+ export type PluginGeomQueryBrepGetEdgeCurveArgs = z.infer<typeof PluginGeomQueryBrepGetEdgeCurveArgs>;
372
440
  /**
373
441
  * Arguments for {@linkcode PluginGeomQueryBrepApi.getVertexPosition}.
374
442
  *
@@ -1 +1 @@
1
- {"version":3,"file":"brep.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/geom/query/brep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brep.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/geom/query/brep.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -488,6 +488,7 @@ __export(index_exports, {
488
488
  PluginGeomQueryBrepGetDistanceArgs: () => PluginGeomQueryBrepGetDistanceArgs,
489
489
  PluginGeomQueryBrepGetEdgeArgs: () => PluginGeomQueryBrepGetEdgeArgs,
490
490
  PluginGeomQueryBrepGetEdgeCountArgs: () => PluginGeomQueryBrepGetEdgeCountArgs,
491
+ PluginGeomQueryBrepGetEdgeCurveArgs: () => PluginGeomQueryBrepGetEdgeCurveArgs,
491
492
  PluginGeomQueryBrepGetFaceCountArgs: () => PluginGeomQueryBrepGetFaceCountArgs,
492
493
  PluginGeomQueryBrepGetHalfEdgeCountArgs: () => PluginGeomQueryBrepGetHalfEdgeCountArgs,
493
494
  PluginGeomQueryBrepGetVertexCountArgs: () => PluginGeomQueryBrepGetVertexCountArgs,
@@ -1231,7 +1232,11 @@ var PluginGeomCreateBrepFromExtrusionArgs = z2.object({
1231
1232
  var PluginGeomCreateBrepFromLoftArgs = z2.object({
1232
1233
  bottomContour: ContourHandle,
1233
1234
  topContour: ContourHandle,
1234
- intermediateContours: z2.array(ContourHandle).optional()
1235
+ intermediateContours: z2.array(ContourHandle).optional(),
1236
+ options: z2.object({
1237
+ compatibility: z2.enum(["strict", "auto"]).optional(),
1238
+ seamAlignment: z2.enum(["authored", "auto"]).optional()
1239
+ }).optional()
1235
1240
  });
1236
1241
  var PluginGeomCreateBrepFromMeshArgs = z2.object({
1237
1242
  positions: z2.array(Vec3Components).min(4),
@@ -1270,9 +1275,34 @@ var PluginGeomCreateBrepFromChamferArgs = z2.object({
1270
1275
  edges: z2.array(EdgeHandle).min(1),
1271
1276
  distance: z2.number().finite().positive()
1272
1277
  });
1278
+ var SweepScaleFactor = z2.number().finite().min(1e-3).max(1e3);
1273
1279
  var PluginGeomCreateBrepFromSweepArgs = z2.object({
1274
1280
  profile: ContourHandle,
1275
- path: z2.array(FiniteVec3Components).min(2)
1281
+ path: z2.array(FiniteVec3Components).min(2),
1282
+ options: z2.object({
1283
+ startScale: SweepScaleFactor.optional(),
1284
+ endScale: SweepScaleFactor.optional(),
1285
+ scales: z2.array(SweepScaleFactor).optional(),
1286
+ transition: z2.union([
1287
+ z2.literal("miter"),
1288
+ z2.object({ bevel: z2.number().finite().min(1e-3).max(1e3) })
1289
+ ]).optional()
1290
+ }).optional()
1291
+ }).superRefine((a, ctx) => {
1292
+ const options = a.options;
1293
+ if (!options || options.scales === void 0) return;
1294
+ if (options.startScale !== void 0 || options.endScale !== void 0) {
1295
+ ctx.addIssue({
1296
+ code: z2.ZodIssueCode.custom,
1297
+ message: "scales is mutually exclusive with startScale/endScale"
1298
+ });
1299
+ }
1300
+ if (options.scales.length !== a.path.length) {
1301
+ ctx.addIssue({
1302
+ code: z2.ZodIssueCode.custom,
1303
+ message: "scales must have exactly one entry per path point"
1304
+ });
1305
+ }
1276
1306
  });
1277
1307
  var PluginGeomCreateBrepFromRevolutionArgs = z2.object({
1278
1308
  profile: ContourHandle,
@@ -1592,6 +1622,10 @@ var PluginGeomQueryBrepListHalfEdgesArgs = brepArg;
1592
1622
  var PluginGeomQueryBrepGetEdgeArgs = brepEdgeArg;
1593
1623
  var PluginGeomQueryBrepHasEdgeArgs = brepEdgeArg;
1594
1624
  var PluginGeomQueryBrepListEdgesBetweenArgs = brepEdgeArg;
1625
+ var PluginGeomQueryBrepGetEdgeCurveArgs = z8.object({
1626
+ brep: BrepHandle,
1627
+ edge: EdgeHandle
1628
+ });
1595
1629
  var PluginGeomQueryBrepGetVertexPositionArgs = z8.object({
1596
1630
  brep: BrepHandle,
1597
1631
  vertex: VertexHandle
@@ -6873,6 +6907,7 @@ function makeClientEnvelope(code, message, extra) {
6873
6907
  PluginGeomQueryBrepGetDistanceArgs,
6874
6908
  PluginGeomQueryBrepGetEdgeArgs,
6875
6909
  PluginGeomQueryBrepGetEdgeCountArgs,
6910
+ PluginGeomQueryBrepGetEdgeCurveArgs,
6876
6911
  PluginGeomQueryBrepGetFaceCountArgs,
6877
6912
  PluginGeomQueryBrepGetHalfEdgeCountArgs,
6878
6913
  PluginGeomQueryBrepGetVertexCountArgs,