Tile3d
Runtime tree node decoded from tileset.json. Mutated only by traversal + streaming.
Properties
Null when this tile is structural (no renderable payload). Cleared when the URI pointed at an external tileset.json and its root has been grafted into children.
Spec-defined geometric error in meters.
Original .json URI when children were grafted from an external tileset; null otherwise. Preserved so the sweep can restore the wrapper for re-fetch when the subtree is evicted.
When non-null, traversal materialises children via SubtreeReader.
Set by the traverser when finer descendants are also in selection (skip-LoD). Drives stencil masking in the draw path so fallback tiles fill only gaps.
Set by the traverser when the tile was accepted only as a shadow caster (outside the view frustum). The layer enqueues it occluder-only: cascade depth pass, no color pass.
Last frame this tile participated in traversal — read by the layer's cold-subtree sweep.
This tile's tile-to-world composed with all ancestors'.
Scratch sort key set by Traverser each frame for distance-first ordering. Direct primitive field — avoids the boxed HashMap<Tile3d, Double> lookup that showed up as Double.valueOf 271 samples on the main thread at globe scale.