@openglobus/og 0.11.2 → 0.11.7

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 (273) hide show
  1. package/package.json +13 -13
  2. package/src/og/Clock.js +10 -10
  3. package/src/og/Events.js +8 -6
  4. package/src/og/Extent.js +82 -41
  5. package/src/og/Globe.js +25 -13
  6. package/src/og/ImageCanvas.js +22 -16
  7. package/src/og/LonLat.js +16 -13
  8. package/src/og/Popup.js +21 -14
  9. package/src/og/QueueArray.js +6 -2
  10. package/src/og/Rectangle.js +11 -6
  11. package/src/og/Stack.js +5 -2
  12. package/src/og/ajax.js +21 -33
  13. package/src/og/astro/astro.js +5 -5
  14. package/src/og/astro/earth.js +22 -16
  15. package/src/og/astro/jd.js +23 -18
  16. package/src/og/astro/orbit.js +13 -11
  17. package/src/og/astro/rotation.js +17 -8
  18. package/src/og/bv/Box.js +7 -3
  19. package/src/og/bv/Sphere.js +14 -11
  20. package/src/og/camera/Camera.js +51 -54
  21. package/src/og/camera/Frustum.js +29 -18
  22. package/src/og/camera/PlanetCamera.js +32 -23
  23. package/src/og/control/CompassButton.js +5 -1
  24. package/src/og/control/Control.js +12 -10
  25. package/src/og/control/DebugInfo.js +4 -1
  26. package/src/og/control/EarthCoordinates.js +54 -33
  27. package/src/og/control/KeyboardNavigation.js +10 -10
  28. package/src/og/control/LayerSwitcher.js +22 -21
  29. package/src/og/control/Lighting.js +34 -3
  30. package/src/og/control/MouseNavigation.js +1 -1
  31. package/src/og/control/ScaleControl.js +1 -1
  32. package/src/og/control/SegmentBoundVisualization.js +6 -7
  33. package/src/og/control/ShowFps.js +13 -8
  34. package/src/og/control/SimpleNavigation.js +6 -8
  35. package/src/og/control/Sun.js +25 -15
  36. package/src/og/control/ToggleWireframe.js +4 -4
  37. package/src/og/control/TouchNavigation.js +44 -33
  38. package/src/og/control/ZoomControl.js +41 -25
  39. package/src/og/ellipsoid/Ellipsoid.js +162 -66
  40. package/src/og/ellipsoid/wgs84.js +4 -4
  41. package/src/og/entity/BaseBillboard.js +100 -56
  42. package/src/og/entity/Billboard.js +14 -10
  43. package/src/og/entity/BillboardHandler.js +317 -60
  44. package/src/og/entity/Entity.js +100 -68
  45. package/src/og/entity/EntityCollection.js +70 -47
  46. package/src/og/entity/GeoObject.js +228 -0
  47. package/src/og/entity/GeoObjectHandler.js +910 -0
  48. package/src/og/entity/Geometry.js +27 -24
  49. package/src/og/entity/GeometryHandler.js +596 -124
  50. package/src/og/entity/Label.js +80 -49
  51. package/src/og/entity/LabelHandler.js +45 -244
  52. package/src/og/entity/LabelWorker.js +218 -0
  53. package/src/og/entity/Object3d.js +504 -0
  54. package/src/og/entity/PointCloud.js +80 -32
  55. package/src/og/entity/PointCloudHandler.js +8 -8
  56. package/src/og/entity/Polyline.js +16 -16
  57. package/src/og/entity/Ray.js +60 -27
  58. package/src/og/entity/Strip.js +77 -48
  59. package/src/og/entity/StripHandler.js +26 -26
  60. package/src/og/entity/index.js +8 -16
  61. package/src/og/layer/BaseGeoImage.js +54 -23
  62. package/src/og/layer/CanvasTiles.js +24 -24
  63. package/src/og/layer/GeoImage.js +9 -9
  64. package/src/og/layer/GeoVideo.js +3 -3
  65. package/src/og/layer/KML.js +63 -37
  66. package/src/og/layer/Layer.js +44 -21
  67. package/src/og/layer/Material.js +23 -20
  68. package/src/og/layer/Vector.js +114 -68
  69. package/src/og/layer/WMS.js +34 -17
  70. package/src/og/layer/XYZ.js +48 -46
  71. package/src/og/light/LightSource.js +46 -39
  72. package/src/og/math/Mat3.js +34 -22
  73. package/src/og/math/Mat4.js +603 -459
  74. package/src/og/math/Plane.js +21 -20
  75. package/src/og/math/Quat.js +182 -139
  76. package/src/og/math/Ray.js +38 -33
  77. package/src/og/math/Vec2.js +85 -75
  78. package/src/og/math/Vec3.js +142 -112
  79. package/src/og/math/Vec4.js +27 -31
  80. package/src/og/math/coder.js +10 -10
  81. package/src/og/math.js +12 -12
  82. package/src/og/proj/EPSG3857.js +4 -4
  83. package/src/og/proj/EPSG4326.js +4 -4
  84. package/src/og/proj/Proj.js +4 -6
  85. package/src/og/quadTree/Node.js +8 -8
  86. package/src/og/renderer/Renderer.js +59 -52
  87. package/src/og/renderer/RendererEvents.js +50 -27
  88. package/src/og/scene/BaseNode.js +7 -8
  89. package/src/og/scene/Planet.js +102 -103
  90. package/src/og/scene/RenderNode.js +28 -21
  91. package/src/og/segment/Segment.js +26 -21
  92. package/src/og/segment/SegmentLonLat.js +5 -5
  93. package/src/og/shaders/drawnode.js +135 -142
  94. package/src/og/shaders/geoObject.js +211 -0
  95. package/src/og/shaders/pointCloud.js +41 -41
  96. package/src/og/shaders/shape.js +12 -18
  97. package/src/og/shaders/skybox.js +36 -36
  98. package/src/og/shaders/toneMapping.js +1 -0
  99. package/src/og/shapes/BaseShape.js +126 -54
  100. package/src/og/shapes/Icosphere.js +29 -14
  101. package/src/og/shapes/Sphere.js +12 -15
  102. package/src/og/terrain/BilTerrain.js +1 -0
  103. package/src/og/terrain/EmptyTerrain.js +2 -2
  104. package/src/og/terrain/GlobusTerrain.js +9 -9
  105. package/src/og/utils/FontAtlas.js +6 -2
  106. package/src/og/utils/TextureAtlas.js +22 -24
  107. package/src/og/utils/VectorTileCreator.js +1 -3
  108. package/src/og/utils/shared.js +16 -16
  109. package/src/og/webgl/Framebuffer.js +88 -40
  110. package/src/og/webgl/Handler.js +243 -169
  111. package/src/og/webgl/Multisample.js +47 -19
  112. package/src/og/webgl/Program.js +79 -34
  113. package/src/og/webgl/ProgramController.js +17 -13
  114. package/src/og/webgl/callbacks.js +8 -8
  115. package/src/og/inherits.js +0 -8
  116. package/src/og/utils/polylabel.js +0 -176
  117. package/types/Clock.d.ts +0 -90
  118. package/types/Deferred.d.ts +0 -6
  119. package/types/Events.d.ts +0 -73
  120. package/types/Extent.d.ts +0 -166
  121. package/types/Globe.d.ts +0 -75
  122. package/types/ImageCanvas.d.ts +0 -121
  123. package/types/Lock.d.ts +0 -12
  124. package/types/LonLat.d.ts +0 -108
  125. package/types/Popup.d.ts +0 -38
  126. package/types/QueueArray.d.ts +0 -15
  127. package/types/Rectangle.d.ts +0 -74
  128. package/types/Stack.d.ts +0 -15
  129. package/types/ajax.d.ts +0 -24
  130. package/types/arial.d.ts +0 -48
  131. package/types/astro/astro.d.ts +0 -38
  132. package/types/astro/earth.d.ts +0 -6
  133. package/types/astro/jd.d.ts +0 -254
  134. package/types/bv/Box.d.ts +0 -25
  135. package/types/bv/Sphere.d.ts +0 -38
  136. package/types/bv/index.d.ts +0 -3
  137. package/types/camera/Camera.d.ts +0 -303
  138. package/types/camera/Frustum.d.ts +0 -129
  139. package/types/camera/PlanetCamera.d.ts +0 -223
  140. package/types/camera/index.d.ts +0 -3
  141. package/types/cons.d.ts +0 -40
  142. package/types/control/CompassButton.d.ts +0 -18
  143. package/types/control/Control.d.ts +0 -101
  144. package/types/control/DebugInfo.d.ts +0 -16
  145. package/types/control/EarthCoordinates.d.ts +0 -47
  146. package/types/control/EarthNavigation.d.ts +0 -42
  147. package/types/control/GeoImageDragControl.d.ts +0 -6
  148. package/types/control/KeyboardNavigation.d.ts +0 -22
  149. package/types/control/LayerSwitcher.d.ts +0 -23
  150. package/types/control/Lighting.d.ts +0 -16
  151. package/types/control/MouseNavigation.d.ts +0 -51
  152. package/types/control/ScaleControl.d.ts +0 -22
  153. package/types/control/ShowFps.d.ts +0 -12
  154. package/types/control/SimpleNavigation.d.ts +0 -28
  155. package/types/control/Sun.d.ts +0 -52
  156. package/types/control/ToggleWireframe.d.ts +0 -12
  157. package/types/control/TouchNavigation.d.ts +0 -50
  158. package/types/control/ZoomControl.d.ts +0 -28
  159. package/types/control/index.d.ts +0 -17
  160. package/types/ellipsoid/Ellipsoid.d.ts +0 -142
  161. package/types/ellipsoid/index.d.ts +0 -3
  162. package/types/ellipsoid/wgs84.d.ts +0 -5
  163. package/types/entity/BaseBillboard.d.ts +0 -208
  164. package/types/entity/Billboard.d.ts +0 -94
  165. package/types/entity/BillboardHandler.d.ts +0 -74
  166. package/types/entity/Entity.d.ts +0 -331
  167. package/types/entity/EntityCollection.d.ts +0 -303
  168. package/types/entity/Geometry.d.ts +0 -73
  169. package/types/entity/GeometryHandler.d.ts +0 -76
  170. package/types/entity/Label.d.ts +0 -194
  171. package/types/entity/LabelHandler.d.ts +0 -24
  172. package/types/entity/PointCloud.d.ts +0 -174
  173. package/types/entity/PointCloudHandler.d.ts +0 -38
  174. package/types/entity/Polyline.d.ts +0 -304
  175. package/types/entity/PolylineHandler.d.ts +0 -18
  176. package/types/entity/Ray.d.ts +0 -123
  177. package/types/entity/RayHandler.d.ts +0 -67
  178. package/types/entity/ShapeHandler.d.ts +0 -22
  179. package/types/entity/Strip.d.ts +0 -118
  180. package/types/entity/StripHandler.d.ts +0 -38
  181. package/types/entity/index.d.ts +0 -8
  182. package/types/index.core.d.ts +0 -65
  183. package/types/index.d.ts +0 -45
  184. package/types/index.webgl.d.ts +0 -7
  185. package/types/inherits.d.ts +0 -4
  186. package/types/input/KeyboardHandler.d.ts +0 -10
  187. package/types/input/MouseHandler.d.ts +0 -5
  188. package/types/input/TouchHandler.d.ts +0 -5
  189. package/types/input/input.d.ts +0 -34
  190. package/types/layer/BaseGeoImage.d.ts +0 -107
  191. package/types/layer/CanvasTiles.d.ts +0 -75
  192. package/types/layer/GeoImage.d.ts +0 -65
  193. package/types/layer/GeoTexture2d.d.ts +0 -8
  194. package/types/layer/GeoVideo.d.ts +0 -80
  195. package/types/layer/KML.d.ts +0 -58
  196. package/types/layer/Layer.d.ts +0 -321
  197. package/types/layer/Material.d.ts +0 -48
  198. package/types/layer/Vector.d.ts +0 -228
  199. package/types/layer/WMS.d.ts +0 -66
  200. package/types/layer/XYZ.d.ts +0 -130
  201. package/types/layer/index.d.ts +0 -10
  202. package/types/light/LightSource.d.ts +0 -177
  203. package/types/math/Line2.d.ts +0 -11
  204. package/types/math/Line3.d.ts +0 -10
  205. package/types/math/Mat3.d.ts +0 -63
  206. package/types/math/Mat4.d.ts +0 -173
  207. package/types/math/Plane.d.ts +0 -17
  208. package/types/math/Quat.d.ts +0 -376
  209. package/types/math/Ray.d.ts +0 -81
  210. package/types/math/Vec2.d.ts +0 -308
  211. package/types/math/Vec3.d.ts +0 -459
  212. package/types/math/Vec4.d.ts +0 -161
  213. package/types/math/coder.d.ts +0 -42
  214. package/types/math/index.d.ts +0 -11
  215. package/types/math.d.ts +0 -261
  216. package/types/mercator.d.ts +0 -92
  217. package/types/proj/EPSG3857.d.ts +0 -5
  218. package/types/proj/EPSG4326.d.ts +0 -5
  219. package/types/proj/Proj.d.ts +0 -42
  220. package/types/quadTree/EntityCollectionNode.d.ts +0 -34
  221. package/types/quadTree/Node.d.ts +0 -61
  222. package/types/quadTree/quadTree.d.ts +0 -40
  223. package/types/renderer/Renderer.d.ts +0 -296
  224. package/types/renderer/RendererEvents.d.ts +0 -230
  225. package/types/res/images.d.ts +0 -3
  226. package/types/scene/Axes.d.ts +0 -11
  227. package/types/scene/BaseNode.d.ts +0 -60
  228. package/types/scene/Planet.d.ts +0 -574
  229. package/types/scene/RenderNode.d.ts +0 -143
  230. package/types/scene/SkyBox.d.ts +0 -10
  231. package/types/scene/index.d.ts +0 -4
  232. package/types/segment/Segment.d.ts +0 -271
  233. package/types/segment/SegmentLonLat.d.ts +0 -62
  234. package/types/segment/segmentHelper.d.ts +0 -13
  235. package/types/shaders/billboard.d.ts +0 -3
  236. package/types/shaders/depth.d.ts +0 -2
  237. package/types/shaders/drawnode.d.ts +0 -7
  238. package/types/shaders/label.d.ts +0 -4
  239. package/types/shaders/pointCloud.d.ts +0 -2
  240. package/types/shaders/polyline.d.ts +0 -3
  241. package/types/shaders/ray.d.ts +0 -2
  242. package/types/shaders/screenFrame.d.ts +0 -2
  243. package/types/shaders/shape.d.ts +0 -4
  244. package/types/shaders/skybox.d.ts +0 -2
  245. package/types/shaders/toneMapping.d.ts +0 -2
  246. package/types/shapes/BaseShape.d.ts +0 -247
  247. package/types/shapes/Sphere.d.ts +0 -41
  248. package/types/terrain/BilTerrain.d.ts +0 -8
  249. package/types/terrain/EmptyTerrain.d.ts +0 -72
  250. package/types/terrain/Geoid.d.ts +0 -26
  251. package/types/terrain/GlobusTerrain.d.ts +0 -153
  252. package/types/terrain/MapboxTerrain.d.ts +0 -8
  253. package/types/terrain/index.d.ts +0 -5
  254. package/types/utils/FontAtlas.d.ts +0 -14
  255. package/types/utils/GeoImageCreator.d.ts +0 -30
  256. package/types/utils/ImagesCacheManager.d.ts +0 -10
  257. package/types/utils/Loader.d.ts +0 -25
  258. package/types/utils/NormalMapCreator.d.ts +0 -39
  259. package/types/utils/PlainSegmentWorker.d.ts +0 -10
  260. package/types/utils/TerrainWorker.d.ts +0 -9
  261. package/types/utils/TextureAtlas.d.ts +0 -111
  262. package/types/utils/VectorTileCreator.d.ts +0 -16
  263. package/types/utils/colorTable.d.ts +0 -143
  264. package/types/utils/earcut.d.ts +0 -6
  265. package/types/utils/shared.d.ts +0 -230
  266. package/types/webgl/Framebuffer.d.ts +0 -135
  267. package/types/webgl/Handler.d.ts +0 -372
  268. package/types/webgl/Multisample.d.ts +0 -89
  269. package/types/webgl/Program.d.ts +0 -155
  270. package/types/webgl/ProgramController.d.ts +0 -84
  271. package/types/webgl/callbacks.d.ts +0 -1
  272. package/types/webgl/index.d.ts +0 -6
  273. package/types/webgl/types.d.ts +0 -2
@@ -16,6 +16,7 @@ import { TextureAtlas } from "../utils/TextureAtlas.js";
16
16
  import * as arial from "../arial.js";
17
17
  import { depth } from "../shaders/depth.js";
18
18
  import { ARIAL_FONT_B64 } from "../res/images.js";
19
+ import { LabelWorker } from "../entity/LabelWorker.js";
19
20
 
20
21
  let __pickingCallbackCounter__ = 0;
21
22
 
@@ -24,7 +25,7 @@ let __depthCallbackCounter__ = 0;
24
25
  /**
25
26
  * Represents high level WebGL context interface that starts WebGL handler working in real time.
26
27
  * @class
27
- * @param {og.webgl.Handler} handler - WebGL handler context.
28
+ * @param {Handler} handler - WebGL handler context.
28
29
  * @param {Object} [params] - Renderer parameters:
29
30
  * @fires og.RendererEvents#draw
30
31
  * @fires og.RendererEvents#resize
@@ -55,7 +56,6 @@ let __depthCallbackCounter__ = 0;
55
56
  * @fires og.RendererEvents#touchenter
56
57
  */
57
58
  class Renderer {
58
-
59
59
  constructor(handler, params) {
60
60
  params = params || {};
61
61
 
@@ -69,13 +69,13 @@ class Renderer {
69
69
  /**
70
70
  * WebGL handler context.
71
71
  * @public
72
- * @type {og.webgl.Handler}
72
+ * @type {Handler}
73
73
  */
74
74
  this.handler = handler;
75
75
 
76
- this.exposure = 4;
76
+ this.exposure = 3.01;
77
77
 
78
- this.gamma = 0.5;
78
+ this.gamma = 0.47;
79
79
 
80
80
  this.whitepoint = 1.0;
81
81
 
@@ -86,7 +86,7 @@ class Renderer {
86
86
  /**
87
87
  * Render nodes drawing queue.
88
88
  * @private
89
- * @type {Array.<og.scene.RenderNode>}
89
+ * @type {Array.<scene.RenderNode>}
90
90
  */
91
91
  this._renderNodesArr = [];
92
92
 
@@ -100,14 +100,14 @@ class Renderer {
100
100
  /**
101
101
  * Current active camera.
102
102
  * @public
103
- * @type {og.Camera}
103
+ * @type {Camera}
104
104
  */
105
105
  this.activeCamera = null;
106
106
 
107
107
  /**
108
108
  * Renderer events. Represents interface for setting events like mousemove, draw, keypress etc.
109
109
  * @public
110
- * @type {og.RendererEvents}
110
+ * @type {RendererEvents}
111
111
  */
112
112
  this.events = new RendererEvents(this);
113
113
 
@@ -140,32 +140,30 @@ class Renderer {
140
140
 
141
141
  /**
142
142
  * Color picking objects rendering queue.
143
- * @type {Array.<og.Renderer~pickingCallback>}
143
+ * @type {Array.<Renderer~pickingCallback>}
144
144
  */
145
145
  this._pickingCallbacks = [];
146
146
 
147
147
  /**
148
148
  * Picking objects(labels and billboards) framebuffer.
149
149
  * @public
150
- * @type {og.webgl.Framebuffer}
150
+ * @type {Framebuffer}
151
151
  */
152
152
  this.pickingFramebuffer = null;
153
153
 
154
154
  /**
155
155
  * Depth objects rendering queue.
156
- * @type {Array.<og.Renderer~depthCallback>}
156
+ * @type {Array.<Renderer~depthCallback>}
157
157
  */
158
158
  this._depthCallbacks = [];
159
159
 
160
160
  this.depthFramebuffer = null;
161
161
 
162
- this._msaa = params.msaa || 8;
162
+ this._msaa = params.msaa || 4;
163
163
  this._internalFormat = "RGBA16F";
164
164
  this._format = "RGBA";
165
165
  this._type = "FLOAT";
166
166
 
167
- this._screenScale = params.screenScale || 1.0;
168
-
169
167
  this.sceneFramebuffer = null;
170
168
 
171
169
  this.blitFramebuffer = null;
@@ -193,14 +191,14 @@ class Renderer {
193
191
  /**
194
192
  * Texture atlas for the billboards images. One atlas per node.
195
193
  * @protected
196
- * @type {og.utils.TextureAtlas}
194
+ * @type {utils.TextureAtlas}
197
195
  */
198
196
  this.billboardsTextureAtlas = new TextureAtlas();
199
197
 
200
198
  /**
201
199
  * Texture font atlas for the font families and styles. One atlas per node.
202
200
  * @public
203
- * @type {og.utils.FontAtlas}
201
+ * @type {utils.FontAtlas}
204
202
  */
205
203
  this.fontAtlas = new FontAtlas();
206
204
 
@@ -212,6 +210,8 @@ class Renderer {
212
210
  }
213
211
 
214
212
  this._currentOutput = "screen";
213
+
214
+ this.labelWorker = new LabelWorker();
215
215
  }
216
216
 
217
217
  /**
@@ -222,11 +222,6 @@ class Renderer {
222
222
  this.events.active = activity;
223
223
  }
224
224
 
225
- setScreenScale(scale) {
226
- this._screenScale = scale;
227
- this._resize();
228
- }
229
-
230
225
  addDepthCallback(sender, callback) {
231
226
  var id = __depthCallbackCounter__++;
232
227
  this._depthCallbacks.push({
@@ -249,7 +244,7 @@ class Renderer {
249
244
  /**
250
245
  * Adds picking rendering callback function.
251
246
  * @param {object} sender - Callback context.
252
- * @param {og.Renderer~pickingCallback} callback - Rendering callback.
247
+ * @param {Renderer~pickingCallback} callback - Rendering callback.
253
248
  * @returns {Number} Handler id
254
249
  */
255
250
  addPickingCallback(sender, callback) {
@@ -331,7 +326,7 @@ class Renderer {
331
326
  * @returns {number} -
332
327
  */
333
328
  getWidth() {
334
- return this.handler.canvas.width;
329
+ return this.handler.canvas.clientWidth;
335
330
  }
336
331
 
337
332
  /**
@@ -340,22 +335,22 @@ class Renderer {
340
335
  * @returns {number} -
341
336
  */
342
337
  getHeight() {
343
- return this.handler.canvas.height;
338
+ return this.handler.canvas.clientHeight;
344
339
  }
345
340
 
346
341
  /**
347
342
  * Get center of the screen
348
343
  * @public
349
- * @returns {og.math.Vec2} -
344
+ * @returns {math.Vec2} -
350
345
  */
351
346
  getCenter() {
352
347
  var cnv = this.handler.canvas;
353
- return new Vec2(Math.round(cnv.width * 0.5), Math.round(cnv.height * 0.5));
348
+ return new Vec2(Math.round(cnv.clientWidth * 0.5), Math.round(cnv.clientHeight * 0.5));
354
349
  }
355
350
 
356
351
  /**
357
352
  * Add the given control to the renderer.
358
- * @param {og.control.Control} control - Control.
353
+ * @param {control.Control} control - Control.
359
354
  */
360
355
  addControl(control) {
361
356
  control.addTo(this);
@@ -363,7 +358,7 @@ class Renderer {
363
358
 
364
359
  /**
365
360
  * Add the given controls array to the planet node.
366
- * @param {Array.<og.control.Control>} cArr - Control array.
361
+ * @param {Array.<control.Control>} cArr - Control array.
367
362
  */
368
363
  addControls(cArr) {
369
364
  for (var i = 0; i < cArr.length; i++) {
@@ -373,7 +368,7 @@ class Renderer {
373
368
 
374
369
  /**
375
370
  * Remove control from the renderer.
376
- * @param {og.control.Control} control - Control.
371
+ * @param {control.Control} control - Control.
377
372
  */
378
373
  removeControl(control) {
379
374
  control.remove();
@@ -441,7 +436,7 @@ class Renderer {
441
436
  useDepth: false
442
437
  }).init();
443
438
 
444
- this.readPixels = () => { };
439
+ this.readPixels = () => {};
445
440
 
446
441
  if (this.handler.gl.type === "webgl") {
447
442
  this.sceneFramebuffer = new Framebuffer(this.handler);
@@ -477,7 +472,7 @@ class Renderer {
477
472
  internalFormat: this._internalFormat,
478
473
  format: this._format,
479
474
  type: this._type,
480
- filter: "LINEAR"
475
+ filter: "NEAREST"
481
476
  }).init();
482
477
 
483
478
  this.toneMappingFramebuffer = new Framebuffer(this.handler, {
@@ -524,23 +519,21 @@ class Renderer {
524
519
  }
525
520
 
526
521
  _resize() {
527
- let obj = this.handler.canvas;
528
- this.activeCamera.setAspectRatio(obj.clientWidth / obj.clientHeight);
529
- this.sceneFramebuffer.setSize(
530
- obj.clientWidth * this._screenScale,
531
- obj.clientHeight * this._screenScale
532
- );
522
+ let c = this.handler.canvas;
523
+ this.activeCamera.setAspectRatio(c.width / c.height);
524
+ this.sceneFramebuffer.setSize(c.width, c.height);
525
+
533
526
  this.blitFramebuffer &&
534
- this.blitFramebuffer.setSize(
535
- obj.clientWidth * this._screenScale,
536
- obj.clientHeight * this._screenScale,
537
- true
538
- );
527
+ this.blitFramebuffer.setSize(c.width, c.height, true);
528
+
539
529
  this.toneMappingFramebuffer &&
540
- this.toneMappingFramebuffer.setSize(obj.clientWidth, obj.clientHeight, true);
541
- this.depthFramebuffer && this.depthFramebuffer.setSize(obj.clientWidth, obj.clientHeight, true);
530
+ this.toneMappingFramebuffer.setSize(c.width, c.height, true);
531
+
532
+ this.depthFramebuffer &&
533
+ this.depthFramebuffer.setSize(c.width, c.height, true);
534
+
542
535
  this.screenDepthFramebuffer &&
543
- this.screenDepthFramebuffer.setSize(obj.clientWidth, obj.clientHeight, true);
536
+ this.screenDepthFramebuffer.setSize(c.width, c.height, true);
544
537
 
545
538
  if (this.handler.gl.type === "webgl") {
546
539
  this.screenTexture.screen = this.sceneFramebuffer.textures[0];
@@ -564,7 +557,7 @@ class Renderer {
564
557
  /**
565
558
  * Adds render node to the renderer.
566
559
  * @public
567
- * @param {og.scene.RenderNode} renderNode - Render node.
560
+ * @param {RenderNode} renderNode - Render node.
568
561
  */
569
562
  addNode(renderNode) {
570
563
  if (!this.renderNodes[renderNode.name]) {
@@ -579,7 +572,7 @@ class Renderer {
579
572
  /**
580
573
  * Adds render node to the renderer before specific node.
581
574
  * @public
582
- * @param {og.scene.RenderNode} renderNode - Render node.
575
+ * @param {RenderNode} renderNode - Render node.
583
576
  */
584
577
  addNodeBefore(renderNode, renderNodeBefore) {
585
578
  if (!this.renderNodes[renderNode.name]) {
@@ -600,7 +593,7 @@ class Renderer {
600
593
  /**
601
594
  * Adds render nodes array to the renderer.
602
595
  * @public
603
- * @param {Array.<og.scene.RenderNode>} nodesArr - Render nodes array.
596
+ * @param {Array.<scene.RenderNode>} nodesArr - Render nodes array.
604
597
  */
605
598
  addNodes(nodesArr) {
606
599
  for (var i = 0; i < nodesArr.length; i++) {
@@ -610,7 +603,11 @@ class Renderer {
610
603
 
611
604
  getMaxMSAA(internalFormat) {
612
605
  var gl = this.handler.gl;
613
- let samples = gl.getInternalformatParameter(gl.RENDERBUFFER, gl[internalFormat], gl.SAMPLES);
606
+ let samples = gl.getInternalformatParameter(
607
+ gl.RENDERBUFFER,
608
+ gl[internalFormat],
609
+ gl.SAMPLES
610
+ );
614
611
  return samples[0];
615
612
  }
616
613
 
@@ -671,6 +668,12 @@ class Renderer {
671
668
  ec[i]._fadingOpacity && ec[i].labelHandler.draw();
672
669
  }
673
670
 
671
+ //geoObject
672
+ i = ec.length;
673
+ while (i--) {
674
+ ec[i]._fadingOpacity && ec[i].geoObjectHandler.draw();
675
+ }
676
+
674
677
  // rays
675
678
  i = ec.length;
676
679
  while (i--) {
@@ -735,7 +738,12 @@ class Renderer {
735
738
 
736
739
  let h = this.handler;
737
740
 
738
- h.gl.clearColor(this.backgroundColor.x, this.backgroundColor.y, this.backgroundColor.z, 1.0);
741
+ h.gl.clearColor(
742
+ this.backgroundColor.x,
743
+ this.backgroundColor.y,
744
+ this.backgroundColor.z,
745
+ 1.0
746
+ );
739
747
  h.gl.clear(h.gl.COLOR_BUFFER_BIT | h.gl.DEPTH_BUFFER_BIT);
740
748
 
741
749
  e.dispatch(e.draw, this);
@@ -847,7 +855,7 @@ class Renderer {
847
855
  getPickingObject(x, y) {
848
856
  let cnv = this.renderer.handler.canvas,
849
857
  c = new Uint8Array(3);
850
- this.readPixels(c, x / cnv.width, (cnv.height - y) / cnv.height, 1);
858
+ this.readPixels(c, x / cnv.clientWidth, (cnv.clientHeight - y) / cnv.clientHeight, 1);
851
859
  return this.colorObjects[c[0] + "_" + c[1] + "_" + c[2]];
852
860
  }
853
861
 
@@ -964,7 +972,6 @@ class Renderer {
964
972
  start() {
965
973
  this.handler.start();
966
974
  }
967
-
968
975
  }
969
976
 
970
977
  export { Renderer };
@@ -19,7 +19,7 @@ const MB_M = 0b0100;
19
19
  /**
20
20
  * Renderer events handler.
21
21
  * @class
22
- * @param {og.Renderer} renderer - Renderer object, events that works for.
22
+ * @param {Renderer} renderer - Renderer object, events that works for.
23
23
  */
24
24
  class RendererEvents extends Events {
25
25
  constructor(renderer) {
@@ -28,28 +28,28 @@ class RendererEvents extends Events {
28
28
  /**
29
29
  * Assigned renderer.
30
30
  * @public
31
- * @type {og.Renderer}
31
+ * @type {Renderer}
32
32
  */
33
33
  this.renderer = renderer;
34
34
 
35
35
  /**
36
36
  * Low level touch events handler.
37
37
  * @private
38
- * @type {og.input.TouchHandler}
38
+ * @type {input.TouchHandler}
39
39
  */
40
40
  this._touchHandler = new TouchHandler(renderer.handler.canvas);
41
41
 
42
42
  /**
43
43
  * Low level mouse events handler.
44
44
  * @private
45
- * @type {og.input.MouseHandler}
45
+ * @type {input.MouseHandler}
46
46
  */
47
47
  this._mouseHandler = new MouseHandler(renderer.handler.canvas);
48
48
 
49
49
  /**
50
50
  * Low level keyboard events handler.
51
51
  * @private
52
- * @type {og.input.KeyboardHandler}
52
+ * @type {input.KeyboardHandler}
53
53
  */
54
54
  this._keyboardHandler = new KeyboardHandler();
55
55
 
@@ -84,10 +84,14 @@ class RendererEvents extends Events {
84
84
  ms.moving ||
85
85
  ms.justStopped
86
86
  );
87
- },
88
- /** Current mouse X position. */
87
+ },
88
+ /** Current screen mouse X position. */
89
+ clientX: 0,
90
+ /** Current screen mouse Y position. */
91
+ clientY: 0,
92
+ /** Current viewport mouse X position. */
89
93
  x: 0,
90
- /** Current mouse Y position. */
94
+ /** Current viewport mouse Y position. */
91
95
  y: 0,
92
96
  /** Current mouse X position from 0 to 1 */
93
97
  nx: 0,
@@ -190,6 +194,9 @@ class RendererEvents extends Events {
190
194
  this._dblTchCoords = new Vec2();
191
195
  this._oneTouchStart = false;
192
196
  this._dblTchBegins = 0;
197
+ /**
198
+ * @type {number}
199
+ */
193
200
  this._mousestopThread = null;
194
201
  this._ldblClkBegins = 0;
195
202
  this._rdblClkBegins = 0;
@@ -332,7 +339,7 @@ class RendererEvents extends Events {
332
339
  */
333
340
  onMouseMove(event, sys) {
334
341
  var ms = this.mouseState;
335
- this.updateButtonsStates(sys.buttons)
342
+ this.updateButtonsStates(sys.buttons);
336
343
  ms.sys = event;
337
344
 
338
345
  let ex = event.clientX,
@@ -354,16 +361,20 @@ class RendererEvents extends Events {
354
361
  this._mClkBegins = 0;
355
362
  }
356
363
 
357
- if (ms.x === event.clientX && ms.y === event.clientY) {
364
+ if (ms.clientX === event.clientX && ms.clientY === event.clientY) {
358
365
  return;
359
- }
366
+ }
360
367
 
361
- ms.x = event.clientX;
362
- ms.y = event.clientY;
368
+ ms.clientX = event.clientX;
369
+ ms.clientY = event.clientY;
370
+
371
+ let h = this.renderer.handler;
372
+
373
+ ms.x = event.clientX * h.pixelRatio;
374
+ ms.y = event.clientY * h.pixelRatio;
363
375
 
364
- var cnv = this.renderer.handler.canvas;
365
- ms.nx = ms.x / cnv.width;
366
- ms.ny = ms.y / cnv.height;
376
+ ms.nx = ms.x / h.canvas.width;
377
+ ms.ny = ms.y / h.canvas.height;
367
378
 
368
379
  ms.moving = true;
369
380
 
@@ -489,12 +500,18 @@ class RendererEvents extends Events {
489
500
  */
490
501
  onTouchStart(event) {
491
502
  var ts = this.touchState;
492
- ts.sys = event;
493
- ts.x = event.touches.item(0).clientX - event.offsetLeft;
494
- ts.y = event.touches.item(0).clientY - event.offsetTop;
495
- var cnv = this.renderer.handler.canvas;
496
- ts.nx = ts.x / cnv.width;
497
- ts.ny = ts.y / cnv.height;
503
+ ts.sys = event;
504
+
505
+ ts.clienX = event.touches.item(0).clientX - event.offsetLeft;
506
+ ts.clientY = event.touches.item(0).clientY - event.offsetTop;
507
+
508
+ let h = this.renderer.handler;
509
+
510
+ ts.x = ts.clientX * h.pixelRatio;
511
+ ts.y = ts.clientY * h.pixelRatio;
512
+
513
+ ts.nx = ts.x / h.canvas.width;
514
+ ts.ny = ts.y / h.canvas.height;
498
515
  ts.prev_x = ts.x;
499
516
  ts.prev_y = ts.y;
500
517
  ts.touchStart = true;
@@ -548,11 +565,17 @@ class RendererEvents extends Events {
548
565
  */
549
566
  onTouchMove(event) {
550
567
  var ts = this.touchState;
551
- ts.x = event.touches.item(0).clientX - event.offsetLeft;
552
- ts.y = event.touches.item(0).clientY - event.offsetTop;
553
- var cnv = this.renderer.handler.canvas;
554
- ts.nx = ts.x / cnv.width;
555
- ts.ny = ts.y / cnv.height;
568
+ ts.clientX = event.touches.item(0).clientX - event.offsetLeft;
569
+ ts.clientY = event.touches.item(0).clientY - event.offsetTop;
570
+
571
+ var h = this.renderer.handler;
572
+
573
+ ts.x = ts.clientX * h.pixelRatio;
574
+ ts.y = ts.clientY * h.pixelRatio;
575
+
576
+ ts.nx = ts.x / h.canvas.width;
577
+ ts.ny = ts.y / h.canvas.height;
578
+
556
579
  ts.sys = event;
557
580
  ts.moving = true;
558
581
  this._dblTchBegins = 0;
@@ -2,7 +2,7 @@
2
2
  * @module og/scene/BaseNode
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
7
  /**
8
8
  * Scene node base class.
@@ -11,7 +11,6 @@
11
11
  */
12
12
  class BaseNode {
13
13
  constructor(name) {
14
-
15
14
  /**
16
15
  * Node name.
17
16
  * @public
@@ -22,7 +21,7 @@ class BaseNode {
22
21
  /**
23
22
  * Top scene tree node pointer.
24
23
  * @public
25
- * @type {og.RenderNode}
24
+ * @type {RenderNode}
26
25
  */
27
26
  this.topNode = this;
28
27
 
@@ -32,14 +31,14 @@ class BaseNode {
32
31
  /**
33
32
  * Children nodes.
34
33
  * @public
35
- * @type {Array.<og.RenderNode>}
34
+ * @type {Array.<RenderNode>}
36
35
  */
37
36
  this.childNodes = [];
38
37
 
39
38
  /**
40
39
  * Parent node pointer.
41
40
  * @public
42
- * @type {og.RenderNode}
41
+ * @type {RenderNode}
43
42
  */
44
43
  this.parentNode = null;
45
44
 
@@ -60,7 +59,7 @@ class BaseNode {
60
59
  /**
61
60
  * Adds node to the current hierarchy.
62
61
  * @public
63
- * @type {og.BaseNode}
62
+ * @type {BaseNode}
64
63
  */
65
64
  addNode(node) {
66
65
  if (this.parentNode == null) {
@@ -89,7 +88,7 @@ class BaseNode {
89
88
  * Gets node by name in the current.
90
89
  * @public
91
90
  * @param {string} name - Node name.
92
- * @return {og.RenderNode} Node object in the current node.
91
+ * @return {RenderNode} Node object in the current node.
93
92
  */
94
93
  getNodeByName(name) {
95
94
  return this._dictionary[name];
@@ -111,4 +110,4 @@ class BaseNode {
111
110
  }
112
111
  }
113
112
 
114
- export { BaseNode };
113
+ export { BaseNode };