@openglobus/og 0.12.1 → 0.13.0

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 (230) hide show
  1. package/README.md +0 -2
  2. package/dist/@openglobus/og.css +1 -0
  3. package/dist/@openglobus/og.esm.js +21 -0
  4. package/dist/@openglobus/og.esm.js.map +1 -0
  5. package/dist/@openglobus/og.umd.js +21 -0
  6. package/dist/@openglobus/og.umd.js.map +1 -0
  7. package/package.json +8 -8
  8. package/src/og/Extent.js +3 -3
  9. package/src/og/Globe.js +277 -275
  10. package/src/og/ImageCanvas.js +3 -3
  11. package/src/og/LonLat.js +9 -9
  12. package/src/og/QueueArray.js +2 -2
  13. package/src/og/Rectangle.js +5 -5
  14. package/src/og/bv/Box.js +1 -1
  15. package/src/og/bv/Sphere.js +2 -2
  16. package/src/og/camera/Camera.js +1 -1
  17. package/src/og/camera/PlanetCamera.js +649 -646
  18. package/src/og/control/LayerSwitcher.js +1 -1
  19. package/src/og/control/MouseNavigation.js +22 -13
  20. package/src/og/control/MouseWheelZoomControl.js +2 -2
  21. package/src/og/control/ScaleControl.js +1 -1
  22. package/src/og/control/TouchNavigation.js +319 -319
  23. package/src/og/control/ZoomControl.js +132 -132
  24. package/src/og/control/visibleExtent/Segment.js +12 -12
  25. package/src/og/ellipsoid/Ellipsoid.js +577 -567
  26. package/src/og/entity/BillboardHandler.js +878 -1051
  27. package/src/og/entity/Entity.js +1 -1
  28. package/src/og/entity/EntityCollection.js +847 -857
  29. package/src/og/entity/GeoObjectHandler.js +37 -18
  30. package/src/og/entity/LabelHandler.js +888 -1040
  31. package/src/og/entity/LabelWorker.js +0 -6
  32. package/src/og/entity/PointCloud.js +495 -495
  33. package/src/og/entity/Polyline.js +2218 -2222
  34. package/src/og/entity/RayHandler.js +1 -1
  35. package/src/og/layer/CanvasTiles.js +6 -3
  36. package/src/og/layer/GeoImage.js +1 -1
  37. package/src/og/layer/KML.js +24 -17
  38. package/src/og/layer/Layer.js +806 -751
  39. package/src/og/layer/Vector.js +997 -1010
  40. package/src/og/layer/XYZ.js +359 -357
  41. package/src/og/math/Line2.js +4 -4
  42. package/src/og/math/Quat.js +2 -2
  43. package/src/og/math/Ray.js +2 -2
  44. package/src/og/math/Vec2.js +524 -524
  45. package/src/og/math/Vec3.js +900 -900
  46. package/src/og/math/Vec4.js +261 -261
  47. package/src/og/math.js +397 -398
  48. package/src/og/quadTree/EntityCollectionNode.js +389 -387
  49. package/src/og/renderer/Renderer.js +14 -20
  50. package/src/og/renderer/RendererEvents.js +1034 -1045
  51. package/src/og/scene/Planet.js +26 -23
  52. package/src/og/scene/RenderNode.js +347 -354
  53. package/src/og/segment/Segment.js +3 -1
  54. package/src/og/segment/SegmentLonLat.js +1 -4
  55. package/src/og/shaders/billboard.js +220 -204
  56. package/src/og/shaders/drawnode.js +603 -603
  57. package/src/og/shaders/geoObject.js +15 -6
  58. package/src/og/shaders/label.js +596 -456
  59. package/src/og/shaders/polyline.js +365 -361
  60. package/src/og/terrain/MapboxTerrain.js +1 -1
  61. package/src/og/utils/FontAtlas.js +209 -200
  62. package/src/og/utils/GeoImageCreator.js +4 -5
  63. package/src/og/utils/TextureAtlas.js +4 -4
  64. package/src/og/utils/VectorTileCreator.js +414 -414
  65. package/src/og/utils/shared.js +1 -1
  66. package/src/og/webgl/Handler.js +28 -60
  67. package/src/og/webgl/Multisample.js +260 -260
  68. package/src/og/webgl/Program.js +411 -396
  69. package/types/Clock.d.ts +94 -0
  70. package/types/Deferred.d.ts +6 -0
  71. package/types/Events.d.ts +77 -0
  72. package/types/Extent.d.ts +166 -0
  73. package/types/Globe.d.ts +85 -0
  74. package/types/ImageCanvas.d.ts +123 -0
  75. package/types/Lock.d.ts +12 -0
  76. package/types/LonLat.d.ts +108 -0
  77. package/types/Popup.d.ts +42 -0
  78. package/types/QueueArray.d.ts +19 -0
  79. package/types/Rectangle.d.ts +80 -0
  80. package/types/Stack.d.ts +19 -0
  81. package/types/ajax.d.ts +24 -0
  82. package/types/arial.d.ts +48 -0
  83. package/types/astro/astro.d.ts +38 -0
  84. package/types/astro/earth.d.ts +7 -0
  85. package/types/astro/jd.d.ts +254 -0
  86. package/types/bv/Box.d.ts +30 -0
  87. package/types/bv/Sphere.d.ts +38 -0
  88. package/types/bv/index.d.ts +3 -0
  89. package/types/camera/Camera.d.ts +312 -0
  90. package/types/camera/Frustum.d.ts +133 -0
  91. package/types/camera/PlanetCamera.d.ts +219 -0
  92. package/types/camera/index.d.ts +3 -0
  93. package/types/cons.d.ts +40 -0
  94. package/types/control/CompassButton.d.ts +17 -0
  95. package/types/control/Control.d.ts +104 -0
  96. package/types/control/DebugInfo.d.ts +15 -0
  97. package/types/control/EarthCoordinates.d.ts +47 -0
  98. package/types/control/EarthNavigation.d.ts +43 -0
  99. package/types/control/GeoImageDragControl.d.ts +6 -0
  100. package/types/control/KeyboardNavigation.d.ts +21 -0
  101. package/types/control/LayerSwitcher.d.ts +21 -0
  102. package/types/control/Lighting.d.ts +16 -0
  103. package/types/control/MouseNavigation.d.ts +48 -0
  104. package/types/control/MouseWheelZoomControl.d.ts +45 -0
  105. package/types/control/ScaleControl.d.ts +22 -0
  106. package/types/control/ShowFps.d.ts +11 -0
  107. package/types/control/SimpleNavigation.d.ts +25 -0
  108. package/types/control/Sun.d.ts +50 -0
  109. package/types/control/ToggleWireframe.d.ts +12 -0
  110. package/types/control/TouchNavigation.d.ts +48 -0
  111. package/types/control/ZoomControl.d.ts +27 -0
  112. package/types/control/index.d.ts +18 -0
  113. package/types/ellipsoid/Ellipsoid.d.ts +153 -0
  114. package/types/ellipsoid/index.d.ts +3 -0
  115. package/types/ellipsoid/wgs84.d.ts +6 -0
  116. package/types/entity/BaseBillboard.d.ts +215 -0
  117. package/types/entity/Billboard.d.ts +94 -0
  118. package/types/entity/BillboardHandler.d.ts +75 -0
  119. package/types/entity/Entity.d.ts +348 -0
  120. package/types/entity/EntityCollection.d.ts +309 -0
  121. package/types/entity/GeoObject.d.ts +111 -0
  122. package/types/entity/GeoObjectHandler.d.ts +81 -0
  123. package/types/entity/Geometry.d.ts +74 -0
  124. package/types/entity/GeometryHandler.d.ts +76 -0
  125. package/types/entity/Label.d.ts +189 -0
  126. package/types/entity/LabelHandler.d.ts +29 -0
  127. package/types/entity/LabelWorker.d.ts +11 -0
  128. package/types/entity/PointCloud.d.ts +174 -0
  129. package/types/entity/PointCloudHandler.d.ts +38 -0
  130. package/types/entity/Polyline.d.ts +306 -0
  131. package/types/entity/PolylineHandler.d.ts +18 -0
  132. package/types/entity/Ray.d.ts +124 -0
  133. package/types/entity/RayHandler.d.ts +67 -0
  134. package/types/entity/ShapeHandler.d.ts +22 -0
  135. package/types/entity/Strip.d.ts +119 -0
  136. package/types/entity/StripHandler.d.ts +38 -0
  137. package/types/entity/index.d.ts +8 -0
  138. package/types/index.core.d.ts +65 -0
  139. package/types/index.d.ts +45 -0
  140. package/types/index.webgl.d.ts +7 -0
  141. package/types/input/KeyboardHandler.d.ts +10 -0
  142. package/types/input/MouseHandler.d.ts +5 -0
  143. package/types/input/TouchHandler.d.ts +5 -0
  144. package/types/input/input.d.ts +34 -0
  145. package/types/layer/BaseGeoImage.d.ts +94 -0
  146. package/types/layer/CanvasTiles.d.ts +67 -0
  147. package/types/layer/GeoImage.d.ts +52 -0
  148. package/types/layer/GeoTexture2d.d.ts +8 -0
  149. package/types/layer/GeoVideo.d.ts +55 -0
  150. package/types/layer/KML.d.ts +68 -0
  151. package/types/layer/Layer.d.ts +315 -0
  152. package/types/layer/Material.d.ts +45 -0
  153. package/types/layer/Vector.d.ts +201 -0
  154. package/types/layer/WMS.d.ts +61 -0
  155. package/types/layer/XYZ.d.ts +119 -0
  156. package/types/layer/index.d.ts +10 -0
  157. package/types/light/LightSource.d.ts +178 -0
  158. package/types/math/Line2.d.ts +11 -0
  159. package/types/math/Line3.d.ts +10 -0
  160. package/types/math/Mat3.d.ts +65 -0
  161. package/types/math/Mat4.d.ts +176 -0
  162. package/types/math/Plane.d.ts +18 -0
  163. package/types/math/Quat.d.ts +379 -0
  164. package/types/math/Ray.d.ts +82 -0
  165. package/types/math/Vec2.d.ts +309 -0
  166. package/types/math/Vec3.d.ts +467 -0
  167. package/types/math/Vec4.d.ts +162 -0
  168. package/types/math/coder.d.ts +43 -0
  169. package/types/math/index.d.ts +11 -0
  170. package/types/math.d.ts +261 -0
  171. package/types/mercator.d.ts +92 -0
  172. package/types/proj/EPSG3857.d.ts +6 -0
  173. package/types/proj/EPSG4326.d.ts +6 -0
  174. package/types/proj/Proj.d.ts +42 -0
  175. package/types/quadTree/EntityCollectionNode.d.ts +34 -0
  176. package/types/quadTree/Node.d.ts +60 -0
  177. package/types/quadTree/quadTree.d.ts +40 -0
  178. package/types/renderer/Renderer.d.ts +290 -0
  179. package/types/renderer/RendererEvents.d.ts +237 -0
  180. package/types/res/images.d.ts +3 -0
  181. package/types/scene/Axes.d.ts +11 -0
  182. package/types/scene/BaseNode.d.ts +60 -0
  183. package/types/scene/Planet.d.ts +576 -0
  184. package/types/scene/RenderNode.d.ts +142 -0
  185. package/types/scene/SkyBox.d.ts +10 -0
  186. package/types/scene/index.d.ts +4 -0
  187. package/types/segment/Segment.d.ts +275 -0
  188. package/types/segment/SegmentLonLat.d.ts +17 -0
  189. package/types/segment/Slice.d.ts +10 -0
  190. package/types/segment/segmentHelper.d.ts +13 -0
  191. package/types/shaders/billboard.d.ts +3 -0
  192. package/types/shaders/depth.d.ts +2 -0
  193. package/types/shaders/drawnode.d.ts +7 -0
  194. package/types/shaders/geoObject.d.ts +3 -0
  195. package/types/shaders/label.d.ts +4 -0
  196. package/types/shaders/pointCloud.d.ts +2 -0
  197. package/types/shaders/polyline.d.ts +3 -0
  198. package/types/shaders/ray.d.ts +2 -0
  199. package/types/shaders/screenFrame.d.ts +2 -0
  200. package/types/shaders/shape.d.ts +4 -0
  201. package/types/shaders/skybox.d.ts +2 -0
  202. package/types/shaders/toneMapping.d.ts +2 -0
  203. package/types/shapes/BaseShape.d.ts +250 -0
  204. package/types/shapes/Sphere.d.ts +41 -0
  205. package/types/terrain/BilTerrain.d.ts +7 -0
  206. package/types/terrain/EmptyTerrain.d.ts +73 -0
  207. package/types/terrain/Geoid.d.ts +26 -0
  208. package/types/terrain/GlobusTerrain.d.ts +116 -0
  209. package/types/terrain/MapboxTerrain.d.ts +7 -0
  210. package/types/terrain/index.d.ts +5 -0
  211. package/types/utils/FontAtlas.d.ts +16 -0
  212. package/types/utils/GeoImageCreator.d.ts +30 -0
  213. package/types/utils/ImagesCacheManager.d.ts +10 -0
  214. package/types/utils/Loader.d.ts +25 -0
  215. package/types/utils/NormalMapCreator.d.ts +39 -0
  216. package/types/utils/PlainSegmentWorker.d.ts +10 -0
  217. package/types/utils/TerrainWorker.d.ts +9 -0
  218. package/types/utils/TextureAtlas.d.ts +111 -0
  219. package/types/utils/VectorTileCreator.d.ts +16 -0
  220. package/types/utils/colorTable.d.ts +143 -0
  221. package/types/utils/earcut.d.ts +6 -0
  222. package/types/utils/shared.d.ts +231 -0
  223. package/types/webgl/Framebuffer.d.ts +135 -0
  224. package/types/webgl/Handler.d.ts +392 -0
  225. package/types/webgl/Multisample.d.ts +89 -0
  226. package/types/webgl/Program.d.ts +163 -0
  227. package/types/webgl/ProgramController.d.ts +89 -0
  228. package/types/webgl/callbacks.d.ts +1 -0
  229. package/types/webgl/index.d.ts +6 -0
  230. package/types/webgl/types.d.ts +2 -0
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Used to load and display a video stream by specific corners coordinates on the globe, implements og.layer.BaseGeoImage interface.
3
+ * @class
4
+ * @extends {BaseGeoImage}
5
+ */
6
+ export class GeoVideo extends BaseGeoImage {
7
+ /**
8
+ * HTML5 video element object.
9
+ * @private
10
+ * @type {Object}
11
+ */
12
+ private _video;
13
+ /**
14
+ * VIdeo source url path.
15
+ * @private
16
+ * @type {String}
17
+ */
18
+ private _src;
19
+ /**
20
+ * Sets video source url path.
21
+ * @public
22
+ * @param {String} srs - Video url path.
23
+ */
24
+ public setSrc(src: any): void;
25
+ /**
26
+ * Sets HTML5 video object.
27
+ * @public
28
+ * @param {Object} video - HTML5 video element object.
29
+ */
30
+ public setVideoElement(video: any): void;
31
+ /**
32
+ * Creates or refresh source video GL texture.
33
+ * @virtual
34
+ * @protected
35
+ */
36
+ protected _createSourceTexture(): void;
37
+ /**
38
+ * @private
39
+ */
40
+ private _onCanPlay;
41
+ /**
42
+ * @private
43
+ */
44
+ private _onError;
45
+ /**
46
+ * Loads planet segment material. In this case - GeoImage source video.
47
+ * @virtual
48
+ * @public
49
+ * @param {Material} material - GeoImage planet material.
50
+ */
51
+ public loadMaterial(material: Material): void;
52
+ _renderingProjType1(): void;
53
+ _renderingProjType0(): void;
54
+ }
55
+ import { BaseGeoImage } from "./BaseGeoImage.js";
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Layer to render KMLs files
3
+ * @class
4
+ * @extends {Vector}
5
+ */
6
+ export class KML extends Vector {
7
+ _billboard: any;
8
+ /**
9
+ * @type {string}
10
+ */
11
+ _color: string;
12
+ /**
13
+ * @public
14
+ */
15
+ public _extractCoordonatesFromKml(xmlDoc: any): any[];
16
+ /**
17
+ * Creates billboards or polylines from array of lonlat.
18
+ * @public
19
+ * @param {Array} coordonates
20
+ * @param {string} color
21
+ * @returns {Array<Entity>}
22
+ */
23
+ public _convertCoordonatesIntoEntities(coordinates: any, color: string, billboard: any): Array<Entity>;
24
+ /**
25
+ * @public
26
+ * @returns {Document}
27
+ */
28
+ public _getXmlContent(file: any): Document;
29
+ /**
30
+ * @public
31
+ */
32
+ public _expandExtents(extent1: any, extent2: any): any;
33
+ /**
34
+ * @public
35
+ * @param {File[]} kmls
36
+ * @param {string} [color]
37
+ * @param {Billboard} [billboard]
38
+ * @returns {Promise<{entities: Entity[], extent: Extent}>}
39
+ */
40
+ public addKmlFromFiles(kmls: File[], color?: string, billboard?: Billboard): Promise<{
41
+ entities: Entity[];
42
+ extent: Extent;
43
+ }>;
44
+ /**
45
+ * @param {string} color
46
+ * @public
47
+ */
48
+ public setColor(color: string): void;
49
+ /**
50
+ * @public
51
+ */
52
+ public _getKmlFromUrl(url: any): Promise<any>;
53
+ /**
54
+ * @public
55
+ * @param {string} url - Url of the KML to display. './myFile.kml' or 'http://mySite/myFile.kml' for example.
56
+ * @param {string} [color]
57
+ * @param {Billboard} [billboard]
58
+ * @returns {Promise<{entities: Entity[], extent: Extent}>}
59
+ */
60
+ public addKmlFromUrl(url: string, color?: string, billboard?: Billboard): Promise<{
61
+ entities: Entity[];
62
+ extent: Extent;
63
+ }>;
64
+ }
65
+ import { Vector } from "./Vector.js";
66
+ import { Entity } from "../entity/Entity.js";
67
+ import { Billboard } from "../entity/Billboard.js";
68
+ import { Extent } from "../Extent.js";
@@ -0,0 +1,315 @@
1
+ export const FADING_FACTOR: 0.29;
2
+ /**
3
+ * @classdesc
4
+ * Base class; normally only used for creating subclasses and not instantiated in apps.
5
+ * A visual representation of raster or vector map data well known as a layer.
6
+ * @class
7
+ * @param {String} [name="noname"] - Layer name.
8
+ * @param {Object} [options] - Layer options:
9
+ * @param {number} [options.opacity=1.0] - Layer opacity.
10
+ * @param {number} [options.minZoom=0] - Minimal visibility zoom level.
11
+ * @param {number} [options.maxZoom=0] - Maximal visibility zoom level.
12
+ * @param {string} [options.attribution] - Layer attribution that displayed in the attribution area on the screen.
13
+ * @param {boolean} [options.isBaseLayer=false] - This is a base layer.
14
+ * @param {boolean} [options.visibility=true] - Layer visibility.
15
+ * @param {boolean} [options.isSRGB=false] - Layer image webgl nternal format.
16
+ * @param {Extent} [options.extent=[[-180.0, -90.0], [180.0, 90.0]]] - Visible extent.
17
+ * @param {string} [options.textureFilter="anisotropic"] - Image texture filter. Available values: "nearest", "linear", "mipmap" and "anisotropic".
18
+ *
19
+ * @fires og.Layer#visibilitychange
20
+ * @fires og.Layer#add
21
+ * @fires og.Layer#remove
22
+ * @fires og.layer.Vector#mousemove
23
+ * @fires og.layer.Vector#mouseenter
24
+ * @fires og.layer.Vector#mouseleave
25
+ * @fires og.layer.Vector#lclick
26
+ * @fires og.layer.Vector#rclick
27
+ * @fires og.layer.Vector#mclick
28
+ * @fires og.layer.Vector#ldblclick
29
+ * @fires og.layer.Vector#rdblclick
30
+ * @fires og.layer.Vector#mdblclick
31
+ * @fires og.layer.Vector#lup
32
+ * @fires og.layer.Vector#rup
33
+ * @fires og.layer.Vector#mup
34
+ * @fires og.layer.Vector#ldown
35
+ * @fires og.layer.Vector#rdown
36
+ * @fires og.layer.Vector#mdown
37
+ * @fires og.layer.Vector#lhold
38
+ * @fires og.layer.Vector#rhold
39
+ * @fires og.layer.Vector#mhold
40
+ * @fires og.layer.Vector#mousewheel
41
+ * @fires og.layer.Vector#touchmove
42
+ * @fires og.layer.Vector#touchstart
43
+ * @fires og.layer.Vector#touchend
44
+ * @fires og.layer.Vector#doubletouch
45
+ */
46
+ export class Layer {
47
+ static getTMS(x: any, y: any, z: any): {
48
+ x: any;
49
+ y: number;
50
+ z: any;
51
+ };
52
+ static getTileIndex(...arr: any[]): string;
53
+ static set __layersCounter(arg: any);
54
+ static get __layersCounter(): any;
55
+ static set __requestsCounter(arg: any);
56
+ static get __requestsCounter(): any;
57
+ /**
58
+ * Maximum loading queries at one time.
59
+ * @const
60
+ * @type {number}
61
+ */
62
+ static get MAX_REQUESTS(): number;
63
+ constructor(name: any, options?: {});
64
+ /**
65
+ * Layer user name.
66
+ * @public
67
+ * @type {string}
68
+ */
69
+ public name: string;
70
+ _labelMaxLetters: any;
71
+ displayInLayerSwitcher: any;
72
+ _hasImageryTiles: boolean;
73
+ /**
74
+ * Layer global opacity.
75
+ * @public
76
+ * @type {number}
77
+ */
78
+ public _opacity: number;
79
+ /**
80
+ * Minimal zoom level when layer is visibile.
81
+ * @public
82
+ * @type {number}
83
+ */
84
+ public minZoom: number;
85
+ /**
86
+ * Maximal zoom level when layer is visibile.
87
+ * @public
88
+ * @type {number}
89
+ */
90
+ public maxZoom: number;
91
+ /**
92
+ * Planet node.
93
+ * @protected
94
+ * @type {Planet}
95
+ */
96
+ protected _planet: Planet;
97
+ /**
98
+ * Unic identifier.
99
+ * @protected
100
+ * @type {number}
101
+ */
102
+ protected _id: number;
103
+ /**
104
+ * Layer attribution.
105
+ * @protected
106
+ * @type {string}
107
+ */
108
+ protected _attribution: string;
109
+ /**
110
+ * Layer z-index.
111
+ * @protected
112
+ * @type {number}
113
+ */
114
+ protected _zIndex: number;
115
+ /**
116
+ * Base layer type flag.
117
+ * @protected
118
+ * @type {boolean}
119
+ */
120
+ protected _isBaseLayer: boolean;
121
+ _defaultTextures: any;
122
+ /**
123
+ * Layer visibility.
124
+ * @protected
125
+ * @type {boolean}
126
+ */
127
+ protected _visibility: boolean;
128
+ _fading: any;
129
+ _fadingFactor: number;
130
+ _fadingOpacity: number;
131
+ /**
132
+ * Height over the ground.
133
+ * @protected
134
+ * @type {number}
135
+ */
136
+ protected _height: number;
137
+ /**
138
+ * Visible degrees extent.
139
+ * @protected
140
+ * @type {Extent}
141
+ */
142
+ protected _extent: Extent;
143
+ createTexture: any;
144
+ _textureFilter: any;
145
+ _isSRGB: any;
146
+ _internalFormat: any;
147
+ /**
148
+ * Visible mercator extent.
149
+ * @protected
150
+ * @type {Extent}
151
+ */
152
+ protected _extentMerc: Extent;
153
+ /**
154
+ * Layer picking color. Assign when added to the planet.
155
+ * @protected
156
+ * @type {Vec3}
157
+ */
158
+ protected _pickingColor: Vec3;
159
+ _pickingEnabled: any;
160
+ _isPreloadDone: boolean;
161
+ _preLoadZoomLevels: any;
162
+ /**
163
+ * Events handler.
164
+ * @public
165
+ * @type {Events}
166
+ */
167
+ public events: Events;
168
+ get instanceName(): string;
169
+ get rendererEvents(): Events;
170
+ set opacity(arg: number);
171
+ get opacity(): number;
172
+ set pickingEnabled(arg: boolean);
173
+ get pickingEnabled(): boolean;
174
+ /**
175
+ * Returns true if a layer has imagery tiles.
176
+ * @public
177
+ * @virtual
178
+ * @returns {boolean} - Imagery tiles flag.
179
+ */
180
+ public hasImageryTiles(): boolean;
181
+ /**
182
+ * Gets layer identifier.
183
+ * @public
184
+ * @returns {string} - Layer object id.
185
+ */
186
+ public getID(): string;
187
+ /**
188
+ * Compares layers instances.
189
+ * @public
190
+ * @param {Layer} layer - Layer instance to compare.
191
+ * @returns {boolean} - Returns true if the layers is the same instance of the input.
192
+ */
193
+ public isEqual(layer: Layer): boolean;
194
+ /**
195
+ * Assign the planet.
196
+ * @protected
197
+ * @virtual
198
+ * @param {Planet} planet - Planet render node.
199
+ */
200
+ protected _assignPlanet(planet: Planet): void;
201
+ /**
202
+ * Assign picking color to the layer.
203
+ * @protected
204
+ * @virtual
205
+ */
206
+ protected _bindPicking(): void;
207
+ /**
208
+ * Adds layer to the planet.
209
+ * @public
210
+ * @param {Planet} planet - Adds layer to the planet.
211
+ */
212
+ public addTo(planet: Planet): Layer;
213
+ /**
214
+ * Removes from planet.
215
+ * @public
216
+ * @returns {Layer} -This layer.
217
+ */
218
+ public remove(): Layer;
219
+ /**
220
+ * Clears layer material.
221
+ * @virtual
222
+ */
223
+ clear(): void;
224
+ /**
225
+ * Returns planet instance.
226
+ * @virtual
227
+ */
228
+ get planet(): Planet;
229
+ /**
230
+ * Sets layer attribution text.
231
+ * @public
232
+ * @param {string} html - HTML code that represents layer attribution, it could be just a text.
233
+ */
234
+ public setAttribution(html: string): void;
235
+ /**
236
+ * Sets height over the ground.
237
+ * @public
238
+ * @param {number} height - Layer height.
239
+ */
240
+ public setHeight(height: number): void;
241
+ /**
242
+ * Gets layer height.
243
+ * @public
244
+ * @returns {number} -
245
+ */
246
+ public getHeight(): number;
247
+ /**
248
+ * Sets z-index.
249
+ * @public
250
+ * @param {number} zIndex - Layer z-index.
251
+ */
252
+ public setZIndex(zIndex: number): void;
253
+ /**
254
+ * Gets z-index.
255
+ * @public
256
+ * @returns {number} -
257
+ */
258
+ public getZIndex(): number;
259
+ /**
260
+ * Set zIndex to the maximal value depend on other layers on the planet.
261
+ * @public
262
+ */
263
+ public bringToFront(): void;
264
+ /**
265
+ * Returns true if the layer is a base.
266
+ * @public
267
+ * @returns {boolean} - Base layer flag.
268
+ */
269
+ public isBaseLayer(): boolean;
270
+ /**
271
+ * Sets base layer type true.
272
+ * @public
273
+ * @param {boolean} flag - Base layer flag.
274
+ */
275
+ public setBaseLayer(flag: boolean): void;
276
+ /**
277
+ * Sets layer visibility.
278
+ * @public
279
+ * @virtual
280
+ * @param {boolean} visibility - Layer visibility.
281
+ */
282
+ public setVisibility(visibility: boolean): void;
283
+ _forceMaterialApply(segment: any): void;
284
+ _preLoadRecursive(node: any, maxZoom: any): void;
285
+ _preLoad(): void;
286
+ /**
287
+ * Gets layer visibility.
288
+ * @public
289
+ * @returns {boolean} - Layer visibility.
290
+ */
291
+ public getVisibility(): boolean;
292
+ /**
293
+ * Sets visible geographical extent.
294
+ * @public
295
+ * @param {Extent} extent - Layer visible geographical extent.
296
+ */
297
+ public setExtent(extent: Extent): void;
298
+ /**
299
+ * Gets layer extent.
300
+ * @public
301
+ * @return {Extent} - Layer geodetic extent.
302
+ */
303
+ public getExtent(): Extent;
304
+ /**
305
+ * Special correction of the whole globe extent.
306
+ * @protected
307
+ */
308
+ protected _correctFullExtent(): void;
309
+ _refreshFadingOpacity(): boolean;
310
+ createMaterial(segment: any): Material;
311
+ }
312
+ import { Extent } from "../Extent.js";
313
+ import { Vec3 } from "../math/Vec3.js";
314
+ import { Events } from "../Events.js";
315
+ import { Material } from "./Material.js";
@@ -0,0 +1,45 @@
1
+ export class Material {
2
+ /**
3
+ *
4
+ * @param {*} segment
5
+ * @param {*} layer
6
+ */
7
+ constructor(segment: any, layer: any);
8
+ segment: any;
9
+ layer: any;
10
+ isReady: boolean;
11
+ isLoading: boolean;
12
+ texture: any;
13
+ pickingMask: any;
14
+ textureExists: boolean;
15
+ appliedNodeId: number;
16
+ texOffset: number[];
17
+ loadingAttempts: number;
18
+ _updateTexture: any;
19
+ _updatePickingMask: any;
20
+ pickingReady: boolean;
21
+ /**
22
+ *
23
+ */
24
+ abortLoading(): void;
25
+ _createTexture(img: any): any;
26
+ /**
27
+ *
28
+ * @param {*} img
29
+ */
30
+ applyImage(img: any): void;
31
+ /**
32
+ *
33
+ * @param {*} texture
34
+ * @param {*} pickingMask
35
+ */
36
+ applyTexture(texture: any, pickingMask: any): void;
37
+ /**
38
+ *
39
+ */
40
+ textureNotExists(): void;
41
+ /**
42
+ *
43
+ */
44
+ clear(): void;
45
+ }
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Vector layer represents alternative entities store. Used for geospatial data rendering like
3
+ * points, lines, polygons, geometry objects etc.
4
+ * @class
5
+ * @extends {Layer}
6
+ * @param {string} [name="noname"] - Layer name.
7
+ * @param {Object} [options] - Layer options:
8
+ * @param {number} [options.minZoom=0] - Minimal visible zoom. 0 is default
9
+ * @param {number} [options.maxZoom=50] - Maximal visible zoom. 50 is default.
10
+ * @param {string} [options.attribution] - Layer attribution.
11
+ * @param {string} [options.zIndex=0] - Layer Z-order index. 0 is default.
12
+ * @param {boolean} [options.visibility=true] - Layer visibility. True is default.
13
+ * @param {boolean} [options.isBaseLayer=false] - Layer base layer. False is default.
14
+ * @param {Array.<Entity>} [options.entities] - Entities array.
15
+ * @param {Array.<number>} [options.scaleByDistance] - Scale by distance parameters. (exactly 3 entries)
16
+ * First index - near distance to the entity, after entity becomes full scale.
17
+ * Second index - far distance to the entity, when entity becomes zero scale.
18
+ * Third index - far distance to the entity, when entity becomes invisible.
19
+ * @param {number} [options.nodeCapacity=30] - Maximum entities quantity in the tree node. Rendering optimization parameter. 30 is default.
20
+ * @param {boolean} [options.async=true] - Asynchronous vector data handling before rendering. True for optimization huge data.
21
+ * @param {boolean} [options.clampToGround = false] - Clamp vector data to the ground.
22
+ * @param {boolean} [options.relativeToGround = false] - Place vector data relative to the ground relief.
23
+ * @param {Number} [options.polygonOffsetUnits=0.0] - The multiplier by which an implementation-specific value is multiplied with to create a constant depth offset.
24
+ *
25
+ * @fires og.layer.Vector#entitymove
26
+ * @fires og.layer.Vector#draw
27
+ * @fires og.layer.Vector#add
28
+ * @fires og.layer.Vector#remove
29
+ * @fires og.layer.Vector#entityadd
30
+ * @fires og.layer.Vector#entityremove
31
+ * @fires og.layer.Vector#visibilitychange
32
+ */
33
+ export class Vector extends Layer {
34
+ /**
35
+ * @param {string} name
36
+ * @param {*} [options]
37
+ */
38
+ constructor(name: string, options?: any);
39
+ isVector: boolean;
40
+ /**
41
+ * First index - near distance to the entity, after that entity becomes full scale.
42
+ * Second index - far distance to the entity, when entity becomes zero scale.
43
+ * Third index - far distance to the entity, when entity becomes invisible.
44
+ * @public
45
+ * @type {Array.<number>} - (exactly 3 entries)
46
+ */
47
+ public scaleByDistance: Array<number>;
48
+ pickingScale: any;
49
+ /**
50
+ * Asynchronous data handling before rendering.
51
+ * @public
52
+ * @type {boolean}
53
+ */
54
+ public async: boolean;
55
+ /**
56
+ * Vector data clamp to ground flag.
57
+ * @public
58
+ * @type {boolean}
59
+ */
60
+ public clampToGround: boolean;
61
+ /**
62
+ * Sets vector data relative to the ground relief.
63
+ * @public
64
+ * @type {boolean}
65
+ */
66
+ public relativeToGround: boolean;
67
+ /**
68
+ * Maximum entities quantity in the tree node.
69
+ * @private
70
+ */
71
+ private _nodeCapacity;
72
+ /**
73
+ * Stored entities.
74
+ * @private
75
+ */
76
+ private _entities;
77
+ _stripEntityCollection: EntityCollection;
78
+ _polylineEntityCollection: EntityCollection;
79
+ _geometryHandler: GeometryHandler;
80
+ _entityCollectionsTree: EntityCollectionNode;
81
+ _entityCollectionsTreeNorth: EntityCollectionNodeWGS84;
82
+ _entityCollectionsTreeSouth: EntityCollectionNodeWGS84;
83
+ _renderingNodes: {};
84
+ _renderingNodesNorth: {};
85
+ _renderingNodesSouth: {};
86
+ _counter: number;
87
+ _deferredEntitiesPendingQueue: QueueArray;
88
+ _pendingsQueue: any[];
89
+ /**
90
+ * Specifies the scale Units for gl.polygonOffset function to calculate depth values, 0.0 is default.
91
+ * @public
92
+ * @type {Number}
93
+ */
94
+ public polygonOffsetUnits: number;
95
+ /**
96
+ * Returns stored entities.
97
+ * @public
98
+ * @returns {Array.<Entity>} -
99
+ */
100
+ public getEntities(): Array<Entity>;
101
+ /**
102
+ * Adds entity to the layer.
103
+ * @public
104
+ * @param {Entity} entity - Entity.
105
+ * @param {boolean} [rightNow] - Entity insertion option. False is deafult.
106
+ * @returns {layer.Vector} - Returns this layer.
107
+ */
108
+ public add(entity: Entity, rightNow?: boolean): layer.Vector;
109
+ /**
110
+ * Adds entity to the layer in the index position.
111
+ * @public
112
+ * @param {Entity} entity - Entity.
113
+ * @param {Number} index - Index position.
114
+ * @param {boolean} [rightNow] - Entity insertion option. False is deafult.
115
+ * @returns {layer.Vector} - Returns this layer.
116
+ */
117
+ public insert(entity: Entity, index: number, rightNow?: boolean): layer.Vector;
118
+ _proceedEntity(entity: any, rightNow: any): void;
119
+ /**
120
+ * Adds entity array to the layer.
121
+ * @public
122
+ * @param {Array.<Entity>} entities - Entities array.
123
+ * @param {boolean} [rightNow] - Entity insertion option. False is deafult.
124
+ * @returns {layer.Vector} - Returns this layer.
125
+ */
126
+ public addEntities(entities: Array<Entity>, rightNow?: boolean): layer.Vector;
127
+ /**
128
+ * Remove entity from layer.
129
+ * TODO: memory leaks.
130
+ * @public
131
+ * @param {Entity} entity - Entity to remove.
132
+ * @returns {layer.Vector} - Returns this layer.
133
+ */
134
+ public removeEntity(entity: Entity): layer.Vector;
135
+ /**
136
+ * Refresh collected entities indexes from startIndex entitytes collection array position.
137
+ * @public
138
+ * @param {number} startIndex - Entity array index.
139
+ */
140
+ public _reindexEntitiesArray(startIndex: number): void;
141
+ /**
142
+ * Removes entities from layer.
143
+ * @public
144
+ * @param {Array.<Entity>} entities - Entity array.
145
+ * @returns {layer.Vector} - Returns this layer.
146
+ */
147
+ public removeEntities(entities: Array<Entity>): layer.Vector;
148
+ /**
149
+ * Sets scale by distance parameters.
150
+ * @public
151
+ * @param {number} near - Full scale entity distance.
152
+ * @param {number} far - Zerol scale entity distance.
153
+ * @param {number} [farInvisible] - Entity visibility distance.
154
+ * @returns {layer.Vector} -
155
+ */
156
+ public setScaleByDistance(near: number, far: number, farInvisible?: number): layer.Vector;
157
+ /**
158
+ * Safety entities loop.
159
+ * @public
160
+ * @param {callback} callback - Entity callback.
161
+ */
162
+ public each(callback: any): void;
163
+ /**
164
+ * Removes current entities from layer and adds new entities.
165
+ * @public
166
+ * @param {Array.<Entity>} entities - New entity array.
167
+ * @returns {layer.Vector} - Returns layer instance.
168
+ */
169
+ public setEntities(entities: Array<Entity>): layer.Vector;
170
+ _createEntityCollectionsTree(entitiesForTree: any): void;
171
+ _bindEventsDefault(entityCollection: any): void;
172
+ _collectStripCollectionPASS(outArr: any): void;
173
+ _collectPolylineCollectionPASS(outArr: any): void;
174
+ collectVisibleCollections(outArr: any): void;
175
+ _secondPASS: any[];
176
+ _queueDeferredNode(node: any): void;
177
+ _execDeferredNode(node: any): void;
178
+ /**
179
+ * Start to load tile material.
180
+ * @public
181
+ * @virtual
182
+ * @param {Segment.Material} material - Current material.
183
+ */
184
+ public loadMaterial(material: Segment.Material): void;
185
+ /**
186
+ * Abort exact material loading.
187
+ * @public
188
+ * @param {Material} material - Segment material.
189
+ */
190
+ public abortMaterialLoading(material: Material): void;
191
+ applyMaterial(material: any): number[];
192
+ clearMaterial(material: any): void;
193
+ update(): void;
194
+ }
195
+ import { Layer } from "./Layer.js";
196
+ import { EntityCollection } from "../entity/EntityCollection.js";
197
+ import { GeometryHandler } from "../entity/GeometryHandler.js";
198
+ import { EntityCollectionNode } from "../quadTree/EntityCollectionNode.js";
199
+ import { EntityCollectionNodeWGS84 } from "../quadTree/EntityCollectionNode.js";
200
+ import { QueueArray } from "../QueueArray.js";
201
+ import { Entity } from "../entity/Entity.js";