geospec 0.5.2-next.375 → 0.5.2-next.384
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 +16 -3
- package/agent/doctrine.md +2 -0
- package/agent/geospec-authoring/SKILL.md +2 -11
- package/agent/geospec-authoring/api-index.md +38 -38
- package/agent/geospec-authoring/api-types.md +13 -0
- package/agent/geospec-authoring/public-api-index.md +148 -148
- package/agent/geospec-authoring/public-api-types-2.md +32 -33
- package/agent/geospec-authoring/public-api-types-3.md +33 -1
- package/agent/geospec-authoring/public-api-types.md +14 -32
- package/agent/resources.js +9 -9
- package/agent/skills.json +1 -1
- package/dist/runner/types.d.mts +11 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -128,6 +128,15 @@ mesh integrity for a GLB or a valid BRep with closed shells for a STEP file.
|
|
|
128
128
|
cannot decide is reported as inconclusive, never as a pass, and the exit code is
|
|
129
129
|
the verdict.
|
|
130
130
|
|
|
131
|
+
`toBeWatertight` judges one part at a time: a glTF node with a mesh is a part,
|
|
132
|
+
and its `TRIANGLES` primitives together are that part's surface, so every
|
|
133
|
+
welded edge must be shared by exactly two of its triangles. Separately named
|
|
134
|
+
nodes are separate parts, and nodes sharing a name are one part; an edge where
|
|
135
|
+
two parts meet is open in both unless each closes it on its own. Connected components, interference and
|
|
136
|
+
relationships treat each primitive as an operand unless the mesh declares
|
|
137
|
+
`EXT_mesh_manifold`, which makes its primitives one body. Winding is not
|
|
138
|
+
checked by `toBeWatertight`.
|
|
139
|
+
|
|
131
140
|
To embed the pool, use `createGeoSpecNodePoolRunner` from `geospec/runner/node`;
|
|
132
141
|
each worker owns one engine and its own exporters, and live subjects never
|
|
133
142
|
cross worker boundaries. To run serially in this process, pass an engine from
|
|
@@ -261,9 +270,13 @@ establish a continuous minimum: the general sampled profile refuses a requested
|
|
|
261
270
|
general mesh lumen, wall and motion qualification remains incomplete.
|
|
262
271
|
|
|
263
272
|
Likewise, watertight edge incidence does not prove manifold validity, a Boolean
|
|
264
|
-
fuse or material connectivity.
|
|
265
|
-
|
|
266
|
-
|
|
273
|
+
fuse or material connectivity. When open edges of one part coincide with open
|
|
274
|
+
edges of another, `toBeWatertight` reports their count as
|
|
275
|
+
`openEdgesSharedAcrossLabels` and the parts as `sharedOpenEdgeLabels`, and its
|
|
276
|
+
suggestion names `EXT_mesh_manifold`; the verdict is unchanged. Bounds and
|
|
277
|
+
playback cannot establish contact, clearance, containment or sealing. Preserve
|
|
278
|
+
intended geometry and tolerances; report unavailable evidence instead of
|
|
279
|
+
replacing the requirement with a proxy.
|
|
267
280
|
|
|
268
281
|
The [canonical API index](agent/geospec-authoring/api-index.md) describes
|
|
269
282
|
ordinary authoring. The separate
|
package/agent/doctrine.md
CHANGED
|
@@ -68,4 +68,6 @@ Test assemblies and independent units; preserve sibling coverage when adding fil
|
|
|
68
68
|
|
|
69
69
|
Fix geometry at its root; never weaken tolerances, delete assertions, or reduce detail to pass.
|
|
70
70
|
|
|
71
|
+
A verdict that changes after a refactor that leaves volume, bounding box and triangle count unchanged is evidence about the tool chain, not the model: report it as a suspected exporter or GeoSpec defect with both runs' evidence; do not restructure the model until the check passes. A solid split over glTF nodes is several parts with open seams; primitives without `EXT_mesh_manifold` are one `toBeWatertight` surface, not one operand: component and relationship checks refuse, never merge.
|
|
72
|
+
|
|
71
73
|
`public-api-index.md` covers the host and framework API; authoring needs only the Core API below and `api-*` files.
|
|
@@ -75,6 +75,8 @@ Test assemblies and independent units; preserve sibling coverage when adding fil
|
|
|
75
75
|
|
|
76
76
|
Fix geometry at its root; never weaken tolerances, delete assertions, or reduce detail to pass.
|
|
77
77
|
|
|
78
|
+
A verdict that changes after a refactor that leaves volume, bounding box and triangle count unchanged is evidence about the tool chain, not the model: report it as a suspected exporter or GeoSpec defect with both runs' evidence; do not restructure the model until the check passes. A solid split over glTF nodes is several parts with open seams; primitives without `EXT_mesh_manifold` are one `toBeWatertight` surface, not one operand: component and relationship checks refuse, never merge.
|
|
79
|
+
|
|
78
80
|
`public-api-index.md` covers the host and framework API; authoring needs only the Core API below and `api-*` files.
|
|
79
81
|
|
|
80
82
|
## Core API
|
|
@@ -471,17 +473,6 @@ GeoSpecPointExpectation: Vec3 | GeoSpecAxisExpectation
|
|
|
471
473
|
GeoSpecVoidWaypoint: Vec3 | {
|
|
472
474
|
occurrence: string;
|
|
473
475
|
}
|
|
474
|
-
|
|
475
|
-
// Direct geometry-source model load options
|
|
476
|
-
LoadModelSourceOptions: {
|
|
477
|
-
// Source geometry format
|
|
478
|
-
format?: GeoSpecModelFormat
|
|
479
|
-
// Explicit parameters recorded in provenance
|
|
480
|
-
parameters?: Record<string, unknown>
|
|
481
|
-
// Whether STEP loading should also produce mesh evidence
|
|
482
|
-
mesh?: boolean
|
|
483
|
-
// … 10 more members in the API reference: source, resources, rootDir, path, name, sourceUnit, stepStreaming, meshLinearTolerance, meshAngularToleranceDegrees, workUnitLimit
|
|
484
|
-
}
|
|
485
476
|
```
|
|
486
477
|
|
|
487
478
|
## API reference
|
|
@@ -92,7 +92,7 @@ GeoSpecConnectedComponentsExpectation (type) [lines 249-260] [3 members] — Con
|
|
|
92
92
|
GeoSpecConnectedComponentsExpectation.tolerance (property)
|
|
93
93
|
GeoSpecConnectedComponentsExpectation.toleranceMm (property)
|
|
94
94
|
GeoSpecGeometrySelector (type) [lines 262-296] — Geometry selector used by inspection and spatial relationship matchers
|
|
95
|
-
GeoSpecMatcher (type) [lines 298-
|
|
95
|
+
GeoSpecMatcher (type) [lines 298-524] [27 members] — Assertion chain returned by `expectGeo(subject)`
|
|
96
96
|
GeoSpecMatcher.not (property) — Core-owned negation
|
|
97
97
|
GeoSpecMatcher.toSatisfyRationalPlate (method) — Assert the fixed rational plate contract
|
|
98
98
|
GeoSpecMatcher.toSatisfyParallelPlaneDistance (method) — Assert the fixed parallel-plane distance contract
|
|
@@ -120,43 +120,43 @@ GeoSpecMatcher (type) [lines 298-511] [27 members] — Assertion chain returned
|
|
|
120
120
|
GeoSpecMatcher.toHaveFilletFeature (method) — Assert that BRep evidence contains a fillet feature with the…
|
|
121
121
|
GeoSpecMatcher.toHaveMinimumWallThickness (method) — Assert that BRep evidence reports a minimum wall thickness satisfying…
|
|
122
122
|
GeoSpecMatcher.toHaveVoidContinuity (method) — Assert that the declared waypoints share one connected void, stay…
|
|
123
|
-
GeoSpecMassExpectation (type) [lines
|
|
123
|
+
GeoSpecMassExpectation (type) [lines 526-537] [3 members] — Mass expectation accepted by `expectGeo(...).toHaveMass(...)`
|
|
124
124
|
GeoSpecMassExpectation.value (property)
|
|
125
125
|
GeoSpecMassExpectation.density (property)
|
|
126
126
|
GeoSpecMassExpectation.tolerance (property)
|
|
127
|
-
GeoSpecMeshIntegrityExpectation (type) [lines
|
|
127
|
+
GeoSpecMeshIntegrityExpectation (type) [lines 539-570] [5 members] — Mesh integrity expectation accepted by `expectGeo(...).toHaveMeshIntegrity(...)`
|
|
128
128
|
GeoSpecMeshIntegrityExpectation.finitePositions (property)
|
|
129
129
|
GeoSpecMeshIntegrityExpectation.degenerateTriangles (property)
|
|
130
130
|
GeoSpecMeshIntegrityExpectation.duplicateFaces (property)
|
|
131
131
|
GeoSpecMeshIntegrityExpectation.watertight (property)
|
|
132
132
|
GeoSpecMeshIntegrityExpectation.triangleCount (property)
|
|
133
|
-
GeoSpecNoDiagnosticsExpectation (type) [lines
|
|
133
|
+
GeoSpecNoDiagnosticsExpectation (type) [lines 572-578] [1 members] — Diagnostic severities rejected by `expectGeo(...).toHaveNoDiagnostics(...)`
|
|
134
134
|
GeoSpecNoDiagnosticsExpectation.severities (property)
|
|
135
|
-
GeoSpecMinimumWallThicknessExpectation (type) [lines
|
|
135
|
+
GeoSpecMinimumWallThicknessExpectation (type) [lines 580-588] [2 members] — Minimum-wall-thickness expectation accepted by `expectGeo(...).toHaveMinimumWallThickness(...)`
|
|
136
136
|
GeoSpecMinimumWallThicknessExpectation.value (property)
|
|
137
137
|
GeoSpecMinimumWallThicknessExpectation.tolerance (property)
|
|
138
|
-
GeoSpecCircularHolePatternExpectation (type) [lines
|
|
138
|
+
GeoSpecCircularHolePatternExpectation (type) [lines 590-610] [6 members] — Circular-hole-pattern expectation accepted by `expectGeo(...).toHaveCircularHolePattern(...)`
|
|
139
139
|
GeoSpecCircularHolePatternExpectation.count (property)
|
|
140
140
|
GeoSpecCircularHolePatternExpectation.holeDiameter (property)
|
|
141
141
|
GeoSpecCircularHolePatternExpectation.boltCircleDiameter (property)
|
|
142
142
|
GeoSpecCircularHolePatternExpectation.axis (property)
|
|
143
143
|
GeoSpecCircularHolePatternExpectation.center (property)
|
|
144
144
|
GeoSpecCircularHolePatternExpectation.tolerance (property)
|
|
145
|
-
GeoSpecFilletFeatureExpectation (type) [lines
|
|
145
|
+
GeoSpecFilletFeatureExpectation (type) [lines 612-623] [3 members] — Fillet-feature expectation accepted by `expectGeo(...).toHaveFilletFeature(...)`
|
|
146
146
|
GeoSpecFilletFeatureExpectation.radius (property)
|
|
147
147
|
GeoSpecFilletFeatureExpectation.selection (property)
|
|
148
148
|
GeoSpecFilletFeatureExpectation.tolerance (property)
|
|
149
|
-
GeoSpecNumericExpectation (type) [lines
|
|
150
|
-
GeoSpecPlanarFaceExpectation (type) [lines
|
|
149
|
+
GeoSpecNumericExpectation (type) [lines 625-632] — Shared scalar expectation used by geometry measurements
|
|
150
|
+
GeoSpecPlanarFaceExpectation (type) [lines 634-648] [4 members] — Planar-face expectation accepted by `expectGeo(...).toHavePlanarFace(...)`
|
|
151
151
|
GeoSpecPlanarFaceExpectation.normal (property)
|
|
152
152
|
GeoSpecPlanarFaceExpectation.offset (property)
|
|
153
153
|
GeoSpecPlanarFaceExpectation.area (property)
|
|
154
154
|
GeoSpecPlanarFaceExpectation.tolerance (property)
|
|
155
|
-
GeoSpecPointExpectation (type) [lines
|
|
156
|
-
GeoSpecProductStructureExpectation (type) [lines
|
|
155
|
+
GeoSpecPointExpectation (type) [lines 650-651] — Point expectation accepted by center and feature matchers
|
|
156
|
+
GeoSpecProductStructureExpectation (type) [lines 653-661] [2 members] — Product-structure expectation accepted by `expectGeo(...).toHaveProductStructure(...)`
|
|
157
157
|
GeoSpecProductStructureExpectation.names (property)
|
|
158
158
|
GeoSpecProductStructureExpectation.count (property)
|
|
159
|
-
GeoSpecSpatialRelationshipExpectation (type) [lines
|
|
159
|
+
GeoSpecSpatialRelationshipExpectation (type) [lines 663-709] [13 members] — One spatial relationship accepted by `expectGeo(...).toHaveSpatialRelationships(...)`
|
|
160
160
|
GeoSpecSpatialRelationshipExpectation.id (property)
|
|
161
161
|
GeoSpecSpatialRelationshipExpectation.kind (property)
|
|
162
162
|
GeoSpecSpatialRelationshipExpectation.subject (property)
|
|
@@ -170,14 +170,14 @@ GeoSpecSpatialRelationshipExpectation (type) [lines 650-696] [13 members] — On
|
|
|
170
170
|
GeoSpecSpatialRelationshipExpectation.minVolume (property)
|
|
171
171
|
GeoSpecSpatialRelationshipExpectation.maxVolume (property)
|
|
172
172
|
GeoSpecSpatialRelationshipExpectation.reason (property)
|
|
173
|
-
GeoSpecSpatialRelationshipsExpectation (type) [lines
|
|
173
|
+
GeoSpecSpatialRelationshipsExpectation (type) [lines 711-716] [1 members] — Spatial relationship expectation accepted by `expectGeo(...).toHaveSpatialRelationships(...)`
|
|
174
174
|
GeoSpecSpatialRelationshipsExpectation.relationships (property)
|
|
175
|
-
GeoSpecStepUnitsExpectation (type) [lines
|
|
175
|
+
GeoSpecStepUnitsExpectation (type) [lines 718-723] [1 members] — STEP unit expectation accepted by `expectGeo(...).toHaveStepUnits(...)`
|
|
176
176
|
GeoSpecStepUnitsExpectation.unit (property)
|
|
177
|
-
GeoSpecSurfaceAreaExpectation (type) [lines
|
|
177
|
+
GeoSpecSurfaceAreaExpectation (type) [lines 725-733] [2 members] — Surface-area expectation accepted by `expectGeo(...).toHaveSurfaceArea(...)`
|
|
178
178
|
GeoSpecSurfaceAreaExpectation.value (property)
|
|
179
179
|
GeoSpecSurfaceAreaExpectation.tolerance (property)
|
|
180
|
-
GeoSpecTopologyCountsExpectation (type) [lines
|
|
180
|
+
GeoSpecTopologyCountsExpectation (type) [lines 735-761] [8 members] — Topology-count expectation accepted by `expectGeo(...).toHaveTopologyCounts(...)`
|
|
181
181
|
GeoSpecTopologyCountsExpectation.vertices (property)
|
|
182
182
|
GeoSpecTopologyCountsExpectation.edges (property)
|
|
183
183
|
GeoSpecTopologyCountsExpectation.wires (property)
|
|
@@ -186,33 +186,33 @@ GeoSpecTopologyCountsExpectation (type) [lines 722-748] [8 members] — Topology
|
|
|
186
186
|
GeoSpecTopologyCountsExpectation.solids (property)
|
|
187
187
|
GeoSpecTopologyCountsExpectation.compounds (property)
|
|
188
188
|
GeoSpecTopologyCountsExpectation.tolerance (property)
|
|
189
|
-
GeoSpecValidBrepExpectation (type) [lines
|
|
189
|
+
GeoSpecValidBrepExpectation (type) [lines 763-787] [6 members] — Exact BRep validity expectation accepted by `expectGeo(...).toBeValidBrep(...)`
|
|
190
190
|
GeoSpecValidBrepExpectation.maxTolerance (property)
|
|
191
191
|
GeoSpecValidBrepExpectation.freeBounds (property)
|
|
192
192
|
GeoSpecValidBrepExpectation.minEdgeLength (property)
|
|
193
193
|
GeoSpecValidBrepExpectation.sameParameter (property)
|
|
194
194
|
GeoSpecValidBrepExpectation.closedShells (property)
|
|
195
195
|
GeoSpecValidBrepExpectation.closedWires (property)
|
|
196
|
-
GeoSpecVoidContinuityExpectation (type) [lines
|
|
196
|
+
GeoSpecVoidContinuityExpectation (type) [lines 789-829] [5 members] — Void-continuity expectation accepted by `expectGeo(...).toHaveVoidContinuity(...)`
|
|
197
197
|
GeoSpecVoidContinuityExpectation.path (property) — Ordered waypoints (>= 1) known to lie in the void…
|
|
198
198
|
GeoSpecVoidContinuityExpectation.material (property) — Occurrence names whose solids bound the void
|
|
199
199
|
GeoSpecVoidContinuityExpectation.minCrossSection (property) — Minimum required bottleneck cross-section (mm²), sampled
|
|
200
200
|
GeoSpecVoidContinuityExpectation.isolatedFrom (property) — Points that must NOT be reachable from the path void…
|
|
201
201
|
GeoSpecVoidContinuityExpectation.bounds (property) — Region bounded for the proof (subject frame)
|
|
202
|
-
GeoSpecVoidWaypoint (type) [lines
|
|
203
|
-
GeoSpecVolumeExpectation (type) [lines
|
|
202
|
+
GeoSpecVoidWaypoint (type) [lines 831-834] — One void-continuity waypoint
|
|
203
|
+
GeoSpecVolumeExpectation (type) [lines 836-844] [2 members] — Volume expectation accepted by `expectGeo(...).toHaveVolume(...)`
|
|
204
204
|
GeoSpecVolumeExpectation.value (property)
|
|
205
205
|
GeoSpecVolumeExpectation.tolerance (property)
|
|
206
|
-
GeometryDiagnostic (type) [lines
|
|
206
|
+
GeometryDiagnostic (type) [lines 846-874] [6 members] — Diagnostic emitted by GeoSpec loaders, analyzers, and matchers
|
|
207
207
|
GeometryDiagnostic.code (property)
|
|
208
208
|
GeometryDiagnostic.severity (property)
|
|
209
209
|
GeometryDiagnostic.message (property)
|
|
210
210
|
GeometryDiagnostic.suggestion (property)
|
|
211
211
|
GeometryDiagnostic.spatial (property)
|
|
212
212
|
GeometryDiagnostic.details (property)
|
|
213
|
-
Vec3 (type) [lines
|
|
214
|
-
GeoSpecVec3 (type) [lines
|
|
215
|
-
CreateModelLoaderOptions (type) [lines
|
|
213
|
+
Vec3 (type) [lines 876-877] — Numeric 3D vector
|
|
214
|
+
GeoSpecVec3 (type) [lines 879-880] — Numeric 3D vector
|
|
215
|
+
CreateModelLoaderOptions (type) [lines 882-929] [9 members] — Defaults accepted by {@link import ('./load-model.js').createModelLoader}
|
|
216
216
|
CreateModelLoaderOptions.engine (property) — Initialized compiled engine supplied by the host, never selected by…
|
|
217
217
|
CreateModelLoaderOptions.readSource (property) — Rooted host reader for direct filesystem or URL sources
|
|
218
218
|
CreateModelLoaderOptions.format (property) — Geometry format to export when an individual call does not…
|
|
@@ -222,16 +222,16 @@ CreateModelLoaderOptions (type) [lines 869-916] [9 members] — Defaults accepte
|
|
|
222
222
|
CreateModelLoaderOptions.mesh (property) — Whether STEP loading should also produce mesh evidence
|
|
223
223
|
CreateModelLoaderOptions.meshLinearTolerance (property) — Linear tolerance used while meshing exact BRep evidence
|
|
224
224
|
CreateModelLoaderOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
225
|
-
GeoSpecExporterCapabilities (type) [lines
|
|
225
|
+
GeoSpecExporterCapabilities (type) [lines 931-953] [4 members] — What a {@link GeoSpecModelExporter} declares it can do
|
|
226
226
|
GeoSpecExporterCapabilities.formats (property) — The formats `export` produces
|
|
227
227
|
GeoSpecExporterCapabilities.parameters (property) — Accepts `parameters`
|
|
228
228
|
GeoSpecExporterCapabilities.region (property) — Crops to `region` (an axis-aligned millimetre box) before export
|
|
229
229
|
GeoSpecExporterCapabilities.inlineSources (property) — Accepts `inline` sources, which back `loadModel({ code })`
|
|
230
|
-
GeoSpecExportFormat (type) [lines
|
|
231
|
-
GeoSpecLoadRegion (type) [lines
|
|
230
|
+
GeoSpecExportFormat (type) [lines 955-956] — Formats a {@link GeoSpecModelExporter} may produce from a source-kind file
|
|
231
|
+
GeoSpecLoadRegion (type) [lines 958-966] [2 members] — Axis-aligned crop box in canonical Z-up millimetres
|
|
232
232
|
GeoSpecLoadRegion.min (property)
|
|
233
233
|
GeoSpecLoadRegion.max (property)
|
|
234
|
-
GeoSpecModelArtifact (type) [lines
|
|
234
|
+
GeoSpecModelArtifact (type) [lines 968-1011] [7 members] — The bytes an exporter returns, in the canonical Z-up millimetre…
|
|
235
235
|
GeoSpecModelArtifact.bytes (property)
|
|
236
236
|
GeoSpecModelArtifact.format (property)
|
|
237
237
|
GeoSpecModelArtifact.sourceUnit (property) — Unit of raw GLB coordinates
|
|
@@ -239,14 +239,14 @@ GeoSpecModelArtifact (type) [lines 955-998] [7 members] — The bytes an exporte
|
|
|
239
239
|
GeoSpecModelArtifact.consumedSources (property) — Every source file the export read, as a path from…
|
|
240
240
|
GeoSpecModelArtifact.diagnostics (property) — Notices from a successful export, admitted with the subject so…
|
|
241
241
|
GeoSpecModelArtifact.exportOptions (property) — The export options the exporter applied, recorded in the load…
|
|
242
|
-
GeoSpecModelExporter (type) [lines
|
|
242
|
+
GeoSpecModelExporter (type) [lines 1013-1047] [6 members] — Turns a source-kind model file into GLB or STEP bytes…
|
|
243
243
|
GeoSpecModelExporter.id (property)
|
|
244
244
|
GeoSpecModelExporter.extensions (property)
|
|
245
245
|
GeoSpecModelExporter.capabilities (property)
|
|
246
246
|
GeoSpecModelExporter.export (method)
|
|
247
247
|
GeoSpecModelExporter.revision (method) — The sources an export of `file` would read now, without…
|
|
248
248
|
GeoSpecModelExporter.close (method) — Releases what the exporter created for one scope
|
|
249
|
-
GeoSpecModelExportRequest (type) [lines
|
|
249
|
+
GeoSpecModelExportRequest (type) [lines 1049-1093] [8 members] — One export request
|
|
250
250
|
GeoSpecModelExportRequest.file (property) — Entry file, as a path from the project root
|
|
251
251
|
GeoSpecModelExportRequest.projectPath (property) — Absolute project root the exporter resolves `file` and its imports…
|
|
252
252
|
GeoSpecModelExportRequest.format (property)
|
|
@@ -255,12 +255,12 @@ GeoSpecModelExportRequest (type) [lines 1036-1080] [8 members] — One export re
|
|
|
255
255
|
GeoSpecModelExportRequest.region (property) — Millimetre crop box
|
|
256
256
|
GeoSpecModelExportRequest.inline (property) — Source text keyed by project-relative path
|
|
257
257
|
GeoSpecModelExportRequest.signal (property)
|
|
258
|
-
GeoSpecModelFormat (type) [lines
|
|
259
|
-
GeoSpecModelLoader (type) [lines
|
|
260
|
-
ManagedGeoSpecModelLoader (type) [lines
|
|
258
|
+
GeoSpecModelFormat (type) [lines 1095-1096] — Geometry formats accepted by {@link import ('./load-model.js').loadModel}
|
|
259
|
+
GeoSpecModelLoader (type) [lines 1098-1099] — Function shape used by GeoSpec runners to provide model loading…
|
|
260
|
+
ManagedGeoSpecModelLoader (type) [lines 1101-1107] [1 members] — A configured loader whose admissions can be released with its…
|
|
261
261
|
ManagedGeoSpecModelLoader.dispose (method)
|
|
262
|
-
GeoSpecConsumedSources (type) [lines
|
|
263
|
-
LoadModelCodeOptions (type) [lines
|
|
262
|
+
GeoSpecConsumedSources (type) [lines 1109-1113] — The source files one export read, each with its SHA-256…
|
|
263
|
+
LoadModelCodeOptions (type) [lines 1115-1187] [12 members] — Inline code-CAD model load options
|
|
264
264
|
LoadModelCodeOptions.code (property) — Source files keyed by project-relative path
|
|
265
265
|
LoadModelCodeOptions.file (property) — Entry path to render from {@link code }
|
|
266
266
|
LoadModelCodeOptions.rootDir (property) — Not accepted
|
|
@@ -273,7 +273,7 @@ LoadModelCodeOptions (type) [lines 1102-1174] [12 members] — Inline code-CAD m
|
|
|
273
273
|
LoadModelCodeOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
274
274
|
LoadModelCodeOptions.workUnitLimit (property) — Default work-unit budget for every claim on this subject
|
|
275
275
|
LoadModelCodeOptions.region (property) — Axis-aligned millimetre box the exporter crops the model to before…
|
|
276
|
-
LoadModelFileOptions (type) [lines
|
|
276
|
+
LoadModelFileOptions (type) [lines 1189-1263] [11 members] — Filesystem-backed model load options
|
|
277
277
|
LoadModelFileOptions.file (property) — Model file to render, as a path from the project…
|
|
278
278
|
LoadModelFileOptions.rootDir (property) — Project-relative folder `file` resolves in, for a suite that loads…
|
|
279
279
|
LoadModelFileOptions.projectPath (property) — Absolute project root passed to the exporter
|
|
@@ -285,7 +285,7 @@ LoadModelFileOptions (type) [lines 1176-1250] [11 members] — Filesystem-backed
|
|
|
285
285
|
LoadModelFileOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
286
286
|
LoadModelFileOptions.workUnitLimit (property) — Default work-unit budget for every claim on this subject
|
|
287
287
|
LoadModelFileOptions.region (property) — Axis-aligned millimetre box the exporter crops the model to before…
|
|
288
|
-
LoadModelOptions (type) [lines
|
|
288
|
+
LoadModelOptions (type) [lines 1265-1290] [8 members] — Options accepted by {@link import ('./load-model.js').loadModel}
|
|
289
289
|
LoadModelOptions.rootDir (property) — Project-relative folder `file` resolves in, for a suite that loads…
|
|
290
290
|
LoadModelOptions.format (property) — Geometry format to export
|
|
291
291
|
LoadModelOptions.parameters (property) — Explicit parameters passed to the exporter
|
|
@@ -294,7 +294,7 @@ LoadModelOptions (type) [lines 1252-1277] [8 members] — Options accepted by {@
|
|
|
294
294
|
LoadModelOptions.meshLinearTolerance (property) — Linear tolerance used while meshing exact BRep evidence
|
|
295
295
|
LoadModelOptions.meshAngularToleranceDegrees (property) — Angular tolerance in degrees used while meshing exact BRep evidence
|
|
296
296
|
LoadModelOptions.workUnitLimit (property) — Default work-unit budget for every claim on this subject
|
|
297
|
-
LoadModelSourceOptions (type) [lines
|
|
297
|
+
LoadModelSourceOptions (type) [lines 1292-1372] [13 members] — Direct geometry-source model load options
|
|
298
298
|
LoadModelSourceOptions.source (property) — Geometry bytes, path, browser file/blob, or in-memory mesh buffer
|
|
299
299
|
LoadModelSourceOptions.resources (property) — Named external resources consumed alongside the direct geometry bytes
|
|
300
300
|
LoadModelSourceOptions.rootDir (property) — Project-relative folder a path `source` and each resource path resolve…
|
|
@@ -309,11 +309,22 @@ GeoSpecMatcher: {
|
|
|
309
309
|
toHaveBoundingBox(first: Vec3 | GeoSpecBoundingBoxExpectation, second?: Vec3): GeoSpecAssertion;
|
|
310
310
|
/**
|
|
311
311
|
* Assert how many spatially disjoint chunks the mesh contains.
|
|
312
|
+
*
|
|
313
|
+
* On glTF, each `TRIANGLES` primitive is an operand unless the mesh declares
|
|
314
|
+
* `EXT_mesh_manifold`, which makes its primitives one body; a body spread
|
|
315
|
+
* over undeclared primitives refuses with a typed reason.
|
|
312
316
|
*/
|
|
313
317
|
toHaveConnectedComponents(expected: GeoSpecConnectedComponentsExpectation): GeoSpecAssertion;
|
|
314
318
|
/**
|
|
315
319
|
* Assert closed mesh edge incidence; this does not prove vertex-manifold
|
|
316
320
|
* validity, embeddedness, a Boolean fuse, or material connectivity.
|
|
321
|
+
*
|
|
322
|
+
* It judges one part at a time: a glTF node with a mesh is a part, and its
|
|
323
|
+
* `TRIANGLES` primitives together are that part's surface, so every welded
|
|
324
|
+
* edge must be shared by exactly two of its triangles. Separately named
|
|
325
|
+
* nodes are separate parts; an edge where two parts meet is open in both
|
|
326
|
+
* unless each closes it on its own, and the evidence reports such edges as
|
|
327
|
+
* `openEdgesSharedAcrossLabels`. Winding is not checked.
|
|
317
328
|
*/
|
|
318
329
|
toBeWatertight(): GeoSpecAssertion;
|
|
319
330
|
/**
|
|
@@ -419,10 +430,12 @@ GeoSpecMatcher: {
|
|
|
419
430
|
toHaveBoundingBox(first: Vec3 | GeoSpecBoundingBoxExpectation, second?: Vec3): GeoSpecAssertion;
|
|
420
431
|
|
|
421
432
|
// Assert how many spatially disjoint chunks the mesh contains
|
|
433
|
+
// Remarks: On glTF, each `TRIANGLES` primitive is an operand unless the mesh declares `EXT_mesh_manifold`, which makes its primitives one body; a body spread over undeclared primitives refuses with a typed reason.
|
|
422
434
|
// GeoSpecMatcher.toHaveConnectedComponents (method)
|
|
423
435
|
toHaveConnectedComponents(expected: GeoSpecConnectedComponentsExpectation): GeoSpecAssertion;
|
|
424
436
|
|
|
425
437
|
// Assert closed mesh edge incidence
|
|
438
|
+
// Remarks: It judges one part at a time: a glTF node with a mesh is a part, and its `TRIANGLES` primitives together are that part's surface, so every welded edge must be shared by exactly two of its triangles. Separately named nodes are separate parts; an edge where two parts meet is open in both unless each closes it on its own, and the evidence reports such edges as `openEdgesSharedAcrossLabels`. Winding is not checked.
|
|
426
439
|
// GeoSpecMatcher.toBeWatertight (method)
|
|
427
440
|
toBeWatertight(): GeoSpecAssertion;
|
|
428
441
|
|