Skip to content

chore!: Rename TilesetDescriptor to RasterTilesetDescriptor#547

Merged
kylebarron merged 3 commits into
mainfrom
kyle/rename-tile-metadata
May 14, 2026
Merged

chore!: Rename TilesetDescriptor to RasterTilesetDescriptor#547
kylebarron merged 3 commits into
mainfrom
kyle/rename-tile-metadata

Conversation

@kylebarron
Copy link
Copy Markdown
Member

@kylebarron kylebarron commented May 14, 2026

A few renames so that use at callsites is clearer:

  • TilesetDescriptor -> RasterTilesetDescriptor
  • TileMetadata -> RasterTileMetadata
  • TilesetLevel -> RasterTilesetLevel
  • MultiTilesetDescriptor -> MultiRasterTilesetDescriptor
  • createMultiTilesetDescriptor -> createMultiRasterTilesetDescriptor (perhaps this should be a class instead of an interface and a free function?)

@kylebarron kylebarron enabled auto-merge (squash) May 14, 2026 20:22
@kylebarron kylebarron merged commit cf189cc into main May 14, 2026
3 checks passed
@kylebarron kylebarron deleted the kyle/rename-tile-metadata branch May 14, 2026 20:26
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant