@openglobus/og 1.0.0-rc2 → 1.0.0-rc21

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 (119) hide show
  1. package/README.md +2 -0
  2. package/lib/Globe.d.ts +21 -8
  3. package/lib/Object3d.d.ts +1 -1
  4. package/lib/assets/LabelWorker.worker-C24YLEkW.js.map +1 -0
  5. package/lib/assets/PlainSegmentWorker.worker-DJHXd0bF.js.map +1 -0
  6. package/lib/assets/TerrainWorker.worker-BwueoQpg.js.map +1 -0
  7. package/lib/camera/Camera.d.ts +57 -8
  8. package/lib/camera/Frustum.d.ts +37 -1
  9. package/lib/camera/PlanetCamera.d.ts +29 -4
  10. package/lib/control/DebugInfo.d.ts +1 -0
  11. package/lib/control/FramebufferPreview.d.ts +18 -2
  12. package/lib/control/FreeNavigation.d.ts +253 -0
  13. package/lib/control/LayerSwitcher.d.ts +18 -0
  14. package/lib/control/Lighting.d.ts +3 -0
  15. package/lib/control/Navigation.d.ts +18 -1
  16. package/lib/control/ShowFps.d.ts +15 -3
  17. package/lib/control/Sun.d.ts +59 -0
  18. package/lib/control/depthCamera/DepthCamera.d.ts +132 -0
  19. package/lib/control/depthCamera/DepthCameraHandler.d.ts +25 -0
  20. package/lib/control/depthCamera/depth_camera.d.ts +2 -0
  21. package/lib/control/entityEditor/CameraEditorView.d.ts +60 -0
  22. package/lib/control/entityEditor/EntityEditor.d.ts +2 -1
  23. package/lib/control/entityEditor/EntityEditorDialog.d.ts +15 -47
  24. package/lib/control/entityEditor/EntityEditorScene.d.ts +16 -0
  25. package/lib/control/entityEditor/EntityEditorView.d.ts +68 -0
  26. package/lib/control/entityEditor/ProjectorEditorView.d.ts +31 -0
  27. package/lib/control/entityEditor/RotateEntity.d.ts +5 -1
  28. package/lib/control/index.d.ts +3 -3
  29. package/lib/control/timeline/TimelineControl.d.ts +86 -0
  30. package/lib/control/timeline/TimelineModel.d.ts +46 -1
  31. package/lib/control/timeline/TimelineView.d.ts +55 -2
  32. package/lib/entity/Entity.d.ts +18 -0
  33. package/lib/entity/EntityCollection.d.ts +71 -13
  34. package/lib/entity/billboard/BaseBillboardHandler.d.ts +16 -0
  35. package/lib/entity/geoObject/GeoObjectHandler.d.ts +3 -0
  36. package/lib/entity/geoObject/InstanceData.d.ts +6 -0
  37. package/lib/entity/geometry/Geometry.d.ts +18 -0
  38. package/lib/entity/geometry/GeometryHandler.d.ts +1 -0
  39. package/lib/entity/label/Label.d.ts +8 -6
  40. package/lib/entity/pointCloud/PointCloud.d.ts +1 -0
  41. package/lib/entity/pointCloud/PointCloudHandler.d.ts +5 -0
  42. package/lib/entity/polyline/Polyline.d.ts +15 -0
  43. package/lib/entity/polyline/PolylineBatchRenderer.d.ts +1 -0
  44. package/lib/entity/polyline/PolylineHandler.d.ts +5 -0
  45. package/lib/entity/ray/Ray.d.ts +2 -0
  46. package/lib/entity/ray/RayHandler.d.ts +1 -0
  47. package/lib/index.d.ts +20 -3
  48. package/lib/input/KeyboardHandler.d.ts +5 -1
  49. package/lib/layer/BaseTileMaterialLayer.d.ts +36 -0
  50. package/lib/layer/CanvasTiles.d.ts +8 -12
  51. package/lib/layer/Layer.d.ts +8 -1
  52. package/lib/layer/Vector.d.ts +74 -18
  53. package/lib/layer/XYZ.d.ts +5 -21
  54. package/lib/math/Line2.d.ts +9 -0
  55. package/lib/math.d.ts +8 -0
  56. package/lib/og.css +2 -1
  57. package/lib/og.es.js +1 -1
  58. package/lib/og.es.js.map +1 -1
  59. package/lib/quadTree/EntityCollectionsTreeStrategy.d.ts +3 -0
  60. package/lib/quadTree/QuadTreeStrategy.d.ts +18 -1
  61. package/lib/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +3 -0
  62. package/lib/quadTree/equi/EquiEntityCollectionsTreeStrategy.d.ts +3 -0
  63. package/lib/renderer/PhongDeferredShading.d.ts +2 -0
  64. package/lib/renderer/Renderer.d.ts +89 -6
  65. package/lib/renderer/RendererEvents.d.ts +2 -0
  66. package/lib/renderer/cascadeShadows/CascadeShadowManager.d.ts +34 -0
  67. package/lib/renderer/cascadeShadows/CascadeShadowMap.d.ts +110 -0
  68. package/lib/renderer/cascadeShadows/cascade_shadow_depth.d.ts +2 -0
  69. package/lib/renderer/projectors/Projector.d.ts +67 -0
  70. package/lib/renderer/projectors/ProjectorManager.d.ts +86 -0
  71. package/lib/renderer/projectors/ProjectorsPass.d.ts +37 -0
  72. package/lib/renderer/shadows/ShadowManager.d.ts +41 -0
  73. package/lib/renderer/shadows/ShadowMap.d.ts +21 -0
  74. package/lib/renderer/textureUnits.d.ts +6 -0
  75. package/lib/scene/Planet.d.ts +80 -8
  76. package/lib/scene/Scene.d.ts +1 -8
  77. package/lib/scene/SkyBox.d.ts +2 -1
  78. package/lib/segment/Segment.d.ts +18 -1
  79. package/lib/shaders/common/uniforms.d.ts +29 -0
  80. package/lib/shaders/geo_object/geo_object.d.ts +1 -0
  81. package/lib/shaders/projectorsPass/projectorsPass.d.ts +2 -0
  82. package/lib/shaders/tone_mapping/toneMapping.d.ts +1 -1
  83. package/lib/shaders/varianceBlur.d.ts +2 -0
  84. package/lib/terrain/EmptyTerrain.d.ts +43 -2
  85. package/lib/terrain/GlobusRgbTerrain.d.ts +1 -0
  86. package/lib/terrain/MapterhornTerrain.d.ts +11 -0
  87. package/lib/terrain/RgbTerrain.d.ts +11 -0
  88. package/lib/terrain/index.d.ts +6 -2
  89. package/lib/ui/Button.d.ts +1 -0
  90. package/lib/ui/Checkbox.d.ts +1 -0
  91. package/lib/ui/Color.d.ts +6 -2
  92. package/lib/ui/Dialog.d.ts +46 -1
  93. package/lib/ui/Dock.d.ts +151 -0
  94. package/lib/ui/Input.d.ts +14 -1
  95. package/lib/ui/Slider.d.ts +1 -0
  96. package/lib/ui/TitleBarView.d.ts +21 -0
  97. package/lib/ui/index.d.ts +2 -0
  98. package/lib/utils/FontAtlas.d.ts +5 -3
  99. package/lib/utils/GeoImageCreator.d.ts +7 -0
  100. package/lib/utils/Loader.d.ts +6 -0
  101. package/lib/utils/NormalMapCreator.d.ts +6 -0
  102. package/lib/utils/TerrainWorker.d.ts +1 -0
  103. package/lib/utils/VectorTileCreator.d.ts +6 -0
  104. package/lib/utils/cameraFootprint.d.ts +72 -0
  105. package/lib/utils/gltf/types.d.ts +5 -4
  106. package/lib/utils/shadowCameraFit.d.ts +175 -0
  107. package/lib/utils/shared.d.ts +11 -0
  108. package/lib/webgl/BaseFramebuffer.d.ts +28 -0
  109. package/lib/webgl/Framebuffer.d.ts +5 -7
  110. package/lib/webgl/Handler.d.ts +28 -0
  111. package/package.json +11 -9
  112. package/lib/assets/LabelWorker.worker-DYd7xn3M.js.map +0 -1
  113. package/lib/assets/PlainSegmentWorker.worker-JsKldq-e.js.map +0 -1
  114. package/lib/assets/TerrainWorker.worker-CqUJvMOv.js.map +0 -1
  115. package/lib/control/CameraFrameComposer.d.ts +0 -19
  116. package/lib/control/CameraFrameHandler.d.ts +0 -26
  117. package/lib/control/cameraDepthHandler/CameraDepthHandler.d.ts +0 -42
  118. package/lib/control/cameraDepthHandler/camera_depth.d.ts +0 -2
  119. package/lib/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,41 @@
1
+ import type { DepthCamera } from "../../control/depthCamera/DepthCamera";
2
+ import type { ShaderProgram } from "../../webgl/ShaderProgram";
3
+ import type { Renderer } from "../Renderer";
4
+ import { ShadowMap } from "./ShadowMap";
5
+ export declare const MAX_SHADOW_MAPS = 4;
6
+ export declare const VARIANCE_SHADOW_ENABLED = false;
7
+ export declare class ShadowManager {
8
+ protected _renderer: Renderer;
9
+ protected _shadowMaps: ShadowMap[];
10
+ protected _activeShadowMaps: ShadowMap[];
11
+ protected _viewProjData: Float32Array;
12
+ protected _eyeRelData: Float32Array;
13
+ protected _paramsData: Float32Array;
14
+ protected _depthRangeData: Float32Array;
15
+ protected _layerData: Int32Array;
16
+ protected _updateActiveShadowMaps: boolean;
17
+ protected _depthArrayTexture: WebGLTexture | null;
18
+ protected _depthSize: number;
19
+ protected _varianceBlurArrayTexture: WebGLTexture | null;
20
+ protected _varianceBlurArraySize: number;
21
+ protected _freeSlots: number[];
22
+ constructor(renderer: Renderer);
23
+ get activeCount(): number;
24
+ get depthArrayTexture(): WebGLTexture | null;
25
+ get active(): ShadowMap[];
26
+ add(shadowMap: ShadowMap): number;
27
+ protected _rebindFramebufferToLayer(shadowMap: ShadowMap): boolean;
28
+ protected _restoreFramebufferAttachment(shadowMap: ShadowMap): void;
29
+ update(shadowMap: ShadowMap): boolean;
30
+ getByDepthCamera(depthCamera: DepthCamera): ShadowMap | null;
31
+ remove(shadowMap: ShadowMap): boolean;
32
+ clear(): void;
33
+ dispose(): void;
34
+ blurShadowMap(shadowMap: ShadowMap): void;
35
+ bindForward(program: ShaderProgram, textureUnitStart?: number): number;
36
+ bindDeferred(program: ShaderProgram, textureUnitStart?: number, shadowMapIndex?: number): number;
37
+ protected _ensureDepthArrayTexture(size: number): boolean;
38
+ protected _createDepthArrayTexture(size: number): boolean;
39
+ protected _collectActiveShadowMaps(): ShadowMap[];
40
+ protected _getActiveShadowMaps(): ShadowMap[];
41
+ }
@@ -0,0 +1,21 @@
1
+ import type { DepthCamera } from "../../control/depthCamera/DepthCamera";
2
+ import type { ShadowManager } from "./ShadowManager";
3
+ export interface IShadowMapParams {
4
+ enabled?: boolean;
5
+ depthCamera: DepthCamera;
6
+ }
7
+ export declare class ShadowMap {
8
+ protected static __staticCounter__: number;
9
+ readonly id: number;
10
+ depthCamera: DepthCamera;
11
+ protected _enabled: boolean;
12
+ _slot: number;
13
+ _manager: ShadowManager | null;
14
+ constructor(params: IShadowMapParams);
15
+ get enabled(): boolean;
16
+ set enabled(enabled: boolean);
17
+ get slot(): number;
18
+ get arrayTexture(): WebGLTexture | null;
19
+ get depthTexture(): WebGLTexture | null;
20
+ blur(): void;
21
+ }
@@ -0,0 +1,6 @@
1
+ export declare const DEFAULT_PROJECTOR_TEXTURE_UNIT_START = 6;
2
+ export declare const DEFAULT_SHADOW_TEXTURE_UNIT_START = 10;
3
+ export declare const DEFAULT_CASCADE_SHADOW_TEXTURE_UNIT_START = 14;
4
+ export declare const TERRAIN_PROJECTOR_TEXTURE_UNIT_OFFSET = 6;
5
+ export declare const TERRAIN_SHADOW_TEXTURE_UNIT_OFFSET = 10;
6
+ export declare const TERRAIN_CASCADE_SHADOW_TEXTURE_UNIT_OFFSET = 11;
@@ -51,6 +51,7 @@ export interface IPlanetParams {
51
51
  transitionOpacityEnabled?: boolean;
52
52
  atmosphereParameters?: IAtmosphereParams;
53
53
  minDistanceBeforeMemClear?: number;
54
+ disableMemClear?: boolean;
54
55
  vectorTileSize?: number;
55
56
  maxNodesCount?: number;
56
57
  transparentBackground?: boolean;
@@ -66,7 +67,10 @@ export type PlanetEventsList = [
66
67
  "layervisibilitychange",
67
68
  "rendercompleted",
68
69
  "terraincompleted",
69
- "layerloadend"
70
+ "layerloadend",
71
+ "terrainadd",
72
+ "terrainremove",
73
+ "terrainchange"
70
74
  ];
71
75
  type IndexBufferCacheData = {
72
76
  buffer: WebGLBufferExt | null;
@@ -94,6 +98,7 @@ type IndexBufferCacheData = {
94
98
  * @param {boolean} [options.transitionOpacityEnabled] - Enables terrain transition opacity blending.
95
99
  * @param {IAtmosphereParams} [options.atmosphereParameters] - Atmosphere model parameters.
96
100
  * @param {number} [options.minDistanceBeforeMemClear] - Camera travel distance threshold before automatic memory cleanup.
101
+ * @param {boolean} [options.disableMemClear=false] - Disables automatic memory cleanup via memClear().
97
102
  * @param {number} [options.vectorTileSize] - Vector tile texture size for vector layer baking.
98
103
  * @param {boolean} [options.transparentBackground=false] - Enables transparent renderer background.
99
104
  * @param {INearPlaneStrategy} [options.nearPlaneStrategy] - Near-plane strategy implementation.
@@ -167,6 +172,12 @@ export declare class Planet extends Scene {
167
172
  * @type {EmptyTerrain}
168
173
  */
169
174
  terrain: EmptyTerrain | null;
175
+ /**
176
+ * Attached terrain providers array. Only one of them could be active at a time.
177
+ * @public
178
+ * @type {Array.<EmptyTerrain>}
179
+ */
180
+ _terrains: EmptyTerrain[];
170
181
  /**
171
182
  * Camera is this.renderer.activeCamera pointer.
172
183
  * @public
@@ -272,6 +283,7 @@ export declare class Planet extends Scene {
272
283
  protected _shadeMode: ShadeMode;
273
284
  protected _atmosphereEnabled: boolean;
274
285
  protected _atmosphereMaxMinOpacity: Float32Array;
286
+ _atmosphereCurrentMaxMinOpacity: Float32Array;
275
287
  atmosphereFadeDist: Float32Array;
276
288
  protected _atmosphereBottomRadius: number;
277
289
  solidTextureOne: WebGLTextureExt | null;
@@ -281,6 +293,7 @@ export declare class Planet extends Scene {
281
293
  transitionTime: number;
282
294
  protected _atmosphere: Atmosphere;
283
295
  private _minDistanceBeforeMemClear;
296
+ disableMemClear: boolean;
284
297
  private _maxNodes;
285
298
  protected _transparentBackground: boolean;
286
299
  constructor(options?: IPlanetParams);
@@ -334,12 +347,25 @@ export declare class Planet extends Scene {
334
347
  */
335
348
  get atmosphereMinOpacity(): number;
336
349
  /**
337
- * Gets atmosphere opacity range `[max, min]`.
350
+ * Sets atmosphere opacity interpolation curve shift.
351
+ * @public
352
+ * @param {number} curveShift - Curve shift. Zero produces linear interpolation.
353
+ */
354
+ set atmosphereOpacityCurveShift(curveShift: number);
355
+ /**
356
+ * Gets atmosphere opacity interpolation curve shift.
338
357
  * @public
339
- * @returns {Float32Array} - Opacity range.
358
+ * @returns {number} - Curve shift.
359
+ */
360
+ get atmosphereOpacityCurveShift(): number;
361
+ /**
362
+ * Gets target atmosphere opacity parameters `[max, min, curveShift]`.
363
+ * @public
364
+ * @returns {Float32Array} - Opacity parameters at maximum camera altitude.
340
365
  */
341
366
  get atmosphereMaxMinOpacity(): Float32Array;
342
367
  protected _calcAtmosphereFadeDist(): void;
368
+ protected _updateAtmosphereMaxMinOpacity(): void;
343
369
  /**
344
370
  * Enables or disables atmosphere rendering and related programs.
345
371
  * @public
@@ -364,6 +390,8 @@ export declare class Planet extends Scene {
364
390
  * @param {number|string} m - Shade mode id (`0|0.5|1` or `none|phong|pbr`).
365
391
  */
366
392
  set shadeMode(m: ShadeModeInput);
393
+ protected _restoreSurfaceDepthMask(): void;
394
+ protected _enableTransparentSurfaceBlend(): void;
367
395
  /**
368
396
  * Returns normal-map generator used by the planet.
369
397
  * @public
@@ -466,7 +494,39 @@ export declare class Planet extends Scene {
466
494
  */
467
495
  setLodSize(currentLodSize: number, minLodSize?: number, maxLodSize?: number): void;
468
496
  /**
469
- * Sets terrain provider
497
+ * Returns attached terrain providers snapshot.
498
+ * @public
499
+ * @returns {EmptyTerrain[]} - Terrain providers array copy.
500
+ */
501
+ get terrains(): EmptyTerrain[];
502
+ /**
503
+ * Returns a terrain provider by name.
504
+ * @public
505
+ * @param {string} name - Terrain provider name.
506
+ * @returns {EmptyTerrain | undefined} -
507
+ */
508
+ getTerrainByName(name: string): EmptyTerrain | undefined;
509
+ /**
510
+ * Attaches terrain provider to the planet without activating it.
511
+ * @public
512
+ * @param {EmptyTerrain} terrain - Terrain provider.
513
+ */
514
+ addTerrain(terrain: EmptyTerrain): void;
515
+ /**
516
+ * Attaches the given terrain providers array to the planet.
517
+ * @public
518
+ * @param {Array.<EmptyTerrain>} terrains - Terrain providers array.
519
+ */
520
+ addTerrains(terrains: EmptyTerrain[]): void;
521
+ /**
522
+ * Detaches terrain provider from the planet. Currently active terrain provider can't be removed.
523
+ * @public
524
+ * @param {EmptyTerrain} terrain - Terrain provider.
525
+ */
526
+ removeTerrain(terrain: EmptyTerrain): void;
527
+ /**
528
+ * Sets terrain provider. Only one terrain provider could be active at a time.
529
+ * The given provider is automatically attached to the planet terrain providers list.
470
530
  * @public
471
531
  * @param {EmptyTerrain} terrain - Terrain provider.
472
532
  */
@@ -507,6 +567,7 @@ export declare class Planet extends Scene {
507
567
  */
508
568
  createDefaultTextures(param0: IDefaultTextureParams, param1: IDefaultTextureParams): void;
509
569
  protected _getLayerAttributionHTML(layer: Layer): string;
570
+ protected _getTerrainAttributionHTML(): string;
510
571
  /**
511
572
  * Updates attribution lists
512
573
  * @public
@@ -529,16 +590,18 @@ export declare class Planet extends Scene {
529
590
  */
530
591
  protected _sortLayers(): void;
531
592
  protected _renderOpaqueScreenNodesDeferredPASS(): void;
593
+ protected _renderOpaqueScreenNodesForwardPASSNoAtmos(): void;
594
+ protected _renderOpaqueScreenNodesForwardPASSAtmos(): void;
532
595
  protected _renderTransparentScreenNodesPASSNoAtmos(): void;
533
596
  protected _renderScreenNodesWithHeightPASSNoAtmos(): void;
534
597
  protected _renderTransparentScreenNodesPASSAtmos(): void;
535
598
  protected _renderScreenNodesWithHeightPASSAtmos(): void;
536
- protected _globalPreDraw(): void;
599
+ protected onPreDraw: () => void;
537
600
  /**
538
601
  * Render node callback.
539
602
  * @public
540
603
  */
541
- preFrame(): void;
604
+ onDraw: () => void;
542
605
  /**
543
606
  * Pauses quadtree render-node collection and disables camera terrain collision checks.
544
607
  * @public
@@ -553,7 +616,7 @@ export declare class Planet extends Scene {
553
616
  protected _setUniformsDeferred(cam: PlanetCamera, program: ShaderProgram): ShaderProgram;
554
617
  protected _setUniformsNoAtmos(cam: PlanetCamera, program: ShaderProgram, disableBlend: boolean): ShaderProgram;
555
618
  protected _setUniformsAtmos(cam: PlanetCamera, program: ShaderProgram, disableBlend: boolean): ShaderProgram;
556
- protected _renderingFadingNodes: (camera: PlanetCamera, quadTreeStrategy: QuadTreeStrategy, nodes: Map<number, boolean>, sh: ShaderProgram, currentNode: Node, sl: Layer[], sliceIndex: number, outTransparentSegments?: Segment[], outOpaqueSegments?: Segment[]) => void;
619
+ protected _renderingFadingNodes: (camera: PlanetCamera, quadTreeStrategy: QuadTreeStrategy, nodes: Map<number, boolean>, sh: ShaderProgram, currentNode: Node, sl: Layer[], sliceIndex: number, outTransparentSegments?: Segment[], outOpaqueSegments?: Segment[], forcedOpacity?: number, transparentSurface?: boolean) => void;
557
620
  protected static __refreshLayersFadingOpacity__(layersRef: Layer[], minCurrZoom: number, maxCurrZoom: number): void;
558
621
  /**
559
622
  * Drawing nodes
@@ -574,7 +637,7 @@ export declare class Planet extends Scene {
574
637
  * Starts a clear memory thread.
575
638
  * @public
576
639
  */
577
- memClear(): void;
640
+ memClear(force?: boolean): void;
578
641
  /**
579
642
  * Returns ray vector hit ellipsoid coordinates.
580
643
  * If the ray doesn't hit ellipsoid, it returns 'undefined'.
@@ -720,6 +783,15 @@ export declare class Planet extends Scene {
720
783
  * @returns {Vec3 | undefined} - Terrain point if found.
721
784
  */
722
785
  getEntityTerrainPoint(entity: Entity, res: Vec3): number | undefined;
786
+ /**
787
+ * Finds terrain point under a cartesian point.
788
+ * @public
789
+ * @param {Vec3} cart - Cartesian point to test.
790
+ * @param {Vec3} res - Output vector for terrain point.
791
+ * @returns {number | undefined} - Distance from the point to the terrain, undefined when no rendered
792
+ * segment covers it.
793
+ */
794
+ getCartesianTerrainPoint(cart: Vec3, res: Vec3): number | undefined;
723
795
  /**
724
796
  * Returns terrain height at the given coordinates in default terrain datum.
725
797
  * @public
@@ -55,6 +55,7 @@ declare class Scene {
55
55
  protected _entityCollectionsByDepthOrder: EntityCollection[][];
56
56
  protected _pickingId: number;
57
57
  constructor(name?: string);
58
+ protected _onDraw: () => void;
58
59
  get name(): string;
59
60
  getFrameRotation(cartesian: Vec3): Quat;
60
61
  /**
@@ -98,11 +99,6 @@ declare class Scene {
98
99
  */
99
100
  removeEntityCollection(entityCollection: EntityCollection): void;
100
101
  updateEntityCollectionsDepthOrder(): void;
101
- /**
102
- * Calls render the frame node's callback. Used in renderer.
103
- * @public
104
- */
105
- draw(): void;
106
102
  /**
107
103
  * Gets render node activity.
108
104
  * @public
@@ -123,9 +119,6 @@ declare class Scene {
123
119
  setDrawMode(mode: number): void;
124
120
  updateBillboardsTexCoords(): void;
125
121
  updateStrokeTexCoords(): void;
126
- frame(): void;
127
- preFrame(): void;
128
- protected _preDraw(): void;
129
122
  drawEntityCollections(ec: EntityCollection[], depthOrder?: number): void;
130
123
  /**
131
124
  * Draw entity collections picking frame.
@@ -8,8 +8,9 @@ declare class SkyBox extends Scene {
8
8
  constructor(params: Texture3DParams, size?: number);
9
9
  static createDefault(RESOURCES_URL: string): SkyBox;
10
10
  init(): void;
11
+ onremove(): void;
11
12
  setSize(size: number): void;
12
- preFrame(): void;
13
+ protected _onPredraw: () => void;
13
14
  protected _createBuffers(): void;
14
15
  }
15
16
  export { SkyBox };
@@ -59,6 +59,13 @@ declare class Segment {
59
59
  * @type {Sphere}
60
60
  */
61
61
  bsphere: Sphere;
62
+ /**
63
+ * Geocentric distance range of the geometry.
64
+ * @public
65
+ * @type {number}
66
+ */
67
+ minTerrainRadius: number;
68
+ maxTerrainRadius: number;
62
69
  _plainRadius: number;
63
70
  /**
64
71
  * Segment bounding box.
@@ -171,6 +178,9 @@ declare class Segment {
171
178
  vertexPositionBufferHigh: WebGLBufferExt | null;
172
179
  vertexPositionBufferLow: WebGLBufferExt | null;
173
180
  vertexTextureCoordBuffer: WebGLBufferExt | null;
181
+ skirtVertexPositionBufferHigh: WebGLBufferExt | null;
182
+ skirtVertexPositionBufferLow: WebGLBufferExt | null;
183
+ skirtIndexBuffer: WebGLBufferExt | null;
174
184
  _globalTextureCoordinates: Float32Array;
175
185
  _inTheQueue: boolean;
176
186
  _appliedNeighborsZoom: [number, number, number, number];
@@ -243,6 +253,7 @@ declare class Segment {
243
253
  _normalMapEdgeEqualize(side: number): void;
244
254
  applyTerrain(elevations?: number[] | TypedArray | null): void;
245
255
  deleteBuffers(): void;
256
+ protected _deleteSkirtBuffers(): void;
246
257
  deleteMaterials(): void;
247
258
  deleteElevations(): void;
248
259
  clearSegment(): void;
@@ -258,6 +269,7 @@ declare class Segment {
258
269
  setBoundingSphere(x: number, y: number, z: number, v: Vec3): void;
259
270
  setBoundingVolume(xmin: number, ymin: number, zmin: number, xmax: number, ymax: number, zmax: number): void;
260
271
  setBoundingVolume3v(vmin: Vec3, vmax: Vec3): void;
272
+ setTerrainRadiusRange(range?: number[] | null): void;
261
273
  setBoundingVolumeArr(bounds: NumberArray6): void;
262
274
  createCoordsBuffers(verticesHigh: Float32Array, verticesLow: Float32Array, gridSize: number): void;
263
275
  _addViewExtent(): void;
@@ -291,7 +303,12 @@ declare class Segment {
291
303
  increaseTransitionOpacity(): void;
292
304
  fadingTransitionOpacity(): void;
293
305
  colorPickingRendering(sh: ShaderProgram, layerSlice: Layer[], sliceIndex: number, defaultTexture?: WebGLTextureExt | null, isOverlay?: boolean): void;
294
- depthRendering(sh: ShaderProgram, layerSlice?: Layer[]): void;
306
+ protected _appendSkirtVertexPair(vertices: Float64Array, verticesHigh: Float32Array, verticesLow: Float32Array, vertexIndex: number, out: number): number;
307
+ protected _ensureSkirtBuffers(): boolean;
308
+ protected _drawSkirts(gl: WebGL2RenderingContext, sha: {
309
+ [id: string]: number;
310
+ }): void;
311
+ depthRendering(sh: ShaderProgram, layerSlice?: Layer[], renderSkirts?: boolean): void;
295
312
  ensureIndexBuffer(): void;
296
313
  protected _getIndexBuffer(): WebGLBufferExt;
297
314
  layerOverlap(layer: Layer): boolean;
@@ -0,0 +1,29 @@
1
+ export declare const projectorUniforms: {
2
+ u_projectorCount: string;
3
+ u_projectorLayer: string;
4
+ u_projectorViewProjRTE: string;
5
+ u_projectorEyeRel: string;
6
+ u_projectorColor: string;
7
+ u_projectorParams: string;
8
+ u_projectorDepthRange: string;
9
+ u_projectorDepthArray: string;
10
+ };
11
+ export declare const shadowMapUniforms: {
12
+ u_shadowMapCount: string;
13
+ u_shadowMapLayer: string;
14
+ u_shadowMapViewProjRTE: string;
15
+ u_shadowMapEyeRel: string;
16
+ u_shadowMapParams: string;
17
+ u_shadowMapDepthRange: string;
18
+ u_shadowMapDepthArray: string;
19
+ };
20
+ export declare const cascadeShadowUniforms: {
21
+ u_cascadeShadowCount: string;
22
+ u_cascadeShadowLayer: string;
23
+ u_cascadeShadowViewProjRTE: string;
24
+ u_cascadeShadowEyeRel: string;
25
+ u_cascadeShadowParams: string;
26
+ u_cascadeShadowSplits: string;
27
+ u_cascadeShadowViewForward: string;
28
+ u_cascadeShadowDepthArray: string;
29
+ };
@@ -6,3 +6,4 @@ export declare const geo_object_woit: () => ShaderProgram;
6
6
  export declare function geo_object_woit_atmos(atmosParams?: AtmosphereParameters): ShaderProgram;
7
7
  export declare const geo_object_picking: () => ShaderProgram;
8
8
  export declare const geo_object_depth: () => ShaderProgram;
9
+ export declare const geo_object_depth_camera: () => ShaderProgram;
@@ -0,0 +1,2 @@
1
+ import { ShaderProgram } from "../../webgl/ShaderProgram";
2
+ export declare function projectorsPass(): ShaderProgram;
@@ -1,2 +1,2 @@
1
1
  import { ShaderProgram } from "../../webgl/ShaderProgram";
2
- export declare function toneMapping(): ShaderProgram;
2
+ export declare function toneMappingProgram(operator?: string): ShaderProgram;
@@ -0,0 +1,2 @@
1
+ import { ShaderProgram } from "../webgl/ShaderProgram";
2
+ export declare function varianceBlur(): ShaderProgram;
@@ -3,9 +3,12 @@ import { Geoid } from "./Geoid";
3
3
  import { LonLat } from "../LonLat";
4
4
  import { Planet } from "../scene/Planet";
5
5
  import { Segment } from "../segment/Segment";
6
+ export declare const EMPTY_TERRAIN_ICON_SRC = "data:image/png;base64,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";
6
7
  export interface IEmptyTerrainParams {
7
8
  equalizeVertices?: boolean;
8
9
  name?: string;
10
+ attribution?: string;
11
+ iconSrc?: string | null;
9
12
  minZoom?: number;
10
13
  maxZoom?: number;
11
14
  maxNativeZoom?: number;
@@ -18,6 +21,8 @@ export type UrlRewriteFunc = (tileX: number, tileY: number, tileZoom: number, ti
18
21
  * Class represents terrain provider without elevation data.
19
22
  * @param {IEmptyTerrainParams} [options] - Provider options:
20
23
  * @param {string} [options.name="empty"] - Provider name.
24
+ * @param {string} [options.attribution=""] - Terrain attribution shown in the attribution area.
25
+ * @param {string|null} [options.iconSrc] - Icon for LayerSwitcher.
21
26
  * @param {boolean} [options.equalizeVertices=false] - Enables vertex equalization on tile borders.
22
27
  * @param {number} [options.minZoom=2] - Minimal visible zoom index when terrain handler works.
23
28
  * @param {number} [options.maxZoom=19] - Maximal visible zoom index when terrain handler works.
@@ -43,6 +48,18 @@ declare class EmptyTerrain {
43
48
  * @type {string}
44
49
  */
45
50
  name: string;
51
+ /**
52
+ * Terrain provider attribution.
53
+ * @protected
54
+ * @type {string}
55
+ */
56
+ protected _attribution: string;
57
+ /**
58
+ * Terrain provider icon for LayerSwitcher.
59
+ * @protected
60
+ * @type {string | null}
61
+ */
62
+ protected _iconSrc: string | null;
46
63
  /**
47
64
  * Minimal z-index value for segment elevation data handling.
48
65
  * @public
@@ -89,7 +106,31 @@ declare class EmptyTerrain {
89
106
  */
90
107
  setUrlRewriteCallback(ur: UrlRewriteFunc): void;
91
108
  get isIdle(): boolean;
92
- isEqual(obj: this): boolean;
109
+ isEqual(obj: EmptyTerrain): boolean;
110
+ /**
111
+ * Sets terrain provider attribution text.
112
+ * @public
113
+ * @param {string} html - HTML string that represents terrain provider attribution.
114
+ */
115
+ setAttribution(html: string): void;
116
+ /**
117
+ * Gets terrain provider attribution.
118
+ * @public
119
+ * @returns {string} Terrain provider attribution.
120
+ */
121
+ getAttribution(): string;
122
+ /**
123
+ * Gets terrain provider icon.
124
+ * @public
125
+ * @returns {string | null} Icon source.
126
+ */
127
+ get iconSrc(): string | null;
128
+ /**
129
+ * Sets terrain provider icon.
130
+ * @public
131
+ * @param {string | null} src - Icon source.
132
+ */
133
+ set iconSrc(src: string | null);
93
134
  static checkNoDataValue(noDataValues: number[] | TypedArray, value: number): boolean;
94
135
  isBlur(segment?: Segment): boolean;
95
136
  set maxNodeZoom(val: number);
@@ -106,7 +147,7 @@ declare class EmptyTerrain {
106
147
  isReady(): boolean;
107
148
  abortLoading(): void;
108
149
  clearCache(): void;
109
- getHeightAsync(lonLat: LonLat, callback: (height: number) => void): boolean;
150
+ getHeightAsync(lonLat: LonLat, callback: (height: number) => void, zoom?: number): boolean;
110
151
  loadTerrain(segment: Segment, forceLoading?: boolean): void;
111
152
  }
112
153
  export { EmptyTerrain };
@@ -1,6 +1,7 @@
1
1
  import { RgbTerrain } from "./RgbTerrain";
2
2
  import type { IRgbTerrainParams } from "./RgbTerrain";
3
3
  import { Segment } from "../segment/Segment";
4
+ export declare const GLOBUS_RGB_TERRAIN_ICON_SRC = "data:image/png;base64,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";
4
5
  export declare class GlobusRgbTerrain extends RgbTerrain {
5
6
  constructor(name?: string | null, options?: IRgbTerrainParams);
6
7
  isReadyToLoad(segment: Segment): boolean;
@@ -0,0 +1,11 @@
1
+ import { RgbTerrain } from "./RgbTerrain";
2
+ import type { IRgbTerrainParams } from "./RgbTerrain";
3
+ export declare const MAPTERHORN_TERRAIN_ICON_SRC = "data:image/png;base64,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";
4
+ /**
5
+ * Mapterhorn Web Mercator RGB terrain (512px WebP tiles, Terrarium encoding).
6
+ * @class
7
+ * @extends {RgbTerrain}
8
+ */
9
+ export declare class MapterhornTerrain extends RgbTerrain {
10
+ constructor(name?: string | null, options?: IRgbTerrainParams);
11
+ }
@@ -4,12 +4,20 @@ import { GlobusTerrain } from "./GlobusTerrain";
4
4
  import { LonLat } from "../LonLat";
5
5
  import { Segment } from "../segment/Segment";
6
6
  import type { TypedArray } from "../utils/shared";
7
+ export type RgbTerrainEncoding = "rgb" | "terrarium";
8
+ export type RgbToHeightFunc = (r: number, g: number, b: number, minHeight: number, resolution: number) => number;
9
+ export declare function rgbToHeightRgb(r: number, g: number, b: number, minHeight: number, resolution: number): number;
10
+ export declare function rgbToHeightTerrarium(r: number, g: number, b: number, _minHeight: number, _resolution: number): number;
11
+ export declare const rgbToHeightByEncoding: Record<RgbTerrainEncoding, RgbToHeightFunc>;
12
+ export declare function resolveRgbToHeightFunc(options: Pick<IRgbTerrainParams, "encoding" | "rgbToHeightFunc">): RgbToHeightFunc;
7
13
  export interface IRgbTerrainParams extends IGlobusTerrainParams {
8
14
  equalizeNormals?: boolean;
9
15
  key?: string;
10
16
  imageSize?: number;
11
17
  minHeight?: number;
12
18
  resolution?: number;
19
+ encoding?: RgbTerrainEncoding;
20
+ rgbToHeightFunc?: RgbToHeightFunc;
13
21
  }
14
22
  /**
15
23
  * @class
@@ -21,6 +29,8 @@ export interface IRgbTerrainParams extends IGlobusTerrainParams {
21
29
  * @param {number} [options.imageSize=256] - Source image size.
22
30
  * @param {number} [options.minHeight=-10000] - Minimal height for RGB-to-height conversion.
23
31
  * @param {number} [options.resolution=0.1] - RGB-to-height conversion resolution.
32
+ * @param {RgbTerrainEncoding} [options.encoding="rgb"] - RGB elevation encoding: `"rgb"` (default) or `"terrarium"`. Ignored when `options.rgbToHeightFunc` is set.
33
+ * @param {RgbToHeightFunc} [options.rgbToHeightFunc] - Custom RGB-to-height decoder with signature `(r, g, b, minHeight, resolution) => number`. Defaults to `rgbToHeightByEncoding[options.encoding]`.
24
34
  */
25
35
  declare class RgbTerrain extends GlobusTerrain {
26
36
  protected _imageSize: number;
@@ -28,6 +38,7 @@ declare class RgbTerrain extends GlobusTerrain {
28
38
  protected _imageDataCache: Record<string, Uint8ClampedArray>;
29
39
  protected _minHeight: number;
30
40
  protected _resolution: number;
41
+ protected _rgbToHeight: RgbToHeightFunc;
31
42
  constructor(name: string | null, options?: IRgbTerrainParams);
32
43
  static checkNoDataValue(noDataValues: number[] | TypedArray, value: number): boolean;
33
44
  rgb2Height(r: number, g: number, b: number): number;
@@ -1,6 +1,10 @@
1
1
  import { BilTerrain } from "./BilTerrain";
2
2
  import { EmptyTerrain } from "./EmptyTerrain";
3
3
  import { GlobusTerrain } from "./GlobusTerrain";
4
- import { RgbTerrain } from "./RgbTerrain";
4
+ import { RgbTerrain, rgbToHeightByEncoding, rgbToHeightRgb, rgbToHeightTerrarium, resolveRgbToHeightFunc } from "./RgbTerrain";
5
+ import type { IRgbTerrainParams, RgbTerrainEncoding, RgbToHeightFunc } from "./RgbTerrain";
5
6
  import { GlobusRgbTerrain } from "./GlobusRgbTerrain";
6
- export { EmptyTerrain, GlobusTerrain, RgbTerrain, BilTerrain, GlobusRgbTerrain };
7
+ import { MapterhornTerrain } from "./MapterhornTerrain";
8
+ export { EmptyTerrain, GlobusTerrain, RgbTerrain, BilTerrain, GlobusRgbTerrain, MapterhornTerrain };
9
+ export { rgbToHeightByEncoding, rgbToHeightRgb, rgbToHeightTerrarium, resolveRgbToHeightFunc };
10
+ export type { IRgbTerrainParams, RgbTerrainEncoding, RgbToHeightFunc };
@@ -20,6 +20,7 @@ declare class Button extends View<null> {
20
20
  protected _skipMouseClickOnce: boolean;
21
21
  constructor(options?: IButtonParams);
22
22
  render(params: any): this;
23
+ afterRender(parentNode: HTMLElement): void;
23
24
  protected _initEvents(): void;
24
25
  protected _onMouseDown: (e: MouseEvent) => void;
25
26
  protected _onMouseUp: (e: MouseEvent) => void;
@@ -21,6 +21,7 @@ declare class Checkbox extends View<null> {
21
21
  protected _onResize: () => void;
22
22
  set checked(isChecked: boolean);
23
23
  get checked(): boolean;
24
+ afterRender(parentNode: HTMLElement): void;
24
25
  protected _initEvents(): void;
25
26
  protected _clearEvents(): void;
26
27
  protected _onMouseWheel: (e: WheelEvent) => void;
package/lib/ui/Color.d.ts CHANGED
@@ -10,14 +10,18 @@ declare class Color extends View<null> {
10
10
  events: EventsHandler<ColorEventsList> & EventsHandler<ViewEventsList>;
11
11
  protected _value: string;
12
12
  protected $label: HTMLElement | null;
13
- protected $input: HTMLInputElement | null;
13
+ protected $pickerInput: HTMLInputElement | null;
14
+ protected $valueInput: HTMLInputElement | null;
14
15
  constructor(options?: IColorParams);
16
+ static normalizeColor(color: string | undefined): string | null;
15
17
  render(params: any): this;
16
18
  set value(val: string);
17
19
  get value(): string;
20
+ afterRender(parentNode: HTMLElement): void;
18
21
  protected _initEvents(): void;
19
22
  protected _clearEvents(): void;
20
- protected _onInput: (e: Event) => void;
23
+ protected _onPickerInput: (e: Event) => void;
24
+ protected _onValueInput: (e: Event) => void;
21
25
  remove(): void;
22
26
  }
23
27
  export { Color };