@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,130 +1,130 @@
|
|
|
1
|
-
import * as z from "zod"
|
|
2
|
-
import { PluginApiReturn } from "../../../../types"
|
|
3
|
-
import { EdgeHandle, VertexHandle, HalfEdgeHandle, FaceHandle, CurveHandle } from "../../../../handles"
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Edge queries — read a single BREP edge's topology and geometry (all-handle model,
|
|
7
|
-
* §11). An {@linkcode EdgeHandle} is minted by walking from a brep/face/vertex handle;
|
|
8
|
-
* it is session-ephemeral and goes stale on undo/redo/re-topologize.
|
|
9
|
-
*
|
|
10
|
-
* Accessed via `snaptrude.core.geom.query.edge`.
|
|
11
|
-
*/
|
|
12
|
-
export abstract class PluginGeomQueryEdgeApi {
|
|
13
|
-
constructor() {}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Get the index of an edge within its brep.
|
|
17
|
-
* @param edge The edge to query
|
|
18
|
-
* @returns The index as a `number` (`-1` if unindexed)
|
|
19
|
-
*
|
|
20
|
-
* # Example
|
|
21
|
-
* ```ts
|
|
22
|
-
* const [wall] = await snaptrude.design.query.listWalls()
|
|
23
|
-
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
24
|
-
* if (brep) {
|
|
25
|
-
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
26
|
-
* const index = await snaptrude.core.geom.query.edge.getIndex(edge)
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
public abstract getIndex(edge: EdgeHandle): PluginApiReturn<number>
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Get the primary half-edge of an edge.
|
|
34
|
-
* @param edge The edge to query
|
|
35
|
-
* @returns The half-edge as a {@linkcode HalfEdgeHandle}, or `null` if uninitialized
|
|
36
|
-
*
|
|
37
|
-
* # Example
|
|
38
|
-
* ```ts
|
|
39
|
-
* const [wall] = await snaptrude.design.query.listWalls()
|
|
40
|
-
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
41
|
-
* if (brep) {
|
|
42
|
-
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
43
|
-
* const halfEdge = await snaptrude.core.geom.query.edge.getHalfEdge(edge)
|
|
44
|
-
* if (halfEdge) {
|
|
45
|
-
* const face = await snaptrude.core.geom.query.halfedge.getFace(halfEdge)
|
|
46
|
-
* }
|
|
47
|
-
* }
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
public abstract getHalfEdge(edge: EdgeHandle): PluginApiReturn<HalfEdgeHandle | null>
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* List the two endpoint vertices of an edge.
|
|
54
|
-
* @param edge The edge to query
|
|
55
|
-
* @returns The endpoints as {@linkcode VertexHandle}`[]`
|
|
56
|
-
*
|
|
57
|
-
* # Example
|
|
58
|
-
* ```ts
|
|
59
|
-
* const [wall] = await snaptrude.design.query.listWalls()
|
|
60
|
-
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
61
|
-
* if (brep) {
|
|
62
|
-
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
63
|
-
* const [a, b] = await snaptrude.core.geom.query.edge.listVertices(edge)
|
|
64
|
-
* const start = await snaptrude.core.geom.query.vertex.getPosition(brep, a)
|
|
65
|
-
* const end = await snaptrude.core.geom.query.vertex.getPosition(brep, b)
|
|
66
|
-
* }
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
public abstract listVertices(edge: EdgeHandle): PluginApiReturn<VertexHandle[]>
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Get the underlying curve geometry of an edge (a line, arc or spline).
|
|
73
|
-
* @param edge The edge to query
|
|
74
|
-
* @returns The curve as a {@linkcode CurveHandle} (`line_`, `arc_` or `spline_`), or `null` if it is a circle or unset
|
|
75
|
-
*
|
|
76
|
-
* # Example
|
|
77
|
-
* ```ts
|
|
78
|
-
* const [wall] = await snaptrude.design.query.listWalls()
|
|
79
|
-
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
80
|
-
* if (brep) {
|
|
81
|
-
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
82
|
-
* const curve = await snaptrude.core.geom.query.edge.getCurve(edge)
|
|
83
|
-
* if (curve) {
|
|
84
|
-
* const length = await snaptrude.core.geom.query.curve.getLength(curve)
|
|
85
|
-
* }
|
|
86
|
-
* }
|
|
87
|
-
* ```
|
|
88
|
-
*/
|
|
89
|
-
public abstract getCurve(edge: EdgeHandle): PluginApiReturn<CurveHandle | null>
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* List the faces bordering an edge (one or two).
|
|
93
|
-
* @param edge The edge to query
|
|
94
|
-
* @returns The bordering faces as {@linkcode FaceHandle}`[]`
|
|
95
|
-
*
|
|
96
|
-
* # Example
|
|
97
|
-
* ```ts
|
|
98
|
-
* const [wall] = await snaptrude.design.query.listWalls()
|
|
99
|
-
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
100
|
-
* if (brep) {
|
|
101
|
-
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
102
|
-
* const faces = await snaptrude.core.geom.query.edge.listFaces(edge)
|
|
103
|
-
* console.log(faces.length === 1 ? "boundary edge" : "interior edge")
|
|
104
|
-
* }
|
|
105
|
-
* ```
|
|
106
|
-
*/
|
|
107
|
-
public abstract listFaces(edge: EdgeHandle): PluginApiReturn<FaceHandle[]>
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
const edgeArg = z.object({ edge: EdgeHandle })
|
|
111
|
-
|
|
112
|
-
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.getIndex}. `{ edge: EdgeHandle }` */
|
|
113
|
-
export const PluginGeomQueryEdgeGetIndexArgs = edgeArg
|
|
114
|
-
export type PluginGeomQueryEdgeGetIndexArgs = z.infer<typeof PluginGeomQueryEdgeGetIndexArgs>
|
|
115
|
-
|
|
116
|
-
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.getHalfEdge}. `{ edge: EdgeHandle }` */
|
|
117
|
-
export const PluginGeomQueryEdgeGetHalfEdgeArgs = edgeArg
|
|
118
|
-
export type PluginGeomQueryEdgeGetHalfEdgeArgs = z.infer<typeof PluginGeomQueryEdgeGetHalfEdgeArgs>
|
|
119
|
-
|
|
120
|
-
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.listVertices}. `{ edge: EdgeHandle }` */
|
|
121
|
-
export const PluginGeomQueryEdgeListVerticesArgs = edgeArg
|
|
122
|
-
export type PluginGeomQueryEdgeListVerticesArgs = z.infer<typeof PluginGeomQueryEdgeListVerticesArgs>
|
|
123
|
-
|
|
124
|
-
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.getCurve}. `{ edge: EdgeHandle }` */
|
|
125
|
-
export const PluginGeomQueryEdgeGetCurveArgs = edgeArg
|
|
126
|
-
export type PluginGeomQueryEdgeGetCurveArgs = z.infer<typeof PluginGeomQueryEdgeGetCurveArgs>
|
|
127
|
-
|
|
128
|
-
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.listFaces}. `{ edge: EdgeHandle }` */
|
|
129
|
-
export const PluginGeomQueryEdgeListFacesArgs = edgeArg
|
|
130
|
-
export type PluginGeomQueryEdgeListFacesArgs = z.infer<typeof PluginGeomQueryEdgeListFacesArgs>
|
|
1
|
+
import * as z from "zod"
|
|
2
|
+
import { PluginApiReturn } from "../../../../types"
|
|
3
|
+
import { EdgeHandle, VertexHandle, HalfEdgeHandle, FaceHandle, CurveHandle } from "../../../../handles"
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Edge queries — read a single BREP edge's topology and geometry (all-handle model,
|
|
7
|
+
* §11). An {@linkcode EdgeHandle} is minted by walking from a brep/face/vertex handle;
|
|
8
|
+
* it is session-ephemeral and goes stale on undo/redo/re-topologize.
|
|
9
|
+
*
|
|
10
|
+
* Accessed via `snaptrude.core.geom.query.edge`.
|
|
11
|
+
*/
|
|
12
|
+
export abstract class PluginGeomQueryEdgeApi {
|
|
13
|
+
constructor() {}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Get the index of an edge within its brep.
|
|
17
|
+
* @param edge The edge to query
|
|
18
|
+
* @returns The index as a `number` (`-1` if unindexed)
|
|
19
|
+
*
|
|
20
|
+
* # Example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
23
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
24
|
+
* if (brep) {
|
|
25
|
+
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
26
|
+
* const index = await snaptrude.core.geom.query.edge.getIndex(edge)
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
public abstract getIndex(edge: EdgeHandle): PluginApiReturn<number>
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Get the primary half-edge of an edge.
|
|
34
|
+
* @param edge The edge to query
|
|
35
|
+
* @returns The half-edge as a {@linkcode HalfEdgeHandle}, or `null` if uninitialized
|
|
36
|
+
*
|
|
37
|
+
* # Example
|
|
38
|
+
* ```ts
|
|
39
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
40
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
41
|
+
* if (brep) {
|
|
42
|
+
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
43
|
+
* const halfEdge = await snaptrude.core.geom.query.edge.getHalfEdge(edge)
|
|
44
|
+
* if (halfEdge) {
|
|
45
|
+
* const face = await snaptrude.core.geom.query.halfedge.getFace(halfEdge)
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
public abstract getHalfEdge(edge: EdgeHandle): PluginApiReturn<HalfEdgeHandle | null>
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* List the two endpoint vertices of an edge.
|
|
54
|
+
* @param edge The edge to query
|
|
55
|
+
* @returns The endpoints as {@linkcode VertexHandle}`[]`
|
|
56
|
+
*
|
|
57
|
+
* # Example
|
|
58
|
+
* ```ts
|
|
59
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
60
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
61
|
+
* if (brep) {
|
|
62
|
+
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
63
|
+
* const [a, b] = await snaptrude.core.geom.query.edge.listVertices(edge)
|
|
64
|
+
* const start = await snaptrude.core.geom.query.vertex.getPosition(brep, a)
|
|
65
|
+
* const end = await snaptrude.core.geom.query.vertex.getPosition(brep, b)
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
public abstract listVertices(edge: EdgeHandle): PluginApiReturn<VertexHandle[]>
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Get the underlying curve geometry of an edge (a line, arc or spline).
|
|
73
|
+
* @param edge The edge to query
|
|
74
|
+
* @returns The curve as a {@linkcode CurveHandle} (`line_`, `arc_` or `spline_`), or `null` if it is a circle or unset
|
|
75
|
+
*
|
|
76
|
+
* # Example
|
|
77
|
+
* ```ts
|
|
78
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
79
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
80
|
+
* if (brep) {
|
|
81
|
+
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
82
|
+
* const curve = await snaptrude.core.geom.query.edge.getCurve(edge)
|
|
83
|
+
* if (curve) {
|
|
84
|
+
* const length = await snaptrude.core.geom.query.curve.getLength(curve)
|
|
85
|
+
* }
|
|
86
|
+
* }
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
public abstract getCurve(edge: EdgeHandle): PluginApiReturn<CurveHandle | null>
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* List the faces bordering an edge (one or two).
|
|
93
|
+
* @param edge The edge to query
|
|
94
|
+
* @returns The bordering faces as {@linkcode FaceHandle}`[]`
|
|
95
|
+
*
|
|
96
|
+
* # Example
|
|
97
|
+
* ```ts
|
|
98
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
99
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
100
|
+
* if (brep) {
|
|
101
|
+
* const [edge] = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
102
|
+
* const faces = await snaptrude.core.geom.query.edge.listFaces(edge)
|
|
103
|
+
* console.log(faces.length === 1 ? "boundary edge" : "interior edge")
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
public abstract listFaces(edge: EdgeHandle): PluginApiReturn<FaceHandle[]>
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const edgeArg = z.object({ edge: EdgeHandle })
|
|
111
|
+
|
|
112
|
+
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.getIndex}. `{ edge: EdgeHandle }` */
|
|
113
|
+
export const PluginGeomQueryEdgeGetIndexArgs = edgeArg
|
|
114
|
+
export type PluginGeomQueryEdgeGetIndexArgs = z.infer<typeof PluginGeomQueryEdgeGetIndexArgs>
|
|
115
|
+
|
|
116
|
+
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.getHalfEdge}. `{ edge: EdgeHandle }` */
|
|
117
|
+
export const PluginGeomQueryEdgeGetHalfEdgeArgs = edgeArg
|
|
118
|
+
export type PluginGeomQueryEdgeGetHalfEdgeArgs = z.infer<typeof PluginGeomQueryEdgeGetHalfEdgeArgs>
|
|
119
|
+
|
|
120
|
+
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.listVertices}. `{ edge: EdgeHandle }` */
|
|
121
|
+
export const PluginGeomQueryEdgeListVerticesArgs = edgeArg
|
|
122
|
+
export type PluginGeomQueryEdgeListVerticesArgs = z.infer<typeof PluginGeomQueryEdgeListVerticesArgs>
|
|
123
|
+
|
|
124
|
+
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.getCurve}. `{ edge: EdgeHandle }` */
|
|
125
|
+
export const PluginGeomQueryEdgeGetCurveArgs = edgeArg
|
|
126
|
+
export type PluginGeomQueryEdgeGetCurveArgs = z.infer<typeof PluginGeomQueryEdgeGetCurveArgs>
|
|
127
|
+
|
|
128
|
+
/** Arguments for {@linkcode PluginGeomQueryEdgeApi.listFaces}. `{ edge: EdgeHandle }` */
|
|
129
|
+
export const PluginGeomQueryEdgeListFacesArgs = edgeArg
|
|
130
|
+
export type PluginGeomQueryEdgeListFacesArgs = z.infer<typeof PluginGeomQueryEdgeListFacesArgs>
|