CesiumGS / CesiumGS/3d-tiles-validator
Clarify extension usage validation
- Dominant language
- TypeScript
- Stars
- 474
- Forks
- 156
- PR merge metrics
- No merged PRs in 30d
Description
Currently, the use of extensions is validated in (what I first thought to be) a straightforward way. One aspect of that validation is:
- When there is an extension found during the traversal (for example, a `boundingVolume.extensions["3DTILES_bounding_volume_S2"]`), then the `"3DTILES_bounding_volume_S2"` is stored as a "found" extension in the validation context
- At the end of the validation, the "found" extensions are compared to the `extensionsUsed` that have been declared. When an extension was "found" but not declared as "used", a warning is created. When an extension was declared as "used", but not "found", a warning is created.
The problem (which is obvious in hindsight): Certain extensions are never "found" explicitly. For example, `3DTILES_content_gltf`. It never appears as an object anywhere, but only _allows_ glTF/GLB files to be used as tile content.
This can be solved, to some extent, by keeping track of the _actual_ content data types that have been encountered. (There are corner cases where this becomes less trivial. For example, when the content data validation is disabled via a command line flag).
A related question is the _version dependency_. A specific example is that `3DTILES_content_gltf` should probably not be used in a `1.1` tileset, and using it should cause a warning. The more general question is: How to encode the mix-and-match between "tileset versions" and "allowed extensions". There may be extensions that are valid only in `1.0`, other may be valid only in `1.1`, and others may be valid in both...
Contributor guide
No contributing guide indexed for this repository
Research direction
Trace how traversal records found extensions and how extensionsUsed warnings are produced, then inspect how content data types and the content-validation CLI flag affect that context. Define the rules for implicit extensions such as 3DTILES_content_gltf, including tileset-version compatibility, and finish with tests covering undeclared, unused, disabled-validation, and version-dependent cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100