geospec 0.1.0-beta.9 → 0.4.1-next.322
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/README.md +34 -9
- package/agent/doctrine.md +2 -1
- package/agent/geospec-authoring/SKILL.md +3 -3
- package/agent/geospec-authoring/api-index.md +20 -92
- package/agent/geospec-authoring/api-types.md +85 -480
- package/agent/geospec-authoring/public-api-functions.md +21 -1
- package/agent/geospec-authoring/public-api-index.md +215 -319
- package/agent/geospec-authoring/public-api-types-2.md +480 -352
- package/agent/geospec-authoring/public-api-types-3.md +79 -215
- package/agent/geospec-authoring/public-api-types.md +334 -849
- package/agent/resources.js +12 -13
- package/agent/skills.json +2 -3
- package/dist/assertion-client/client.d.mts +14 -15
- package/dist/assertion-client/client.mjs +1 -1
- package/dist/cli/check.mjs +2 -0
- package/dist/cli/cli.d.mts +5 -5
- package/dist/cli/cli.mjs +20 -3
- package/dist/cli/node-host.d.mts +5 -4
- package/dist/cli/node-host.mjs +1 -1
- package/dist/cli/wire-value.mjs +1 -1
- package/dist/config/define-config.d.mts +2 -3
- package/dist/config/node/index.mjs +1 -1
- package/dist/config/node/load.d.mts +2 -3
- package/dist/config/node/load.mjs +1 -1
- package/dist/config/read-geospec-config.d.mts +10 -6
- package/dist/config/read-geospec-config.mjs +1 -1
- package/dist/config/types.d.mts +6 -7
- package/dist/create-geospec.d.mts +7 -6
- package/dist/engine/client.d.mts +15 -15
- package/dist/engine/client.mjs +1 -1
- package/dist/engine/matchers.d.mts +10 -11
- package/dist/engine/pmi.types.d.mts +11 -12
- package/dist/engine/protocol.d.mts +7 -8
- package/dist/engine/protocol.mjs +1 -1
- package/dist/geometry-unit.d.mts +2 -3
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/mesh/index.d.mts +2 -2
- package/dist/mesh/types.d.mts +8 -505
- package/dist/model/errors.d.mts +2 -3
- package/dist/model/load-model.d.mts +3 -4
- package/dist/model/mesh-evidence-matchers.d.mts +2 -3
- package/dist/model/native-model-loader.d.mts +14 -17
- package/dist/model/native-model-loader.mjs +1 -1
- package/dist/model/node/command-exporter.d.mts +3 -4
- package/dist/model/node/command-exporter.mjs +1 -1
- package/dist/model/node/index.mjs +1 -1
- package/dist/model/region-scope.d.mts +3 -6
- package/dist/model/region-scope.mjs +1 -1
- package/dist/model/subject.d.mts +2 -5
- package/dist/model/subject.mjs +1 -1
- package/dist/model/types.d.mts +19 -20
- package/dist/runner/collector.d.mts +7 -8
- package/dist/runner/collector.mjs +3 -1
- package/dist/runner/discovery.d.mts +10 -11
- package/dist/runner/discovery.mjs +5 -1
- package/dist/runner/filter.d.mts +6 -7
- package/dist/runner/filter.mjs +3 -1
- package/dist/runner/index.d.mts +3 -1
- package/dist/runner/index.mjs +1 -1
- package/dist/runner/native/native-pool-grants.d.mts +2 -3
- package/dist/runner/native/native-serial-runner.d.mts +4 -7
- package/dist/runner/native/native-serial-runner.mjs +1 -1
- package/dist/runner/node/engine.d.mts +5 -6
- package/dist/runner/node/index.mjs +1 -1
- package/dist/runner/node/node-vm-filesystem.d.mts +4 -5
- package/dist/runner/node/node-vm-filesystem.mjs +1 -1
- package/dist/runner/node/pool-runner.d.mts +15 -6
- package/dist/runner/node/pool-runner.mjs +1 -1
- package/dist/runner/node/pool-worker-entry.d.mts +9 -6
- package/dist/runner/node/pool-worker-entry.mjs +1 -1
- package/dist/runner/pool/events.mjs +1 -1
- package/dist/runner/pool/pool-messages.d.mts +8 -9
- package/dist/runner/pool/pool.d.mts +4 -6
- package/dist/runner/pool/pool.mjs +1 -1
- package/dist/runner/pool/shard-timings.d.mts +3 -4
- package/dist/runner/pool/worker-host.d.mts +6 -5
- package/dist/runner/pool/worker-host.mjs +1 -1
- package/dist/runner/run-geospec-module.d.mts +2 -3
- package/dist/runner/run-geospec-module.mjs +2 -2
- package/dist/runner/timeout-codes.d.mts +6 -8
- package/dist/runner/types.d.mts +56 -53
- package/dist/runner/worker/no-matching-tests-issue.d.mts +3 -4
- package/dist/runner/worker/runner-types.d.mts +17 -16
- package/dist/runner/worker/serial-runner.mjs +1 -1
- package/dist/selector/types.d.mts +22 -23
- package/dist/step/types.d.mts +4 -119
- package/dist/support/filesystem-errors.mjs +1 -0
- package/dist/support/hash.mjs +1 -0
- package/dist/support/path.mjs +1 -0
- package/dist/support/sha256.mjs +1 -0
- package/dist/support/types.d.mts +38 -0
- package/dist/vitest/adapter.d.mts +5 -6
- package/dist/vitest/adapter.mjs +1 -1
- package/dist/vitest/index.d.mts +0 -1
- package/dist/vitest/index.mjs +1 -1
- package/dist/vitest/node/index.d.mts +2 -0
- package/dist/vitest/node/index.mjs +1 -0
- package/dist/vitest/node/setup-project.d.mts +60 -0
- package/dist/vitest/node/setup-project.mjs +1 -0
- package/dist/vm/plain-module-vm.d.mts +13 -0
- package/dist/vm/plain-module-vm.mjs +8 -0
- package/dist/vm/types.d.mts +142 -0
- package/package.json +17 -9
- package/agent/geospec-authoring/api-types-2.md +0 -85
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ registry, and host integration. It executes no geometry on its own: every claim
|
|
|
9
9
|
is evaluated by the compiled
|
|
10
10
|
[`geospec-engine`](https://github.com/taucad/geospec/tree/main/packages/geospec-engine) core that
|
|
11
11
|
the host passes to the runner. Tau's desktop/browser composition and the
|
|
12
|
-
[`geospec` CLI](
|
|
12
|
+
[`geospec` CLI](#runner-configuration) supply that engine. Authored tests
|
|
13
13
|
do not import or select an engine, and nothing registers one globally.
|
|
14
14
|
|
|
15
15
|
The following is a `*.geospec.ts` module for the CLI or Tau `test_model`:
|
|
@@ -85,6 +85,15 @@ geospec run . --config ci.geospec.config.ts
|
|
|
85
85
|
geospec run . --json
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
+
**Spec imports.** The CLI bundles each spec with native esbuild over the
|
|
89
|
+
project: a spec may import project files and the GeoSpec builtins (`geospec`,
|
|
90
|
+
`geospec/model`, `geospec/config`). An npm package or URL import refuses with
|
|
91
|
+
`BUNDLER_FAILED` and a message naming the specifier; nothing is fetched or
|
|
92
|
+
installed. A host that resolves packages passes its own module VM as
|
|
93
|
+
`createModuleVm` (`CreateModuleVm` in `geospec/runner`; for a Node pool,
|
|
94
|
+
`moduleVmModule`). Tau's hosts inject Tau's esbuild VM this way. A browser host
|
|
95
|
+
has no default VM and must inject one.
|
|
96
|
+
|
|
88
97
|
| Flag | Meaning |
|
|
89
98
|
| --------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
90
99
|
| `--file <path>` | GeoSpec file or directory root; repeatable. Empty input discovers from the project root. |
|
|
@@ -101,6 +110,24 @@ A flag replaces the config field of the same name. **The exit code is the
|
|
|
101
110
|
verdict.** `0` only when the run succeeded; any failure, any run-level issue,
|
|
102
111
|
and an empty selection are all `1`.
|
|
103
112
|
|
|
113
|
+
### Checking a file with no spec
|
|
114
|
+
|
|
115
|
+
`geospec check` runs one bundled validity spec on a STEP or GLB file, so a
|
|
116
|
+
first use needs no `*.geospec.ts`. It takes the same runner, engine and report
|
|
117
|
+
as `geospec run`; the file's folder is the project root.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
geospec check bracket.step
|
|
121
|
+
geospec check assembly.glb --components 3 --json
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Each claim is its own test: no error diagnostics, closed edge incidence
|
|
125
|
+
(`toBeWatertight`) and a bounding box with positive size on every axis, plus
|
|
126
|
+
mesh integrity for a GLB or a valid BRep with closed shells for a STEP file.
|
|
127
|
+
`--components <n>` adds an exact connected-component count. A claim the engine
|
|
128
|
+
cannot decide is reported as inconclusive, never as a pass, and the exit code is
|
|
129
|
+
the verdict.
|
|
130
|
+
|
|
104
131
|
To embed the pool, use `createGeoSpecNodePoolRunner` from `geospec/runner/node`;
|
|
105
132
|
each worker owns one engine and its own exporters, and live subjects never
|
|
106
133
|
cross worker boundaries. To run serially in this process, pass an engine from
|
|
@@ -179,7 +206,7 @@ matches the exact retained primitive label, including any ordinal suffix.
|
|
|
179
206
|
Inspect that label and preserve cardinality instead of guessing an occurrence
|
|
180
207
|
path. Mesh input does not invent assembly ancestry or analytic faces; missing
|
|
181
208
|
measure, probe or ordering evidence refuses, even through query negation.
|
|
182
|
-
The STEP Body index
|
|
209
|
+
The STEP Body index exposes per-occurrence solid aggregates, so do
|
|
183
210
|
not assume its Body count maps one-to-one to mesh material roots.
|
|
184
211
|
|
|
185
212
|
Whole-Body contact requires no interior overlap and boundary separation within
|
|
@@ -194,9 +221,9 @@ import { loadModel } from 'geospec/model';
|
|
|
194
221
|
const subject = await loadModel({ file: 'part.step', format: 'step' });
|
|
195
222
|
```
|
|
196
223
|
|
|
197
|
-
For CAD source, `loadModel({ file: 'main.ts', format: 'step' })` asks the host to export STEP. The configured compiled engine admits the exact returned bytes through its OCCT binding. Export and source provenance do not by themselves
|
|
224
|
+
For CAD source, `loadModel({ file: 'main.ts', format: 'step' })` asks the host to export STEP. The configured compiled engine admits the exact returned bytes through its OCCT binding. Export and source provenance do not by themselves establish a geometric requirement.
|
|
198
225
|
|
|
199
|
-
Measurement matchers
|
|
226
|
+
Measurement matchers support mesh evidence and prefer exact BRep evidence when it is present:
|
|
200
227
|
|
|
201
228
|
```ts
|
|
202
229
|
expectGeo(subject).toHaveSurfaceArea({ value: 12_345, tolerance: 1 });
|
|
@@ -229,21 +256,19 @@ expectGeo(subject).toHaveVoidContinuity({
|
|
|
229
256
|
These are requirement examples, not a claim that every admitted model supports
|
|
230
257
|
them. `toHaveVoidContinuity` requires the declared path, material and isolation
|
|
231
258
|
proposition to be proved in a qualified domain. A sampled cross-section cannot
|
|
232
|
-
|
|
259
|
+
establish a continuous minimum: the general sampled profile refuses a requested
|
|
233
260
|
`minCrossSection`. Restricted nominal analytic domains have separate premises;
|
|
234
261
|
general mesh lumen, wall and motion qualification remains incomplete.
|
|
235
262
|
|
|
236
263
|
Likewise, watertight edge incidence does not prove manifold validity, a Boolean
|
|
237
|
-
fuse or material connectivity. Bounds and playback cannot
|
|
264
|
+
fuse or material connectivity. Bounds and playback cannot establish contact,
|
|
238
265
|
clearance, containment or sealing. Preserve intended geometry and tolerances;
|
|
239
266
|
report unavailable evidence instead of replacing the requirement with a proxy.
|
|
240
267
|
|
|
241
268
|
The [canonical API index](agent/geospec-authoring/api-index.md) describes
|
|
242
269
|
ordinary authoring. The separate
|
|
243
270
|
[complete public API index](agent/geospec-authoring/public-api-index.md)
|
|
244
|
-
retains host and framework contracts.
|
|
245
|
-
`GeometrySubject` input is not interchangeable with the opaque subject returned
|
|
246
|
-
by canonical `loadModel`.
|
|
271
|
+
retains host and framework contracts.
|
|
247
272
|
|
|
248
273
|
When a geometry assertion needs a parameter variant, pass that variant directly to `loadModel`. Omitting `parameters` exercises the defaults authored by the model:
|
|
249
274
|
|
package/agent/doctrine.md
CHANGED
|
@@ -22,7 +22,7 @@ describe('main geometry', () => {
|
|
|
22
22
|
});
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Specs are always TypeScript or JavaScript, whatever the model's kernel: `loadModel({ file })` evaluates `main.ts`, `main.tsx`, `main.py`, `main.scad`, `main.kcl` or `main.cs` through Tau's runtime. `test_model` discovers `*.geospec.ts` and `*.geospec.js` only.
|
|
25
|
+
Specs are always TypeScript or JavaScript, whatever the model's kernel: `loadModel({ file })` evaluates `main.ts`, `main.tsx`, `main.py`, `main.scad`, `main.kcl` or `main.cs` through the exporter the host or the project's `geospec.config.ts` supplies. On Tau projects that is Tau's runtime, configured in `tau.config.ts`; never set GeoSpec exporters there. `test_model` discovers `*.geospec.ts` and `*.geospec.js` only.
|
|
26
26
|
|
|
27
27
|
Every matcher takes one expectation object:
|
|
28
28
|
|
|
@@ -36,6 +36,7 @@ Every matcher takes one expectation object:
|
|
|
36
36
|
- `loadModel({ file, workUnitLimit })` sets the default claim budget for that subject, and `expectGeo(model, { workUnitLimit })` overrides it for one chain. The budget is a positive integer no greater than 512000000. A `MATCHER_TIMEOUT` refusal reports `details.limit` and, when measured, `details.used`; its `test_model` row (category `work-budget`) names in `limit.retry` the one `workUnitLimit` that can decide the claim, or `null` at the host maximum. Never treat the refusal as a pass.
|
|
37
37
|
- `loadModel({ file, region: { min: [x, y, z], max: [x, y, z] } })` makes a separate claim about one millimetre box, never a stand-in for a whole-model claim. The kernel crops before export (PicoVoxel trims Voxels parts), and other kernels, STEP loads and unconfirmed crops refuse with a typed diagnostic. A cropped subject answers only bounding box, volume, surface area, mass and center of mass of its region, and its assertions record the region. Every other matcher on it refuses with `GEOSPEC_REGION_WHOLE_MODEL_CLAIM`. Name the region in the test, and keep whole-model claims on whole-model loads.
|
|
38
38
|
- A host or engine limit leaves a claim undecided, never false: `test_model` reports it as inconclusive with category `analysis-limit`, `resource-limit` or `work-budget` and a typed `limit` naming the limit and its numbers. Keep the model as designed: never coarsen, shrink or crop it to fit. Only a `work-budget` row's `limit.retry` is a retry, and `testTimeout` only answers a `timeout` row; report every other limit row as not decided at this capacity.
|
|
39
|
+
- An unknown or mistyped expectation field refuses only that claim, with `GEOSPEC_INVALID_EXPECTATION` naming `details.field`; its `test_model` row is inconclusive, category `invalid-expectation`. Fix the expectation and keep the assertion.
|
|
39
40
|
- `toHaveCenterOfMass({ point, tolerance })` takes an exact point. Per-axis ranges such as `{ y: { greaterThan: 1 } }` are refused.
|
|
40
41
|
|
|
41
42
|
## Ceilings
|
|
@@ -29,7 +29,7 @@ describe('main geometry', () => {
|
|
|
29
29
|
});
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
Specs are always TypeScript or JavaScript, whatever the model's kernel: `loadModel({ file })` evaluates `main.ts`, `main.tsx`, `main.py`, `main.scad`, `main.kcl` or `main.cs` through Tau's runtime. `test_model` discovers `*.geospec.ts` and `*.geospec.js` only.
|
|
32
|
+
Specs are always TypeScript or JavaScript, whatever the model's kernel: `loadModel({ file })` evaluates `main.ts`, `main.tsx`, `main.py`, `main.scad`, `main.kcl` or `main.cs` through the exporter the host or the project's `geospec.config.ts` supplies. On Tau projects that is Tau's runtime, configured in `tau.config.ts`; never set GeoSpec exporters there. `test_model` discovers `*.geospec.ts` and `*.geospec.js` only.
|
|
33
33
|
|
|
34
34
|
Every matcher takes one expectation object:
|
|
35
35
|
|
|
@@ -43,6 +43,7 @@ Every matcher takes one expectation object:
|
|
|
43
43
|
- `loadModel({ file, workUnitLimit })` sets the default claim budget for that subject, and `expectGeo(model, { workUnitLimit })` overrides it for one chain. The budget is a positive integer no greater than 512000000. A `MATCHER_TIMEOUT` refusal reports `details.limit` and, when measured, `details.used`; its `test_model` row (category `work-budget`) names in `limit.retry` the one `workUnitLimit` that can decide the claim, or `null` at the host maximum. Never treat the refusal as a pass.
|
|
44
44
|
- `loadModel({ file, region: { min: [x, y, z], max: [x, y, z] } })` makes a separate claim about one millimetre box, never a stand-in for a whole-model claim. The kernel crops before export (PicoVoxel trims Voxels parts), and other kernels, STEP loads and unconfirmed crops refuse with a typed diagnostic. A cropped subject answers only bounding box, volume, surface area, mass and center of mass of its region, and its assertions record the region. Every other matcher on it refuses with `GEOSPEC_REGION_WHOLE_MODEL_CLAIM`. Name the region in the test, and keep whole-model claims on whole-model loads.
|
|
45
45
|
- A host or engine limit leaves a claim undecided, never false: `test_model` reports it as inconclusive with category `analysis-limit`, `resource-limit` or `work-budget` and a typed `limit` naming the limit and its numbers. Keep the model as designed: never coarsen, shrink or crop it to fit. Only a `work-budget` row's `limit.retry` is a retry, and `testTimeout` only answers a `timeout` row; report every other limit row as not decided at this capacity.
|
|
46
|
+
- An unknown or mistyped expectation field refuses only that claim, with `GEOSPEC_INVALID_EXPECTATION` naming `details.field`; its `test_model` row is inconclusive, category `invalid-expectation`. Fix the expectation and keep the assertion.
|
|
46
47
|
- `toHaveCenterOfMass({ point, tolerance })` takes an exact point. Per-axis ranges such as `{ y: { greaterThan: 1 } }` are refused.
|
|
47
48
|
|
|
48
49
|
## Ceilings
|
|
@@ -485,12 +486,11 @@ LoadModelSourceOptions: {
|
|
|
485
486
|
|
|
486
487
|
## API reference
|
|
487
488
|
|
|
488
|
-
To read any other signature, find its name in `api-index.md`, which lists all
|
|
489
|
+
To read any other signature, find its name in `api-index.md`, which lists all 299 symbols by file with the lines that hold each, and read that range of the named file.
|
|
489
490
|
|
|
490
491
|
- `api-functions.md` — Functions
|
|
491
492
|
- `api-constants.md` — Constants
|
|
492
493
|
- `api-types.md` — Types
|
|
493
|
-
- `api-types-2.md` — Types (2)
|
|
494
494
|
- `api-classes.md` — Classes
|
|
495
495
|
|
|
496
496
|
Read ranges, not whole files. Never copy a reference into a source file.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# geospec API index
|
|
2
2
|
|
|
3
|
-
geospec 0.
|
|
3
|
+
geospec 0.4.0 · 299 symbols · extracted by TypeScript 5.9.3.
|
|
4
4
|
|
|
5
5
|
Every symbol appears here exactly once. The heading above each block names the file with its signature, and each top-level symbol names the lines of that file which hold its declaration and members: read only that range.
|
|
6
6
|
|
|
@@ -37,7 +37,7 @@ GeoSpecAssertion (type) [lines 16-66] [9 members] — Geometry assertion collect
|
|
|
37
37
|
GeoSpecAssertion.report (property) — Exact compiled assertion report, including core-owned bytes and polarity
|
|
38
38
|
GeoSpecAssertion.loadId (property) — The host load which admitted this assertion's subject
|
|
39
39
|
GeoSpecAssertion.region (property) — The crop this assertion's subject was loaded with
|
|
40
|
-
GeoSpecAssertion.durationMs (property) — Wall-clock cost of matcher evaluation in milliseconds (
|
|
40
|
+
GeoSpecAssertion.durationMs (property) — Wall-clock cost of matcher evaluation in milliseconds (budgeted matchers only)
|
|
41
41
|
GeoSpecAssemblyOccurrenceExpectation (type) [lines 68-91] [3 members] — Assembly occurrence rule accepted by `expectGeo(...).toHaveAssemblyOccurrences(...)`
|
|
42
42
|
GeoSpecAssemblyOccurrenceExpectation.name (property)
|
|
43
43
|
GeoSpecAssemblyOccurrenceExpectation.count (property)
|
|
@@ -203,85 +203,16 @@ GeoSpecVoidWaypoint (type) [lines 818-821] — One void-continuity waypoint
|
|
|
203
203
|
GeoSpecVolumeExpectation (type) [lines 823-831] [2 members] — Volume expectation accepted by `expectGeo(...).toHaveVolume(...)`
|
|
204
204
|
GeoSpecVolumeExpectation.value (property)
|
|
205
205
|
GeoSpecVolumeExpectation.tolerance (property)
|
|
206
|
-
|
|
207
|
-
BrepEvidence.validity (property)
|
|
208
|
-
BrepEvidence.topologyCounts (property)
|
|
209
|
-
BrepEvidence.boundingBox (property)
|
|
210
|
-
BrepEvidence.massProperties (property)
|
|
211
|
-
BrepEvidence.planarFaces (property)
|
|
212
|
-
BrepEvidence.cylindricalFaces (property)
|
|
213
|
-
BrepEvidence.circularHoles (property)
|
|
214
|
-
BrepEvidence.circularHolePatterns (property)
|
|
215
|
-
BrepEvidence.chamferFeatures (property)
|
|
216
|
-
BrepEvidence.filletFeatures (property)
|
|
217
|
-
BrepEvidence.minimumWallThickness (property)
|
|
218
|
-
GeometryFileFormat (type) [lines 1060-1061] — Geometry file formats understood by GeoSpec provenance
|
|
219
|
-
GeometryCapability (type) [lines 1063-1081] [2 members] — Capability exposed by a loaded subject
|
|
220
|
-
GeometryCapability.kind (property)
|
|
221
|
-
GeometryCapability.feature (property)
|
|
222
|
-
GeometryDiagnostic (type) [lines 1083-1111] [6 members] — Diagnostic emitted by GeoSpec loaders, analyzers, and matchers
|
|
206
|
+
GeometryDiagnostic (type) [lines 833-861] [6 members] — Diagnostic emitted by GeoSpec loaders, analyzers, and matchers
|
|
223
207
|
GeometryDiagnostic.code (property)
|
|
224
208
|
GeometryDiagnostic.severity (property)
|
|
225
209
|
GeometryDiagnostic.message (property)
|
|
226
210
|
GeometryDiagnostic.suggestion (property)
|
|
227
211
|
GeometryDiagnostic.spatial (property)
|
|
228
212
|
GeometryDiagnostic.details (property)
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
GeometryProvenance.loader (property)
|
|
233
|
-
GeometryProvenance.contentHash (property)
|
|
234
|
-
GeometryProvenance.parameters (property)
|
|
235
|
-
GeometryProvenance.exportIntent (property)
|
|
236
|
-
GeometrySource (type) [lines 1135-1152] [5 members] — Source metadata for a loaded geometry subject
|
|
237
|
-
GeometrySource.kind (property)
|
|
238
|
-
GeometrySource.format (property)
|
|
239
|
-
GeometrySource.path (property)
|
|
240
|
-
GeometrySource.name (property)
|
|
241
|
-
GeometrySource.byteLength (property)
|
|
242
|
-
GeometrySubject (type) [lines 1154-1183] [8 members] — Canonical P0 object under test for GeoSpec
|
|
243
|
-
GeometrySubject.kind (property)
|
|
244
|
-
GeometrySubject.subjectId (property) — Opaque engine-owned identifier used by every protocol claim
|
|
245
|
-
GeometrySubject.mesh (property)
|
|
246
|
-
GeometrySubject.brep (property)
|
|
247
|
-
GeometrySubject.step (property)
|
|
248
|
-
GeometrySubject.provenance (property)
|
|
249
|
-
GeometrySubject.capabilities (property)
|
|
250
|
-
GeometrySubject.diagnostics (property)
|
|
251
|
-
GeometrySubjectMeshEvidence (type) [lines 1185-1193] [2 members] — Wire-safe mesh summary carried by an opaque geometry subject
|
|
252
|
-
GeometrySubjectMeshEvidence.format (property)
|
|
253
|
-
GeometrySubjectMeshEvidence.stats (property)
|
|
254
|
-
MeshEvidence (type) [lines 1195-1203] [2 members] — Mesh evidence loaded from geometry bytes or buffers
|
|
255
|
-
MeshEvidence.format (property)
|
|
256
|
-
MeshEvidence.stats (property)
|
|
257
|
-
MeshFileFormat (type) [lines 1205-1206] — Geometry file formats supported by the P0 mesh loader
|
|
258
|
-
MeshQualityStats (type) [lines 1208-1261] [8 members] — Triangle quality and scalar mesh metrics used by P0 GeoSpec…
|
|
259
|
-
MeshQualityStats.triangleCount (property)
|
|
260
|
-
MeshQualityStats.nonFiniteVertices (property)
|
|
261
|
-
MeshQualityStats.degenerateTriangles (property)
|
|
262
|
-
MeshQualityStats.duplicateFaces (property)
|
|
263
|
-
MeshQualityStats.triangles (property)
|
|
264
|
-
MeshQualityStats.surfaceArea (property)
|
|
265
|
-
MeshQualityStats.signedVolume (property)
|
|
266
|
-
MeshQualityStats.centerOfMass (property)
|
|
267
|
-
MeshTriangle (type) [lines 1263-1286] [7 members] — One triangle from mesh evidence, in geometry document coordinates
|
|
268
|
-
MeshTriangle.primitive (property)
|
|
269
|
-
MeshTriangle.triangleIndex (property)
|
|
270
|
-
MeshTriangle.a (property)
|
|
271
|
-
MeshTriangle.b (property)
|
|
272
|
-
MeshTriangle.c (property)
|
|
273
|
-
MeshTriangle.center (property)
|
|
274
|
-
MeshTriangle.area (property)
|
|
275
|
-
StepEvidence (type) [lines 1288-1338] [6 members] — STEP/XDE evidence extracted while loading a STEP subject
|
|
276
|
-
StepEvidence.schema (property)
|
|
277
|
-
StepEvidence.unit (property)
|
|
278
|
-
StepEvidence.productStructure (property)
|
|
279
|
-
StepEvidence.readStrategy (property)
|
|
280
|
-
StepEvidence.capabilities (property)
|
|
281
|
-
StepEvidence.xde (property) — Structured AP242 XDE read result (occurrences, subshape names, datum placements)
|
|
282
|
-
Vec3 (type) [lines 1340-1341] — Numeric 3D vector
|
|
283
|
-
GeoSpecVec3 (type) [lines 1343-1344] — Numeric 3D vector
|
|
284
|
-
CreateModelLoaderOptions (type) [lines 1346-1393] [9 members] — Defaults accepted by {@link import ('./load-model.js').createModelLoader}
|
|
213
|
+
Vec3 (type) [lines 863-864] — Numeric 3D vector
|
|
214
|
+
GeoSpecVec3 (type) [lines 866-867] — Numeric 3D vector
|
|
215
|
+
CreateModelLoaderOptions (type) [lines 869-916] [9 members] — Defaults accepted by {@link import ('./load-model.js').createModelLoader}
|
|
285
216
|
CreateModelLoaderOptions.engine (property) — Initialized compiled engine supplied by the host, never selected by…
|
|
286
217
|
CreateModelLoaderOptions.readSource (property) — Rooted host reader for direct filesystem or URL sources
|
|
287
218
|
CreateModelLoaderOptions.format (property) — Geometry format to export when an individual call does not…
|
|
@@ -291,16 +222,16 @@ CreateModelLoaderOptions (type) [lines 1346-1393] [9 members] — Defaults accep
|
|
|
291
222
|
CreateModelLoaderOptions.mesh (property) — Whether STEP loading should also produce mesh evidence
|
|
292
223
|
CreateModelLoaderOptions.meshLinearTolerance (property) — Linear tolerance used while meshing exact BRep evidence
|
|
293
224
|
CreateModelLoaderOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
294
|
-
GeoSpecExporterCapabilities (type) [lines
|
|
225
|
+
GeoSpecExporterCapabilities (type) [lines 918-940] [4 members] — What a {@link GeoSpecModelExporter} declares it can do
|
|
295
226
|
GeoSpecExporterCapabilities.formats (property) — The formats `export` produces
|
|
296
227
|
GeoSpecExporterCapabilities.parameters (property) — Accepts `parameters`
|
|
297
228
|
GeoSpecExporterCapabilities.region (property) — Crops to `region` (an axis-aligned millimetre box) before export
|
|
298
229
|
GeoSpecExporterCapabilities.inlineSources (property) — Accepts `inline` sources, which back `loadModel({ code })`
|
|
299
|
-
GeoSpecExportFormat (type) [lines
|
|
300
|
-
GeoSpecLoadRegion (type) [lines
|
|
230
|
+
GeoSpecExportFormat (type) [lines 942-943] — Formats a {@link GeoSpecModelExporter} may produce from a source-kind file
|
|
231
|
+
GeoSpecLoadRegion (type) [lines 945-953] [2 members] — Axis-aligned crop box in canonical Z-up millimetres
|
|
301
232
|
GeoSpecLoadRegion.min (property)
|
|
302
233
|
GeoSpecLoadRegion.max (property)
|
|
303
|
-
GeoSpecModelArtifact (type) [lines
|
|
234
|
+
GeoSpecModelArtifact (type) [lines 955-998] [7 members] — The bytes an exporter returns, in the canonical Z-up millimetre…
|
|
304
235
|
GeoSpecModelArtifact.bytes (property)
|
|
305
236
|
GeoSpecModelArtifact.format (property)
|
|
306
237
|
GeoSpecModelArtifact.sourceUnit (property) — Unit of raw GLB coordinates
|
|
@@ -308,14 +239,14 @@ GeoSpecModelArtifact (type) [lines 1432-1475] [7 members] — The bytes an expor
|
|
|
308
239
|
GeoSpecModelArtifact.consumedSources (property) — Every source file the export read, as a path from…
|
|
309
240
|
GeoSpecModelArtifact.diagnostics (property) — Notices from a successful export, admitted with the subject so…
|
|
310
241
|
GeoSpecModelArtifact.exportOptions (property) — The export options the exporter applied, recorded in the load…
|
|
311
|
-
GeoSpecModelExporter (type) [lines
|
|
242
|
+
GeoSpecModelExporter (type) [lines 1000-1034] [6 members] — Turns a source-kind model file into GLB or STEP bytes…
|
|
312
243
|
GeoSpecModelExporter.id (property)
|
|
313
244
|
GeoSpecModelExporter.extensions (property)
|
|
314
245
|
GeoSpecModelExporter.capabilities (property)
|
|
315
246
|
GeoSpecModelExporter.export (method)
|
|
316
247
|
GeoSpecModelExporter.revision (method) — The sources an export of `file` would read now, without…
|
|
317
248
|
GeoSpecModelExporter.close (method) — Releases what the exporter created for one scope
|
|
318
|
-
GeoSpecModelExportRequest (type) [lines
|
|
249
|
+
GeoSpecModelExportRequest (type) [lines 1036-1080] [8 members] — One export request
|
|
319
250
|
GeoSpecModelExportRequest.file (property) — Entry file, as a path from the project root
|
|
320
251
|
GeoSpecModelExportRequest.projectPath (property) — Absolute project root the exporter resolves `file` and its imports…
|
|
321
252
|
GeoSpecModelExportRequest.format (property)
|
|
@@ -324,12 +255,12 @@ GeoSpecModelExportRequest (type) [lines 1513-1557] [8 members] — One export re
|
|
|
324
255
|
GeoSpecModelExportRequest.region (property) — Millimetre crop box
|
|
325
256
|
GeoSpecModelExportRequest.inline (property) — Source text keyed by project-relative path
|
|
326
257
|
GeoSpecModelExportRequest.signal (property)
|
|
327
|
-
GeoSpecModelFormat (type) [lines
|
|
328
|
-
GeoSpecModelLoader (type) [lines
|
|
329
|
-
ManagedGeoSpecModelLoader (type) [lines
|
|
258
|
+
GeoSpecModelFormat (type) [lines 1082-1083] — Geometry formats accepted by {@link import ('./load-model.js').loadModel}
|
|
259
|
+
GeoSpecModelLoader (type) [lines 1085-1086] — Function shape used by GeoSpec runners to provide model loading…
|
|
260
|
+
ManagedGeoSpecModelLoader (type) [lines 1088-1094] [1 members] — A configured loader whose admissions can be released with its…
|
|
330
261
|
ManagedGeoSpecModelLoader.dispose (method)
|
|
331
|
-
GeoSpecConsumedSources (type) [lines
|
|
332
|
-
LoadModelCodeOptions (type) [lines
|
|
262
|
+
GeoSpecConsumedSources (type) [lines 1096-1100] — The source files one export read, each with its SHA-256…
|
|
263
|
+
LoadModelCodeOptions (type) [lines 1102-1174] [12 members] — Inline code-CAD model load options
|
|
333
264
|
LoadModelCodeOptions.code (property) — Source files keyed by project-relative path
|
|
334
265
|
LoadModelCodeOptions.file (property) — Entry path to render from {@link code }
|
|
335
266
|
LoadModelCodeOptions.rootDir (property) — Not accepted
|
|
@@ -342,7 +273,7 @@ LoadModelCodeOptions (type) [lines 1579-1651] [12 members] — Inline code-CAD m
|
|
|
342
273
|
LoadModelCodeOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
343
274
|
LoadModelCodeOptions.workUnitLimit (property) — Default work-unit budget for every claim on this subject
|
|
344
275
|
LoadModelCodeOptions.region (property) — Axis-aligned millimetre box the exporter crops the model to before…
|
|
345
|
-
LoadModelFileOptions (type) [lines
|
|
276
|
+
LoadModelFileOptions (type) [lines 1176-1250] [11 members] — Filesystem-backed model load options
|
|
346
277
|
LoadModelFileOptions.file (property) — Model file to render, as a path from the project…
|
|
347
278
|
LoadModelFileOptions.rootDir (property) — Project-relative folder `file` resolves in, for a suite that loads…
|
|
348
279
|
LoadModelFileOptions.projectPath (property) — Absolute project root passed to the exporter
|
|
@@ -354,7 +285,7 @@ LoadModelFileOptions (type) [lines 1653-1727] [11 members] — Filesystem-backed
|
|
|
354
285
|
LoadModelFileOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
355
286
|
LoadModelFileOptions.workUnitLimit (property) — Default work-unit budget for every claim on this subject
|
|
356
287
|
LoadModelFileOptions.region (property) — Axis-aligned millimetre box the exporter crops the model to before…
|
|
357
|
-
LoadModelOptions (type) [lines
|
|
288
|
+
LoadModelOptions (type) [lines 1252-1277] [8 members] — Options accepted by {@link import ('./load-model.js').loadModel}
|
|
358
289
|
LoadModelOptions.rootDir (property) — Project-relative folder `file` resolves in, for a suite that loads…
|
|
359
290
|
LoadModelOptions.format (property) — Geometry format to export
|
|
360
291
|
LoadModelOptions.parameters (property) — Explicit parameters passed to the exporter
|
|
@@ -363,10 +294,7 @@ LoadModelOptions (type) [lines 1729-1754] [8 members] — Options accepted by {@
|
|
|
363
294
|
LoadModelOptions.meshLinearTolerance (property) — Linear tolerance used while meshing exact BRep evidence
|
|
364
295
|
LoadModelOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
365
296
|
LoadModelOptions.workUnitLimit (property) — Default work-unit budget for every claim on this subject
|
|
366
|
-
|
|
367
|
-
## Types (2) — `api-types-2.md`
|
|
368
|
-
|
|
369
|
-
LoadModelSourceOptions (type) [lines 5-85] [13 members] — Direct geometry-source model load options
|
|
297
|
+
LoadModelSourceOptions (type) [lines 1279-1359] [13 members] — Direct geometry-source model load options
|
|
370
298
|
LoadModelSourceOptions.source (property) — Geometry bytes, path, browser file/blob, or in-memory mesh buffer
|
|
371
299
|
LoadModelSourceOptions.resources (property) — Named external resources consumed alongside the direct geometry bytes
|
|
372
300
|
LoadModelSourceOptions.rootDir (property) — Project-relative folder a path `source` and each resource path resolve…
|