@openglobus/og 0.11.1 → 0.11.6

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 (255) hide show
  1. package/package.json +18 -20
  2. package/src/og/Clock.js +11 -11
  3. package/src/og/Deferred.js +1 -1
  4. package/src/og/Events.js +9 -7
  5. package/src/og/Extent.js +117 -72
  6. package/src/og/Globe.js +35 -22
  7. package/src/og/ImageCanvas.js +24 -18
  8. package/src/og/Lock.js +2 -2
  9. package/src/og/LonLat.js +40 -37
  10. package/src/og/Popup.js +21 -15
  11. package/src/og/QueueArray.js +7 -3
  12. package/src/og/Rectangle.js +11 -6
  13. package/src/og/Stack.js +8 -5
  14. package/src/og/ajax.js +21 -33
  15. package/src/og/astro/astro.js +5 -5
  16. package/src/og/astro/earth.js +23 -17
  17. package/src/og/astro/jd.js +44 -39
  18. package/src/og/astro/orbit.js +20 -18
  19. package/src/og/astro/rotation.js +17 -8
  20. package/src/og/bv/Box.js +7 -3
  21. package/src/og/bv/Sphere.js +17 -9
  22. package/src/og/camera/Camera.js +137 -86
  23. package/src/og/camera/Frustum.js +30 -19
  24. package/src/og/camera/PlanetCamera.js +30 -26
  25. package/src/og/control/CompassButton.js +8 -2
  26. package/src/og/control/Control.js +13 -11
  27. package/src/og/control/DebugInfo.js +4 -1
  28. package/src/og/control/EarthCoordinates.js +62 -41
  29. package/src/og/control/EarthNavigation.js +20 -22
  30. package/src/og/control/GeoImageDragControl.js +1 -1
  31. package/src/og/control/KeyboardNavigation.js +12 -12
  32. package/src/og/control/LayerSwitcher.js +24 -23
  33. package/src/og/control/Lighting.js +1 -1
  34. package/src/og/control/MouseNavigation.js +1 -1
  35. package/src/og/control/ScaleControl.js +1 -1
  36. package/src/og/control/SegmentBoundVisualization.js +8 -9
  37. package/src/og/control/ShowFps.js +15 -10
  38. package/src/og/control/SimpleNavigation.js +8 -10
  39. package/src/og/control/Sun.js +25 -15
  40. package/src/og/control/ToggleWireframe.js +5 -5
  41. package/src/og/control/TouchNavigation.js +58 -45
  42. package/src/og/control/ZoomControl.js +41 -25
  43. package/src/og/control/index.js +4 -0
  44. package/src/og/ellipsoid/Ellipsoid.js +181 -85
  45. package/src/og/ellipsoid/wgs84.js +4 -4
  46. package/src/og/entity/BaseBillboard.js +97 -44
  47. package/src/og/entity/Billboard.js +15 -11
  48. package/src/og/entity/BillboardHandler.js +314 -64
  49. package/src/og/entity/Entity.js +106 -74
  50. package/src/og/entity/EntityCollection.js +72 -49
  51. package/src/og/entity/GeoObject.js +228 -0
  52. package/src/og/entity/GeoObjectHandler.js +910 -0
  53. package/src/og/entity/Geometry.js +29 -26
  54. package/src/og/entity/GeometryHandler.js +598 -126
  55. package/src/og/entity/Label.js +74 -40
  56. package/src/og/entity/LabelHandler.js +47 -246
  57. package/src/og/entity/LabelWorker.js +213 -0
  58. package/src/og/entity/Object3d.js +504 -0
  59. package/src/og/entity/PointCloud.js +81 -33
  60. package/src/og/entity/PointCloudHandler.js +9 -9
  61. package/src/og/entity/Polyline.js +39 -39
  62. package/src/og/entity/Ray.js +61 -28
  63. package/src/og/entity/ShapeHandler.js +1 -1
  64. package/src/og/entity/Strip.js +77 -48
  65. package/src/og/entity/StripHandler.js +27 -27
  66. package/src/og/entity/index.js +8 -16
  67. package/src/og/input/KeyboardHandler.js +107 -104
  68. package/src/og/input/MouseHandler.js +81 -78
  69. package/src/og/input/TouchHandler.js +55 -51
  70. package/src/og/layer/BaseGeoImage.js +61 -30
  71. package/src/og/layer/CanvasTiles.js +26 -24
  72. package/src/og/layer/GeoImage.js +10 -10
  73. package/src/og/layer/GeoTexture2d.js +1 -1
  74. package/src/og/layer/GeoVideo.js +3 -3
  75. package/src/og/layer/KML.js +66 -40
  76. package/src/og/layer/Layer.js +27 -17
  77. package/src/og/layer/Material.js +93 -61
  78. package/src/og/layer/Vector.js +118 -72
  79. package/src/og/layer/WMS.js +36 -19
  80. package/src/og/layer/XYZ.js +55 -48
  81. package/src/og/light/LightSource.js +47 -40
  82. package/src/og/math/Line2.js +24 -24
  83. package/src/og/math/Line3.js +103 -102
  84. package/src/og/math/Mat3.js +134 -121
  85. package/src/og/math/Mat4.js +603 -459
  86. package/src/og/math/Plane.js +21 -20
  87. package/src/og/math/Quat.js +980 -927
  88. package/src/og/math/Ray.js +195 -187
  89. package/src/og/math/Vec2.js +127 -117
  90. package/src/og/math/Vec3.js +206 -176
  91. package/src/og/math/Vec4.js +49 -53
  92. package/src/og/math/coder.js +18 -18
  93. package/src/og/math.js +12 -12
  94. package/src/og/mercator.js +11 -11
  95. package/src/og/proj/EPSG3857.js +4 -4
  96. package/src/og/proj/EPSG4326.js +4 -4
  97. package/src/og/proj/Proj.js +31 -31
  98. package/src/og/quadTree/EntityCollectionNode.js +310 -300
  99. package/src/og/quadTree/Node.js +1008 -993
  100. package/src/og/renderer/Renderer.js +768 -747
  101. package/src/og/renderer/RendererEvents.js +9 -6
  102. package/src/og/scene/Axes.js +1 -1
  103. package/src/og/scene/BaseNode.js +8 -9
  104. package/src/og/scene/Planet.js +115 -87
  105. package/src/og/scene/RenderNode.js +29 -22
  106. package/src/og/scene/SkyBox.js +1 -1
  107. package/src/og/segment/Segment.js +1886 -1878
  108. package/src/og/segment/SegmentLonLat.js +298 -268
  109. package/src/og/segment/segmentHelper.js +11 -11
  110. package/src/og/shaders/bloom.js +1 -1
  111. package/src/og/shaders/blur.js +2 -2
  112. package/src/og/shaders/depth.js +1 -1
  113. package/src/og/shaders/geoObject.js +211 -0
  114. package/src/og/shaders/label.js +1 -1
  115. package/src/og/shaders/lumFilter.js +1 -1
  116. package/src/og/shaders/pointCloud.js +42 -42
  117. package/src/og/shaders/screenFrame.js +1 -1
  118. package/src/og/shaders/shape.js +15 -21
  119. package/src/og/shaders/skybox.js +37 -37
  120. package/src/og/shaders/toneMapping.js +1 -1
  121. package/src/og/shapes/BaseShape.js +129 -57
  122. package/src/og/shapes/Icosphere.js +30 -15
  123. package/src/og/shapes/Sphere.js +13 -16
  124. package/src/og/terrain/BilTerrain.js +2 -1
  125. package/src/og/terrain/EmptyTerrain.js +2 -2
  126. package/src/og/terrain/Geoid.js +2 -2
  127. package/src/og/terrain/GlobusTerrain.js +10 -10
  128. package/src/og/terrain/MapboxTerrain.js +1 -1
  129. package/src/og/utils/GeoImageCreator.js +9 -9
  130. package/src/og/utils/Loader.js +6 -6
  131. package/src/og/utils/NormalMapCreator.js +13 -13
  132. package/src/og/utils/TerrainWorker.js +1 -1
  133. package/src/og/utils/TextureAtlas.js +20 -22
  134. package/src/og/utils/VectorTileCreator.js +5 -5
  135. package/src/og/utils/earcut.js +1 -1
  136. package/src/og/utils/shared.js +15 -15
  137. package/src/og/webgl/Framebuffer.js +101 -53
  138. package/src/og/webgl/Handler.js +125 -85
  139. package/src/og/webgl/Multisample.js +55 -27
  140. package/src/og/webgl/Program.js +80 -35
  141. package/src/og/webgl/ProgramController.js +27 -23
  142. package/src/og/webgl/callbacks.js +8 -8
  143. package/types/Clock.d.ts +6 -2
  144. package/types/Deferred.d.ts +1 -1
  145. package/types/Events.d.ts +8 -4
  146. package/types/Extent.d.ts +37 -33
  147. package/types/Globe.d.ts +15 -13
  148. package/types/ImageCanvas.d.ts +5 -3
  149. package/types/LonLat.d.ts +24 -24
  150. package/types/Popup.d.ts +4 -0
  151. package/types/QueueArray.d.ts +6 -2
  152. package/types/Rectangle.d.ts +10 -4
  153. package/types/Stack.d.ts +4 -0
  154. package/types/ajax.d.ts +1 -1
  155. package/types/astro/earth.d.ts +3 -2
  156. package/types/bv/Box.d.ts +10 -5
  157. package/types/bv/Sphere.d.ts +13 -7
  158. package/types/camera/Camera.d.ts +90 -81
  159. package/types/camera/Frustum.d.ts +26 -22
  160. package/types/camera/PlanetCamera.d.ts +49 -53
  161. package/types/control/CompassButton.d.ts +4 -4
  162. package/types/control/Control.d.ts +7 -4
  163. package/types/control/DebugInfo.d.ts +3 -4
  164. package/types/control/EarthCoordinates.d.ts +6 -6
  165. package/types/control/EarthNavigation.d.ts +42 -0
  166. package/types/control/KeyboardNavigation.d.ts +3 -4
  167. package/types/control/LayerSwitcher.d.ts +3 -5
  168. package/types/control/Lighting.d.ts +3 -3
  169. package/types/control/MouseNavigation.d.ts +47 -0
  170. package/types/control/ScaleControl.d.ts +3 -3
  171. package/types/control/ShowFps.d.ts +3 -4
  172. package/types/control/SimpleNavigation.d.ts +3 -6
  173. package/types/control/Sun.d.ts +8 -10
  174. package/types/control/ToggleWireframe.d.ts +3 -3
  175. package/types/control/TouchNavigation.d.ts +48 -0
  176. package/types/control/ZoomControl.d.ts +3 -4
  177. package/types/control/index.d.ts +3 -1
  178. package/types/ellipsoid/Ellipsoid.d.ts +47 -43
  179. package/types/ellipsoid/wgs84.d.ts +3 -2
  180. package/types/entity/BaseBillboard.d.ts +41 -34
  181. package/types/entity/Billboard.d.ts +7 -7
  182. package/types/entity/BillboardHandler.d.ts +4 -0
  183. package/types/entity/Entity.d.ts +101 -83
  184. package/types/entity/EntityCollection.d.ts +57 -43
  185. package/types/entity/GeoObject.d.ts +111 -0
  186. package/types/entity/GeoObjectHandler.d.ts +77 -0
  187. package/types/entity/Geometry.d.ts +9 -7
  188. package/types/entity/GeometryHandler.d.ts +2 -2
  189. package/types/entity/Label.d.ts +24 -29
  190. package/types/entity/LabelHandler.d.ts +9 -2
  191. package/types/entity/LabelWorker.d.ts +9 -0
  192. package/types/entity/PointCloud.d.ts +8 -8
  193. package/types/entity/PointCloudHandler.d.ts +3 -3
  194. package/types/entity/Polyline.d.ts +58 -55
  195. package/types/entity/Ray.d.ts +19 -18
  196. package/types/entity/Strip.d.ts +8 -7
  197. package/types/entity/StripHandler.d.ts +3 -3
  198. package/types/entity/index.d.ts +7 -7
  199. package/types/input/KeyboardHandler.d.ts +10 -0
  200. package/types/input/MouseHandler.d.ts +5 -0
  201. package/types/input/TouchHandler.d.ts +5 -0
  202. package/types/layer/BaseGeoImage.d.ts +23 -35
  203. package/types/layer/CanvasTiles.d.ts +15 -22
  204. package/types/layer/GeoImage.d.ts +5 -18
  205. package/types/layer/GeoVideo.d.ts +5 -30
  206. package/types/layer/KML.d.ts +20 -15
  207. package/types/layer/Layer.d.ts +326 -0
  208. package/types/layer/Material.d.ts +45 -0
  209. package/types/layer/Vector.d.ts +208 -0
  210. package/types/layer/WMS.d.ts +4 -7
  211. package/types/layer/XYZ.d.ts +19 -25
  212. package/types/light/LightSource.d.ts +54 -53
  213. package/types/math/Line2.d.ts +11 -0
  214. package/types/math/Line3.d.ts +10 -0
  215. package/types/math/Mat3.d.ts +30 -18
  216. package/types/math/Mat4.d.ts +71 -52
  217. package/types/math/Plane.d.ts +5 -4
  218. package/types/math/Quat.d.ts +379 -0
  219. package/types/math/Ray.d.ts +82 -0
  220. package/types/math/Vec2.d.ts +102 -101
  221. package/types/math/Vec3.d.ts +143 -142
  222. package/types/math/Vec4.d.ts +40 -39
  223. package/types/math/coder.d.ts +12 -11
  224. package/types/math.d.ts +8 -8
  225. package/types/mercator.d.ts +3 -3
  226. package/types/proj/EPSG3857.d.ts +3 -2
  227. package/types/proj/EPSG4326.d.ts +3 -2
  228. package/types/proj/Proj.d.ts +42 -0
  229. package/types/quadTree/EntityCollectionNode.d.ts +34 -0
  230. package/types/quadTree/Node.d.ts +61 -0
  231. package/types/renderer/Renderer.d.ts +300 -0
  232. package/types/renderer/RendererEvents.d.ts +10 -7
  233. package/types/scene/BaseNode.d.ts +9 -9
  234. package/types/scene/Planet.d.ts +131 -126
  235. package/types/scene/RenderNode.d.ts +22 -23
  236. package/types/segment/Segment.d.ts +279 -0
  237. package/types/segment/SegmentLonLat.d.ts +16 -0
  238. package/types/shaders/geoObject.d.ts +3 -0
  239. package/types/shapes/BaseShape.d.ts +43 -40
  240. package/types/shapes/Sphere.d.ts +7 -7
  241. package/types/terrain/BilTerrain.d.ts +0 -1
  242. package/types/terrain/EmptyTerrain.d.ts +4 -4
  243. package/types/terrain/GlobusTerrain.d.ts +17 -54
  244. package/types/terrain/MapboxTerrain.d.ts +0 -1
  245. package/types/utils/GeoImageCreator.d.ts +3 -2
  246. package/types/utils/TextureAtlas.d.ts +8 -8
  247. package/types/utils/shared.d.ts +25 -24
  248. package/types/webgl/Framebuffer.d.ts +5 -5
  249. package/types/webgl/Handler.d.ts +68 -43
  250. package/types/webgl/Multisample.d.ts +5 -5
  251. package/types/webgl/Program.d.ts +8 -2
  252. package/types/webgl/ProgramController.d.ts +18 -13
  253. package/src/og/inherits.js +0 -8
  254. package/src/og/utils/polylabel.js +0 -176
  255. package/types/inherits.d.ts +0 -4
@@ -2,9 +2,10 @@
2
2
  * @module og/math/Vec4
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
- import { Vec3 } from './Vec3.js';
7
+ import { Vec3 } from "./Vec3.js";
8
+ import { frac } from "../math.js";
8
9
 
9
10
  /**
10
11
  * Class represents a 4d vector.
@@ -15,9 +16,7 @@ import { Vec3 } from './Vec3.js';
15
16
  * @param {number} [w] - Fourth value.
16
17
  */
17
18
  export class Vec4 {
18
-
19
19
  constructor(x, y, z, w) {
20
-
21
20
  /**
22
21
  * @public
23
22
  * @type {number}
@@ -41,57 +40,59 @@ export class Vec4 {
41
40
  * @type {number}
42
41
  */
43
42
  this.w = w || 0.0;
44
- };
43
+ }
45
44
 
46
45
  /**
47
46
  * Identity vector [0,0,0,1].
48
47
  * @const
49
- * @type {og.math.Vec4}
48
+ * @type {Vec4}
50
49
  */
51
- static get identity() { return new Vec4(0, 0, 0, 1) };
50
+ static get identity() {
51
+ return new Vec4(0, 0, 0, 1);
52
+ }
52
53
 
53
54
  /**
54
55
  * Creates 4d vector from array.
55
56
  * @function
56
- * @param {Array.<number,number,number,number>}
57
- * @returns {og.math.Vec4}
57
+ * @param {Array.<number>} - (exactly 4 entries)
58
+ * @returns {Vec4}
58
59
  */
59
60
  static fromVec(arr) {
60
61
  return new Vec4(arr[0], arr[1], arr[2], arr[3]);
61
- };
62
+ }
62
63
 
63
64
  /**
64
65
  * Converts to 3d vector, without fourth value.
65
66
  * @public
66
- * @returns {og.Vec3}
67
+ * @returns {Vec3}
67
68
  */
68
69
  toVec3() {
69
70
  return new Vec3(this.x, this.y, this.z);
70
- };
71
+ }
71
72
 
72
73
  /**
73
74
  * Returns clone vector.
74
75
  * @public
75
- * @returns {og.math.Vec4}
76
+ * @returns {Vec4}
76
77
  */
77
78
  clone(v) {
78
79
  return new Vec4(this.x, this.y, this.z, this.w);
79
- };
80
+ }
80
81
 
81
82
  /**
82
83
  * Compares with vector. Returns true if it equals another.
83
84
  * @public
84
- * @param {og.math.Vec4} p - Vector to compare.
85
+ * @param {Vec4} p - Vector to compare.
85
86
  * @returns {boolean}
86
87
  */
87
88
  equal(v) {
88
89
  return this.x === v.x && this.y === v.y && this.z === v.z && this.w === v.w;
89
- };
90
+ }
90
91
 
91
92
  /**
92
93
  * Copy input vector's values.
93
- * @param {og.math.Vec4} v - Vector to copy.
94
- * @returns {og.math.Vec4}
94
+ * @param {Vec4} v - Vector to copy.
95
+ * @returns {Vec4}
95
96
  */
96
97
  copy(v) {
97
98
  this.x = v.x;
@@ -99,26 +100,26 @@ export class Vec4 {
99
100
  this.z = v.z;
100
101
  this.w = v.w;
101
102
  return this;
102
- };
103
+ }
103
104
 
104
105
  /**
105
106
  * Converts vector to a number array.
106
107
  * @public
107
- * @returns {Array.<number,number,number,number>}
108
+ * @returns {Array.<number>} - (exactly 4 entries)
108
109
  * @deprecated
109
110
  */
110
111
  toVec() {
111
112
  return [this.x, this.y, this.z, this.w];
112
- };
113
+ }
113
114
 
114
115
  /**
115
116
  * Converts vector to a number array.
116
117
  * @public
117
- * @returns {Array.<number,number,number,number>}
118
+ * @returns {Array.<number>} - (exactly 4 entries)
118
119
  */
119
120
  toArray() {
120
121
  return [this.x, this.y, this.z, this.w];
121
- };
122
+ }
122
123
 
123
124
  /**
124
125
  * Sets vector's values.
@@ -127,7 +128,7 @@ export class Vec4 {
127
128
  * @param {number} y - Value Y.
128
129
  * @param {number} z - Value Z.
129
130
  * @param {number} w - Value W.
130
- * @returns {og.math.Vec4}
131
+ * @returns {Vec4}
131
132
  */
132
133
  set(x, y, z, w) {
133
134
  this.x = x;
@@ -135,13 +136,13 @@ export class Vec4 {
135
136
  this.z = z;
136
137
  this.w = w;
137
138
  return this;
138
- };
139
+ }
139
140
 
140
141
  /**
141
142
  * Adds vector to the current.
142
143
  * @public
143
- * @param {og.math.Vec4}
144
- * @returns {og.math.Vec4}
144
+ * @param {Vec4}
145
+ * @returns {Vec4}
145
146
  */
146
147
  addA(v) {
147
148
  this.x += v.x;
@@ -149,13 +150,13 @@ export class Vec4 {
149
150
  this.z += v.z;
150
151
  this.w += v.w;
151
152
  return this;
152
- };
153
+ }
153
154
 
154
155
  /**
155
156
  * Subtract vector from the current.
156
157
  * @public
157
- * @param {og.math.Vec4} v - Subtract vector.
158
- * @returns {og.math.Vec4}
158
+ * @param {Vec4} v - Subtract vector.
159
+ * @returns {Vec4}
159
160
  */
160
161
  subA(v) {
161
162
  this.x -= v.x;
@@ -163,13 +164,13 @@ export class Vec4 {
163
164
  this.z -= v.z;
164
165
  this.w -= v.w;
165
166
  return this;
166
- };
167
+ }
167
168
 
168
169
  /**
169
170
  * Scale current vector.
170
171
  * @public
171
172
  * @param {number} scale - Scale value.
172
- * @returns {og.math.Vec4}
173
+ * @returns {Vec4}
173
174
  */
174
175
  scale(scale) {
175
176
  this.x *= scale;
@@ -177,12 +178,12 @@ export class Vec4 {
177
178
  this.z *= scale;
178
179
  this.w *= scale;
179
180
  return this;
180
- };
181
+ }
181
182
 
182
183
  /**
183
184
  * Makes vector affinity. Thereby fourh component becomes to 1.0.
184
185
  * @public
185
- * @returns {og.math.Vec4}
186
+ * @returns {Vec4}
186
187
  */
187
188
  affinity() {
188
189
  var iw = 1 / this.w;
@@ -191,22 +192,22 @@ export class Vec4 {
191
192
  this.z *= iw;
192
193
  this.w = 1.0;
193
194
  return this;
194
- };
195
+ }
195
196
 
196
197
  /**
197
198
  * Scale current vector to another instance.
198
199
  * @public
199
200
  * @param {number} scale - Scale value.
200
- * @returns {og.Vec3}
201
+ * @returns {Vec3}
201
202
  */
202
203
  scaleTo(scale) {
203
204
  return new Vec4(this.x * scale, this.y * scale, this.z * scale, this.w * scale);
204
- };
205
+ }
205
206
 
206
207
  /**
207
208
  * Vector's edge function that returns vector where each component is 0.0 if it's smaller then edge and otherwise 1.0.
208
209
  * @public
209
- * @returns {og.math.Vec4}
210
+ * @returns {Vec4}
210
211
  */
211
212
  getStep(edge) {
212
213
  return new Vec4(
@@ -215,31 +216,26 @@ export class Vec4 {
215
216
  this.z < edge ? 0.0 : 1.0,
216
217
  this.w < edge ? 0.0 : 1.0
217
218
  );
218
- };
219
+ }
219
220
 
220
221
  /**
221
222
  * The vector fract function returns the vector of fractional parts of each value, i.e. x minus floor(x).
222
223
  * @public
223
- * @returns {og.math.Vec4}
224
+ * @returns {Vec4}
224
225
  */
225
226
  getFrac(v) {
226
- return new Vec4(
227
- og.math.frac(v.x),
228
- og.math.frac(v.y),
229
- og.math.frac(v.z),
230
- og.math.frac(v.w)
231
- );
232
- };
227
+ return new Vec4(frac(v.x), frac(v.y), frac(v.z), frac(v.w));
228
+ }
233
229
 
234
230
  /**
235
231
  * Gets vectors dot production.
236
232
  * @public
237
- * @param {og.math.Vec4} v - Another vector.
233
+ * @param {math.Vec4} v - Another vector.
238
234
  * @returns {number} - Dot product.
239
235
  */
240
236
  dot(v) {
241
237
  return v.x * this.x + v.y * this.y + v.z * this.z + v.w * this.w;
242
- };
238
+ }
243
239
 
244
240
  /**
245
241
  * Returns true if vector's values are zero.
@@ -248,7 +244,7 @@ export class Vec4 {
248
244
  */
249
245
  isZero() {
250
246
  return !(this.x || this.y || this.z || this.w);
251
- };
247
+ }
252
248
  }
253
249
 
254
250
  /**
@@ -258,8 +254,8 @@ export class Vec4 {
258
254
  * @param {number} [y] - Second value.
259
255
  * @param {number} [z] - Third value.
260
256
  * @param {number} [w] - Fourth value.
261
- * @returns {og.math.Vec4}
257
+ * @returns {Vec4}
262
258
  */
263
259
  export function vec4(x, y, z, w) {
264
- return new og.math.Vec4(x, y, z, w);
265
- };
260
+ return new Vec4(x, y, z, w);
261
+ }
@@ -2,54 +2,54 @@
2
2
  * @module og/math/coder
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
- import * as math from '../math.js';
8
- import { Vec4 } from './Vec4.js';
7
+ import * as math from "../math.js";
8
+ import { Vec4 } from "./Vec4.js";
9
9
 
10
10
  /**
11
11
  * Encode 32 bit float value to the RGBA vector.
12
12
  * @function
13
13
  * @param {number} v - 32 bit float value.
14
- * @returns {og.math.Vec4} - RGBA vector value.
14
+ * @returns {math.Vec4} - RGBA vector value.
15
15
  */
16
16
  export function encodeFloatToRGBA(v) {
17
- var enc = new Vec4(1.0 * v % 1, 255.0 * v % 1, 65025.0 * v % 1, 160581375.0 * v % 1);
17
+ var enc = new Vec4((1.0 * v) % 1, (255.0 * v) % 1, (65025.0 * v) % 1, (160581375.0 * v) % 1);
18
18
  var yzww = new Vec4(enc.y / 255, enc.z / 255, enc.w / 255, 0);
19
19
  return enc.subA(yzww);
20
- };
20
+ }
21
21
 
22
22
  /**
23
23
  * Decode RGBA vector to 32 bit float value.
24
24
  * @function
25
- * @param {og.Vec4} rgba - RGBA encoded 32 bit float value.
25
+ * @param {Vec4} rgba - RGBA encoded 32 bit float value.
26
26
  * @returns {number} - Float value.
27
27
  */
28
28
  export function decodeFloatFromRGBA(rgba) {
29
29
  var s = 1.0 - math.step(128.0, rgba.x) * 2.0;
30
30
  var e = 2.0 * math.mod(rgba.x, 128.0) + math.step(128.0, rgba.y) - 127.0;
31
- var m = math.mod(rgba.y, 128.0) * 65536.0 + rgba.z * 256.0 + rgba.w + 8388608.00;
31
+ var m = math.mod(rgba.y, 128.0) * 65536.0 + rgba.z * 256.0 + rgba.w + 8388608.0;
32
32
  return s * math.exp2(e) * (m * 1.1920928955078125e-7);
33
- };
33
+ }
34
34
 
35
35
  /**
36
36
  * Decode RGBA vector to 32 bit float value.
37
37
  * @function
38
- * @param {og.Vec4} rgba - RGBA encoded 32 bit float value.
38
+ * @param {Vec4} rgba - RGBA encoded 32 bit float value.
39
39
  * @returns {number} - Float value.
40
40
  */
41
41
  export function decodeFloatFromRGBAArr(arr, use32) {
42
42
  var s = 1.0 - math.step(128.0, arr[0]) * 2.0;
43
43
  var e = 2.0 * math.mod(arr[0], 128.0) + math.step(128.0, arr[1]) - 127.0;
44
- var m = math.mod(arr[1], 128.0) * 65536.0 + arr[2] * 256.0 + (use32 ? arr[3] : 0.0) + 8388608.00;
44
+ var m = math.mod(arr[1], 128.0) * 65536.0 + arr[2] * 256.0 + (use32 ? arr[3] : 0.0) + 8388608.0;
45
45
  return s * math.exp2(e) * (m * 1.1920928955078125e-7);
46
- };
46
+ }
47
47
 
48
48
  /**
49
49
  * Separate 64 bit value to two 32 bit float values.
50
50
  * @function
51
51
  * @param {number} value - Double type value.
52
- * @returns {Array.<number,number>} Encoded array.
52
+ * @returns {Array.<number>} Encoded array. (exactly 2 entries)
53
53
  */
54
54
  export function doubleToTwoFloats(value) {
55
55
  var high, low;
@@ -63,13 +63,13 @@ export function doubleToTwoFloats(value) {
63
63
  low = Math.fround(value + doubleHigh);
64
64
  }
65
65
  return new Float32Array([high, low]);
66
- };
66
+ }
67
67
 
68
68
  /**
69
69
  * Separate 64 bit value to two 32 bit float values.
70
70
  * @function
71
71
  * @param {number} value - Double type value.
72
- * @returns {Array.<number,number>} Encoded array.
72
+ * @returns {Array.<number>} Encoded array. (exactly 2 entries)
73
73
  */
74
74
  export function doubleToTwoFloats2(value, highLowArr) {
75
75
  if (value >= 0.0) {
@@ -82,13 +82,13 @@ export function doubleToTwoFloats2(value, highLowArr) {
82
82
  highLowArr[1] = Math.fround(value + doubleHigh);
83
83
  }
84
84
  return highLowArr;
85
- };
85
+ }
86
86
 
87
87
  /**
88
88
  * Separate 64 bit value to two 32 bit float values.
89
89
  * @function
90
90
  * @param {number} value - Double type value.
91
- * @returns {Array.<number,number>} Encoded array.
91
+ * @returns {Array.<number>} Encoded array. (exactly 2 entries)
92
92
  */
93
93
  export function doubleToTwoFloatsV2(value, highLowVec) {
94
94
  if (value >= 0.0) {
@@ -101,4 +101,4 @@ export function doubleToTwoFloatsV2(value, highLowVec) {
101
101
  highLowVec.y = Math.fround(value + doubleHigh);
102
102
  }
103
103
  return highLowVec;
104
- };
104
+ }
package/src/og/math.js CHANGED
@@ -77,7 +77,7 @@ export const EPSILON20 = 1e-20;
77
77
  * @param {number} base - Base value.
78
78
  * @returns {number} -
79
79
  * @example
80
- * og.math.log(64, 2)
80
+ * log(64, 2)
81
81
  * //returns 6
82
82
  */
83
83
  export function log(n, base) {
@@ -92,7 +92,7 @@ export function log(n, base) {
92
92
  * @param {number} max - Maximal edge.
93
93
  * @returns {number} -
94
94
  * @example
95
- * og.math.clamp(12, 1, 5)
95
+ * clamp(12, 1, 5)
96
96
  * //returns 5
97
97
  */
98
98
  export function clamp(number, min, max) {
@@ -200,9 +200,9 @@ export function mod(m, n) {
200
200
  * @returns {number} -
201
201
  */
202
202
  export function zeroTwoPI(a) {
203
- var mod = og.math.mod(a, og.math.TWO_PI);
204
- if (Math.abs(mod) < og.math.EPSILON14 && Math.abs(a) > og.math.EPSILON14) {
205
- return og.math.TWO_PI;
203
+ var mod = mod(a, TWO_PI);
204
+ if (Math.abs(mod) < EPSILON14 && Math.abs(a) > EPSILON14) {
205
+ return TWO_PI;
206
206
  }
207
207
  return mod;
208
208
  }
@@ -235,7 +235,7 @@ export function frac(x) {
235
235
  * @returns {number} -
236
236
  */
237
237
  export function log2(x) {
238
- return Math.log(x) / og.math.LOG2;
238
+ return Math.log(x) / LOG2;
239
239
  }
240
240
 
241
241
  /**
@@ -299,11 +299,11 @@ export function bezier1v(t, p0, p1, p2, p3) {
299
299
  * Performs a 3D bezier interpolation.
300
300
  * @function
301
301
  * @param {number} t - Interpolation value.
302
- * @param {og.Vec3} p0 - First control point.
303
- * @param {og.Vec3} p1 - Second control point.
304
- * @param {og.Vec3} p2 - Third control point.
305
- * @param {og.Vec3} p3 - Fourth control point.
306
- * @returns {og.Vec3} -
302
+ * @param {Vec3} p0 - First control point.
303
+ * @param {Vec3} p1 - Second control point.
304
+ * @param {Vec3} p2 - Third control point.
305
+ * @param {Vec3} p3 - Fourth control point.
306
+ * @returns {Vec3} -
307
307
  */
308
308
  export function bezier3v(t, p0, p1, p2, p3) {
309
309
  var u = 1 - t;
@@ -346,7 +346,7 @@ export function norm_lon(lon) {
346
346
  * @returns {number} -
347
347
  */
348
348
  export function negativePItoPI(a) {
349
- return og.math.zeroTwoPI(a + Math.PI) - Math.PI;
349
+ return zeroTwoPI(a + Math.PI) - Math.PI;
350
350
  }
351
351
 
352
352
  /**
@@ -48,7 +48,7 @@ export const ONE_BY_POLE_DOUBLE = 1.0 / POLE_DOUBLE;
48
48
 
49
49
  export function forward(lonLat) {
50
50
  return new LonLat(lonLat.lon * POLE / 180.0, Math.log(Math.tan((90.0 + lonLat.lat) * PI_BY_360)) * POLE_BY_PI, lonLat.height);
51
- };
51
+ }
52
52
 
53
53
  /**
54
54
  * Converts degrees longitude to mercator coordinate.
@@ -58,7 +58,7 @@ export function forward(lonLat) {
58
58
  */
59
59
  export function forward_lon(lon) {
60
60
  return lon * POLE / 180.0;
61
- };
61
+ }
62
62
 
63
63
  /**
64
64
  * Converts degrees latitude to mercator coordinate.
@@ -68,7 +68,7 @@ export function forward_lon(lon) {
68
68
  */
69
69
  export function forward_lat(lat) {
70
70
  return Math.log(Math.tan((90.0 + lat) * PI_BY_360)) * POLE_BY_PI;
71
- };
71
+ }
72
72
 
73
73
  /**
74
74
  * Converts mercator longitude to degrees coordinate.
@@ -78,7 +78,7 @@ export function forward_lat(lat) {
78
78
  */
79
79
  export function inverse_lon(lon) {
80
80
  return 180 * lon / POLE;
81
- };
81
+ }
82
82
 
83
83
  /**
84
84
  * Converts mercator latitude to degrees coordinate.
@@ -88,7 +88,7 @@ export function inverse_lon(lon) {
88
88
  */
89
89
  export function inverse_lat(lat) {
90
90
  return INV_PI_BY_180 * (2.0 * Math.atan(Math.exp(lat * PI_BY_POLE)) - HALF_PI);
91
- };
91
+ }
92
92
 
93
93
  /**
94
94
  * Returns mercator map tile grid horizontal coordinate index by geodetic
@@ -100,7 +100,7 @@ export function inverse_lat(lat) {
100
100
  */
101
101
  export function getTileX(lon, zoom) {
102
102
  return Math.floor((lon + 180) / 360.0 * Math.pow(2, zoom));
103
- };
103
+ }
104
104
 
105
105
  /**
106
106
  * Returns mercator map tile grid vertical coordinate index by geodetic
@@ -112,13 +112,13 @@ export function getTileX(lon, zoom) {
112
112
  */
113
113
  export function getTileY(lat, zoom) {
114
114
  return Math.floor((1.0 - Math.log(Math.tan(lat * PI_BY_180) + 1.0 / Math.cos(lat * PI_BY_180)) / Math.PI) * 0.5 * Math.pow(2, zoom));
115
- };
115
+ }
116
116
 
117
117
  /**
118
118
  * Converts geodetic coordinate array to mercator coordinate array.
119
119
  * @function
120
- * @param {Array.<og.LonLat>} lonLatArr - LonLat array to convert.
121
- * @returns {Array.<og.LonLat>}
120
+ * @param {Array.<LonLat>} lonLatArr - LonLat array to convert.
121
+ * @returns {Array.<LonLat>}
122
122
  */
123
123
  export function forwardArray(lonlatArr) {
124
124
  var res = [];
@@ -126,13 +126,13 @@ export function forwardArray(lonlatArr) {
126
126
  res.push(lonlatArr[i].forwardMercator());
127
127
  }
128
128
  return res;
129
- };
129
+ }
130
130
 
131
131
  export function getTileExtent(x, y, z) {
132
132
  let size = POLE2 / Math.pow(2, z),
133
133
  sw = new LonLat(-POLE + x * size, POLE - y * size - size);
134
134
  return new Extent(sw, new LonLat(sw.lon + size, sw.lat + size));
135
- };
135
+ }
136
136
 
137
137
  /**
138
138
  * Max mercator latitude.
@@ -2,12 +2,12 @@
2
2
  * @module og/proj/EPSG3857
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
- import { Units, Proj } from './Proj.js';
7
+ import { Units, Proj } from "./Proj.js";
8
8
 
9
9
  /**
10
10
  * EPSG:3857 projection object.
11
- * @type {og.Proj}
11
+ * @type {Proj}
12
12
  */
13
- export const EPSG3857 = new Proj({ code: "epsg:3857", units: Units.METERS });
13
+ export const EPSG3857 = new Proj({ code: "epsg:3857", units: Units.METERS });
@@ -2,12 +2,12 @@
2
2
  * @module og/proj/EPSG4326
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
- import { Units, Proj } from './Proj.js';
7
+ import { Units, Proj } from "./Proj.js";
8
8
 
9
9
  /**
10
10
  * EPSG:4326 projection object.
11
- * @type {og.Proj}
11
+ * @type {Proj}
12
12
  */
13
- export const EPSG4326 = new Proj({ code: "epsg:4326", units: Units.DEGREES });
13
+ export const EPSG4326 = new Proj({ code: "epsg:4326", units: Units.DEGREES });
@@ -2,7 +2,7 @@
2
2
  * @module og/proj/Proj
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
7
  /**
8
8
  * Projection units: 'degrees', 'ft', 'm' or 'km'.
@@ -26,38 +26,38 @@ METERS_PER_UNIT[Units.FEET] = 0.3048;
26
26
  METERS_PER_UNIT[Units.METERS] = 1;
27
27
  METERS_PER_UNIT[Units.KILOMETERS] = 1000;
28
28
 
29
- const Proj = function (options) {
29
+ let _counter = 0;
30
+ class Proj {
31
+ constructor(options) {
32
+ /**
33
+ * @public
34
+ * @type {string}
35
+ */
36
+ this.code = options.code;
37
+
38
+ /**
39
+ * @public
40
+ * @type {proj.Units}
41
+ */
42
+ this.units = /** @type {Units} */ (options.units);
43
+
44
+ /**
45
+ * Projection identifier, especially usefull for comparison.
46
+ * @const
47
+ * @type {integer}
48
+ */
49
+ this.id = _counter++;
50
+ }
30
51
 
31
52
  /**
53
+ * Compare projections.
32
54
  * @public
33
- * @type {string}
55
+ * @param {Proj} proj - Projetion object.
56
+ * @returns {boolean}
34
57
  */
35
- this.code = options.code;
58
+ equal(proj) {
59
+ return proj.id === this.id;
60
+ }
61
+ }
36
62
 
37
- /**
38
- * @public
39
- * @type {og.proj.Units}
40
- */
41
- this.units = /** @type {Units} */ (options.units);
42
-
43
- /**
44
- * Projection identifier, especially usefull for comparison.
45
- * @const
46
- * @type {integer}
47
- */
48
- this.id = Proj._counter++;
49
- };
50
-
51
- /**
52
- * Compare projections.
53
- * @public
54
- * @param {og.Proj} proj - Projetion object.
55
- * @returns {boolean}
56
- */
57
- Proj.prototype.equal = function (proj) {
58
- return proj.id === this.id;
59
- };
60
-
61
- Proj._counter = 0;
62
-
63
- export { Proj };
63
+ export { Proj };