CesiumGS / CesiumGS/3d-tiles-validator
Validator - Bounding Volume Spatial Coherence
- Dominant language
- TypeScript
- Stars
- 474
- Forks
- 156
- PR merge metrics
- No merged PRs in 30d
Description
For CesiumGS/3d-tiles-tools#9
@sumitshyamsukha
Let's do this one now:
> tile.content.boundingVolume, when defined, is completely inside tile.boundingVolume (use Cesium's functions)
There are three bounding volume types: region, box, and sphere. They are defined here: https://github.com/AnalyticalGraphicsInc/3d-tiles/blob/master/schema/boundingVolume.schema.json
If a tile has a content bounding volume, check that it is inside it's bounding volume. To visualize what a bounding volume / content bounding volume looks like, go to [the 3D Tiles Sandcastle](http://localhost:8080/Apps/Sandcastle/index.html?src=3D%20Tiles.html&label=Showcases) when running the 3d-tiles branch in Cesium and check out the `BV On/Off` and `Contents BV On/Off` buttons.
We'll need support the following checks:
* [x] Region inside region
* [ ] Box inside region
* [ ] Sphere inside region
* [x] Sphere inside sphere
* [ ] Region inside sphere
* [x] Box inside sphere
* [x] Box inside box
* [ ] Region inside box
* [x] Sphere inside box
I'll update with ideas for solving some of these, but to start region inside region should be pretty straightforward. Just need to check that the west/south/east/north/min/max are within the other's values.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the bounding volume definitions in boundingVolume.schema.json and review the Cesium functions used for region, box, and sphere geometry. Begin with the specified region-inside-region check, then account for each remaining combination in the checklist. Done means the validator checks every listed content bounding volume relationship.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- computer-graphics, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100