@snaptrude/plugin-core 0.3.0 → 0.6.0
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 +130 -48
- package/CHANGELOG.md +163 -0
- package/api-manifest.full.json +5600 -0
- package/api-manifest.json +5502 -0
- package/dist/api/analysis/heatmaps.d.ts +234 -0
- package/dist/api/analysis/heatmaps.d.ts.map +1 -0
- package/dist/api/analysis/illuminance.d.ts +145 -0
- package/dist/api/analysis/illuminance.d.ts.map +1 -0
- package/dist/api/analysis/index.d.ts +44 -0
- package/dist/api/analysis/index.d.ts.map +1 -0
- package/dist/api/analysis/shadows.d.ts +165 -0
- package/dist/api/analysis/shadows.d.ts.map +1 -0
- package/dist/api/analysis/sunlightHours.d.ts +208 -0
- package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
- package/dist/api/analysis/sunpath.d.ts +80 -0
- package/dist/api/analysis/sunpath.d.ts.map +1 -0
- package/dist/api/core/buildings.d.ts +427 -0
- package/dist/api/core/buildings.d.ts.map +1 -0
- package/dist/api/core/comment/index.d.ts +230 -0
- package/dist/api/core/comment/index.d.ts.map +1 -0
- package/dist/api/core/geom/create/index.d.ts +247 -0
- package/dist/api/core/geom/create/index.d.ts.map +1 -0
- package/dist/api/core/geom/delete/index.d.ts +72 -0
- package/dist/api/core/geom/delete/index.d.ts.map +1 -0
- package/dist/api/core/geom/index.d.ts +24 -23
- package/dist/api/core/geom/index.d.ts.map +1 -1
- package/dist/api/core/geom/query/arc.d.ts +169 -0
- package/dist/api/core/geom/query/arc.d.ts.map +1 -0
- package/dist/api/core/geom/query/brep.d.ts +402 -0
- package/dist/api/core/geom/query/brep.d.ts.map +1 -0
- package/dist/api/core/geom/query/circle.d.ts +378 -0
- package/dist/api/core/geom/query/circle.d.ts.map +1 -0
- package/dist/api/core/geom/query/contour.d.ts +450 -0
- package/dist/api/core/geom/query/contour.d.ts.map +1 -0
- package/dist/api/core/geom/query/curve.d.ts +918 -0
- package/dist/api/core/geom/query/curve.d.ts.map +1 -0
- package/dist/api/core/geom/query/edge.d.ts +128 -0
- package/dist/api/core/geom/query/edge.d.ts.map +1 -0
- package/dist/api/core/geom/query/face.d.ts +363 -0
- package/dist/api/core/geom/query/face.d.ts.map +1 -0
- package/dist/api/core/geom/query/halfedge.d.ts +206 -0
- package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
- package/dist/api/core/geom/query/index.d.ts +61 -0
- package/dist/api/core/geom/query/index.d.ts.map +1 -0
- package/dist/api/core/geom/query/profile.d.ts +410 -0
- package/dist/api/core/geom/query/profile.d.ts.map +1 -0
- package/dist/api/core/geom/query/vertex.d.ts +187 -0
- package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
- package/dist/api/core/geom/update/contour.d.ts +272 -0
- package/dist/api/core/geom/update/contour.d.ts.map +1 -0
- package/dist/api/core/geom/update/curve.d.ts +180 -0
- package/dist/api/core/geom/update/curve.d.ts.map +1 -0
- package/dist/api/core/geom/update/index.d.ts +27 -0
- package/dist/api/core/geom/update/index.d.ts.map +1 -0
- package/dist/api/core/geom/update/profile.d.ts +329 -0
- package/dist/api/core/geom/update/profile.d.ts.map +1 -0
- package/dist/api/core/groups.d.ts +485 -0
- package/dist/api/core/groups.d.ts.map +1 -0
- package/dist/api/core/history/index.d.ts +78 -0
- package/dist/api/core/history/index.d.ts.map +1 -0
- package/dist/api/core/index.d.ts +51 -1
- package/dist/api/core/index.d.ts.map +1 -1
- package/dist/api/core/io/import/index.d.ts +392 -0
- package/dist/api/core/io/import/index.d.ts.map +1 -0
- package/dist/api/core/io/index.d.ts +35 -0
- package/dist/api/core/io/index.d.ts.map +1 -0
- package/dist/api/core/io/job/index.d.ts +139 -0
- package/dist/api/core/io/job/index.d.ts.map +1 -0
- package/dist/api/core/io/query/index.d.ts +74 -0
- package/dist/api/core/io/query/index.d.ts.map +1 -0
- package/dist/api/core/io/terrain/index.d.ts +206 -0
- package/dist/api/core/io/terrain/index.d.ts.map +1 -0
- package/dist/api/core/io/underlay/index.d.ts +286 -0
- package/dist/api/core/io/underlay/index.d.ts.map +1 -0
- package/dist/api/core/layers.d.ts +402 -0
- package/dist/api/core/layers.d.ts.map +1 -0
- package/dist/api/core/math/quat.d.ts +111 -128
- package/dist/api/core/math/quat.d.ts.map +1 -1
- package/dist/api/core/math/vec3.d.ts +120 -102
- package/dist/api/core/math/vec3.d.ts.map +1 -1
- package/dist/api/core/project/index.d.ts +399 -0
- package/dist/api/core/project/index.d.ts.map +1 -0
- package/dist/api/core/tags.d.ts +755 -0
- package/dist/api/core/tags.d.ts.map +1 -0
- package/dist/api/core/units/index.d.ts +175 -0
- package/dist/api/core/units/index.d.ts.map +1 -0
- package/dist/api/core/zoom/index.d.ts +45 -0
- package/dist/api/core/zoom/index.d.ts.map +1 -0
- package/dist/api/design/boolean/index.d.ts +168 -0
- package/dist/api/design/boolean/index.d.ts.map +1 -0
- package/dist/api/design/create/index.d.ts +837 -0
- package/dist/api/design/create/index.d.ts.map +1 -0
- package/dist/api/design/delete/index.d.ts +63 -0
- package/dist/api/design/delete/index.d.ts.map +1 -0
- package/dist/api/design/doors/index.d.ts +268 -0
- package/dist/api/design/doors/index.d.ts.map +1 -0
- package/dist/api/design/edit/index.d.ts +49 -0
- package/dist/api/design/edit/index.d.ts.map +1 -0
- package/dist/api/design/erase/index.d.ts +160 -0
- package/dist/api/design/erase/index.d.ts.map +1 -0
- package/dist/api/design/furniture/index.d.ts +123 -0
- package/dist/api/design/furniture/index.d.ts.map +1 -0
- package/dist/api/design/index.d.ts +153 -0
- package/dist/api/design/index.d.ts.map +1 -0
- package/dist/api/design/lock.d.ts +41 -0
- package/dist/api/design/lock.d.ts.map +1 -0
- package/dist/api/design/materials/index.d.ts +297 -0
- package/dist/api/design/materials/index.d.ts.map +1 -0
- package/dist/api/design/query/geometry/index.d.ts +140 -0
- package/dist/api/design/query/geometry/index.d.ts.map +1 -0
- package/dist/api/design/query/index.d.ts +1011 -0
- package/dist/api/design/query/index.d.ts.map +1 -0
- package/dist/api/design/query/spaces.d.ts +221 -0
- package/dist/api/design/query/spaces.d.ts.map +1 -0
- package/dist/api/design/selection/index.d.ts +282 -0
- package/dist/api/design/selection/index.d.ts.map +1 -0
- package/dist/api/design/shared.d.ts +38 -0
- package/dist/api/design/shared.d.ts.map +1 -0
- package/dist/api/design/transform/index.d.ts +87 -0
- package/dist/api/design/transform/index.d.ts.map +1 -0
- package/dist/api/design/update/index.d.ts +178 -0
- package/dist/api/design/update/index.d.ts.map +1 -0
- package/dist/api/design/windows/index.d.ts +189 -0
- package/dist/api/design/windows/index.d.ts.map +1 -0
- package/dist/api/entity/buildableEnvelope.d.ts +261 -0
- package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
- package/dist/api/entity/department.d.ts +0 -98
- package/dist/api/entity/department.d.ts.map +1 -1
- package/dist/api/entity/index.d.ts +9 -9
- package/dist/api/entity/index.d.ts.map +1 -1
- package/dist/api/entity/referenceLine.d.ts +49 -106
- package/dist/api/entity/referenceLine.d.ts.map +1 -1
- package/dist/api/entity/space.d.ts +484 -251
- package/dist/api/entity/space.d.ts.map +1 -1
- package/dist/api/entity/story.d.ts +49 -39
- package/dist/api/entity/story.d.ts.map +1 -1
- package/dist/api/index.d.ts +22 -12
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/presentation/aiInspiration.d.ts +440 -0
- package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
- package/dist/api/presentation/diagrams.d.ts +81 -0
- package/dist/api/presentation/diagrams.d.ts.map +1 -0
- package/dist/api/presentation/import.d.ts +113 -0
- package/dist/api/presentation/import.d.ts.map +1 -0
- package/dist/api/presentation/index.d.ts +46 -0
- package/dist/api/presentation/index.d.ts.map +1 -0
- package/dist/api/presentation/sheets.d.ts +176 -0
- package/dist/api/presentation/sheets.d.ts.map +1 -0
- package/dist/api/presentation/views.d.ts +296 -0
- package/dist/api/presentation/views.d.ts.map +1 -0
- package/dist/api/program/adjacency.d.ts +155 -0
- package/dist/api/program/adjacency.d.ts.map +1 -0
- package/dist/api/program/areas.d.ts +360 -0
- package/dist/api/program/areas.d.ts.map +1 -0
- package/dist/api/program/classification.d.ts +135 -0
- package/dist/api/program/classification.d.ts.map +1 -0
- package/dist/api/program/cores.d.ts +174 -0
- package/dist/api/program/cores.d.ts.map +1 -0
- package/dist/api/program/departments.d.ts +431 -0
- package/dist/api/program/departments.d.ts.map +1 -0
- package/dist/api/program/index.d.ts +69 -0
- package/dist/api/program/index.d.ts.map +1 -0
- package/dist/api/program/layout.d.ts +63 -0
- package/dist/api/program/layout.d.ts.map +1 -0
- package/dist/api/program/metrics.d.ts +108 -0
- package/dist/api/program/metrics.d.ts.map +1 -0
- package/dist/api/program/site.d.ts +451 -0
- package/dist/api/program/site.d.ts.map +1 -0
- package/dist/api/program/spreadsheet.d.ts +2041 -0
- package/dist/api/program/spreadsheet.d.ts.map +1 -0
- package/dist/handles.d.ts +171 -0
- package/dist/handles.d.ts.map +1 -0
- package/dist/host-utils.d.ts +7 -5
- package/dist/host-utils.d.ts.map +1 -1
- package/dist/index.cjs +4344 -899
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3682 -865
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
- package/scripts/generate-manifest.mjs +193 -0
- package/scripts/generate-manifest.test.mjs +215 -0
- package/src/api/analysis/heatmaps.ts +256 -0
- package/src/api/analysis/illuminance.ts +155 -0
- package/src/api/analysis/index.ts +46 -0
- package/src/api/analysis/shadows.ts +183 -0
- package/src/api/analysis/sunlightHours.ts +211 -0
- package/src/api/analysis/sunpath.ts +83 -0
- package/src/api/core/buildings.ts +485 -0
- package/src/api/core/comment/index.ts +258 -0
- package/src/api/core/geom/create/index.ts +293 -0
- package/src/api/core/geom/delete/index.ts +78 -0
- package/src/api/core/geom/index.ts +24 -23
- package/src/api/core/geom/query/arc.ts +169 -0
- package/src/api/core/geom/query/brep.ts +444 -0
- package/src/api/core/geom/query/circle.ts +404 -0
- package/src/api/core/geom/query/contour.ts +540 -0
- package/src/api/core/geom/query/curve.ts +1078 -0
- package/src/api/core/geom/query/edge.ts +130 -0
- package/src/api/core/geom/query/face.ts +403 -0
- package/src/api/core/geom/query/halfedge.ts +210 -0
- package/src/api/core/geom/query/index.ts +63 -0
- package/src/api/core/geom/query/profile.ts +473 -0
- package/src/api/core/geom/query/vertex.ts +205 -0
- package/src/api/core/geom/update/contour.ts +315 -0
- package/src/api/core/geom/update/curve.ts +209 -0
- package/src/api/core/geom/update/index.ts +29 -0
- package/src/api/core/geom/update/profile.ts +377 -0
- package/src/api/core/groups.ts +521 -0
- package/src/api/core/history/index.ts +84 -0
- package/src/api/core/index.ts +51 -1
- package/src/api/core/io/import/index.ts +432 -0
- package/src/api/core/io/index.ts +37 -0
- package/src/api/core/io/job/index.ts +140 -0
- package/src/api/core/io/query/index.ts +71 -0
- package/src/api/core/io/terrain/index.ts +214 -0
- package/src/api/core/io/underlay/index.ts +295 -0
- package/src/api/core/layers.ts +333 -0
- package/src/api/core/math/quat.ts +112 -235
- package/src/api/core/math/vec3.ts +124 -159
- package/src/api/core/project/index.ts +418 -0
- package/src/api/core/tags.ts +808 -0
- package/src/api/core/units/index.ts +164 -0
- package/src/api/core/zoom/index.ts +47 -0
- package/src/api/design/boolean/index.ts +179 -0
- package/src/api/design/create/index.ts +895 -0
- package/src/api/design/delete/index.ts +67 -0
- package/src/api/design/doors/index.ts +285 -0
- package/src/api/design/edit/index.ts +54 -0
- package/src/api/design/erase/index.ts +151 -0
- package/src/api/design/furniture/index.ts +130 -0
- package/src/api/design/index.ts +162 -0
- package/src/api/design/lock.ts +42 -0
- package/src/api/design/materials/index.ts +301 -0
- package/src/api/design/query/geometry/index.ts +166 -0
- package/src/api/design/query/index.ts +937 -0
- package/src/api/design/query/spaces.ts +132 -0
- package/src/api/design/selection/index.ts +273 -0
- package/src/api/design/shared.ts +40 -0
- package/src/api/design/transform/index.ts +93 -0
- package/src/api/design/update/index.ts +117 -0
- package/src/api/design/windows/index.ts +207 -0
- package/src/api/entity/buildableEnvelope.ts +318 -0
- package/src/api/entity/department.ts +0 -113
- package/src/api/entity/index.ts +9 -9
- package/src/api/entity/referenceLine.ts +50 -38
- package/src/api/entity/space.ts +285 -226
- package/src/api/entity/story.ts +53 -42
- package/src/api/index.ts +22 -12
- package/src/api/presentation/aiInspiration.ts +362 -0
- package/src/api/presentation/diagrams.ts +84 -0
- package/src/api/presentation/import.ts +112 -0
- package/src/api/presentation/index.ts +48 -0
- package/src/api/presentation/sheets.ts +198 -0
- package/src/api/presentation/views.ts +303 -0
- package/src/api/program/adjacency.ts +164 -0
- package/src/api/program/areas.ts +335 -0
- package/src/api/program/classification.ts +138 -0
- package/src/api/program/cores.ts +171 -0
- package/src/api/program/departments.ts +465 -0
- package/src/api/program/index.ts +71 -0
- package/src/api/program/layout.ts +68 -0
- package/src/api/program/metrics.ts +120 -0
- package/src/api/program/site.ts +419 -0
- package/src/api/program/spreadsheet.ts +2075 -0
- package/src/handles.ts +194 -0
- package/src/host-utils.ts +10 -6
- package/src/index.ts +1 -0
- package/dist/api/core/geom/arc.d.ts +0 -81
- package/dist/api/core/geom/arc.d.ts.map +0 -1
- package/dist/api/core/geom/curve.d.ts +0 -70
- package/dist/api/core/geom/curve.d.ts.map +0 -1
- package/dist/api/core/geom/line.d.ts +0 -56
- package/dist/api/core/geom/line.d.ts.map +0 -1
- package/dist/api/core/geom/profile.d.ts +0 -121
- package/dist/api/core/geom/profile.d.ts.map +0 -1
- package/dist/api/tools/copy.d.ts +0 -59
- package/dist/api/tools/copy.d.ts.map +0 -1
- package/dist/api/tools/index.d.ts +0 -33
- package/dist/api/tools/index.d.ts.map +0 -1
- package/dist/api/tools/material.d.ts +0 -51
- package/dist/api/tools/material.d.ts.map +0 -1
- package/dist/api/tools/offset.d.ts +0 -43
- package/dist/api/tools/offset.d.ts.map +0 -1
- package/dist/api/tools/selection.d.ts +0 -48
- package/dist/api/tools/selection.d.ts.map +0 -1
- package/dist/api/tools/transform.d.ts +0 -114
- package/dist/api/tools/transform.d.ts.map +0 -1
- package/dist/api/units/index.d.ts +0 -163
- package/dist/api/units/index.d.ts.map +0 -1
- package/src/api/core/geom/arc.ts +0 -70
- package/src/api/core/geom/curve.ts +0 -41
- package/src/api/core/geom/line.ts +0 -53
- package/src/api/core/geom/profile.ts +0 -94
- package/src/api/tools/copy.ts +0 -55
- package/src/api/tools/index.ts +0 -39
- package/src/api/tools/material.ts +0 -49
- package/src/api/tools/offset.ts +0 -43
- package/src/api/tools/selection.ts +0 -51
- package/src/api/tools/transform.ts +0 -117
- package/src/api/units/index.ts +0 -163
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import * as z from "zod"
|
|
2
|
+
import { PluginApiReturn } from "../../../../types"
|
|
3
|
+
import { ArcHandle, Vec3Components } from "../../../../handles"
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Arc-specific geometry queries — read circular-arc properties as plain values.
|
|
7
|
+
*
|
|
8
|
+
* Every method takes an opaque {@linkcode ArcHandle} and returns plain values
|
|
9
|
+
* (numbers or {@linkcode Vec3Components}), never a handle. Use these to inspect
|
|
10
|
+
* the radius, centre, axis, sweep angle, and validity of an arc handle obtained
|
|
11
|
+
* from {@linkcode PluginGeomCreateApi.arc} or another query.
|
|
12
|
+
*
|
|
13
|
+
* Accessed via `snaptrude.core.geom.query.arc`.
|
|
14
|
+
*/
|
|
15
|
+
export abstract class PluginGeomQueryArcApi {
|
|
16
|
+
constructor() {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Read the radius of an arc.
|
|
20
|
+
*
|
|
21
|
+
* @param arc The arc to query
|
|
22
|
+
* @returns The arc radius as a `number`
|
|
23
|
+
*
|
|
24
|
+
* @examplePrompt What is the radius of this curved wall segment?
|
|
25
|
+
* @examplePrompt Measure the radius of the selected arc
|
|
26
|
+
*
|
|
27
|
+
* # Example
|
|
28
|
+
* ```ts
|
|
29
|
+
* const start = await snaptrude.core.math.vec3.new(5, 0, 0)
|
|
30
|
+
* const end = await snaptrude.core.math.vec3.new(0, 0, 5)
|
|
31
|
+
* const origin = await snaptrude.core.math.vec3.new(0, 0, 0)
|
|
32
|
+
* const up = await snaptrude.core.math.vec3.new(0, 1, 0)
|
|
33
|
+
* const arc = await snaptrude.core.geom.create.arc(start, end, origin, up)
|
|
34
|
+
* const radius = await snaptrude.core.geom.query.arc.getRadius(arc)
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
public abstract getRadius(arc: ArcHandle): PluginApiReturn<number>
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Read the centre point of an arc.
|
|
41
|
+
*
|
|
42
|
+
* @param arc The arc to query
|
|
43
|
+
* @returns The arc centre as {@linkcode Vec3Components}
|
|
44
|
+
*
|
|
45
|
+
* @examplePrompt Where is the centre of this arc?
|
|
46
|
+
* @examplePrompt Find the center point of the curved wall
|
|
47
|
+
*
|
|
48
|
+
* # Example
|
|
49
|
+
* ```ts
|
|
50
|
+
* const start = await snaptrude.core.math.vec3.new(5, 0, 0)
|
|
51
|
+
* const end = await snaptrude.core.math.vec3.new(0, 0, 5)
|
|
52
|
+
* const origin = await snaptrude.core.math.vec3.new(0, 0, 0)
|
|
53
|
+
* const up = await snaptrude.core.math.vec3.new(0, 1, 0)
|
|
54
|
+
* const arc = await snaptrude.core.geom.create.arc(start, end, origin, up)
|
|
55
|
+
* const centre = await snaptrude.core.geom.query.arc.getCentre(arc)
|
|
56
|
+
* console.log(centre.x, centre.y, centre.z)
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
public abstract getCentre(arc: ArcHandle): PluginApiReturn<Vec3Components>
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Read the rotation axis of an arc.
|
|
63
|
+
*
|
|
64
|
+
* @param arc The arc to query
|
|
65
|
+
* @returns The arc axis as {@linkcode Vec3Components}
|
|
66
|
+
*
|
|
67
|
+
* # Example
|
|
68
|
+
* ```ts
|
|
69
|
+
* const start = await snaptrude.core.math.vec3.new(5, 0, 0)
|
|
70
|
+
* const end = await snaptrude.core.math.vec3.new(0, 0, 5)
|
|
71
|
+
* const origin = await snaptrude.core.math.vec3.new(0, 0, 0)
|
|
72
|
+
* const up = await snaptrude.core.math.vec3.new(0, 1, 0)
|
|
73
|
+
* const arc = await snaptrude.core.geom.create.arc(start, end, origin, up)
|
|
74
|
+
* const axis = await snaptrude.core.geom.query.arc.getAxis(arc)
|
|
75
|
+
* console.log(axis.x, axis.y, axis.z)
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
public abstract getAxis(arc: ArcHandle): PluginApiReturn<Vec3Components>
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Read the sweep angle of an arc (the angle subtended at its centre).
|
|
82
|
+
*
|
|
83
|
+
* @param arc The arc to query
|
|
84
|
+
* @returns The sweep angle in radians as a `number`
|
|
85
|
+
*
|
|
86
|
+
* @examplePrompt What angle does this arc sweep through?
|
|
87
|
+
* @examplePrompt How many degrees does this curved wall turn?
|
|
88
|
+
*
|
|
89
|
+
* # Example
|
|
90
|
+
* ```ts
|
|
91
|
+
* const start = await snaptrude.core.math.vec3.new(5, 0, 0)
|
|
92
|
+
* const end = await snaptrude.core.math.vec3.new(0, 0, 5)
|
|
93
|
+
* const origin = await snaptrude.core.math.vec3.new(0, 0, 0)
|
|
94
|
+
* const up = await snaptrude.core.math.vec3.new(0, 1, 0)
|
|
95
|
+
* const arc = await snaptrude.core.geom.create.arc(start, end, origin, up)
|
|
96
|
+
* const sweep = await snaptrude.core.geom.query.arc.getSweepAngle(arc)
|
|
97
|
+
* console.log("degrees:", (sweep * 180) / Math.PI)
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
public abstract getSweepAngle(arc: ArcHandle): PluginApiReturn<number>
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Check whether an arc is geometrically valid.
|
|
104
|
+
*
|
|
105
|
+
* @param arc The arc to query
|
|
106
|
+
* @returns `true` if the arc is valid as a `boolean`
|
|
107
|
+
*
|
|
108
|
+
* # Example
|
|
109
|
+
* ```ts
|
|
110
|
+
* const start = await snaptrude.core.math.vec3.new(5, 0, 0)
|
|
111
|
+
* const end = await snaptrude.core.math.vec3.new(0, 0, 5)
|
|
112
|
+
* const origin = await snaptrude.core.math.vec3.new(0, 0, 0)
|
|
113
|
+
* const up = await snaptrude.core.math.vec3.new(0, 1, 0)
|
|
114
|
+
* const arc = await snaptrude.core.geom.create.arc(start, end, origin, up)
|
|
115
|
+
* const ok = await snaptrude.core.geom.query.arc.isValid(arc)
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
public abstract isValid(arc: ArcHandle): PluginApiReturn<boolean>
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Arguments for {@linkcode PluginGeomQueryArcApi.getRadius}.
|
|
123
|
+
*
|
|
124
|
+
* | Property | Type | Description |
|
|
125
|
+
* |---|---|---|
|
|
126
|
+
* | `arc` | {@linkcode ArcHandle} | The arc to query |
|
|
127
|
+
*/
|
|
128
|
+
export const PluginGeomQueryArcGetRadiusArgs = z.object({ arc: ArcHandle })
|
|
129
|
+
export type PluginGeomQueryArcGetRadiusArgs = z.infer<typeof PluginGeomQueryArcGetRadiusArgs>
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Arguments for {@linkcode PluginGeomQueryArcApi.getCentre}.
|
|
133
|
+
*
|
|
134
|
+
* | Property | Type | Description |
|
|
135
|
+
* |---|---|---|
|
|
136
|
+
* | `arc` | {@linkcode ArcHandle} | The arc to query |
|
|
137
|
+
*/
|
|
138
|
+
export const PluginGeomQueryArcGetCentreArgs = z.object({ arc: ArcHandle })
|
|
139
|
+
export type PluginGeomQueryArcGetCentreArgs = z.infer<typeof PluginGeomQueryArcGetCentreArgs>
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Arguments for {@linkcode PluginGeomQueryArcApi.getAxis}.
|
|
143
|
+
*
|
|
144
|
+
* | Property | Type | Description |
|
|
145
|
+
* |---|---|---|
|
|
146
|
+
* | `arc` | {@linkcode ArcHandle} | The arc to query |
|
|
147
|
+
*/
|
|
148
|
+
export const PluginGeomQueryArcGetAxisArgs = z.object({ arc: ArcHandle })
|
|
149
|
+
export type PluginGeomQueryArcGetAxisArgs = z.infer<typeof PluginGeomQueryArcGetAxisArgs>
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Arguments for {@linkcode PluginGeomQueryArcApi.getSweepAngle}.
|
|
153
|
+
*
|
|
154
|
+
* | Property | Type | Description |
|
|
155
|
+
* |---|---|---|
|
|
156
|
+
* | `arc` | {@linkcode ArcHandle} | The arc to query |
|
|
157
|
+
*/
|
|
158
|
+
export const PluginGeomQueryArcGetSweepAngleArgs = z.object({ arc: ArcHandle })
|
|
159
|
+
export type PluginGeomQueryArcGetSweepAngleArgs = z.infer<typeof PluginGeomQueryArcGetSweepAngleArgs>
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Arguments for {@linkcode PluginGeomQueryArcApi.isValid}.
|
|
163
|
+
*
|
|
164
|
+
* | Property | Type | Description |
|
|
165
|
+
* |---|---|---|
|
|
166
|
+
* | `arc` | {@linkcode ArcHandle} | The arc to query |
|
|
167
|
+
*/
|
|
168
|
+
export const PluginGeomQueryArcIsValidArgs = z.object({ arc: ArcHandle })
|
|
169
|
+
export type PluginGeomQueryArcIsValidArgs = z.infer<typeof PluginGeomQueryArcIsValidArgs>
|
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
import * as z from "zod"
|
|
2
|
+
import { PluginApiReturn } from "../../../../types"
|
|
3
|
+
import {
|
|
4
|
+
BrepHandle,
|
|
5
|
+
FaceHandle,
|
|
6
|
+
EdgeHandle,
|
|
7
|
+
VertexHandle,
|
|
8
|
+
HalfEdgeHandle,
|
|
9
|
+
Vec3Components,
|
|
10
|
+
BBoxComponents,
|
|
11
|
+
} from "../../../../handles"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* BREP queries — read the topology and geometry of a boundary-representation mesh
|
|
15
|
+
* as plain values / child handles (all-handle model, §11). A {@linkcode BrepHandle}
|
|
16
|
+
* is a session-ephemeral resource handle obtained from `design.query.geometry.getBrep`;
|
|
17
|
+
* it goes stale on undo/redo/re-topologize.
|
|
18
|
+
*
|
|
19
|
+
* Enumerations mint fresh child topology handles ({@linkcode FaceHandle},
|
|
20
|
+
* {@linkcode EdgeHandle}, {@linkcode VertexHandle}, {@linkcode HalfEdgeHandle}); the
|
|
21
|
+
* registry dedupes by identity, so re-enumeration returns the same handles. Position
|
|
22
|
+
* reads return {@linkcode Vec3Components}. No query mutates its inputs.
|
|
23
|
+
*
|
|
24
|
+
* Accessed via `snaptrude.core.geom.query.brep`.
|
|
25
|
+
*/
|
|
26
|
+
export abstract class PluginGeomQueryBrepApi {
|
|
27
|
+
constructor() {}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* List the faces of a brep.
|
|
31
|
+
* @param brep The brep to query
|
|
32
|
+
* @returns The faces as {@linkcode FaceHandle}`[]`
|
|
33
|
+
*
|
|
34
|
+
* # Example
|
|
35
|
+
* ```ts
|
|
36
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
37
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
38
|
+
* if (brep) {
|
|
39
|
+
* const faces = await snaptrude.core.geom.query.brep.listFaces(brep)
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
public abstract listFaces(brep: BrepHandle): PluginApiReturn<FaceHandle[]>
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* List the edges of a brep.
|
|
47
|
+
* @param brep The brep to query
|
|
48
|
+
* @returns The edges as {@linkcode EdgeHandle}`[]`
|
|
49
|
+
*
|
|
50
|
+
* # Example
|
|
51
|
+
* ```ts
|
|
52
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
53
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
54
|
+
* if (brep) {
|
|
55
|
+
* const edges = await snaptrude.core.geom.query.brep.listEdges(brep)
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
public abstract listEdges(brep: BrepHandle): PluginApiReturn<EdgeHandle[]>
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* List the vertices of a brep.
|
|
63
|
+
* @param brep The brep to query
|
|
64
|
+
* @returns The vertices as {@linkcode VertexHandle}`[]`
|
|
65
|
+
*
|
|
66
|
+
* # Example
|
|
67
|
+
* ```ts
|
|
68
|
+
* const [mass] = await snaptrude.design.query.listMasses()
|
|
69
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(mass)
|
|
70
|
+
* if (brep) {
|
|
71
|
+
* const vertices = await snaptrude.core.geom.query.brep.listVertices(brep)
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
public abstract listVertices(brep: BrepHandle): PluginApiReturn<VertexHandle[]>
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* List the half-edges of a brep.
|
|
79
|
+
* @param brep The brep to query
|
|
80
|
+
* @returns The half-edges as {@linkcode HalfEdgeHandle}`[]`
|
|
81
|
+
*
|
|
82
|
+
* # Example
|
|
83
|
+
* ```ts
|
|
84
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
85
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
86
|
+
* if (brep) {
|
|
87
|
+
* const halfEdges = await snaptrude.core.geom.query.brep.listHalfEdges(brep)
|
|
88
|
+
* }
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
public abstract listHalfEdges(brep: BrepHandle): PluginApiReturn<HalfEdgeHandle[]>
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Get the edge connecting two vertices (by their brep vertex indices).
|
|
95
|
+
* @param brep The brep to query
|
|
96
|
+
* @param vertexIndexA First vertex index
|
|
97
|
+
* @param vertexIndexB Second vertex index
|
|
98
|
+
* @returns The edge as an {@linkcode EdgeHandle}, or `null` if no such edge exists
|
|
99
|
+
*
|
|
100
|
+
* # Example
|
|
101
|
+
* ```ts
|
|
102
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
103
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
104
|
+
* if (brep) {
|
|
105
|
+
* const [va, vb] = await snaptrude.core.geom.query.brep.listVertices(brep)
|
|
106
|
+
* const ia = await snaptrude.core.geom.query.vertex.getIndex(va)
|
|
107
|
+
* const ib = await snaptrude.core.geom.query.vertex.getIndex(vb)
|
|
108
|
+
* const edge = await snaptrude.core.geom.query.brep.getEdge(brep, ia, ib)
|
|
109
|
+
* if (edge) console.log("those two vertices are connected")
|
|
110
|
+
* }
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
public abstract getEdge(
|
|
114
|
+
brep: BrepHandle,
|
|
115
|
+
vertexIndexA: number,
|
|
116
|
+
vertexIndexB: number
|
|
117
|
+
): PluginApiReturn<EdgeHandle | null>
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Test whether an edge connects two vertices (by their brep vertex indices).
|
|
121
|
+
* @param brep The brep to query
|
|
122
|
+
* @param vertexIndexA First vertex index
|
|
123
|
+
* @param vertexIndexB Second vertex index
|
|
124
|
+
* @returns `true` if such an edge exists, otherwise `false`
|
|
125
|
+
*
|
|
126
|
+
* # Example
|
|
127
|
+
* ```ts
|
|
128
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
129
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
130
|
+
* if (brep) {
|
|
131
|
+
* // brep vertex indices (get one from core.geom.query.vertex.getIndex)
|
|
132
|
+
* const connected = await snaptrude.core.geom.query.brep.hasEdge(brep, 0, 1)
|
|
133
|
+
* }
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
public abstract hasEdge(
|
|
137
|
+
brep: BrepHandle,
|
|
138
|
+
vertexIndexA: number,
|
|
139
|
+
vertexIndexB: number
|
|
140
|
+
): PluginApiReturn<boolean>
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* List every edge connecting two vertices (by their brep vertex indices).
|
|
144
|
+
* @param brep The brep to query
|
|
145
|
+
* @param vertexIndexA First vertex index
|
|
146
|
+
* @param vertexIndexB Second vertex index
|
|
147
|
+
* @returns The edges as {@linkcode EdgeHandle}`[]`
|
|
148
|
+
*
|
|
149
|
+
* # Example
|
|
150
|
+
* ```ts
|
|
151
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
152
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
153
|
+
* if (brep) {
|
|
154
|
+
* // brep vertex indices (get one from core.geom.query.vertex.getIndex)
|
|
155
|
+
* const edges = await snaptrude.core.geom.query.brep.listEdgesBetween(brep, 0, 1)
|
|
156
|
+
* console.log("edges between vertices 0 and 1:", edges.length)
|
|
157
|
+
* }
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
public abstract listEdgesBetween(
|
|
161
|
+
brep: BrepHandle,
|
|
162
|
+
vertexIndexA: number,
|
|
163
|
+
vertexIndexB: number
|
|
164
|
+
): PluginApiReturn<EdgeHandle[]>
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Get the position of a vertex within a brep.
|
|
168
|
+
* @param brep The brep to query
|
|
169
|
+
* @param vertex The vertex whose position to read
|
|
170
|
+
* @returns The position as {@linkcode Vec3Components}
|
|
171
|
+
*
|
|
172
|
+
* # Example
|
|
173
|
+
* ```ts
|
|
174
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
175
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
176
|
+
* if (brep) {
|
|
177
|
+
* const [vertex] = await snaptrude.core.geom.query.brep.listVertices(brep)
|
|
178
|
+
* const { x, y, z } = await snaptrude.core.geom.query.brep.getVertexPosition(brep, vertex)
|
|
179
|
+
* }
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
public abstract getVertexPosition(
|
|
183
|
+
brep: BrepHandle,
|
|
184
|
+
vertex: VertexHandle
|
|
185
|
+
): PluginApiReturn<Vec3Components>
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* List the positions of all vertices in a brep (ordered as {@linkcode PluginGeomQueryBrepApi.listVertices}).
|
|
189
|
+
* @param brep The brep to query
|
|
190
|
+
* @returns The positions as {@linkcode Vec3Components}`[]`
|
|
191
|
+
*
|
|
192
|
+
* @examplePrompt Get the coordinates of every corner of this shape
|
|
193
|
+
* @examplePrompt Give me all the corner points of the selected mass as XYZ coordinates
|
|
194
|
+
*
|
|
195
|
+
* # Example
|
|
196
|
+
* ```ts
|
|
197
|
+
* const [mass] = await snaptrude.design.query.listMasses()
|
|
198
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(mass)
|
|
199
|
+
* if (brep) {
|
|
200
|
+
* const positions = await snaptrude.core.geom.query.brep.listVertexPositions(brep)
|
|
201
|
+
* for (const p of positions) console.log(p.x, p.y, p.z)
|
|
202
|
+
* }
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
public abstract listVertexPositions(brep: BrepHandle): PluginApiReturn<Vec3Components[]>
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Get the centroid (mean of all vertex positions) of a brep.
|
|
209
|
+
* @param brep The brep to query
|
|
210
|
+
* @returns The centroid as {@linkcode Vec3Components}
|
|
211
|
+
*
|
|
212
|
+
* @examplePrompt Find the centre point of this shape
|
|
213
|
+
* @examplePrompt What is the centroid of the selected object?
|
|
214
|
+
*
|
|
215
|
+
* # Example
|
|
216
|
+
* ```ts
|
|
217
|
+
* const [mass] = await snaptrude.design.query.listMasses()
|
|
218
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(mass)
|
|
219
|
+
* if (brep) {
|
|
220
|
+
* const centroid = await snaptrude.core.geom.query.brep.getCentroid(brep)
|
|
221
|
+
* console.log(centroid.x, centroid.y, centroid.z)
|
|
222
|
+
* }
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
public abstract getCentroid(brep: BrepHandle): PluginApiReturn<Vec3Components>
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Get the number of faces in a brep.
|
|
229
|
+
* @param brep The brep to query
|
|
230
|
+
* @returns The face count as a `number`
|
|
231
|
+
*
|
|
232
|
+
* # Example
|
|
233
|
+
* ```ts
|
|
234
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
235
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
236
|
+
* if (brep) {
|
|
237
|
+
* const faceCount = await snaptrude.core.geom.query.brep.getFaceCount(brep)
|
|
238
|
+
* }
|
|
239
|
+
* ```
|
|
240
|
+
*/
|
|
241
|
+
public abstract getFaceCount(brep: BrepHandle): PluginApiReturn<number>
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Get the number of edges in a brep.
|
|
245
|
+
* @param brep The brep to query
|
|
246
|
+
* @returns The edge count as a `number`
|
|
247
|
+
*
|
|
248
|
+
* # Example
|
|
249
|
+
* ```ts
|
|
250
|
+
* const [wall] = await snaptrude.design.query.listWalls()
|
|
251
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(wall)
|
|
252
|
+
* if (brep) {
|
|
253
|
+
* const edgeCount = await snaptrude.core.geom.query.brep.getEdgeCount(brep)
|
|
254
|
+
* }
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
public abstract getEdgeCount(brep: BrepHandle): PluginApiReturn<number>
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Get the number of vertices in a brep.
|
|
261
|
+
* @param brep The brep to query
|
|
262
|
+
* @returns The vertex count as a `number`
|
|
263
|
+
*
|
|
264
|
+
* # Example
|
|
265
|
+
* ```ts
|
|
266
|
+
* const [mass] = await snaptrude.design.query.listMasses()
|
|
267
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(mass)
|
|
268
|
+
* if (brep) {
|
|
269
|
+
* const vertexCount = await snaptrude.core.geom.query.brep.getVertexCount(brep)
|
|
270
|
+
* }
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
public abstract getVertexCount(brep: BrepHandle): PluginApiReturn<number>
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Get the number of half-edges in a brep.
|
|
277
|
+
* @param brep The brep to query
|
|
278
|
+
* @returns The half-edge count as a `number`
|
|
279
|
+
*
|
|
280
|
+
* # Example
|
|
281
|
+
* ```ts
|
|
282
|
+
* const [mass] = await snaptrude.design.query.listMasses()
|
|
283
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(mass)
|
|
284
|
+
* if (brep) {
|
|
285
|
+
* const halfEdgeCount = await snaptrude.core.geom.query.brep.getHalfEdgeCount(brep)
|
|
286
|
+
* }
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
289
|
+
public abstract getHalfEdgeCount(brep: BrepHandle): PluginApiReturn<number>
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Get the axis-aligned bounding box of a brep.
|
|
293
|
+
* @param brep The brep to query
|
|
294
|
+
* @returns The bounding box as {@linkcode BBoxComponents}
|
|
295
|
+
*
|
|
296
|
+
* @examplePrompt What is the bounding box of this shape?
|
|
297
|
+
* @examplePrompt How big is this object overall — give me its min and max extents
|
|
298
|
+
*
|
|
299
|
+
* # Example
|
|
300
|
+
* ```ts
|
|
301
|
+
* const [mass] = await snaptrude.design.query.listMasses()
|
|
302
|
+
* const brep = await snaptrude.design.query.geometry.getBrep(mass)
|
|
303
|
+
* if (brep) {
|
|
304
|
+
* const { min, max } = await snaptrude.core.geom.query.brep.getBoundingBox(brep)
|
|
305
|
+
* console.log("size:", max.x - min.x, max.y - min.y, max.z - min.z)
|
|
306
|
+
* }
|
|
307
|
+
* ```
|
|
308
|
+
*/
|
|
309
|
+
public abstract getBoundingBox(brep: BrepHandle): PluginApiReturn<BBoxComponents>
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Test whether two breps are geometrically equal.
|
|
313
|
+
* @param brepA First brep
|
|
314
|
+
* @param brepB Second brep
|
|
315
|
+
* @returns `true` if the breps are equal, otherwise `false`
|
|
316
|
+
*
|
|
317
|
+
* @examplePrompt Are these two shapes geometrically identical?
|
|
318
|
+
* @examplePrompt Check whether these two objects have the same geometry
|
|
319
|
+
*
|
|
320
|
+
* # Example
|
|
321
|
+
* ```ts
|
|
322
|
+
* const [a, b] = await snaptrude.design.query.listMasses()
|
|
323
|
+
* const brepA = await snaptrude.design.query.geometry.getBrep(a)
|
|
324
|
+
* const brepB = await snaptrude.design.query.geometry.getBrep(b)
|
|
325
|
+
* if (brepA && brepB) {
|
|
326
|
+
* const same = await snaptrude.core.geom.query.brep.isEqual(brepA, brepB)
|
|
327
|
+
* }
|
|
328
|
+
* ```
|
|
329
|
+
*/
|
|
330
|
+
public abstract isEqual(brepA: BrepHandle, brepB: BrepHandle): PluginApiReturn<boolean>
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
const brepArg = z.object({ brep: BrepHandle })
|
|
334
|
+
const brepEdgeArg = z.object({
|
|
335
|
+
brep: BrepHandle,
|
|
336
|
+
vertexIndexA: z.number(),
|
|
337
|
+
vertexIndexB: z.number(),
|
|
338
|
+
})
|
|
339
|
+
|
|
340
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.listFaces}. `{ brep: BrepHandle }` */
|
|
341
|
+
export const PluginGeomQueryBrepListFacesArgs = brepArg
|
|
342
|
+
export type PluginGeomQueryBrepListFacesArgs = z.infer<typeof PluginGeomQueryBrepListFacesArgs>
|
|
343
|
+
|
|
344
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.listEdges}. `{ brep: BrepHandle }` */
|
|
345
|
+
export const PluginGeomQueryBrepListEdgesArgs = brepArg
|
|
346
|
+
export type PluginGeomQueryBrepListEdgesArgs = z.infer<typeof PluginGeomQueryBrepListEdgesArgs>
|
|
347
|
+
|
|
348
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.listVertices}. `{ brep: BrepHandle }` */
|
|
349
|
+
export const PluginGeomQueryBrepListVerticesArgs = brepArg
|
|
350
|
+
export type PluginGeomQueryBrepListVerticesArgs = z.infer<typeof PluginGeomQueryBrepListVerticesArgs>
|
|
351
|
+
|
|
352
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.listHalfEdges}. `{ brep: BrepHandle }` */
|
|
353
|
+
export const PluginGeomQueryBrepListHalfEdgesArgs = brepArg
|
|
354
|
+
export type PluginGeomQueryBrepListHalfEdgesArgs = z.infer<
|
|
355
|
+
typeof PluginGeomQueryBrepListHalfEdgesArgs
|
|
356
|
+
>
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* Arguments for {@linkcode PluginGeomQueryBrepApi.getEdge}.
|
|
360
|
+
*
|
|
361
|
+
* | Property | Type | Description |
|
|
362
|
+
* |---|---|---|
|
|
363
|
+
* | `brep` | {@linkcode BrepHandle} | The brep to query |
|
|
364
|
+
* | `vertexIndexA` | `number` | First vertex index |
|
|
365
|
+
* | `vertexIndexB` | `number` | Second vertex index |
|
|
366
|
+
*/
|
|
367
|
+
export const PluginGeomQueryBrepGetEdgeArgs = brepEdgeArg
|
|
368
|
+
export type PluginGeomQueryBrepGetEdgeArgs = z.infer<typeof PluginGeomQueryBrepGetEdgeArgs>
|
|
369
|
+
|
|
370
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.hasEdge}. `{ brep, vertexIndexA, vertexIndexB }` */
|
|
371
|
+
export const PluginGeomQueryBrepHasEdgeArgs = brepEdgeArg
|
|
372
|
+
export type PluginGeomQueryBrepHasEdgeArgs = z.infer<typeof PluginGeomQueryBrepHasEdgeArgs>
|
|
373
|
+
|
|
374
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.listEdgesBetween}. `{ brep, vertexIndexA, vertexIndexB }` */
|
|
375
|
+
export const PluginGeomQueryBrepListEdgesBetweenArgs = brepEdgeArg
|
|
376
|
+
export type PluginGeomQueryBrepListEdgesBetweenArgs = z.infer<
|
|
377
|
+
typeof PluginGeomQueryBrepListEdgesBetweenArgs
|
|
378
|
+
>
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* Arguments for {@linkcode PluginGeomQueryBrepApi.getVertexPosition}.
|
|
382
|
+
*
|
|
383
|
+
* | Property | Type | Description |
|
|
384
|
+
* |---|---|---|
|
|
385
|
+
* | `brep` | {@linkcode BrepHandle} | The brep to query |
|
|
386
|
+
* | `vertex` | {@linkcode VertexHandle} | The vertex whose position to read |
|
|
387
|
+
*/
|
|
388
|
+
export const PluginGeomQueryBrepGetVertexPositionArgs = z.object({
|
|
389
|
+
brep: BrepHandle,
|
|
390
|
+
vertex: VertexHandle,
|
|
391
|
+
})
|
|
392
|
+
export type PluginGeomQueryBrepGetVertexPositionArgs = z.infer<
|
|
393
|
+
typeof PluginGeomQueryBrepGetVertexPositionArgs
|
|
394
|
+
>
|
|
395
|
+
|
|
396
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.listVertexPositions}. `{ brep: BrepHandle }` */
|
|
397
|
+
export const PluginGeomQueryBrepListVertexPositionsArgs = brepArg
|
|
398
|
+
export type PluginGeomQueryBrepListVertexPositionsArgs = z.infer<
|
|
399
|
+
typeof PluginGeomQueryBrepListVertexPositionsArgs
|
|
400
|
+
>
|
|
401
|
+
|
|
402
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.getCentroid}. `{ brep: BrepHandle }` */
|
|
403
|
+
export const PluginGeomQueryBrepGetCentroidArgs = brepArg
|
|
404
|
+
export type PluginGeomQueryBrepGetCentroidArgs = z.infer<typeof PluginGeomQueryBrepGetCentroidArgs>
|
|
405
|
+
|
|
406
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.getFaceCount}. `{ brep: BrepHandle }` */
|
|
407
|
+
export const PluginGeomQueryBrepGetFaceCountArgs = brepArg
|
|
408
|
+
export type PluginGeomQueryBrepGetFaceCountArgs = z.infer<typeof PluginGeomQueryBrepGetFaceCountArgs>
|
|
409
|
+
|
|
410
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.getEdgeCount}. `{ brep: BrepHandle }` */
|
|
411
|
+
export const PluginGeomQueryBrepGetEdgeCountArgs = brepArg
|
|
412
|
+
export type PluginGeomQueryBrepGetEdgeCountArgs = z.infer<typeof PluginGeomQueryBrepGetEdgeCountArgs>
|
|
413
|
+
|
|
414
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.getVertexCount}. `{ brep: BrepHandle }` */
|
|
415
|
+
export const PluginGeomQueryBrepGetVertexCountArgs = brepArg
|
|
416
|
+
export type PluginGeomQueryBrepGetVertexCountArgs = z.infer<
|
|
417
|
+
typeof PluginGeomQueryBrepGetVertexCountArgs
|
|
418
|
+
>
|
|
419
|
+
|
|
420
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.getHalfEdgeCount}. `{ brep: BrepHandle }` */
|
|
421
|
+
export const PluginGeomQueryBrepGetHalfEdgeCountArgs = brepArg
|
|
422
|
+
export type PluginGeomQueryBrepGetHalfEdgeCountArgs = z.infer<
|
|
423
|
+
typeof PluginGeomQueryBrepGetHalfEdgeCountArgs
|
|
424
|
+
>
|
|
425
|
+
|
|
426
|
+
/** Arguments for {@linkcode PluginGeomQueryBrepApi.getBoundingBox}. `{ brep: BrepHandle }` */
|
|
427
|
+
export const PluginGeomQueryBrepGetBoundingBoxArgs = brepArg
|
|
428
|
+
export type PluginGeomQueryBrepGetBoundingBoxArgs = z.infer<
|
|
429
|
+
typeof PluginGeomQueryBrepGetBoundingBoxArgs
|
|
430
|
+
>
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Arguments for {@linkcode PluginGeomQueryBrepApi.isEqual}.
|
|
434
|
+
*
|
|
435
|
+
* | Property | Type | Description |
|
|
436
|
+
* |---|---|---|
|
|
437
|
+
* | `brepA` | {@linkcode BrepHandle} | First brep |
|
|
438
|
+
* | `brepB` | {@linkcode BrepHandle} | Second brep |
|
|
439
|
+
*/
|
|
440
|
+
export const PluginGeomQueryBrepIsEqualArgs = z.object({
|
|
441
|
+
brepA: BrepHandle,
|
|
442
|
+
brepB: BrepHandle,
|
|
443
|
+
})
|
|
444
|
+
export type PluginGeomQueryBrepIsEqualArgs = z.infer<typeof PluginGeomQueryBrepIsEqualArgs>
|