@tangram.gl/tangram-layers 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +36 -2
  2. package/dist/experimental/projected-basemaps.js +1310 -0
  3. package/dist/experimental/projected-basemaps.js.map +6 -0
  4. package/dist/experimental/terrain.js +379 -0
  5. package/dist/experimental/terrain.js.map +6 -0
  6. package/dist/experimental/webxr.js +1423 -0
  7. package/dist/experimental/webxr.js.map +6 -0
  8. package/dist/index.js +756 -0
  9. package/dist/index.js.map +6 -0
  10. package/dist/types/experimental/projected-basemaps.d.ts +120 -0
  11. package/dist/types/experimental/projected-detail.d.ts +33 -0
  12. package/dist/types/experimental/projected-navigation.d.ts +117 -0
  13. package/dist/types/experimental/terrain-display.d.ts +124 -0
  14. package/dist/types/experimental/terrain.d.ts +131 -0
  15. package/dist/types/first_person_view_adapter.d.ts +29 -0
  16. package/dist/types/globe_view_adapter.d.ts +33 -0
  17. package/dist/types/index.d.ts +84 -0
  18. package/dist/types/tangram-layer-lifecycle.d.ts +132 -0
  19. package/dist/types/tangram-layer.d.ts +157 -0
  20. package/dist/types/view_adapter_types.d.ts +42 -0
  21. package/dist/types/web_mercator_view_adapter.d.ts +77 -0
  22. package/package.json +80 -3
  23. package/src/experimental/projected-basemaps.ts +301 -0
  24. package/src/experimental/projected-detail.ts +116 -0
  25. package/src/experimental/projected-navigation.ts +323 -0
  26. package/src/experimental/terrain-display.ts +243 -0
  27. package/src/experimental/terrain.ts +240 -0
  28. package/src/experimental/webxr/grabbing.ts +166 -0
  29. package/src/experimental/webxr/index.d.ts +77 -0
  30. package/src/experimental/webxr/index.ts +72 -0
  31. package/src/experimental/webxr/interaction.ts +221 -0
  32. package/src/experimental/webxr/picking.ts +119 -0
  33. package/src/experimental/webxr/presentation.ts +457 -0
  34. package/src/experimental/webxr/projection.ts +371 -0
  35. package/src/experimental/webxr/types.ts +221 -0
  36. package/src/experimental/webxr/views.ts +190 -0
  37. package/src/first_person_view_adapter.ts +107 -0
  38. package/src/globe_view_adapter.ts +103 -0
  39. package/src/index.ts +64 -0
  40. package/src/tangram-layer-lifecycle.ts +130 -0
  41. package/src/tangram-layer.ts +679 -0
  42. package/src/view_adapter_types.ts +40 -0
  43. package/src/web_mercator_view_adapter.ts +185 -0
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/web_mercator_view_adapter.ts", "../src/first_person_view_adapter.ts", "../src/globe_view_adapter.ts", "../src/tangram-layer.ts"],
4
+ "mappings": "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",
5
+ "names": ["DECK_WORLD_SIZE", "DECK_TO_TANGRAM_ZOOM_OFFSET", "getFrame", "multiplyMatrices", "Layer", "ClassicWebGLRenderer", "TangramLayer", "width", "height", "frame"]
6
+ }
@@ -0,0 +1,120 @@
1
+ import type { HostFrameOptions, HostTileResourceOptions, ProjectedBasemapOptions } from '@tangram.gl/tangram-renderer/core';
2
+ export { ProjectedBasemapNavigation, getProjectedGeographicBounds } from "./projected-navigation.js";
3
+ export type { ProjectedNavigationViewport, ProjectedBasemapType, ProjectedGeographicBounds, ProjectedGeographicPosition, ProjectedFitOptions, ProjectedFitViewState, ProjectedCameraCoverage, ProjectedFocusTransition, ProjectedNavigationRequestOptions } from "./projected-navigation.js";
4
+ export { selectProjectedTileDetail } from "./projected-detail.js";
5
+ export type { ProjectedTileDetailOptions, ProjectedTileDetail } from "./projected-detail.js";
6
+ /** The public, non-geospatial OrthographicViewport camera consumed by the adapter. */
7
+ export interface ProjectedViewport {
8
+ /** Viewports must use Cartesian common-space positions, not automatic Mercator offsets. */
9
+ isGeospatial: boolean;
10
+ /** Viewport width in CSS pixels. */
11
+ width: number;
12
+ /** Viewport height in CSS pixels. */
13
+ height: number;
14
+ /** World-to-camera matrix supplied by deck.gl. */
15
+ viewMatrix: ArrayLike<number>;
16
+ /** Camera-to-clip matrix supplied by deck.gl. */
17
+ projectionMatrix: ArrayLike<number>;
18
+ /** Explicit deck.gl orthographic contract; perspective viewports are rejected. */
19
+ constructor: {
20
+ displayName?: string;
21
+ name?: string;
22
+ };
23
+ }
24
+ /** Explicit geographic coverage and source detail; viewport zoom is not geographic style zoom. */
25
+ export interface ProjectedViewOptions {
26
+ /** Must match the scene's worker projection; Albers initially uses a North American footprint. */
27
+ projection: ProjectedBasemapOptions;
28
+ /** Single-world west/south/east/north degrees; no poles or arbitrary-cut meridians. */
29
+ visibleBounds: readonly [number, number, number, number];
30
+ /** Source data detail in [0, 6], deliberately independent of OrthographicView zoom. */
31
+ tileZoom: number;
32
+ /** Styling level in [0, 22], no lower than data detail; defaults to tileZoom. */
33
+ styleZoom?: number;
34
+ /** Optional positive per-source candidate limit checked before any tile allocation. */
35
+ maxTiles?: number;
36
+ /** Shared worker concurrency and completed off-screen mesh cache limits. */
37
+ tileResources?: HostTileResourceOptions;
38
+ }
39
+ /** Supply a common-space orthographic camera without claiming its matrices contain EPSG:3857 meters. */
40
+ export declare function getProjectedViewFrame(viewport: ProjectedViewport, options: ProjectedViewOptions, dimensions?: {
41
+ width: number;
42
+ height: number;
43
+ }): HostFrameOptions;
44
+ /** Add the isolated projection worker to an inline scene without mutating its sources or style definitions. */
45
+ export declare function createProjectedBasemapScene(scene: Record<string, unknown>, projection: ProjectedBasemapOptions, workerUrl: string): Record<string, unknown>;
46
+ /** Opt-in deck.gl basemap layer; the ordinary package root still uses its existing view adapters. */
47
+ declare const BaseProjectedBasemapLayer: {
48
+ new (...properties: Partial<import("../tangram-layer.js").TangramLayerProps>[]): {
49
+ props: Partial<import("../tangram-layer.js").TangramLayerProps>;
50
+ context: import("../tangram-layer-lifecycle.js").TangramLayerContext;
51
+ state: {
52
+ tangramRecord?: import("../tangram-layer-lifecycle.js").TangramRecord | null;
53
+ };
54
+ setState: (state: Record<string, unknown>) => void;
55
+ setNeedsRedraw: () => void;
56
+ raiseError: (error: Error, message: string) => void;
57
+ initializeState(_context?: import("@deck.gl/core").LayerContext): void;
58
+ updateState({ props }: {
59
+ props: Partial<import("../tangram-layer.js").TangramLayerProps>;
60
+ }): void;
61
+ draw({ renderPass }?: {
62
+ renderPass?: import("@luma.gl/core").RenderPass;
63
+ }): void;
64
+ finalizeState(_context?: import("@deck.gl/core").LayerContext): void;
65
+ getFeatureAt(pixel: {
66
+ x: number;
67
+ y: number;
68
+ }, options?: import("@tangram.gl/tangram-renderer").FeatureSelectionOptions): Promise<import("@tangram.gl/tangram-renderer").FeatureSelectionResult | undefined>;
69
+ getTerrainAt(pixel: {
70
+ x: number;
71
+ y: number;
72
+ }, surface?: import("@tangram.gl/tangram-renderer").TerrainSurface, options?: import("@tangram.gl/tangram-renderer").FeatureSelectionOptions): import("@tangram.gl/tangram-renderer").TerrainSurfaceHit | null;
73
+ getDrapedTerrainSurface(): import("@tangram.gl/tangram-renderer").DrapedTerrainSurfaceSnapshot | null;
74
+ getTerrainDrapingStatistics(): import("@tangram.gl/tangram-renderer").TerrainDrapingStatistics | undefined;
75
+ get isLoaded(): boolean;
76
+ _createTangramRecord(props: Partial<import("../tangram-layer.js").TangramLayerProps>): import("../tangram-layer-lifecycle.js").TangramRecord | null;
77
+ _updateAttributions(record: import("../tangram-layer-lifecycle.js").TangramRecord): void;
78
+ _synchronizeTangramScene(record: import("../tangram-layer-lifecycle.js").TangramRecord): void;
79
+ _canRender(record: import("../tangram-layer-lifecycle.js").TangramRecord, props: Partial<import("../tangram-layer.js").TangramLayerProps>): boolean;
80
+ _raiseViewportError(record: import("../tangram-layer-lifecycle.js").TangramRecord, error: Error): void;
81
+ _reportSceneError(record: import("../tangram-layer-lifecycle.js").TangramRecord, error: Error, isFatal?: boolean): void;
82
+ _raiseBridgeError(error: Error): void;
83
+ _disposeTangramRecord(record: import("../tangram-layer-lifecycle.js").TangramRecord | null | undefined): void;
84
+ _destroyTangramRecord(record: import("../tangram-layer-lifecycle.js").TangramRecord): void;
85
+ _withDeviceState<Value>(record: import("../tangram-layer-lifecycle.js").PendingTangramRecord, callback: () => Value): Value;
86
+ };
87
+ layerName: string;
88
+ defaultProps: Record<string, unknown>;
89
+ };
90
+ /** Opt-in projection changes rebuild meshes on the existing renderer instead of reloading the scene. */
91
+ export declare class ProjectedBasemapLayer extends BaseProjectedBasemapLayer {
92
+ /**
93
+ * Query interactive Tangram geometry asynchronously in viewport-local CSS pixels.
94
+ * This is not deck.gl's synchronous picking API. The host must keep rendering
95
+ * until the selection pass and worker lookup finish; the layer requests a redraw.
96
+ */
97
+ getFeatureAt(pixel: {
98
+ x: number;
99
+ y: number;
100
+ }, options?: import('@tangram.gl/tangram-renderer/core').FeatureSelectionOptions): Promise<import('@tangram.gl/tangram-renderer/core').FeatureSelectionResult | undefined>;
101
+ /** deck.gl's stable layer identity for state transfer between property updates. */
102
+ static layerName: string;
103
+ /** Optional projection override and completion notification, independent of source scene identity. */
104
+ static defaultProps: {
105
+ projectedVisibleBounds: null;
106
+ projectedTileZoom: number;
107
+ projectedProjection: null;
108
+ projectedStyleZoom: null;
109
+ projectedMaxTiles: null;
110
+ onProjectionChange: {
111
+ type: string;
112
+ value: () => void;
113
+ };
114
+ };
115
+ /** Keep the ordinary scene lifecycle, then queue an opt-in projection-only update after loading. */
116
+ updateState(parameters: {
117
+ props: Partial<import("../tangram-layer.js").TangramLayerProps>;
118
+ }): void;
119
+ }
120
+ export type { ProjectedBasemapOptions };
@@ -0,0 +1,33 @@
1
+ import type { ProjectedBasemapNavigation, ProjectedBasemapType, ProjectedGeographicBounds, ProjectedNavigationViewport } from "./projected-navigation.js";
2
+ /** Explicit opt-in uniform source detail policy, independent of geographic style zoom. */
3
+ export interface ProjectedTileDetailOptions {
4
+ /** Fixed geographic loading region; this policy does not infer visible geographic bounds. */
5
+ visibleBounds: ProjectedGeographicBounds;
6
+ /** Lowest permissible data level in [0, 6]; defaults to 0. */
7
+ minZoom?: number;
8
+ /** Highest permissible data level in [0, 6]; defaults to 6. */
9
+ maxZoom?: number;
10
+ /** Desired maximum sampled tile span in CSS pixels; defaults to 256. */
11
+ targetTilePixels?: number;
12
+ /** Positive per-source candidate limit; defaults to 256. */
13
+ maxTiles?: number;
14
+ /** Previous level, used only if it remains in range and within budget. */
15
+ currentTileZoom?: number;
16
+ /** Fractional hysteresis around adjacent-level thresholds in [0, 0.5); defaults to 0.15. */
17
+ hysteresis?: number;
18
+ }
19
+ /** Diagnostic result; exhausting resource/detail bounds is explicit rather than hidden. */
20
+ export interface ProjectedTileDetail {
21
+ /** Selected source detail, suitable for projectedTileZoom. */
22
+ tileZoom: number;
23
+ /** Actual single-world logical candidates per source at that detail. */
24
+ candidateCount: number;
25
+ /** Maximum screen span of the sampled, domain-clipped tile footprints. */
26
+ estimatedTilePixels: number;
27
+ /** Whether a finer level was unavailable because it exceeds maxTiles. */
28
+ budgetLimited: boolean;
29
+ /** Whether the maximum configured detail still cannot reach the target pixel span. */
30
+ detailLimited: boolean;
31
+ }
32
+ /** Choose uniform XYZ detail from projected tile samples, camera scale, hysteresis and candidate limits. */
33
+ export declare function selectProjectedTileDetail(navigation: ProjectedBasemapNavigation, viewport: ProjectedNavigationViewport, type: ProjectedBasemapType, options: ProjectedTileDetailOptions): Promise<ProjectedTileDetail>;
@@ -0,0 +1,117 @@
1
+ import type { ProjectionEngine, ProjectedBasemapOptions } from '@tangram.gl/tangram-renderer/core';
2
+ import type { ProjectionExecutionOptions, ProjectionExecutionStatistics } from '@tangram.gl/tangram-renderer/core';
3
+ /** Cancellation for one coordinate request; compiled transforms remain shared and reusable. */
4
+ export interface ProjectedNavigationRequestOptions {
5
+ /** Abort this request without disposing the navigation helper or caller-owned factory. */
6
+ signal?: AbortSignal;
7
+ }
8
+ /** Supported fixed projection, not an arbitrary target CRS. */
9
+ export type ProjectedBasemapType = ProjectedBasemapOptions['type'];
10
+ /** Ordered single-world west, south, east and north in degrees. */
11
+ export type ProjectedGeographicBounds = readonly [number, number, number, number];
12
+ /** Geographic longitude and latitude in degrees. */
13
+ export type ProjectedGeographicPosition = readonly [number, number];
14
+ /** Public deck orthographic methods; screen positions use top-left CSS pixels. */
15
+ export interface ProjectedNavigationViewport {
16
+ /** Must be false; geographic deck cameras have a different common-space contract. */
17
+ isGeospatial: boolean;
18
+ /** Canvas width in CSS pixels. */
19
+ width: number;
20
+ /** Canvas height in CSS pixels. */
21
+ height: number;
22
+ /** Public deck viewport discriminator. */
23
+ constructor: {
24
+ displayName?: string;
25
+ name?: string;
26
+ };
27
+ /** Map common-space positions to screen pixels. */
28
+ project(position: number[]): number[];
29
+ /** Map screen pixels to the projected ground plane. */
30
+ unproject(position: number[], options?: {
31
+ targetZ?: number;
32
+ }): number[];
33
+ }
34
+ /** Orthographic state returned by the geographic fit operation. */
35
+ export interface ProjectedFitViewState {
36
+ /** Center of the sampled projected extent, in common units. */
37
+ target: [number, number, number];
38
+ /** Log2 CSS pixels per common unit. */
39
+ zoom: number;
40
+ }
41
+ /** Optional CSS padding and finite zoom range for sampled geographic fitting. */
42
+ export interface ProjectedFitOptions {
43
+ /** Padding on every side in CSS pixels; defaults to 24. */
44
+ padding?: number;
45
+ /** Minimum orthographic zoom; defaults to -10. */
46
+ minZoom?: number;
47
+ /** Maximum orthographic zoom; defaults to 10. */
48
+ maxZoom?: number;
49
+ }
50
+ /** Camera loading result, always restricted to the caller's single-world source region. */
51
+ export interface ProjectedCameraCoverage {
52
+ /** Conservative geographic envelope, or null when the ground rectangle misses the source domain. */
53
+ bounds: ProjectedGeographicBounds | null;
54
+ /** True only when an unsupported coverage contract requires a complete source region. */
55
+ domainFallback: boolean;
56
+ }
57
+ /** Geographic focus retained while changing the worker's projection. */
58
+ export interface ProjectedFocusTransition {
59
+ /** New common-space target with the existing orthographic zoom. */
60
+ viewState: ProjectedFitViewState;
61
+ /** Geographic focus used for the new target. */
62
+ focus: ProjectedGeographicPosition;
63
+ /** True when the destination's smaller domain requires clamping the focus. */
64
+ clamped: boolean;
65
+ /** True when the old target has no valid geographic inverse. */
66
+ domainFallback: boolean;
67
+ }
68
+ /** Geographic domain shared by navigation and the existing projected preview. */
69
+ export declare function getProjectedGeographicBounds(type: ProjectedBasemapType): ProjectedGeographicBounds;
70
+ /** Reject geographic, perspective or invalid-sized viewports before interpreting their methods. */
71
+ export declare function validateProjectedNavigationViewport(viewport: ProjectedNavigationViewport): void;
72
+ /** Validate a source rectangle against both the tile world and the projection's current domain. */
73
+ export declare function validateProjectedGeographicBounds(bounds: ProjectedGeographicBounds, type: ProjectedBasemapType): void;
74
+ /** Caller-owned engine navigation; no projection kernels or deck cameras enter renderer core. */
75
+ export declare class ProjectedBasemapNavigation {
76
+ private readonly engine;
77
+ /** Independent compiled forward/reverse CRS pairs, including lazy factory initialization. */
78
+ private readonly transforms;
79
+ /** Prevent late asynchronous work from publishing after example teardown. */
80
+ private disposed;
81
+ /** Bounded host kernel calls shared by forward and reverse requests. */
82
+ private readonly executor;
83
+ /** Retain a factory without taking ownership of its registrations, grids or lifetime. */
84
+ constructor(engine: ProjectionEngine, options?: ProjectionExecutionOptions);
85
+ /** Project a detached longitude/latitude batch into north-positive common coordinates. */
86
+ projectPositions(coordinates: Float64Array, type: ProjectedBasemapType, options?: ProjectedNavigationRequestOptions): Promise<Float64Array>;
87
+ /** Project a geographic focus point without mutating the supplied pair. */
88
+ projectPosition(position: ProjectedGeographicPosition, type: ProjectedBasemapType, options?: ProjectedNavigationRequestOptions): Promise<[number, number, number]>;
89
+ /** Invert ground; finite outside-domain/folded results return null. Engine errors propagate. */
90
+ unprojectPosition(position: readonly [number, number], type: ProjectedBasemapType, options?: ProjectedNavigationRequestOptions): Promise<[number, number] | null>;
91
+ /** Probe geographic coordinates on ground, not a rendered feature or depth/picking buffer. */
92
+ unprojectScreenPosition(viewport: ProjectedNavigationViewport, pixel: readonly [number, number], type: ProjectedBasemapType, options?: ProjectedNavigationRequestOptions): Promise<[number, number] | null>;
93
+ /** Bound the viewport's ground rectangle using the fixed projections' separable latitude and longitude scales.
94
+ * Equal Earth's longitude factor decreases with absolute latitude, so both latitude endpoints bound its envelope.
95
+ * Albers uses radial/angular interval bounds about the conic apex, not sparse inverse samples.
96
+ * This does not support wrapped worlds or arbitrary custom projection kernels.
97
+ */
98
+ getCameraCoverage(viewport: ProjectedNavigationViewport, type: ProjectedBasemapType, sourceBounds?: ProjectedGeographicBounds): Promise<ProjectedCameraCoverage>;
99
+ /** Bound the fixed northern Albers cone: radius decreases with latitude, angle increases with longitude. */
100
+ private getAlbersCoverage;
101
+ /** Preserve geographic focus and numeric zoom; clamp to a smaller destination domain, never mutate the input.
102
+ * A finite outside-domain target falls back to the destination domain center. Engine errors still propagate.
103
+ * Keeping zoom does not imply preserving local ground scale across differently distorted projections.
104
+ */
105
+ reprojectViewState(state: ProjectedFitViewState, from: ProjectedBasemapType, to: ProjectedBasemapType): Promise<ProjectedFocusTransition>;
106
+ /** Fit a sampled geographic extent; this is navigation, not a conservative visibility proof. */
107
+ fitBounds(bounds: ProjectedGeographicBounds, dimensions: {
108
+ width: number;
109
+ height: number;
110
+ }, type: ProjectedBasemapType, options?: ProjectedFitOptions): Promise<ProjectedFitViewState>;
111
+ /** Release navigation-owned caches; leave the shared engine usable by the renderer. */
112
+ dispose(): void;
113
+ /** Detached host execution work, independent of decoded/GPU cache residency. */
114
+ getExecutionStatistics(): ProjectionExecutionStatistics;
115
+ /** Share concurrent compilation, allow retry after failure and reject late results on teardown. */
116
+ private getTransform;
117
+ }
@@ -0,0 +1,124 @@
1
+ import { TerrainMeshSurface } from '@tangram.gl/tangram-renderer/core';
2
+ import { type GlobeTerrainMesh, type GlobeTerrainMeshTemplate, type GlobeTerrainPreparationSnapshot, type TerrainHeightGrid, type TerrainResourceBudget } from '@tangram.gl/tangram-renderer/map-logic';
3
+ /** Packed attributes shared with deck.gl; raw spherical/physical arrays are copied into the query owner. */
4
+ export declare function getTerrainRenderMesh(mesh: GlobeTerrainMesh): {
5
+ attributes: {
6
+ POSITION: {
7
+ size: number;
8
+ value: Float32Array<ArrayBufferLike>;
9
+ };
10
+ COLOR_0: {
11
+ size: number;
12
+ value: Float32Array<ArrayBufferLike>;
13
+ };
14
+ };
15
+ indices: {
16
+ size: number;
17
+ value: Uint32Array<ArrayBufferLike>;
18
+ };
19
+ };
20
+ /** Internal complete draw/query tile; never expose partial work or mutable mesh buffers through the package API. */
21
+ export interface GlobeTerrainDisplayTile {
22
+ grid: TerrainHeightGrid;
23
+ template: GlobeTerrainMeshTemplate;
24
+ exaggeration: number;
25
+ mesh: ReturnType<typeof getTerrainRenderMesh>;
26
+ surface: TerrainMeshSurface;
27
+ queryLimit: number;
28
+ }
29
+ /** Opaque complete display/query generation; only this library can produce usable handles. */
30
+ export interface GlobeTerrainDisplaySnapshot {
31
+ /** Completed physical sampling/topology generation used by every tile. */
32
+ readonly terrain: GlobeTerrainPreparationSnapshot;
33
+ /** Actual display multiplier; physical height queries remain unexaggerated. */
34
+ readonly exaggeration: number;
35
+ /** Retained display/query geometry arrays, excluding templates, scratch and acceleration. */
36
+ readonly byteLength: number;
37
+ /** Controller's current-plus-replacement geometry cap, which must match the consuming layer. */
38
+ readonly maxDisplayBytes: number;
39
+ /** Current lazy acceleration cap, which must match the consuming layer. */
40
+ readonly maxQueryIndexBytes: number;
41
+ }
42
+ /** Detached work/retention diagnostics; elapsed CPU work is not whole-frame or GPU time. */
43
+ export interface GlobeTerrainDisplayStatistics {
44
+ /** Tiles still awaiting display preparation. */
45
+ pending: number;
46
+ /** Unique current/staged display/query geometry arrays. */
47
+ retainedBytes: number;
48
+ /** Current-plus-replacement geometry cap. */
49
+ byteLimit: number;
50
+ /** Full current-plus-new geometry requirement from preflight; zero until the request is advanced. */
51
+ requiredPeakBytes: number;
52
+ /** Allocated current/staged acceleration arrays, counting shared surfaces once. */
53
+ queryIndexBytes: number;
54
+ /** New tile indexes warmed before publication; insufficient peak space defers lazy acceleration. */
55
+ warmedIndexes: number;
56
+ /** New tile indexes left lazy because current-plus-staged acceleration would exceed the cap. */
57
+ deferredIndexes: number;
58
+ /** New tiles in the current request. */
59
+ prepared: number;
60
+ /** Reused display/query tiles in the current request. */
61
+ reused: number;
62
+ /** Completed atomically published generations. */
63
+ committed: number;
64
+ /** Requests replaced before completion. */
65
+ cancelled: number;
66
+ /** Work slices in the current request. */
67
+ slices: number;
68
+ /** Last slice elapsed time, including any indivisible query snapshot copy. */
69
+ lastSliceMs: number;
70
+ /** Largest slice elapsed time in the current request. */
71
+ maxSliceMs: number;
72
+ /** Sum of slice elapsed times, excluding host yields. */
73
+ workMs: number;
74
+ /** Last admission/scaling failure; unchanged requests do not automatically retry. */
75
+ error?: string;
76
+ }
77
+ /** Internal layer boundary: resolve only complete library-owned display/query generations. */
78
+ export declare function resolveGlobeTerrainDisplay(snapshot: GlobeTerrainDisplaySnapshot): readonly GlobeTerrainDisplayTile[];
79
+ /** Host-driven cooperative rescaling and query snapshots; owns no camera, device, source or animation loop. */
80
+ export declare class GlobeTerrainDisplayPreparation {
81
+ private current?;
82
+ private target?;
83
+ private iterator?;
84
+ private staged;
85
+ private disposed;
86
+ private readonly maxDisplayBytes;
87
+ private readonly maxQueryIndexBytes;
88
+ private readonly statistics;
89
+ /** Registered current/staged geometry only; query acceleration and external snapshots are separate owners. */
90
+ private readonly leases;
91
+ /** Shared registered-allocation pool, without owning the pool or other clients. */
92
+ private readonly resourceBudget?;
93
+ /** Budget retained geometry and lazy acceleration separately; scratch, templates and GPU memory are excluded. */
94
+ constructor(options?: {
95
+ /** Current plus replacement display/query geometry cap; defaults to 128 MiB. */
96
+ maxDisplayBytes?: number;
97
+ /** Current lazy query hierarchy cap; defaults to 64 MiB. */
98
+ maxQueryIndexBytes?: number;
99
+ /** Shared registered-allocation budget for retained display/query geometry, excluding lazy indexes and scratch. */
100
+ resourceBudget?: TerrainResourceBudget;
101
+ });
102
+ /** Latest complete source generation and multiplier win; unchanged or failed requests do not restart. */
103
+ request(terrain: GlobeTerrainPreparationSnapshot, exaggeration: number): boolean;
104
+ /** Advance at least one chunk; query-snapshot construction remains an indivisible per-tile step. */
105
+ advance(budgetMs?: number, now?: () => number): boolean;
106
+ /** Explicitly retry a failed request while retaining the displayed generation. */
107
+ retry(): boolean;
108
+ /** Complete generation only; drawing and picking always adopt the same geometry. */
109
+ getSnapshot(): GlobeTerrainDisplaySnapshot | undefined;
110
+ /** Detached exact array retention and cooperative-work counters. */
111
+ getStatistics(): GlobeTerrainDisplayStatistics;
112
+ /** True while work awaits the next host slice. */
113
+ isPending(): boolean;
114
+ /** Cancel staged rescaling and release its reservations while keeping the displayed generation. */
115
+ cancel(): boolean;
116
+ /** Close staged generators and release owned references; external snapshots remain the caller's responsibility. */
117
+ destroy(): void;
118
+ /** Count shared tile handles once, including already allocated lazy query indexes. */
119
+ private getOwnedTiles;
120
+ /** External snapshots are not owned by this preparation object and require their own lifetime accounting. */
121
+ private releaseUnusedLeases;
122
+ /** Preflight a whole replacement before scaling; reuse compatible complete tiles and commit them together. */
123
+ private prepare;
124
+ }
@@ -0,0 +1,131 @@
1
+ import { CompositeLayer, type LayerProps, type UpdateParameters, type Viewport } from '@deck.gl/core';
2
+ import { SimpleMeshLayer } from '@deck.gl/mesh-layers';
3
+ import { TerrainMeshSurface, TerrainSurfaceCollection, type TerrainSurfaceHit, type TerrainCollectionHit } from '@tangram.gl/tangram-renderer/core';
4
+ import { type GlobeTerrainMeshTemplate, type GlobeTerrainPreparationSnapshot, type TerrainHeightGrid } from '@tangram.gl/tangram-renderer/map-logic';
5
+ import { getTerrainRenderMesh, type GlobeTerrainDisplaySnapshot } from "./terrain-display.js";
6
+ export { GlobeTerrainDisplayPreparation } from "./terrain-display.js";
7
+ export type { GlobeTerrainDisplaySnapshot, GlobeTerrainDisplayStatistics } from "./terrain-display.js";
8
+ /** One current immutable neighborhood and its most recent displayed/query geometry. */
9
+ interface PreparedGlobeTerrainTile {
10
+ grid: TerrainHeightGrid;
11
+ neighbors: readonly TerrainHeightGrid[];
12
+ template: GlobeTerrainMeshTemplate;
13
+ exaggeration: number;
14
+ mesh: ReturnType<typeof getTerrainRenderMesh>;
15
+ surface: TerrainMeshSurface;
16
+ queryLimit: number;
17
+ }
18
+ /** Exact retained display/query arrays and CPU timings, not total process/GPU memory. */
19
+ export interface GlobeTerrainLayerStatistics {
20
+ /** Actual admitted tiles, which can differ from requested data after a failed replacement. */
21
+ tileCount: number;
22
+ /** Actual admitted display multiplier; zero before initial admission. */
23
+ exaggeration: number;
24
+ /** Packed geographic/color/index buffers plus immutable query geometry and physical heights. */
25
+ displayBytes: number;
26
+ /** Current lazy query hierarchy bytes, bounded independently from display storage. */
27
+ queryIndexBytes: number;
28
+ /** Current display-generation admission failure; previous geometry remains visible and pickable. */
29
+ error?: string;
30
+ /** Most recent synchronous update, including validation, rescaling and query snapshots. */
31
+ updateMs: number;
32
+ /** Most recent complete screen, elevation or segment query, including any lazy index construction. */
33
+ queryMs: number;
34
+ }
35
+ /** Globe-only physical DEM input, without a loader, network request or source ownership. */
36
+ export type GlobeTerrainLayerProps = LayerProps & {
37
+ /** Immutable non-overlapping grids with balanced 2:1 edges in EPSG:3857 meters; no-data stays holes. */
38
+ data: readonly TerrainHeightGrid[];
39
+ /** Maximum display multiplier; defaults to 100, range [0, 1000]. Zero keeps the globe flat. */
40
+ globeTerrainExaggeration?: number;
41
+ /** Uniform curved cells per tile axis, range [2, 256]; defaults to 64. */
42
+ meshResolution?: number;
43
+ /** Optional cooperatively prepared complete generation, matching data identities/order and meshResolution. */
44
+ preparedTerrain?: GlobeTerrainPreparationSnapshot;
45
+ /** Optional complete draw/query generation; its effective multiplier overrides automatic camera rescaling. */
46
+ preparedDisplay?: GlobeTerrainDisplaySnapshot;
47
+ /** Current plus replacement display/query geometry typed-array cap; defaults to 128 MiB. */
48
+ maxDisplayBytes?: number;
49
+ /** Total current lazy query hierarchy typed-array cap; defaults to 64 MiB. */
50
+ maxQueryIndexBytes?: number;
51
+ /** Show triangle edges rather than shaded terrain. */
52
+ wireframe?: boolean;
53
+ };
54
+ /** Apparent spherical diameter divided by the shorter viewport dimension. */
55
+ export declare function getGlobeScreenRatio(viewport: Viewport): number;
56
+ /** Experimental displaced globe terrain. The normal TangramLayer entry does not import this layer. */
57
+ export declare class GlobeTerrainLayer extends CompositeLayer<GlobeTerrainLayerProps> {
58
+ /** Stable deck.gl diagnostic name. */
59
+ static layerName: string;
60
+ /** Validated display controls; terrain data never changes unit convention. */
61
+ static defaultProps: {
62
+ globeTerrainExaggeration: {
63
+ type: string;
64
+ value: number;
65
+ min: number;
66
+ max: number;
67
+ };
68
+ meshResolution: {
69
+ type: string;
70
+ value: number;
71
+ min: number;
72
+ max: number;
73
+ };
74
+ wireframe: boolean;
75
+ maxDisplayBytes: {
76
+ type: string;
77
+ value: number;
78
+ min: number;
79
+ };
80
+ maxQueryIndexBytes: {
81
+ type: string;
82
+ value: number;
83
+ min: number;
84
+ };
85
+ };
86
+ /** Immutable display meshes and their lazy triangle-query snapshots. */
87
+ state: {
88
+ layers: SimpleMeshLayer[];
89
+ surfaces: TerrainMeshSurface[];
90
+ exaggeration: number;
91
+ prepared?: PreparedGlobeTerrainTile[];
92
+ resolution?: number;
93
+ memoryError?: string;
94
+ updateMs?: number;
95
+ queryMs?: number;
96
+ /** One cached admitted-membership/radial-bound snapshot; owns no additional geometry buffers. */
97
+ queryGeometry?: {
98
+ /** Identity used to invalidate membership after publication. */
99
+ surfaces: TerrainMeshSurface[];
100
+ /** Shared nearest-hit/sightline router over the existing query owners. */
101
+ collection: TerrainSurfaceCollection;
102
+ /** Conservative radius enclosing every current triangle, in globe common units. */
103
+ radius: number;
104
+ };
105
+ };
106
+ /** Detached current storage/timing diagnostics; index bytes may grow only on an intersecting query. */
107
+ getStatistics(): GlobeTerrainLayerStatistics;
108
+ /** Geographic/color buffers, render topology and one owned query snapshot; no duplicate index geometry. */
109
+ private getDisplayBytes;
110
+ /** Recompute display geometry when the camera changes scale, not on every animation tick. */
111
+ shouldUpdateState({ changeFlags }: UpdateParameters<this>): boolean;
112
+ /** Keep each eye's display multiplier tied to the active viewport; grids remain physically unchanged. */
113
+ updateState({ changeFlags }: UpdateParameters<this>): void;
114
+ /** Publish one complete draw/query generation and measure layer assembly as well as geometry work. */
115
+ private publishTiles;
116
+ /** Draw curved physical terrain, independently of the basemap's styling/tile lifecycle. */
117
+ renderLayers(): SimpleMeshLayer[];
118
+ /** Cache membership and a conservative radial bracket for the admitted generation, without copying geometry. */
119
+ private getQueryGeometry;
120
+ /** Probe the currently displayed top triangles radially, returning physical source elevation rather than relief. */
121
+ sampleElevation(coordinate: readonly [number, number]): TerrainSurfaceHit | null;
122
+ /** Return the nearest loaded terrain blocker on a finite radius-256 common-space segment; null is not certified visibility. */
123
+ intersectTerrainSegment(start: readonly [number, number, number], end: readonly [number, number, number], options?: {
124
+ /** Origin self-intersection trim, in globe common units; defaults to zero. */
125
+ startInset?: number;
126
+ /** Target self-intersection trim, in globe common units; defaults to zero. */
127
+ endInset?: number;
128
+ }): TerrainCollectionHit | null;
129
+ /** Query displayed triangles but return barycentrically interpolated physical source meters. */
130
+ pickTerrain(viewport: Viewport, pixel: readonly [number, number]): TerrainSurfaceHit | null;
131
+ }
@@ -0,0 +1,29 @@
1
+ import { type HostCamera, type LegacyHostFrame } from '@tangram.gl/tangram-renderer/core';
2
+ import type { FirstPersonViewport } from './view_adapter_types.js';
3
+ /** Rendering dimensions and bounded first-person ground visibility policy. */
4
+ export type FirstPersonViewAdapterOptions = {
5
+ /** Target width in CSS pixels; defaults to viewport width. */
6
+ width?: number;
7
+ /** Target height in CSS pixels; defaults to viewport height. */
8
+ height?: number;
9
+ /** Maximum east/north extent from the eye in local geographic meters, per axis. Defaults to 20 km. */
10
+ maxGroundExtent?: number;
11
+ /** Conservative minimum/maximum physical heights in meters; defaults to ground only, [0, 0]. */
12
+ elevationRange?: readonly [number, number];
13
+ };
14
+ /** Typed bounded ground-footprint boundary for deck.gl FirstPersonView. */
15
+ export default class FirstPersonViewAdapter {
16
+ /** Converts the finite frustum/ground intersection without changing camera matrices. */
17
+ static getFrame: typeof getFrame;
18
+ }
19
+ /**
20
+ * Derives geographic tile visibility from the full finite camera frustum.
21
+ * Near/far planes and an eye-centered square limit bound horizon intersections.
22
+ * Looking entirely away from ground supplies explicit empty visibility instead
23
+ * of an error. An optional elevation slab includes elevated-only geometry;
24
+ * it is a conservative footprint, not a terrain intersection or occlusion test.
25
+ */
26
+ declare function getFrame(viewport: FirstPersonViewport, options?: FirstPersonViewAdapterOptions): LegacyHostFrame;
27
+ /** Derives flat-ground visibility from the actual mono or per-eye EPSG:3857 camera. */
28
+ export declare function getFirstPersonFrameForCamera(viewport: FirstPersonViewport, camera: HostCamera, options?: FirstPersonViewAdapterOptions): LegacyHostFrame;
29
+ export {};
@@ -0,0 +1,33 @@
1
+ import type { LegacyHostFrame } from '@tangram.gl/tangram-renderer/core';
2
+ import type { GlobeViewport } from './view_adapter_types.js';
3
+ /** Scene visibility declarations, independent of the host camera's altitude. */
4
+ export type GlobeViewAdapterOptions = {
5
+ /** Conservative maximum rendered height in geographic meters; omit if unknown. */
6
+ maxElevation?: number;
7
+ /** Optional host-supplied footprint enclosing ground AND elevated content. */
8
+ visibleBounds?: readonly [number, number, number, number];
9
+ /** Globally resident loading fallback level, integer 0–3; omit to disable. */
10
+ preloadZoom?: number;
11
+ };
12
+ /** Typed globe projection and visibility boundary for deck.gl. */
13
+ export default class GlobeViewAdapter {
14
+ /** Converts globe common-space matrices and visible geographic bounds. */
15
+ static getFrame: typeof getFrame;
16
+ }
17
+ /**
18
+ * Converts a deck.gl GlobeViewport into Tangram's host-frame contract.
19
+ *
20
+ * Globe matrices consume deck common-space coordinates directly. Tangram's
21
+ * renderer converts its EPSG:3857 tile vertices to deck's radius-256 globe in
22
+ * the vertex shader before applying these matrices.
23
+ * GlobeViewport already compensates its camera scale for latitude. The local
24
+ * Mercator-to-sphere derivative cancels that compensation, so data/style zoom
25
+ * needs only the same 512-to-256 tile-size offset as MapView, not another
26
+ * latitude adjustment. Source tile_size and zoom_offset are applied later.
27
+ *
28
+ * @param {object} viewport deck.gl GlobeViewport.
29
+ * @param options Explicit scene height and conservative geographic footprint.
30
+ * @returns {object} Tangram HostFrame fields for a globe render view.
31
+ */
32
+ declare function getFrame(viewport: GlobeViewport, options?: GlobeViewAdapterOptions): LegacyHostFrame;
33
+ export {};