ReadonlyregionReadonlyregionReadonlyheightReadonlyfloorReadonlyresidentReadonlywindowOptional hooks for per-region collider management.
Bumped on every region data change (load/evict/edit) — pollers with no
claim on the single onRegionChanged slot (the ocean depth cache)
re-derive from it.
The region tile array view + table buffer (page-gen bind group).
Region grid coord of the current window's min corner.
Advance streaming for a camera position: evict regions that left the window, kick loads for missing ones (center-out, bounded concurrency) and rebuild the region table. Returns true when the table changed and the system must re-upload it.
World-space height from the resident CPU mirrors (bilinear over the vertex-convention sample grid). Regions that are empty or not yet loaded return the floor height — the same surface the renderer shows.
The resident CPU mirror for a region, or null (edit tools write into it in place, then call flushRegionRect).
Upload an edited texel rect of a resident region's mirror to its GPU
layer, refresh the tile's normalized bounds, and fire onRegionChanged
so the system re-bakes the overlapping VT pages (padded — the bake's
normal taps cross borders). Rect is in TILE texels (0..regionTexels).
Re-fire the load hooks for a resident region — the editor calls this after a sculpt stroke so per-region consumers (physics bodies) rebuild from the edited mirror.
Resident region grid coords (physics glue iterates this).
Normalized-height bounds of a resident region (page culling AABBs); floor-flat for empty/unloaded regions.
Fired after a region's data changed on the GPU (loaded, evicted, or resolved empty) with its world rect + normalized height bounds — the TerrainSystem re-bakes overlapping VT pages from this.