@snaptrude/plugin-core 0.9.16 → 0.9.18-networks-20261016.1
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/AGENTS.md +231 -231
- package/CHANGELOG.md +408 -402
- package/CLAUDE.md +11 -11
- package/dist/api/analysis/daylight.d.ts +5 -5
- package/dist/api/analysis/solar.d.ts +2 -2
- package/dist/api/core/camera/index.d.ts +29 -0
- package/dist/api/core/camera/index.d.ts.map +1 -1
- package/dist/api/core/geom/create/index.d.ts +7 -1
- package/dist/api/core/geom/create/index.d.ts.map +1 -1
- package/dist/api/core/geom/update/contour.d.ts +8 -2
- package/dist/api/core/geom/update/contour.d.ts.map +1 -1
- package/dist/api/core/zoom/index.d.ts +13 -0
- package/dist/api/core/zoom/index.d.ts.map +1 -1
- package/dist/api/design/bim.d.ts +209 -0
- package/dist/api/design/bim.d.ts.map +1 -0
- package/dist/api/design/boolean/index.d.ts +2 -0
- package/dist/api/design/boolean/index.d.ts.map +1 -1
- package/dist/api/design/catalog.d.ts +320 -0
- package/dist/api/design/catalog.d.ts.map +1 -0
- package/dist/api/design/create/bulk-items.d.ts +65 -25
- package/dist/api/design/create/bulk-items.d.ts.map +1 -1
- package/dist/api/design/create/index.d.ts +272 -99
- package/dist/api/design/create/index.d.ts.map +1 -1
- package/dist/api/design/create/opening-fields.d.ts +13 -12
- package/dist/api/design/create/opening-fields.d.ts.map +1 -1
- package/dist/api/design/delete/index.d.ts +1 -0
- package/dist/api/design/delete/index.d.ts.map +1 -1
- package/dist/api/design/doors/index.d.ts +18 -24
- package/dist/api/design/doors/index.d.ts.map +1 -1
- package/dist/api/design/family.d.ts +797 -27
- package/dist/api/design/family.d.ts.map +1 -1
- package/dist/api/design/index.d.ts +16 -0
- package/dist/api/design/index.d.ts.map +1 -1
- package/dist/api/design/networks.d.ts +1763 -0
- package/dist/api/design/networks.d.ts.map +1 -0
- package/dist/api/design/query/index.d.ts +42 -32
- package/dist/api/design/query/index.d.ts.map +1 -1
- package/dist/api/design/selection/index.d.ts +10 -10
- package/dist/api/design/types/index.d.ts +40 -24
- package/dist/api/design/types/index.d.ts.map +1 -1
- package/dist/api/design/update/index.d.ts +43 -3
- package/dist/api/design/update/index.d.ts.map +1 -1
- package/dist/api/design/windows/index.d.ts +8 -8
- package/dist/api/design/windows/index.d.ts.map +1 -1
- package/dist/api/presentation/aiInspiration.d.ts +10 -10
- package/dist/api/presentation/annotate.d.ts +38 -22
- package/dist/api/presentation/annotate.d.ts.map +1 -1
- package/dist/api/presentation/drawingContract.d.ts +32 -0
- package/dist/api/presentation/drawingContract.d.ts.map +1 -0
- package/dist/api/presentation/drawings.d.ts +3523 -0
- package/dist/api/presentation/drawings.d.ts.map +1 -0
- package/dist/api/presentation/export.d.ts +23 -5
- package/dist/api/presentation/export.d.ts.map +1 -1
- package/dist/api/presentation/index.d.ts +41 -12
- package/dist/api/presentation/index.d.ts.map +1 -1
- package/dist/api/presentation/placedViews.d.ts +106 -6
- package/dist/api/presentation/placedViews.d.ts.map +1 -1
- package/dist/api/presentation/sections.d.ts +461 -0
- package/dist/api/presentation/sections.d.ts.map +1 -0
- package/dist/api/presentation/shapes.d.ts +2 -2
- package/dist/api/presentation/sheets.d.ts +175 -19
- package/dist/api/presentation/sheets.d.ts.map +1 -1
- package/dist/api/presentation/viewPresets.d.ts +222 -0
- package/dist/api/presentation/viewPresets.d.ts.map +1 -0
- package/dist/api/presentation/views.d.ts +103 -5
- package/dist/api/presentation/views.d.ts.map +1 -1
- package/dist/api/presentation/walkthroughs.d.ts +6 -6
- package/dist/errors/codes.d.ts +3 -1
- package/dist/errors/codes.d.ts.map +1 -1
- package/dist/index.cjs +3788 -2328
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3650 -2328
- package/dist/index.js.map +1 -1
- package/package.json +42 -42
- package/scripts/check-dist-fresh.mjs +22 -22
- package/scripts/generate-manifest.mjs +243 -238
- package/scripts/generate-manifest.test.mjs +303 -303
- package/src/api/analysis/daylight.ts +470 -470
- package/src/api/analysis/heatmaps.ts +683 -683
- package/src/api/analysis/illuminance.ts +155 -155
- package/src/api/analysis/index.ts +61 -61
- package/src/api/analysis/shadows.ts +183 -183
- package/src/api/analysis/solar.ts +237 -237
- package/src/api/analysis/sunlightHours.ts +211 -211
- package/src/api/analysis/sunpath.ts +83 -83
- package/src/api/analysis/weather.ts +179 -179
- package/src/api/core/buildings.ts +485 -485
- package/src/api/core/camera/index.ts +696 -667
- package/src/api/core/comment/index.ts +376 -376
- package/src/api/core/geom/create/index.ts +2139 -2133
- package/src/api/core/geom/delete/index.ts +84 -84
- package/src/api/core/geom/index.ts +35 -35
- package/src/api/core/geom/query/arc.ts +169 -169
- package/src/api/core/geom/query/brep.ts +621 -621
- package/src/api/core/geom/query/circle.ts +404 -404
- package/src/api/core/geom/query/contour.ts +540 -540
- package/src/api/core/geom/query/curve.ts +1102 -1102
- package/src/api/core/geom/query/edge.ts +130 -130
- package/src/api/core/geom/query/face.ts +508 -508
- package/src/api/core/geom/query/halfedge.ts +210 -210
- package/src/api/core/geom/query/index.ts +63 -63
- package/src/api/core/geom/query/profile.ts +473 -473
- package/src/api/core/geom/query/vertex.ts +205 -205
- package/src/api/core/geom/update/contour.ts +323 -317
- package/src/api/core/geom/update/curve.ts +209 -209
- package/src/api/core/geom/update/index.ts +29 -29
- package/src/api/core/geom/update/profile.ts +379 -379
- package/src/api/core/groups.ts +521 -521
- package/src/api/core/handles/index.ts +234 -234
- package/src/api/core/history/index.ts +84 -84
- package/src/api/core/index.ts +99 -99
- package/src/api/core/io/export/index.ts +126 -126
- package/src/api/core/io/import/index.ts +504 -504
- package/src/api/core/io/index.ts +42 -42
- package/src/api/core/io/job/index.ts +140 -140
- package/src/api/core/io/query/index.ts +71 -71
- package/src/api/core/io/terrain/index.ts +360 -360
- package/src/api/core/io/underlay/index.ts +705 -705
- package/src/api/core/layers.ts +540 -540
- package/src/api/core/math/index.ts +20 -20
- package/src/api/core/math/quat.ts +172 -172
- package/src/api/core/math/vec3.ts +179 -179
- package/src/api/core/mode/index.ts +108 -108
- package/src/api/core/project/index.ts +479 -479
- package/src/api/core/proposals/index.ts +570 -570
- package/src/api/core/storeys/index.ts +308 -308
- package/src/api/core/storeys/layers.ts +339 -339
- package/src/api/core/tags.ts +911 -911
- package/src/api/core/units/index.ts +164 -164
- package/src/api/core/user.ts +46 -46
- package/src/api/core/zoom/index.ts +64 -51
- package/src/api/design/bim.ts +121 -0
- package/src/api/design/boolean/index.ts +181 -179
- package/src/api/design/catalog.ts +203 -0
- package/src/api/design/create/bulk-items.ts +294 -254
- package/src/api/design/create/grids.ts +137 -137
- package/src/api/design/create/index.ts +2148 -1980
- package/src/api/design/create/opening-fields.ts +40 -37
- package/src/api/design/delete/index.ts +75 -74
- package/src/api/design/dimensions.ts +453 -453
- package/src/api/design/doors/index.ts +516 -500
- package/src/api/design/edit/index.ts +54 -54
- package/src/api/design/erase/index.ts +151 -151
- package/src/api/design/family.ts +1334 -704
- package/src/api/design/furniture/index.ts +319 -319
- package/src/api/design/grids.ts +237 -237
- package/src/api/design/index.ts +304 -274
- package/src/api/design/lock.ts +69 -69
- package/src/api/design/materials/index.ts +608 -608
- package/src/api/design/networks.ts +667 -0
- package/src/api/design/query/geometry/index.ts +319 -319
- package/src/api/design/query/grids.ts +197 -197
- package/src/api/design/query/index.ts +1236 -1226
- package/src/api/design/query/referenceLines.ts +52 -52
- package/src/api/design/query/spaces.ts +275 -275
- package/src/api/design/selection/index.ts +273 -273
- package/src/api/design/shared.ts +40 -40
- package/src/api/design/transform/index.ts +254 -254
- package/src/api/design/types/index.ts +163 -156
- package/src/api/design/update/index.ts +1024 -983
- package/src/api/design/visibility.ts +143 -143
- package/src/api/design/windows/index.ts +351 -333
- package/src/api/entity/buildableEnvelope.ts +322 -322
- package/src/api/entity/index.ts +30 -30
- package/src/api/entity/referenceLine.ts +235 -235
- package/src/api/entity/space.ts +612 -612
- package/src/api/entity/story.ts +517 -517
- package/src/api/index.ts +47 -47
- package/src/api/presentation/aiInspiration.ts +1116 -1116
- package/src/api/presentation/annotate.ts +417 -385
- package/src/api/presentation/camera.ts +289 -289
- package/src/api/presentation/diagrams.ts +194 -194
- package/src/api/presentation/drawingContract.ts +70 -0
- package/src/api/presentation/drawings.ts +1179 -0
- package/src/api/presentation/export.ts +134 -108
- package/src/api/presentation/import.ts +159 -159
- package/src/api/presentation/index.ts +160 -126
- package/src/api/presentation/placedViews.ts +1211 -1120
- package/src/api/presentation/sections.ts +420 -0
- package/src/api/presentation/shapes.ts +274 -274
- package/src/api/presentation/sheets.ts +746 -585
- package/src/api/presentation/slideshow.ts +134 -134
- package/src/api/presentation/tables.ts +84 -84
- package/src/api/presentation/viewPresets.ts +241 -0
- package/src/api/presentation/views.ts +713 -673
- package/src/api/presentation/walkthroughs.ts +1201 -1201
- package/src/api/program/adjacency.ts +164 -164
- package/src/api/program/areas.ts +408 -408
- package/src/api/program/classification.ts +138 -138
- package/src/api/program/cores.ts +83 -83
- package/src/api/program/departments.ts +517 -517
- package/src/api/program/index.ts +73 -73
- package/src/api/program/labels.ts +332 -332
- package/src/api/program/layout.ts +422 -422
- package/src/api/program/metadata.ts +364 -364
- package/src/api/program/metrics.ts +120 -120
- package/src/api/program/site.ts +748 -748
- package/src/api/program/spreadsheet.ts +2698 -2698
- package/src/api/workspace/index.ts +612 -612
- package/src/errors/codes.ts +143 -136
- package/src/errors/envelope.ts +75 -75
- package/src/errors/index.ts +21 -21
- package/src/errors/plugin-error.ts +134 -134
- package/src/handles.ts +297 -297
- package/src/host-utils.ts +67 -67
- package/src/index.ts +7 -7
- package/src/massParameters.ops.ts +246 -246
- package/src/massParameters.ts +427 -427
- package/src/types.ts +16 -16
- package/test/drawingContract.test.mjs +288 -0
- package/test/errors.test.mjs +185 -184
- package/test/massParameters.test.mjs +952 -952
- package/tsconfig.json +22 -22
- package/tsup.config.ts +12 -12
- package/api-manifest.json +0 -9618
|
@@ -1,137 +1,137 @@
|
|
|
1
|
-
import * as z from "zod"
|
|
2
|
-
import { ComponentHandle, CurveHandle, Vec3Handle } from "../../../handles"
|
|
3
|
-
|
|
4
|
-
// ---------------------------------------------------------------------------
|
|
5
|
-
// Shared grid style vocabulary
|
|
6
|
-
// ---------------------------------------------------------------------------
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Grid line style (mirrors the engine `LineMode` values verbatim — the same
|
|
10
|
-
* vocabulary as {@linkcode PluginReferenceLineStyle}).
|
|
11
|
-
*/
|
|
12
|
-
export const PluginGridLineStyle = z.enum(["SOLID", "DASHED", "DOT_DASH"])
|
|
13
|
-
export type PluginGridLineStyle = z.infer<typeof PluginGridLineStyle>
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Optional visual styling shared by every grid creator (and reused as the
|
|
17
|
-
* patch shape by `design.update.grid`). All fields optional; engine defaults
|
|
18
|
-
* apply when omitted.
|
|
19
|
-
*
|
|
20
|
-
* | Property | Type | Description |
|
|
21
|
-
* |---|---|---|
|
|
22
|
-
* | `style` | {@linkcode PluginGridLineStyle}? | Line style |
|
|
23
|
-
* | `weight` | `number`? | Line weight (> 0) |
|
|
24
|
-
* | `color` | `string`? | Line color as a `#rrggbb` hex string |
|
|
25
|
-
* | `showStart` | `boolean`? | Show the start-end tag bubble |
|
|
26
|
-
* | `showEnd` | `boolean`? | Show the end-end tag bubble |
|
|
27
|
-
*/
|
|
28
|
-
export const PluginGridStyleOptions = z.object({
|
|
29
|
-
style: PluginGridLineStyle.optional(),
|
|
30
|
-
weight: z.number().positive().optional(),
|
|
31
|
-
color: z
|
|
32
|
-
.string()
|
|
33
|
-
.regex(/^#[0-9a-fA-F]{6}$/, "color must be a #rrggbb hex string")
|
|
34
|
-
.optional(),
|
|
35
|
-
showStart: z.boolean().optional(),
|
|
36
|
-
showEnd: z.boolean().optional(),
|
|
37
|
-
})
|
|
38
|
-
export type PluginGridStyleOptions = z.infer<typeof PluginGridStyleOptions>
|
|
39
|
-
|
|
40
|
-
// ---------------------------------------------------------------------------
|
|
41
|
-
// create.grid — free rectangular grid
|
|
42
|
-
// ---------------------------------------------------------------------------
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Arguments for {@linkcode PluginDesignCreateApi.grid}.
|
|
46
|
-
*
|
|
47
|
-
* | Property | Type | Description |
|
|
48
|
-
* |---|---|---|
|
|
49
|
-
* | `linesX` | `number` | Line count of the first family (integer ≥ 1) |
|
|
50
|
-
* | `linesY` | `number` | Line count of the second family (integer ≥ 1) |
|
|
51
|
-
* | `spacingX` | `number` | Spacing of the first family (Snaptrude units, > 0) |
|
|
52
|
-
* | `spacingY` | `number` | Spacing of the second family (Snaptrude units, > 0) |
|
|
53
|
-
* | `angle` | `number`? | Rotation in degrees, CCW about +Y (default 0) |
|
|
54
|
-
* | `center` | {@linkcode Vec3Handle}? | Placement centre; defaults to the native viewport-centre behavior |
|
|
55
|
-
* | …style | {@linkcode PluginGridStyleOptions} | Optional line styling |
|
|
56
|
-
*/
|
|
57
|
-
export const PluginDesignCreateGridArgs = z
|
|
58
|
-
.object({
|
|
59
|
-
linesX: z.number().int().min(1),
|
|
60
|
-
linesY: z.number().int().min(1),
|
|
61
|
-
spacingX: z.number().positive().finite(),
|
|
62
|
-
spacingY: z.number().positive().finite(),
|
|
63
|
-
angle: z.number().finite().optional(),
|
|
64
|
-
center: Vec3Handle.optional(),
|
|
65
|
-
})
|
|
66
|
-
.merge(PluginGridStyleOptions)
|
|
67
|
-
export type PluginDesignCreateGridArgs = z.infer<typeof PluginDesignCreateGridArgs>
|
|
68
|
-
|
|
69
|
-
// ---------------------------------------------------------------------------
|
|
70
|
-
// create.gridFromCurve — single-curve grid
|
|
71
|
-
// ---------------------------------------------------------------------------
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Arguments for {@linkcode PluginDesignCreateApi.gridFromCurve}.
|
|
75
|
-
*
|
|
76
|
-
* | Property | Type | Description |
|
|
77
|
-
* |---|---|---|
|
|
78
|
-
* | `curve` | {@linkcode CurveHandle} | The grid line's geometry — a line or arc (circles are rejected) |
|
|
79
|
-
* | `tag` | `string`? | The line's grid tag (defaults to the draw tool's next tag) |
|
|
80
|
-
* | …style | {@linkcode PluginGridStyleOptions} | Optional line styling |
|
|
81
|
-
*/
|
|
82
|
-
export const PluginDesignCreateGridFromCurveArgs = z
|
|
83
|
-
.object({
|
|
84
|
-
curve: CurveHandle,
|
|
85
|
-
tag: z.string().min(1).optional(),
|
|
86
|
-
})
|
|
87
|
-
.merge(PluginGridStyleOptions)
|
|
88
|
-
export type PluginDesignCreateGridFromCurveArgs = z.infer<
|
|
89
|
-
typeof PluginDesignCreateGridFromCurveArgs
|
|
90
|
-
>
|
|
91
|
-
|
|
92
|
-
// ---------------------------------------------------------------------------
|
|
93
|
-
// create.gridsFromMasses — fitted grids
|
|
94
|
-
// ---------------------------------------------------------------------------
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Arguments for {@linkcode PluginDesignCreateApi.gridsFromMasses}.
|
|
98
|
-
*
|
|
99
|
-
* | Property | Type | Description |
|
|
100
|
-
* |---|---|---|
|
|
101
|
-
* | `masses` | {@linkcode ComponentHandle}`[]` | Masses whose footprints seat the grids |
|
|
102
|
-
* | `spacingX` | `number` | First-family spacing (Snaptrude units, > 0) |
|
|
103
|
-
* | `spacingY` | `number` | Second-family spacing (Snaptrude units, > 0) |
|
|
104
|
-
* | …style | {@linkcode PluginGridStyleOptions} | Optional line styling |
|
|
105
|
-
*/
|
|
106
|
-
export const PluginDesignCreateGridsFromMassesArgs = z
|
|
107
|
-
.object({
|
|
108
|
-
masses: z.array(ComponentHandle).min(1),
|
|
109
|
-
spacingX: z.number().positive().finite(),
|
|
110
|
-
spacingY: z.number().positive().finite(),
|
|
111
|
-
})
|
|
112
|
-
.merge(PluginGridStyleOptions)
|
|
113
|
-
export type PluginDesignCreateGridsFromMassesArgs = z.infer<
|
|
114
|
-
typeof PluginDesignCreateGridsFromMassesArgs
|
|
115
|
-
>
|
|
116
|
-
|
|
117
|
-
// ---------------------------------------------------------------------------
|
|
118
|
-
// create.columnsFromGrids — columns at line intersections
|
|
119
|
-
// ---------------------------------------------------------------------------
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Arguments for {@linkcode PluginDesignCreateApi.columnsFromGrids}.
|
|
123
|
-
*
|
|
124
|
-
* | Property | Type | Description |
|
|
125
|
-
* |---|---|---|
|
|
126
|
-
* | `grids` | {@linkcode ComponentHandle}`[]` | Grid groups whose line intersections seat the columns |
|
|
127
|
-
* | `width` | `number` | Column width (Snaptrude units, > 0) |
|
|
128
|
-
* | `depth` | `number` | Column depth (Snaptrude units, > 0) |
|
|
129
|
-
*/
|
|
130
|
-
export const PluginDesignCreateColumnsFromGridsArgs = z.object({
|
|
131
|
-
grids: z.array(ComponentHandle).min(1),
|
|
132
|
-
width: z.number().positive().finite(),
|
|
133
|
-
depth: z.number().positive().finite(),
|
|
134
|
-
})
|
|
135
|
-
export type PluginDesignCreateColumnsFromGridsArgs = z.infer<
|
|
136
|
-
typeof PluginDesignCreateColumnsFromGridsArgs
|
|
137
|
-
>
|
|
1
|
+
import * as z from "zod"
|
|
2
|
+
import { ComponentHandle, CurveHandle, Vec3Handle } from "../../../handles"
|
|
3
|
+
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Shared grid style vocabulary
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Grid line style (mirrors the engine `LineMode` values verbatim — the same
|
|
10
|
+
* vocabulary as {@linkcode PluginReferenceLineStyle}).
|
|
11
|
+
*/
|
|
12
|
+
export const PluginGridLineStyle = z.enum(["SOLID", "DASHED", "DOT_DASH"])
|
|
13
|
+
export type PluginGridLineStyle = z.infer<typeof PluginGridLineStyle>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Optional visual styling shared by every grid creator (and reused as the
|
|
17
|
+
* patch shape by `design.update.grid`). All fields optional; engine defaults
|
|
18
|
+
* apply when omitted.
|
|
19
|
+
*
|
|
20
|
+
* | Property | Type | Description |
|
|
21
|
+
* |---|---|---|
|
|
22
|
+
* | `style` | {@linkcode PluginGridLineStyle}? | Line style |
|
|
23
|
+
* | `weight` | `number`? | Line weight (> 0) |
|
|
24
|
+
* | `color` | `string`? | Line color as a `#rrggbb` hex string |
|
|
25
|
+
* | `showStart` | `boolean`? | Show the start-end tag bubble |
|
|
26
|
+
* | `showEnd` | `boolean`? | Show the end-end tag bubble |
|
|
27
|
+
*/
|
|
28
|
+
export const PluginGridStyleOptions = z.object({
|
|
29
|
+
style: PluginGridLineStyle.optional(),
|
|
30
|
+
weight: z.number().positive().optional(),
|
|
31
|
+
color: z
|
|
32
|
+
.string()
|
|
33
|
+
.regex(/^#[0-9a-fA-F]{6}$/, "color must be a #rrggbb hex string")
|
|
34
|
+
.optional(),
|
|
35
|
+
showStart: z.boolean().optional(),
|
|
36
|
+
showEnd: z.boolean().optional(),
|
|
37
|
+
})
|
|
38
|
+
export type PluginGridStyleOptions = z.infer<typeof PluginGridStyleOptions>
|
|
39
|
+
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// create.grid — free rectangular grid
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Arguments for {@linkcode PluginDesignCreateApi.grid}.
|
|
46
|
+
*
|
|
47
|
+
* | Property | Type | Description |
|
|
48
|
+
* |---|---|---|
|
|
49
|
+
* | `linesX` | `number` | Line count of the first family (integer ≥ 1) |
|
|
50
|
+
* | `linesY` | `number` | Line count of the second family (integer ≥ 1) |
|
|
51
|
+
* | `spacingX` | `number` | Spacing of the first family (Snaptrude units, > 0) |
|
|
52
|
+
* | `spacingY` | `number` | Spacing of the second family (Snaptrude units, > 0) |
|
|
53
|
+
* | `angle` | `number`? | Rotation in degrees, CCW about +Y (default 0) |
|
|
54
|
+
* | `center` | {@linkcode Vec3Handle}? | Placement centre; defaults to the native viewport-centre behavior |
|
|
55
|
+
* | …style | {@linkcode PluginGridStyleOptions} | Optional line styling |
|
|
56
|
+
*/
|
|
57
|
+
export const PluginDesignCreateGridArgs = z
|
|
58
|
+
.object({
|
|
59
|
+
linesX: z.number().int().min(1),
|
|
60
|
+
linesY: z.number().int().min(1),
|
|
61
|
+
spacingX: z.number().positive().finite(),
|
|
62
|
+
spacingY: z.number().positive().finite(),
|
|
63
|
+
angle: z.number().finite().optional(),
|
|
64
|
+
center: Vec3Handle.optional(),
|
|
65
|
+
})
|
|
66
|
+
.merge(PluginGridStyleOptions)
|
|
67
|
+
export type PluginDesignCreateGridArgs = z.infer<typeof PluginDesignCreateGridArgs>
|
|
68
|
+
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
// create.gridFromCurve — single-curve grid
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Arguments for {@linkcode PluginDesignCreateApi.gridFromCurve}.
|
|
75
|
+
*
|
|
76
|
+
* | Property | Type | Description |
|
|
77
|
+
* |---|---|---|
|
|
78
|
+
* | `curve` | {@linkcode CurveHandle} | The grid line's geometry — a line or arc (circles are rejected) |
|
|
79
|
+
* | `tag` | `string`? | The line's grid tag (defaults to the draw tool's next tag) |
|
|
80
|
+
* | …style | {@linkcode PluginGridStyleOptions} | Optional line styling |
|
|
81
|
+
*/
|
|
82
|
+
export const PluginDesignCreateGridFromCurveArgs = z
|
|
83
|
+
.object({
|
|
84
|
+
curve: CurveHandle,
|
|
85
|
+
tag: z.string().min(1).optional(),
|
|
86
|
+
})
|
|
87
|
+
.merge(PluginGridStyleOptions)
|
|
88
|
+
export type PluginDesignCreateGridFromCurveArgs = z.infer<
|
|
89
|
+
typeof PluginDesignCreateGridFromCurveArgs
|
|
90
|
+
>
|
|
91
|
+
|
|
92
|
+
// ---------------------------------------------------------------------------
|
|
93
|
+
// create.gridsFromMasses — fitted grids
|
|
94
|
+
// ---------------------------------------------------------------------------
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Arguments for {@linkcode PluginDesignCreateApi.gridsFromMasses}.
|
|
98
|
+
*
|
|
99
|
+
* | Property | Type | Description |
|
|
100
|
+
* |---|---|---|
|
|
101
|
+
* | `masses` | {@linkcode ComponentHandle}`[]` | Masses whose footprints seat the grids |
|
|
102
|
+
* | `spacingX` | `number` | First-family spacing (Snaptrude units, > 0) |
|
|
103
|
+
* | `spacingY` | `number` | Second-family spacing (Snaptrude units, > 0) |
|
|
104
|
+
* | …style | {@linkcode PluginGridStyleOptions} | Optional line styling |
|
|
105
|
+
*/
|
|
106
|
+
export const PluginDesignCreateGridsFromMassesArgs = z
|
|
107
|
+
.object({
|
|
108
|
+
masses: z.array(ComponentHandle).min(1),
|
|
109
|
+
spacingX: z.number().positive().finite(),
|
|
110
|
+
spacingY: z.number().positive().finite(),
|
|
111
|
+
})
|
|
112
|
+
.merge(PluginGridStyleOptions)
|
|
113
|
+
export type PluginDesignCreateGridsFromMassesArgs = z.infer<
|
|
114
|
+
typeof PluginDesignCreateGridsFromMassesArgs
|
|
115
|
+
>
|
|
116
|
+
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
// create.columnsFromGrids — columns at line intersections
|
|
119
|
+
// ---------------------------------------------------------------------------
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Arguments for {@linkcode PluginDesignCreateApi.columnsFromGrids}.
|
|
123
|
+
*
|
|
124
|
+
* | Property | Type | Description |
|
|
125
|
+
* |---|---|---|
|
|
126
|
+
* | `grids` | {@linkcode ComponentHandle}`[]` | Grid groups whose line intersections seat the columns |
|
|
127
|
+
* | `width` | `number` | Column width (Snaptrude units, > 0) |
|
|
128
|
+
* | `depth` | `number` | Column depth (Snaptrude units, > 0) |
|
|
129
|
+
*/
|
|
130
|
+
export const PluginDesignCreateColumnsFromGridsArgs = z.object({
|
|
131
|
+
grids: z.array(ComponentHandle).min(1),
|
|
132
|
+
width: z.number().positive().finite(),
|
|
133
|
+
depth: z.number().positive().finite(),
|
|
134
|
+
})
|
|
135
|
+
export type PluginDesignCreateColumnsFromGridsArgs = z.infer<
|
|
136
|
+
typeof PluginDesignCreateColumnsFromGridsArgs
|
|
137
|
+
>
|