@openglobus/og 0.16.3 → 0.17.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 (181) hide show
  1. package/README.md +1 -1
  2. package/css/og.css +24 -2
  3. package/dist/@openglobus/og.css +1 -1
  4. package/dist/@openglobus/og.esm.js +2 -2
  5. package/dist/@openglobus/og.esm.js.map +1 -1
  6. package/dist/@openglobus/og.umd.js +2 -2
  7. package/dist/@openglobus/og.umd.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/og/Clock.js +1 -5
  10. package/src/og/Events.js +0 -4
  11. package/src/og/Extent.js +5 -9
  12. package/src/og/Globe.js +92 -55
  13. package/src/og/ImageCanvas.js +12 -5
  14. package/src/og/Lock.js +44 -48
  15. package/src/og/LonLat.js +0 -4
  16. package/src/og/Object3d.js +1 -1
  17. package/src/og/Stack.js +49 -53
  18. package/src/og/astro/earth.js +112 -116
  19. package/src/og/astro/jd.js +514 -518
  20. package/src/og/astro/orbit.js +119 -123
  21. package/src/og/astro/rotation.js +36 -40
  22. package/src/og/bv/Box.js +77 -81
  23. package/src/og/bv/Sphere.js +57 -61
  24. package/src/og/camera/Camera.js +20 -7
  25. package/src/og/camera/PlanetCamera.js +8 -15
  26. package/src/og/control/Atmosphere.js +0 -4
  27. package/src/og/control/Control.js +9 -8
  28. package/src/og/control/DebugInfo.js +0 -4
  29. package/src/og/control/DrawingSwitcher.js +117 -0
  30. package/src/og/control/EarthCoordinates.js +214 -214
  31. package/src/og/control/GeoImageDragControl.js +0 -4
  32. package/src/og/control/KeyboardNavigation.js +0 -4
  33. package/src/og/control/LayerAnimation.js +0 -4
  34. package/src/og/control/LayerSwitcher.js +2 -4
  35. package/src/og/control/Lighting.js +11 -15
  36. package/src/og/control/MouseNavigation.js +0 -4
  37. package/src/og/control/MouseWheelZoomControl.js +0 -4
  38. package/src/og/control/RulerSwitcher.js +0 -4
  39. package/src/og/control/ScaleControl.js +2 -6
  40. package/src/og/control/ShowFps.js +40 -44
  41. package/src/og/control/SimpleNavigation.js +10 -10
  42. package/src/og/control/SimpleSkyBackground.js +0 -4
  43. package/src/og/control/Sun.js +0 -4
  44. package/src/og/control/ToggleWireframe.js +35 -39
  45. package/src/og/control/ZoomControl.js +0 -4
  46. package/src/og/control/drawing/DrawingControl.js +51 -0
  47. package/src/og/control/drawing/LineStringDrawingScene.js +203 -0
  48. package/src/og/control/drawing/PolygonDrawingScene.js +785 -0
  49. package/src/og/control/elevationProfile/ElevationProfile.js +275 -0
  50. package/src/og/control/index.js +5 -1
  51. package/src/og/control/ruler/Ruler.js +0 -4
  52. package/src/og/control/ruler/RulerScene.js +3 -2
  53. package/src/og/control/selection/Selection.js +0 -4
  54. package/src/og/control/selection/SelectionScene.js +2 -4
  55. package/src/og/control/timeline/TimelineControl.js +4 -4
  56. package/src/og/control/timeline/TimelineModel.js +2 -2
  57. package/src/og/control/timeline/TimelineView.js +1 -0
  58. package/src/og/control/visibleExtent/Segment.js +5 -5
  59. package/src/og/control/visibleExtent/drawnode.js +0 -4
  60. package/src/og/ellipsoid/Ellipsoid.js +205 -275
  61. package/src/og/ellipsoid/wgs84.js +0 -4
  62. package/src/og/entity/BaseBillboard.js +375 -379
  63. package/src/og/entity/Billboard.js +0 -4
  64. package/src/og/entity/BillboardHandler.js +0 -4
  65. package/src/og/entity/Entity.js +22 -22
  66. package/src/og/entity/EntityCollection.js +7 -11
  67. package/src/og/entity/GeoObject.js +0 -4
  68. package/src/og/entity/GeoObjectHandler.js +0 -4
  69. package/src/og/entity/Geometry.js +5 -4
  70. package/src/og/entity/GeometryHandler.js +3 -4
  71. package/src/og/entity/Label.js +0 -4
  72. package/src/og/entity/LabelHandler.js +0 -4
  73. package/src/og/entity/PointCloud.js +0 -4
  74. package/src/og/entity/PointCloudHandler.js +122 -126
  75. package/src/og/entity/Polyline.js +4 -6
  76. package/src/og/entity/PolylineHandler.js +104 -108
  77. package/src/og/entity/Ray.js +29 -29
  78. package/src/og/entity/Strip.js +1 -1
  79. package/src/og/index.js +3 -1
  80. package/src/og/input/KeyboardHandler.js +128 -132
  81. package/src/og/input/MouseHandler.js +94 -98
  82. package/src/og/input/TouchHandler.js +59 -63
  83. package/src/og/input/input.js +44 -48
  84. package/src/og/layer/BaseGeoImage.js +5 -8
  85. package/src/og/layer/CanvasTiles.js +0 -4
  86. package/src/og/layer/GeoImage.js +0 -4
  87. package/src/og/layer/GeoTexture2d.js +0 -4
  88. package/src/og/layer/GeoVideo.js +0 -4
  89. package/src/og/layer/KML.js +1 -0
  90. package/src/og/layer/Layer.js +22 -26
  91. package/src/og/layer/Material.js +0 -4
  92. package/src/og/layer/Vector.js +23 -20
  93. package/src/og/layer/WMS.js +182 -186
  94. package/src/og/layer/XYZ.js +0 -4
  95. package/src/og/light/LightSource.js +0 -4
  96. package/src/og/math/Line2.js +28 -32
  97. package/src/og/math/Mat3.js +152 -156
  98. package/src/og/math/Ray.js +0 -4
  99. package/src/og/math/Vec2.js +0 -4
  100. package/src/og/math/Vec3.js +0 -4
  101. package/src/og/math/Vec4.js +0 -4
  102. package/src/og/math/coder.js +104 -104
  103. package/src/og/math.js +39 -7
  104. package/src/og/proj/EPSG3857.js +13 -13
  105. package/src/og/proj/Proj.js +59 -63
  106. package/src/og/quadTree/EPSG4326QuadTreeStrategy.js +1 -0
  107. package/src/og/quadTree/EarthQuadTreeStrategy.js +1 -0
  108. package/src/og/quadTree/EntityCollectionNode.js +12 -16
  109. package/src/og/quadTree/MarsQuadTreeStrategy.js +1 -0
  110. package/src/og/quadTree/QuadTreeStrategy.js +1 -0
  111. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +1 -0
  112. package/src/og/renderer/Renderer.js +109 -22
  113. package/src/og/renderer/RendererEvents.js +0 -4
  114. package/src/og/scene/Axes.js +74 -78
  115. package/src/og/scene/BaseNode.js +0 -4
  116. package/src/og/scene/Planet.js +114 -112
  117. package/src/og/scene/RenderNode.js +11 -3
  118. package/src/og/scene/SkyBox.js +104 -108
  119. package/src/og/segment/Segment.js +8 -4
  120. package/src/og/segment/SegmentLonLat.js +2 -6
  121. package/src/og/segment/segmentHelper.js +229 -225
  122. package/src/og/shaders/billboard.js +0 -4
  123. package/src/og/shaders/drawnode.js +5 -9
  124. package/src/og/shaders/geoObject.js +0 -4
  125. package/src/og/shaders/label.js +0 -4
  126. package/src/og/shaders/pickingMask.js +0 -4
  127. package/src/og/shaders/pointCloud.js +0 -4
  128. package/src/og/shaders/polyline.js +0 -4
  129. package/src/og/shaders/ray.js +0 -4
  130. package/src/og/shaders/skybox.js +0 -4
  131. package/src/og/terrain/EmptyTerrain.js +0 -4
  132. package/src/og/utils/FontAtlas.js +0 -4
  133. package/src/og/utils/GeoImageCreator.js +1 -2
  134. package/src/og/utils/NormalMapCreator.js +8 -9
  135. package/src/og/utils/VectorTileCreator.js +3 -9
  136. package/src/og/utils/shared.js +20 -1
  137. package/src/og/webgl/Framebuffer.js +0 -4
  138. package/src/og/webgl/Handler.js +45 -19
  139. package/src/og/webgl/Multisample.js +0 -4
  140. package/src/og/webgl/Program.js +0 -4
  141. package/src/og/webgl/ProgramController.js +2 -2
  142. package/types/Clock.d.ts +1 -1
  143. package/types/Extent.d.ts +5 -5
  144. package/types/Globe.d.ts +15 -1
  145. package/types/ImageCanvas.d.ts +5 -0
  146. package/types/bv/Box.d.ts +1 -1
  147. package/types/bv/Sphere.d.ts +3 -3
  148. package/types/camera/Camera.d.ts +3 -2
  149. package/types/camera/PlanetCamera.d.ts +4 -4
  150. package/types/control/DrawingSwitcher.d.ts +13 -0
  151. package/types/control/EarthCoordinates.d.ts +1 -1
  152. package/types/control/Lighting.d.ts +8 -8
  153. package/types/control/drawing/DrawingControl.d.ts +14 -0
  154. package/types/control/drawing/LineStringDrawingScene.d.ts +5 -0
  155. package/types/control/drawing/PolygonDrawingScene.d.ts +99 -0
  156. package/types/control/index.d.ts +3 -1
  157. package/types/control/ruler/RulerScene.d.ts +0 -1
  158. package/types/control/selection/SelectionScene.d.ts +0 -1
  159. package/types/ellipsoid/Ellipsoid.d.ts +50 -63
  160. package/types/entity/Entity.d.ts +3 -2
  161. package/types/entity/Geometry.d.ts +5 -0
  162. package/types/entity/Polyline.d.ts +1 -1
  163. package/types/entity/Ray.d.ts +1 -0
  164. package/types/index.d.ts +1 -0
  165. package/types/layer/BaseGeoImage.d.ts +1 -1
  166. package/types/layer/CanvasTiles.d.ts +1 -1
  167. package/types/layer/Layer.d.ts +1 -1
  168. package/types/layer/Vector.d.ts +1 -0
  169. package/types/math.d.ts +7 -0
  170. package/types/renderer/Renderer.d.ts +7 -1
  171. package/types/scene/Axes.d.ts +0 -1
  172. package/types/scene/Planet.d.ts +26 -24
  173. package/types/scene/RenderNode.d.ts +2 -0
  174. package/types/scene/SkyBox.d.ts +0 -1
  175. package/types/segment/Segment.d.ts +3 -2
  176. package/types/segment/SegmentLonLat.d.ts +0 -1
  177. package/types/utils/GeoImageCreator.d.ts +1 -1
  178. package/types/utils/NormalMapCreator.d.ts +1 -1
  179. package/types/utils/VectorTileCreator.d.ts +2 -2
  180. package/types/utils/shared.d.ts +2 -0
  181. package/types/webgl/Handler.d.ts +6 -4
@@ -1,108 +1,104 @@
1
- /**
2
- * @module og/scene/SkyBox
3
- */
4
-
5
- 'use strict';
6
-
7
- import * as shaders from '../shaders/skybox.js';
8
- import { RenderNode } from './RenderNode.js';
9
-
10
- class SkyBox extends RenderNode {
11
- constructor(params) {
12
- super("skybox");
13
- this.params = params;
14
- this.vertexPositionBuffer = null;
15
- this.texture = null;
16
- }
17
-
18
- static createDefault(RESOURCES_URL) {
19
- return new SkyBox({
20
- nx: RESOURCES_URL + "skybox/gal/_nx.jpg",
21
- px: RESOURCES_URL + "skybox/gal/_px.jpg",
22
- py: RESOURCES_URL + "skybox/gal/_py.jpg",
23
- ny: RESOURCES_URL + "skybox/gal/_ny.jpg",
24
- pz: RESOURCES_URL + "skybox/gal/_pz.jpg",
25
- nz: RESOURCES_URL + "skybox/gal/_nz.jpg"
26
- });
27
- }
28
-
29
- init() {
30
- this.renderer.handler.addProgram(shaders.skybox(), true);
31
- this.texture = this.renderer.handler.loadCubeMapTexture(this.params);
32
- this._createBuffers();
33
- this.drawMode = this.renderer.handler.gl.TRIANGLES;
34
- }
35
-
36
- frame() {
37
- var h = this.renderer.handler;
38
- var gl = h.gl;
39
- var cam = this.renderer.activeCamera;
40
- gl.disable(h.gl.DEPTH_TEST);
41
-
42
- h.programs.skybox.activate();
43
- var sh = h.programs.skybox._program;
44
- var shu = sh.uniforms;
45
- gl.uniformMatrix4fv(shu.projectionViewMatrix, false, cam.getProjectionViewMatrix());
46
- gl.uniform3fv(shu.pos, cam.eye.toVec());
47
- gl.activeTexture(gl.TEXTURE0);
48
- gl.bindTexture(gl.TEXTURE_CUBE_MAP, this.texture);
49
- gl.uniform1i(shu.uSampler, 0);
50
- var buf = this.vertexPositionBuffer;
51
- gl.bindBuffer(gl.ARRAY_BUFFER, buf);
52
- gl.vertexAttribPointer(sh.attributes.aVertexPosition, buf.itemSize, gl.FLOAT, false, 0, 0);
53
-
54
- gl.drawArrays(this.drawMode, 0, buf.numItems);
55
- h.gl.enable(h.gl.DEPTH_TEST);
56
- }
57
-
58
- _createBuffers() {
59
-
60
- var vertices = new Float32Array([
61
- -100000000.0, 100000000.0, -100000000.0,
62
- -100000000.0, -100000000.0, -100000000.0,
63
- 100000000.0, -100000000.0, -100000000.0,
64
- 100000000.0, -100000000.0, -100000000.0,
65
- 100000000.0, 100000000.0, -100000000.0,
66
- -100000000.0, 100000000.0, -100000000.0,
67
-
68
- -100000000.0, -100000000.0, 100000000.0,
69
- -100000000.0, -100000000.0, -100000000.0,
70
- -100000000.0, 100000000.0, -100000000.0,
71
- -100000000.0, 100000000.0, -100000000.0,
72
- -100000000.0, 100000000.0, 100000000.0,
73
- -100000000.0, -100000000.0, 100000000.0,
74
-
75
- 100000000.0, -100000000.0, -100000000.0,
76
- 100000000.0, -100000000.0, 100000000.0,
77
- 100000000.0, 100000000.0, 100000000.0,
78
- 100000000.0, 100000000.0, 100000000.0,
79
- 100000000.0, 100000000.0, -100000000.0,
80
- 100000000.0, -100000000.0, -100000000.0,
81
-
82
- -100000000.0, -100000000.0, 100000000.0,
83
- -100000000.0, 100000000.0, 100000000.0,
84
- 100000000.0, 100000000.0, 100000000.0,
85
- 100000000.0, 100000000.0, 100000000.0,
86
- 100000000.0, -100000000.0, 100000000.0,
87
- -100000000.0, -100000000.0, 100000000.0,
88
-
89
- -100000000.0, 100000000.0, -100000000.0,
90
- 100000000.0, 100000000.0, -100000000.0,
91
- 100000000.0, 100000000.0, 100000000.0,
92
- 100000000.0, 100000000.0, 100000000.0,
93
- -100000000.0, 100000000.0, 100000000.0,
94
- -100000000.0, 100000000.0, -100000000.0,
95
-
96
- -100000000.0, -100000000.0, -100000000.0,
97
- -100000000.0, -100000000.0, 100000000.0,
98
- 100000000.0, -100000000.0, -100000000.0,
99
- 100000000.0, -100000000.0, -100000000.0,
100
- -100000000.0, -100000000.0, 100000000.0,
101
- 100000000.0, -100000000.0, 100000000.0
102
- ]);
103
-
104
- this.vertexPositionBuffer = this.renderer.handler.createArrayBuffer(vertices, 3, vertices.length / 3);
105
- }
106
- }
107
-
108
- export { SkyBox };
1
+ 'use strict';
2
+
3
+ import * as shaders from '../shaders/skybox.js';
4
+ import { RenderNode } from './RenderNode.js';
5
+
6
+ class SkyBox extends RenderNode {
7
+ constructor(params) {
8
+ super("skybox");
9
+ this.params = params;
10
+ this.vertexPositionBuffer = null;
11
+ this.texture = null;
12
+ }
13
+
14
+ static createDefault(RESOURCES_URL) {
15
+ return new SkyBox({
16
+ nx: RESOURCES_URL + "skybox/gal/_nx.jpg",
17
+ px: RESOURCES_URL + "skybox/gal/_px.jpg",
18
+ py: RESOURCES_URL + "skybox/gal/_py.jpg",
19
+ ny: RESOURCES_URL + "skybox/gal/_ny.jpg",
20
+ pz: RESOURCES_URL + "skybox/gal/_pz.jpg",
21
+ nz: RESOURCES_URL + "skybox/gal/_nz.jpg"
22
+ });
23
+ }
24
+
25
+ init() {
26
+ this.renderer.handler.addProgram(shaders.skybox(), true);
27
+ this.texture = this.renderer.handler.loadCubeMapTexture(this.params);
28
+ this._createBuffers();
29
+ this.drawMode = this.renderer.handler.gl.TRIANGLES;
30
+ }
31
+
32
+ frame() {
33
+ var h = this.renderer.handler;
34
+ var gl = h.gl;
35
+ var cam = this.renderer.activeCamera;
36
+ gl.disable(h.gl.DEPTH_TEST);
37
+
38
+ h.programs.skybox.activate();
39
+ var sh = h.programs.skybox._program;
40
+ var shu = sh.uniforms;
41
+ gl.uniformMatrix4fv(shu.projectionViewMatrix, false, cam.getProjectionViewMatrix());
42
+ gl.uniform3fv(shu.pos, cam.eye.toVec());
43
+ gl.activeTexture(gl.TEXTURE0);
44
+ gl.bindTexture(gl.TEXTURE_CUBE_MAP, this.texture);
45
+ gl.uniform1i(shu.uSampler, 0);
46
+ var buf = this.vertexPositionBuffer;
47
+ gl.bindBuffer(gl.ARRAY_BUFFER, buf);
48
+ gl.vertexAttribPointer(sh.attributes.aVertexPosition, buf.itemSize, gl.FLOAT, false, 0, 0);
49
+
50
+ gl.drawArrays(this.drawMode, 0, buf.numItems);
51
+ h.gl.enable(h.gl.DEPTH_TEST);
52
+ }
53
+
54
+ _createBuffers() {
55
+
56
+ var vertices = new Float32Array([
57
+ -100000000.0, 100000000.0, -100000000.0,
58
+ -100000000.0, -100000000.0, -100000000.0,
59
+ 100000000.0, -100000000.0, -100000000.0,
60
+ 100000000.0, -100000000.0, -100000000.0,
61
+ 100000000.0, 100000000.0, -100000000.0,
62
+ -100000000.0, 100000000.0, -100000000.0,
63
+
64
+ -100000000.0, -100000000.0, 100000000.0,
65
+ -100000000.0, -100000000.0, -100000000.0,
66
+ -100000000.0, 100000000.0, -100000000.0,
67
+ -100000000.0, 100000000.0, -100000000.0,
68
+ -100000000.0, 100000000.0, 100000000.0,
69
+ -100000000.0, -100000000.0, 100000000.0,
70
+
71
+ 100000000.0, -100000000.0, -100000000.0,
72
+ 100000000.0, -100000000.0, 100000000.0,
73
+ 100000000.0, 100000000.0, 100000000.0,
74
+ 100000000.0, 100000000.0, 100000000.0,
75
+ 100000000.0, 100000000.0, -100000000.0,
76
+ 100000000.0, -100000000.0, -100000000.0,
77
+
78
+ -100000000.0, -100000000.0, 100000000.0,
79
+ -100000000.0, 100000000.0, 100000000.0,
80
+ 100000000.0, 100000000.0, 100000000.0,
81
+ 100000000.0, 100000000.0, 100000000.0,
82
+ 100000000.0, -100000000.0, 100000000.0,
83
+ -100000000.0, -100000000.0, 100000000.0,
84
+
85
+ -100000000.0, 100000000.0, -100000000.0,
86
+ 100000000.0, 100000000.0, -100000000.0,
87
+ 100000000.0, 100000000.0, 100000000.0,
88
+ 100000000.0, 100000000.0, 100000000.0,
89
+ -100000000.0, 100000000.0, 100000000.0,
90
+ -100000000.0, 100000000.0, -100000000.0,
91
+
92
+ -100000000.0, -100000000.0, -100000000.0,
93
+ -100000000.0, -100000000.0, 100000000.0,
94
+ 100000000.0, -100000000.0, -100000000.0,
95
+ 100000000.0, -100000000.0, -100000000.0,
96
+ -100000000.0, -100000000.0, 100000000.0,
97
+ 100000000.0, -100000000.0, 100000000.0
98
+ ]);
99
+
100
+ this.vertexPositionBuffer = this.renderer.handler.createArrayBuffer(vertices, 3, vertices.length / 3);
101
+ }
102
+ }
103
+
104
+ export { SkyBox };
@@ -251,11 +251,15 @@ class Segment {
251
251
  * @returns {Vec3} -
252
252
  */
253
253
  getEntityTerrainPoint(entity, res) {
254
- return this.getTerrainPoint(entity._cartesian, entity._lonlatMerc, res);
254
+ return this.getTerrainPoint(entity._cartesian, this.getInsideLonLat(entity), res);
255
255
  }
256
256
 
257
- isEntityInside(e) {
258
- return this._extentLonLat.isInside(e._lonlat);
257
+ getInsideLonLat(obj) {
258
+ return obj._lonLatMerc;
259
+ }
260
+
261
+ isEntityInside(entity) {
262
+ return this._extentLonLat.isInside(entity._lonLat);
259
263
  }
260
264
 
261
265
  /**
@@ -263,7 +267,7 @@ class Segment {
263
267
  * @public
264
268
  * @param {Vec3} xyz - Cartesian object position.
265
269
  * @param {LonLat} insideSegmentPosition - Geodetic object position.
266
- * @param {Vec3} [res] - Result cartesian coordiantes on the terrain.
270
+ * @param {Vec3} [res] - Result cartesian coordinates on the terrain.
267
271
  * @param {Vec3} [normal] - Terrain point normal.
268
272
  * @returns {number} -
269
273
  */
@@ -58,12 +58,8 @@ class SegmentLonLat extends Segment {
58
58
  return coords;
59
59
  }
60
60
 
61
- getTerrainPoint(xyz, insideSegmentPosition, res, normal) {
62
- res.copy(this.planet.ellipsoid.hitRay(xyz, xyz.negateTo().normalize()));
63
- if (normal) {
64
- normal.copy(res.normal());
65
- }
66
- return xyz.length() - res.length();
61
+ getInsideLonLat(obj) {
62
+ return obj._lonLat;
67
63
  }
68
64
 
69
65
  _getMaxZoom() {