Don't let EllipsoidTilesetLoader create tiles past level 30, because the integers used for our QuadtreeTileID will overflow at level 31.
Tightened the tolerance of IntersectionTests::rayTriangleParametric, allowing it to find intersections with smaller triangles (such as the ones generated by EllipsoidTilesetLoader for a level 30 tile).
Fixed a bug that could cause GltfUtilities::intersectRayGltfModel to crash when the model contains a primitive whose position accessor does not have min/max values (such as the ones created by EllipsoidTilesetLoader).
Added new ITilesetHeightQuery interface. It may be optionally implemented by a TilesetContentLoader in order to provide a more efficient way to query heights. For example, EllipsoidTilesetLoader simply returns 0.0. Or, a tileset that has a corresponding web service to query heights could use that, instead of downloading and sampling tiles.
EllipsoidTilesetLoader
create tiles past level 30, because the integers used for ourQuadtreeTileID
will overflow at level 31.IntersectionTests::rayTriangleParametric
, allowing it to find intersections with smaller triangles (such as the ones generated byEllipsoidTilesetLoader
for a level 30 tile).GltfUtilities::intersectRayGltfModel
to crash when the model contains a primitive whose position accessor does not have min/max values (such as the ones created byEllipsoidTilesetLoader
).ITilesetHeightQuery
interface. It may be optionally implemented by aTilesetContentLoader
in order to provide a more efficient way to query heights. For example,EllipsoidTilesetLoader
simply returns 0.0. Or, a tileset that has a corresponding web service to query heights could use that, instead of downloading and sampling tiles.Fixes #994