chore!: Rename TilesetDescriptor to RasterTilesetDescriptor#547
Merged
Conversation
kylebarron
added a commit
that referenced
this pull request
May 21, 2026
#547 (cf189cc) renamed TilesetDescriptor → RasterTilesetDescriptor and TilesetLevel → RasterTilesetLevel on main, after this branch last merged it. raster-tile-traversal.ts auto-merged cleanly; world-copies.test.ts (added on this branch, untouched by #547) still imported the old names, failing CI typecheck (TS2305 + cascading implicit-any). Update the references. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
kylebarron
added a commit
that referenced
this pull request
May 21, 2026
* docs(specs): add design for multi-world-copy tile traversal (#517) Captures the agreed approach for fixing #517: re-run RasterTileNode.update() at world offsets +/-1, +/-2, ... so frustum culling considers the dataset's shifted copies, mirroring upstream tile-2d-traversal. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test(raster-tileset): add failing tests for worldOffset bounding volume translation Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(raster-tileset): translate cached bounding volume by worldOffset Threads worldOffset through getBoundingVolume; non-zero offsets return a fresh translated copy without polluting the offset-0 cache. update() now plumbs the param through but keeps current reset semantics (additive behavior follows in a separate commit). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(raster-tileset): make non-zero worldOffset passes additive in update Skips the per-frame resets when worldOffset!==0 so a tile selected by the primary pass cannot be unselected by a later world-copy pass. Necessary because the LOD test depends on metersPerCSSPixel, which varies with the OBB center, which moves with worldOffset. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(raster-tileset): traverse tiles across world copies (#517) When viewport.subViewports?.length > 1 (e.g. WebMercatorViewport with repeat:true panning across the antimeridian), re-run the traversal at world offsets ±1, ±2 ... ±MAX_MAPS, stopping early on a side that selects no tiles. Mirrors @deck.gl/geo-layers/tile-2d-traversal.ts. The bounds check now uses the offset-0 AABB regardless of pass: a tile at (x, y, z) represents the same data in every world copy, only its drawn position changes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: add dev-docs/world-copies.md explaining the world-offset traversal model Captures the model, why we re-run rather than union frusta, why non-zero passes are additive, the bounds-check invariant, termination, and pointers to the upstream prior art. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * update wording * refactor(raster-tileset): name primary-world volume in bounds check Bind the offset-0 bounding volume to `primaryWorldVolume` instead of destructuring `commonSpaceBounds` inline, clarifying that the bounds check intentionally tests the untranslated primary-world AABB regardless of the current world offset. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(world-copies): correct additive-pass rationale The docs justified additive non-zero passes by claiming the LOD test can differ across world offsets. It cannot: `metersPerCSSPixel` derives from latitude only and the offset translation is along common-space X, so `devicePixelsPerSourcePixel` is offset-invariant. The real reason is the frustum/reset interaction — a tile selected at offset 0 must survive a later pass that finds it out of frustum, so non-zero passes skip the resets. Corrected both the living doc and the design spec. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * refactor(raster-tileset): address review feedback on world-copy traversal - Rename `hit` to `cacheHit` in getBoundingVolume for clarity. - Document that `base` is the primary-world (offset-0) volume, translated for non-zero offsets, and that translateBoundingVolume's commonSpaceBounds output is for API symmetry / tests (update() re-reads the offset-0 bounds). - Fix inverted offset +1/-1 direction in two world-copies test names and comments: a dataset west of the antimeridian viewed from the east is selected via offset -1 (not +1), and its mirror via offset +1. Assertions were already correct; only the explanatory labels were swapped. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(test): adapt world-copies test to RasterTilesetDescriptor rename #547 (cf189cc) renamed TilesetDescriptor → RasterTilesetDescriptor and TilesetLevel → RasterTilesetLevel on main, after this branch last merged it. raster-tile-traversal.ts auto-merged cleanly; world-copies.test.ts (added on this branch, untouched by #547) still imported the old names, failing CI typecheck (TS2305 + cascading implicit-any). Update the references. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A few renames so that use at callsites is clearer:
TilesetDescriptor->RasterTilesetDescriptorTileMetadata->RasterTileMetadataTilesetLevel->RasterTilesetLevelMultiTilesetDescriptor->MultiRasterTilesetDescriptorcreateMultiTilesetDescriptor->createMultiRasterTilesetDescriptor(perhaps this should be a class instead of an interface and a free function?)