CesiumGS / CesiumGS/3d-tiles-validator

Validator - Bounding Volume Spatial Coherence

Open
#25 5 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.