@openglobus/og 0.21.0 → 0.22.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 (133) hide show
  1. package/LICENSE.md +2 -2
  2. package/lib/@openglobus/js/Globe.d.ts +4 -0
  3. package/lib/@openglobus/js/Object3d.d.ts +7 -2
  4. package/lib/@openglobus/js/camera/Camera.d.ts +2 -0
  5. package/lib/@openglobus/js/control/geoObjectEditor/GeoObjectEditorScene.d.ts +58 -0
  6. package/lib/@openglobus/js/ellipsoid/Ellipsoid.d.ts +2 -1
  7. package/lib/@openglobus/js/ellipsoid/index.d.ts +4 -3
  8. package/lib/@openglobus/js/ellipsoid/mars.d.ts +6 -0
  9. package/lib/@openglobus/js/ellipsoid/moon.d.ts +6 -0
  10. package/lib/@openglobus/js/entity/Entity.d.ts +4 -2
  11. package/lib/@openglobus/js/entity/EntityCollection.d.ts +3 -2
  12. package/lib/@openglobus/js/entity/GeoObject.d.ts +6 -1
  13. package/lib/@openglobus/js/entity/GeoObjectHandler.d.ts +4 -0
  14. package/lib/@openglobus/js/entity/Label.d.ts +14 -0
  15. package/lib/@openglobus/js/entity/LabelHandler.d.ts +1 -1
  16. package/lib/@openglobus/js/index.d.ts +3 -3
  17. package/lib/@openglobus/js/layer/Vector.d.ts +12 -29
  18. package/lib/@openglobus/js/proj/equi.d.ts +9 -0
  19. package/lib/@openglobus/js/quadTree/{EPSG4326QuadTreeStrategy.d.ts → EPSG4326/EPSG4326QuadTreeStrategy.d.ts} +2 -2
  20. package/lib/@openglobus/js/quadTree/EntityCollectionNode.d.ts +5 -13
  21. package/lib/@openglobus/js/quadTree/EntityCollectionsTreeStrategy.d.ts +25 -0
  22. package/lib/@openglobus/js/quadTree/QuadTreeStrategy.d.ts +11 -0
  23. package/lib/@openglobus/js/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +18 -0
  24. package/lib/@openglobus/js/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +19 -0
  25. package/lib/@openglobus/js/quadTree/earth/EarthQuadTreeStrategy.d.ts +29 -0
  26. package/lib/@openglobus/js/quadTree/equi/EquiEntityCollectionNodeLonLat.d.ts +17 -0
  27. package/lib/@openglobus/js/quadTree/equi/EquiEntityCollectionsTreeStrategy.d.ts +17 -0
  28. package/lib/@openglobus/js/quadTree/equi/EquiQuadTreeStrategy.d.ts +19 -0
  29. package/lib/@openglobus/js/quadTree/index.d.ts +6 -6
  30. package/lib/{js/quadTree → @openglobus/js/quadTree/wgs84}/Wgs84QuadTreeStrategy.d.ts +2 -2
  31. package/lib/@openglobus/js/renderer/Renderer.d.ts +2 -0
  32. package/lib/@openglobus/js/scene/Planet.d.ts +0 -27
  33. package/lib/@openglobus/js/segment/Segment.d.ts +0 -1
  34. package/lib/@openglobus/js/segment/SegmentLonLat.d.ts +0 -4
  35. package/lib/@openglobus/js/segment/{SegmentLonLatWgs84.d.ts → SegmentLonLatEqui.d.ts} +4 -1
  36. package/lib/@openglobus/js/terrain/RgbTerrain.d.ts +11 -0
  37. package/lib/@openglobus/og.esm.js +1 -1
  38. package/lib/@openglobus/og.esm.js.map +1 -1
  39. package/lib/@openglobus/og.umd.js +1 -1
  40. package/lib/@openglobus/og.umd.js.map +1 -1
  41. package/lib/@openglobus/res/fonts/Ephesis-Regular.json +4648 -0
  42. package/lib/@openglobus/res/fonts/Ephesis-Regular.ttf.cfg +1282 -0
  43. package/lib/@openglobus/res/fonts/Ephesis-Regular.ttf.png +0 -0
  44. package/lib/js/Globe.d.ts +4 -0
  45. package/lib/js/Globe.js +8 -4
  46. package/lib/js/Object3d.d.ts +7 -2
  47. package/lib/js/Object3d.js +46 -6
  48. package/lib/js/camera/Camera.d.ts +2 -0
  49. package/lib/js/camera/Camera.js +8 -0
  50. package/lib/js/control/elevationProfile/ElevationProfileScene.js +2 -0
  51. package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.d.ts +58 -0
  52. package/lib/js/control/geoObjectEditor/GeoObjectEditorScene.js +105 -0
  53. package/lib/js/ellipsoid/Ellipsoid.d.ts +2 -1
  54. package/lib/js/ellipsoid/Ellipsoid.js +17 -1
  55. package/lib/js/ellipsoid/index.d.ts +4 -3
  56. package/lib/js/ellipsoid/index.js +4 -3
  57. package/lib/js/ellipsoid/mars.d.ts +6 -0
  58. package/lib/js/ellipsoid/mars.js +6 -0
  59. package/lib/js/ellipsoid/moon.d.ts +6 -0
  60. package/lib/js/ellipsoid/moon.js +6 -0
  61. package/lib/js/entity/Entity.d.ts +4 -2
  62. package/lib/js/entity/Entity.js +4 -1
  63. package/lib/js/entity/EntityCollection.d.ts +3 -2
  64. package/lib/js/entity/EntityCollection.js +26 -2
  65. package/lib/js/entity/GeoObject.d.ts +6 -1
  66. package/lib/js/entity/GeoObject.js +9 -0
  67. package/lib/js/entity/GeoObjectHandler.d.ts +4 -0
  68. package/lib/js/entity/GeoObjectHandler.js +32 -1
  69. package/lib/js/entity/GeometryHandler.js +16 -14
  70. package/lib/js/entity/Label.d.ts +14 -0
  71. package/lib/js/entity/Label.js +24 -4
  72. package/lib/js/entity/LabelHandler.d.ts +1 -1
  73. package/lib/js/entity/LabelHandler.js +4 -4
  74. package/lib/js/entity/Polyline.js +1 -1
  75. package/lib/js/index.d.ts +3 -3
  76. package/lib/js/index.js +3 -3
  77. package/lib/js/layer/CanvasTiles.js +1 -11
  78. package/lib/js/layer/Layer.js +9 -28
  79. package/lib/js/layer/Vector.d.ts +12 -29
  80. package/lib/js/layer/Vector.js +45 -160
  81. package/lib/js/layer/XYZ.js +10 -10
  82. package/lib/js/proj/equi.d.ts +9 -0
  83. package/lib/js/proj/equi.js +9 -0
  84. package/lib/js/quadTree/{EPSG4326QuadTreeStrategy.d.ts → EPSG4326/EPSG4326QuadTreeStrategy.d.ts} +2 -2
  85. package/lib/js/quadTree/EPSG4326/EPSG4326QuadTreeStrategy.js +16 -0
  86. package/lib/js/quadTree/EntityCollectionNode.d.ts +5 -13
  87. package/lib/js/quadTree/EntityCollectionNode.js +18 -83
  88. package/lib/js/quadTree/EntityCollectionsTreeStrategy.d.ts +25 -0
  89. package/lib/js/quadTree/EntityCollectionsTreeStrategy.js +49 -0
  90. package/lib/js/quadTree/Node.js +6 -12
  91. package/lib/js/quadTree/QuadTreeStrategy.d.ts +11 -0
  92. package/lib/js/quadTree/QuadTreeStrategy.js +12 -0
  93. package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +18 -0
  94. package/lib/js/quadTree/earth/EarthEntityCollectionNodeLonLat.js +74 -0
  95. package/lib/js/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +19 -0
  96. package/lib/js/quadTree/earth/EarthEntityCollectionsTreeStrategy.js +103 -0
  97. package/lib/js/quadTree/earth/EarthQuadTreeStrategy.d.ts +29 -0
  98. package/lib/js/quadTree/{EarthQuadTreeStrategy.js → earth/EarthQuadTreeStrategy.js} +29 -6
  99. package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.d.ts +17 -0
  100. package/lib/js/quadTree/equi/EquiEntityCollectionNodeLonLat.js +70 -0
  101. package/lib/js/quadTree/equi/EquiEntityCollectionsTreeStrategy.d.ts +17 -0
  102. package/lib/js/quadTree/equi/EquiEntityCollectionsTreeStrategy.js +75 -0
  103. package/lib/js/quadTree/equi/EquiQuadTreeStrategy.d.ts +19 -0
  104. package/lib/js/quadTree/equi/EquiQuadTreeStrategy.js +62 -0
  105. package/lib/js/quadTree/index.d.ts +6 -6
  106. package/lib/js/quadTree/index.js +6 -6
  107. package/lib/{@openglobus/js/quadTree → js/quadTree/wgs84}/Wgs84QuadTreeStrategy.d.ts +2 -2
  108. package/lib/js/quadTree/wgs84/Wgs84QuadTreeStrategy.js +15 -0
  109. package/lib/js/renderer/Renderer.d.ts +2 -0
  110. package/lib/js/renderer/Renderer.js +2 -2
  111. package/lib/js/scene/Planet.d.ts +0 -27
  112. package/lib/js/scene/Planet.js +2 -9
  113. package/lib/js/segment/Segment.d.ts +0 -1
  114. package/lib/js/segment/Segment.js +0 -3
  115. package/lib/js/segment/SegmentLonLat.d.ts +0 -4
  116. package/lib/js/segment/SegmentLonLat.js +0 -11
  117. package/lib/js/segment/{SegmentLonLatWgs84.d.ts → SegmentLonLatEqui.d.ts} +4 -1
  118. package/lib/js/segment/SegmentLonLatEqui.js +46 -0
  119. package/lib/js/shaders/geoObject.js +10 -5
  120. package/lib/js/shaders/polyline.js +8 -6
  121. package/lib/js/terrain/RgbTerrain.d.ts +11 -0
  122. package/lib/js/terrain/RgbTerrain.js +12 -1
  123. package/lib/js/utils/PlainSegmentWorker.js +3 -1
  124. package/lib/js/webgl/Handler.js +1 -1
  125. package/package.json +4 -4
  126. package/lib/@openglobus/js/quadTree/EarthQuadTreeStrategy.d.ts +0 -9
  127. package/lib/@openglobus/js/quadTree/MarsQuadTreeStrategy.d.ts +0 -11
  128. package/lib/js/quadTree/EPSG4326QuadTreeStrategy.js +0 -16
  129. package/lib/js/quadTree/EarthQuadTreeStrategy.d.ts +0 -9
  130. package/lib/js/quadTree/MarsQuadTreeStrategy.d.ts +0 -11
  131. package/lib/js/quadTree/MarsQuadTreeStrategy.js +0 -43
  132. package/lib/js/quadTree/Wgs84QuadTreeStrategy.js +0 -15
  133. package/lib/js/segment/SegmentLonLatWgs84.js +0 -25
@@ -0,0 +1,29 @@
1
+ import { Node } from "../Node";
2
+ import { Planet } from "../../scene/Planet";
3
+ import { QuadTreeStrategy } from "../QuadTreeStrategy";
4
+ import { LonLat } from "../../LonLat";
5
+ import { Vector } from "../../layer/Vector";
6
+ import { EarthEntityCollectionsTreeStrategy } from "./EarthEntityCollectionsTreeStrategy";
7
+ export declare class EarthQuadTreeStrategy extends QuadTreeStrategy {
8
+ /**
9
+ * Current visible north pole nodes tree nodes array.
10
+ * @public
11
+ * @type {Node}
12
+ * @todo
13
+ */
14
+ _visibleNodesNorth: Record<number, Node>;
15
+ /**
16
+ * Current visible south pole nodes tree nodes array.
17
+ * @public
18
+ * @type {Node}
19
+ * @todo
20
+ */
21
+ _visibleNodesSouth: Record<number, Node>;
22
+ constructor(planet: Planet);
23
+ collectVisibleNode(node: Node): void;
24
+ protected _clearVisibleNodes(): void;
25
+ createEntitiCollectionsTreeStrategy(layer: Vector, nodeCapacity: number): EarthEntityCollectionsTreeStrategy;
26
+ init(): void;
27
+ getTileXY(lonLat: LonLat, zoom: number): [number, number, number, number];
28
+ getLonLatTileOffset(lonLat: LonLat, x: number, y: number, z: number, gridSize: number): [number, number];
29
+ }
@@ -0,0 +1,17 @@
1
+ import { Extent } from "../../Extent";
2
+ import { Planet } from "../../scene/Planet";
3
+ import { LonLat } from "../../LonLat";
4
+ import { Entity } from "../../entity/Entity";
5
+ import { EntityCollection } from "../../entity/EntityCollection";
6
+ import { EntityCollectionNode, NodesDict } from "../EntityCollectionNode";
7
+ import { EquiEntityCollectionsTreeStrategy } from "./EquiEntityCollectionsTreeStrategy";
8
+ export declare class EquiEntityCollectionNodeLonLat extends EntityCollectionNode {
9
+ strategy: EquiEntityCollectionsTreeStrategy;
10
+ constructor(strategy: EquiEntityCollectionsTreeStrategy, partId: number, parent: EquiEntityCollectionNodeLonLat | null, extent: Extent, planet: Planet, zoom: number);
11
+ createChildrenNodes(): void;
12
+ protected _setExtentBounds(): void;
13
+ __setLonLat__(entity: Entity): LonLat;
14
+ isVisible(): boolean;
15
+ isInside(entity: Entity): boolean;
16
+ renderCollection(outArr: EntityCollection[], visibleNodes: NodesDict, renderingNode: number): void;
17
+ }
@@ -0,0 +1,17 @@
1
+ import { Vector } from "../../layer/Vector";
2
+ import { Entity } from "../../entity/Entity";
3
+ import { EntityCollection } from "../../entity/EntityCollection";
4
+ import { EntityCollectionsTreeStrategy } from "../EntityCollectionsTreeStrategy";
5
+ import { EquiEntityCollectionNodeLonLat } from "./EquiEntityCollectionNodeLonLat";
6
+ export declare class EquiEntityCollectionsTreeStrategy extends EntityCollectionsTreeStrategy {
7
+ protected _entityCollectionsTreeWest: EquiEntityCollectionNodeLonLat;
8
+ protected _entityCollectionsTreeEast: EquiEntityCollectionNodeLonLat;
9
+ _renderingNodesWest: Record<number, boolean>;
10
+ _renderingNodesEast: Record<number, boolean>;
11
+ constructor(layer: Vector, nodeCapacity: number);
12
+ insertEntity(entity: Entity, rightNow?: boolean): void;
13
+ setPickingEnabled(pickingEnabled: boolean): void;
14
+ dispose(): void;
15
+ insertEntities(entitiesForTree: Entity[]): void;
16
+ collectVisibleEntityCollections(outArr: EntityCollection[]): void;
17
+ }
@@ -0,0 +1,19 @@
1
+ import { Node } from "../Node";
2
+ import { Planet } from "../../scene/Planet";
3
+ import { QuadTreeStrategy } from "../QuadTreeStrategy";
4
+ import { LonLat } from "../../LonLat";
5
+ import { Vector } from "../../layer/Vector";
6
+ import { EntityCollectionsTreeStrategy } from "../EntityCollectionsTreeStrategy";
7
+ export declare class EquiQuadTreeStrategy extends QuadTreeStrategy {
8
+ private _westExtent;
9
+ private _eastExtent;
10
+ _visibleNodesWest: Record<number, Node>;
11
+ _visibleNodesEast: Record<number, Node>;
12
+ constructor(planet: Planet);
13
+ init(): void;
14
+ getTileXY(lonLat: LonLat, zoom: number): [number, number, number, number];
15
+ getLonLatTileOffset(lonLat: LonLat, x: number, y: number, z: number, gridSize: number): [number, number];
16
+ createEntitiCollectionsTreeStrategy(layer: Vector, nodeCapacity: number): EntityCollectionsTreeStrategy;
17
+ collectVisibleNode(node: Node): void;
18
+ protected _clearVisibleNodes(): void;
19
+ }
@@ -1,12 +1,12 @@
1
- import { EarthQuadTreeStrategy } from "./EarthQuadTreeStrategy";
2
- import { MarsQuadTreeStrategy } from "./MarsQuadTreeStrategy";
3
- import { EPSG4326QuadTreeStrategy } from "./EPSG4326QuadTreeStrategy";
1
+ import { EarthQuadTreeStrategy } from "./earth/EarthQuadTreeStrategy";
2
+ import { EquiQuadTreeStrategy } from "./equi/EquiQuadTreeStrategy";
3
+ import { EPSG4326QuadTreeStrategy } from "./EPSG4326/EPSG4326QuadTreeStrategy";
4
4
  import { QuadTreeStrategy } from "./QuadTreeStrategy";
5
- import { Wgs84QuadTreeStrategy } from "./Wgs84QuadTreeStrategy";
5
+ import { Wgs84QuadTreeStrategy } from "./wgs84/Wgs84QuadTreeStrategy";
6
6
  declare const quadTreeStrategyType: {
7
7
  epsg4326: typeof EPSG4326QuadTreeStrategy;
8
8
  earth: typeof EarthQuadTreeStrategy;
9
- mars: typeof MarsQuadTreeStrategy;
9
+ equi: typeof EquiQuadTreeStrategy;
10
10
  wgs84: typeof Wgs84QuadTreeStrategy;
11
11
  };
12
- export { quadTreeStrategyType, QuadTreeStrategy, Wgs84QuadTreeStrategy, MarsQuadTreeStrategy, EarthQuadTreeStrategy };
12
+ export { quadTreeStrategyType, QuadTreeStrategy, Wgs84QuadTreeStrategy, EquiQuadTreeStrategy, EarthQuadTreeStrategy };
@@ -1,5 +1,5 @@
1
- import { Planet } from "../scene/Planet";
2
- import { QuadTreeStrategy } from "./QuadTreeStrategy";
1
+ import { Planet } from "../../scene/Planet";
2
+ import { QuadTreeStrategy } from "../QuadTreeStrategy";
3
3
  export declare class Wgs84QuadTreeStrategy extends QuadTreeStrategy {
4
4
  constructor(planet: Planet);
5
5
  init(): void;
@@ -16,6 +16,8 @@ interface IRendererParams {
16
16
  msaa?: number;
17
17
  autoActivate?: boolean;
18
18
  fontsSrc?: string;
19
+ gamma?: number;
20
+ exposure?: number;
19
21
  }
20
22
  interface IPickingObject {
21
23
  _pickingColor?: Vec3;
@@ -184,33 +184,6 @@ export declare class Planet extends RenderNode {
184
184
  _renderedNodesInFrustum: Node[][];
185
185
  _fadingNodes: Map<number, Node>;
186
186
  _fadingNodesInFrustum: Node[][];
187
- /**
188
- * Current visible mercator segments tree nodes array.
189
- * @public
190
- * @type {Node}
191
- *
192
- * @todo
193
- * _visibleNodes, _visibleNodesNorth and _visibleNodesSouth should
194
- * be replaced to strategy and Vector layer reworked in collecting methods.
195
- * _visibleNodes, and _visibleNodesNorth and South are used in Vector
196
- * layer only, for entity terrain collision
197
- *
198
- */
199
- _visibleNodes: Record<number, Node>;
200
- /**
201
- * Current visible north pole nodes tree nodes array.
202
- * @public
203
- * @type {Node}
204
- * @todo
205
- */
206
- _visibleNodesNorth: Record<number, Node>;
207
- /**
208
- * Current visible south pole nodes tree nodes array.
209
- * @public
210
- * @type {Node}
211
- * @todo
212
- */
213
- _visibleNodesSouth: Record<number, Node>;
214
187
  /**
215
188
  * Layers activity lock.
216
189
  * @public
@@ -277,7 +277,6 @@ declare class Segment {
277
277
  colorPickingRendering(sh: Program, layerSlice: Layer[], sliceIndex: number, defaultTexture?: WebGLTextureExt | null, isOverlay?: boolean): void;
278
278
  depthRendering(sh: Program, layerSlice: Layer[]): void;
279
279
  protected _getIndexBuffer(): WebGLBufferExt;
280
- _collectVisibleNodes(): void;
281
280
  layerOverlap(layer: Layer): boolean;
282
281
  getDefaultTexture(): WebGLTextureExt | null;
283
282
  getExtentLonLat(): Extent;
@@ -25,10 +25,6 @@ declare class SegmentLonLat extends Segment {
25
25
  protected _assignTileYIndexes(extent: Extent): void;
26
26
  protected _projToDeg(lon: number, lat: number): LonLat;
27
27
  protected _assignGlobalTextureCoordinates(): void;
28
- /**
29
- * @todo: replace to the strategy
30
- */
31
- _collectVisibleNodes(): void;
32
28
  /**
33
29
  * @param layer
34
30
  * @protected
@@ -2,9 +2,12 @@ import { Extent } from "../Extent";
2
2
  import { Node } from "../quadTree/Node";
3
3
  import { Planet } from "../scene/Planet";
4
4
  import { SegmentLonLat } from "./SegmentLonLat";
5
- export declare class SegmentLonLatWgs84 extends SegmentLonLat {
5
+ import { WebGLTextureExt } from "../webgl/Handler";
6
+ export declare const POLE_PIECE_SIZE: number;
7
+ export declare class SegmentLonLatEqui extends SegmentLonLat {
6
8
  constructor(node: Node, planet: Planet, tileZoom: number, extent: Extent);
7
9
  protected _getMaxZoom(): number;
8
10
  protected _assignTileYIndexes(extent: Extent): void;
9
11
  protected _assignTileXIndexes(extent: Extent): void;
12
+ getDefaultTexture(): WebGLTextureExt | null;
10
13
  }
@@ -10,6 +10,17 @@ export interface IRgbTerrainParams extends IGlobusTerrainParams {
10
10
  minHeight?: number;
11
11
  resolution?: number;
12
12
  }
13
+ /**
14
+ * @class
15
+ * @extends {GlobusTerrain}
16
+ * @param {string} [name=""] - Terrain provider name.
17
+ * @param {IRgbTerrainParams} [options]:
18
+ * @param {boolean} [equalizeNormals=true] - Make normal equalization on the edges of the tiles.
19
+ * @param {string} [key=""] - API key.
20
+ * @param {number} [imageSize=256] - Image size.
21
+ * @param {number} [minHeight=-10000] - Minimal height for rgb to height converter.
22
+ * @param {number} [resolution=0.1] - Height converter resolution.
23
+ */
13
24
  declare class RgbTerrain extends GlobusTerrain {
14
25
  protected _imageSize: number;
15
26
  protected _ctx: CanvasRenderingContext2D;