@pirireis/webglobeplugins 0.9.6 → 0.9.8

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 (304) hide show
  1. package/{Math → dist/Math}/angle-calculation.js +15 -14
  2. package/dist/Math/arc.js +65 -0
  3. package/{Math → dist/Math}/bounds/line-bbox.js +188 -225
  4. package/dist/Math/constants.js +9 -0
  5. package/{Math/frustum/camera.ts → dist/Math/frustum/camera.js} +24 -32
  6. package/{Math/frustum/from-globeinfo.ts → dist/Math/frustum/from-globeinfo.js} +48 -63
  7. package/dist/Math/frustum/types.js +2 -0
  8. package/{Math/globe-util/horizon-plane.ts → dist/Math/globe-util/horizon-plane.js} +112 -137
  9. package/dist/Math/index.js +1 -0
  10. package/dist/Math/juction/arc-plane.js +83 -0
  11. package/dist/Math/juction/line-sphere.js +25 -0
  12. package/{Math/juction/plane-plane.ts → dist/Math/juction/plane-plane.js} +58 -66
  13. package/dist/Math/line.js +56 -0
  14. package/dist/Math/matrix4.js +1 -0
  15. package/{Math → dist/Math}/methods.js +201 -237
  16. package/dist/Math/plane.js +60 -0
  17. package/{Math/quaternion.ts → dist/Math/quaternion.js} +104 -120
  18. package/dist/Math/types.js +2 -0
  19. package/dist/Math/utils.js +4 -0
  20. package/{Math/vec3.ts → dist/Math/vec3.js} +126 -155
  21. package/dist/algorithms/search-binary.js +19 -0
  22. package/dist/altitude-locator/adaptors.js +1 -0
  23. package/{altitude-locator → dist/altitude-locator}/draw-subset-obj.js +18 -27
  24. package/dist/altitude-locator/keymethod.js +1 -0
  25. package/{altitude-locator → dist/altitude-locator}/plugin.js +341 -439
  26. package/{altitude-locator → dist/altitude-locator}/types.js +23 -26
  27. package/{arrowfield → dist/arrowfield}/adaptor.js +14 -11
  28. package/dist/arrowfield/index.js +10 -0
  29. package/{arrowfield → dist/arrowfield}/plugin.js +86 -128
  30. package/dist/bearing-line/index.js +8 -0
  31. package/{bearing-line → dist/bearing-line}/plugin.js +449 -512
  32. package/{circle-line-chain → dist/circle-line-chain}/chain-list-map.js +205 -221
  33. package/dist/circle-line-chain/init.js +1 -0
  34. package/{circle-line-chain → dist/circle-line-chain}/plugin.js +424 -469
  35. package/dist/circle-line-chain/util.js +5 -0
  36. package/{compass-rose → dist/compass-rose}/compass-rose-padding-flat.js +225 -266
  37. package/{compass-rose → dist/compass-rose}/compass-text-writer.js +153 -173
  38. package/dist/compass-rose/index.js +7 -0
  39. package/{compassrose → dist/compassrose}/compassrose.js +296 -341
  40. package/dist/compassrose/index.js +8 -0
  41. package/dist/globe-types.js +1 -0
  42. package/dist/heatwave/index.js +10 -0
  43. package/{heatwave → dist/heatwave}/isobar/objectarraylabels.js +202 -247
  44. package/{heatwave → dist/heatwave}/isobar/plugin.js +343 -340
  45. package/{heatwave → dist/heatwave}/isobar/quadtreecontours.js +300 -336
  46. package/{heatwave → dist/heatwave}/plugins/heatwaveglobeshell.js +206 -258
  47. package/dist/index.js +58 -0
  48. package/{jest.config.js → dist/jest.config.js} +7 -6
  49. package/{partialrings → dist/partialrings}/buffer-manager.js +81 -89
  50. package/dist/partialrings/index.js +41 -0
  51. package/{partialrings → dist/partialrings}/plugin.js +135 -160
  52. package/{partialrings → dist/partialrings}/program.js +204 -242
  53. package/{pin → dist/pin}/pin-object-array.js +305 -381
  54. package/{pin → dist/pin}/pin-point-totem.js +60 -77
  55. package/{point-heat-map → dist/point-heat-map}/adaptors/timetracksplugin-format-to-this.js +66 -78
  56. package/dist/point-heat-map/index.js +1 -0
  57. package/{point-heat-map → dist/point-heat-map}/plugin-webworker.js +126 -151
  58. package/{point-heat-map → dist/point-heat-map}/point-to-heat-map-flow.js +127 -150
  59. package/dist/point-tracks/key-methods.js +5 -0
  60. package/{point-tracks → dist/point-tracks}/plugin.js +338 -394
  61. package/dist/programs/arrowfield/index.js +7 -0
  62. package/{programs → dist/programs}/arrowfield/logic.js +144 -173
  63. package/{programs → dist/programs}/arrowfield/object.js +66 -89
  64. package/{programs → dist/programs}/data2legend/density-to-legend.js +76 -90
  65. package/{programs → dist/programs}/data2legend/point-to-density-texture.js +76 -90
  66. package/dist/programs/float2legendwithratio/index.js +8 -0
  67. package/{programs → dist/programs}/float2legendwithratio/logic.js +122 -145
  68. package/{programs → dist/programs}/float2legendwithratio/object.js +110 -141
  69. package/{programs → dist/programs}/globe-util/is-globe-moved.js +21 -27
  70. package/dist/programs/globeshell/index.js +8 -0
  71. package/dist/programs/globeshell/noise/noises.js +1 -0
  72. package/dist/programs/globeshell/wiggle/index.js +8 -0
  73. package/{programs → dist/programs}/globeshell/wiggle/logic.js +246 -272
  74. package/{programs → dist/programs}/globeshell/wiggle/object.js +72 -93
  75. package/dist/programs/helpers/blender/index.js +1 -0
  76. package/{programs → dist/programs}/helpers/blender/program.js +61 -73
  77. package/dist/programs/helpers/fadeaway/index.js +7 -0
  78. package/{programs → dist/programs}/helpers/fadeaway/logic.js +49 -53
  79. package/dist/programs/helpers/fadeaway/object.js +20 -0
  80. package/dist/programs/helpers/index.js +8 -0
  81. package/dist/programs/index.js +58 -0
  82. package/dist/programs/interface.js +1 -0
  83. package/{programs → dist/programs}/line-on-globe/angled-line.js +125 -155
  84. package/{programs → dist/programs}/line-on-globe/circle-accurate-3d.js +95 -121
  85. package/{programs → dist/programs}/line-on-globe/circle-accurate-flat.js +158 -204
  86. package/{programs → dist/programs}/line-on-globe/circle-accurate.js +117 -141
  87. package/{programs → dist/programs}/line-on-globe/circle.js +111 -135
  88. package/{programs → dist/programs}/line-on-globe/degree-padding-around-circle-3d.js +111 -140
  89. package/dist/programs/line-on-globe/index.js +1 -0
  90. package/{programs → dist/programs}/line-on-globe/lines-color-instanced-flat.js +91 -106
  91. package/{programs/line-on-globe/linestrip.ts → dist/programs/line-on-globe/linestrip.js} +108 -165
  92. package/{programs → dist/programs}/line-on-globe/naive-accurate-flexible.js +127 -171
  93. package/{programs → dist/programs}/line-on-globe/to-the-surface.js +83 -101
  94. package/dist/programs/line-on-globe/util.js +8 -0
  95. package/{programs → dist/programs}/picking/pickable-renderer.js +107 -135
  96. package/{programs → dist/programs}/point-on-globe/element-globe-surface-glow.js +101 -127
  97. package/{programs → dist/programs}/point-on-globe/element-point-glow.js +88 -119
  98. package/{programs → dist/programs}/point-on-globe/square-pixel-point.js +126 -141
  99. package/{programs/programcache.ts → dist/programs/programcache.js} +131 -131
  100. package/{programs → dist/programs}/rings/distancering/circleflatprogram.js +115 -95
  101. package/{programs → dist/programs}/rings/distancering/circlepaddingfreeangleprogram.js +320 -329
  102. package/{programs → dist/programs}/rings/distancering/circlepaddysharedbuffer.js +357 -420
  103. package/dist/programs/rings/distancering/index.js +14 -0
  104. package/{programs → dist/programs}/rings/distancering/paddyflatprogram.js +120 -94
  105. package/{programs → dist/programs}/rings/distancering/paddyflatprogram2d.js +122 -98
  106. package/{programs → dist/programs}/rings/distancering/paddyflatprogram3d.js +120 -94
  107. package/dist/programs/rings/distancering/shader.js +1 -0
  108. package/dist/programs/rings/index.js +17 -0
  109. package/{programs → dist/programs}/rings/partial-ring/piece-of-pie.js +181 -221
  110. package/{programs → dist/programs}/totems/camerauniformblock.js +147 -184
  111. package/{programs → dist/programs}/totems/canvas-webglobe-info.js +102 -128
  112. package/{programs → dist/programs}/totems/gpu-selection-uniform-block.js +104 -128
  113. package/dist/programs/totems/index.js +40 -0
  114. package/dist/programs/two-d/pixel-circle.js +1 -0
  115. package/{programs → dist/programs}/two-d/pixel-padding-for-compass.js +101 -113
  116. package/{programs → dist/programs}/util.js +17 -20
  117. package/dist/programs/vectorfields/index.js +23 -0
  118. package/{programs → dist/programs}/vectorfields/logics/drawrectangleparticles.js +65 -83
  119. package/dist/programs/vectorfields/logics/index.js +12 -0
  120. package/{programs → dist/programs}/vectorfields/logics/pixelbased.js +84 -103
  121. package/{programs → dist/programs}/vectorfields/logics/ubo.js +55 -56
  122. package/{programs → dist/programs}/vectorfields/pingpongbuffermanager.js +76 -80
  123. package/dist/rangerings/enum.js +5 -0
  124. package/dist/rangerings/index.js +15 -0
  125. package/{rangerings → dist/rangerings}/plugin.js +560 -649
  126. package/{rangerings → dist/rangerings}/rangeringangletext.js +329 -368
  127. package/{rangerings → dist/rangerings}/ring-account.js +117 -129
  128. package/{shaders → dist/shaders}/fragment-toy/firework.js +5 -2
  129. package/{shaders → dist/shaders}/fragment-toy/singularity.js +5 -5
  130. package/{shape-on-terrain/arc/naive/plugin.ts → dist/shape-on-terrain/arc/naive/plugin.js} +252 -304
  131. package/{timetracks → dist/timetracks}/adaptors-line-strip.js +71 -80
  132. package/{timetracks → dist/timetracks}/adaptors.js +122 -133
  133. package/dist/timetracks/index.js +19 -0
  134. package/{timetracks → dist/timetracks}/plugin-line-strip.js +250 -295
  135. package/{timetracks → dist/timetracks}/plugin.js +258 -304
  136. package/{timetracks → dist/timetracks}/program-line-strip.js +416 -493
  137. package/{timetracks → dist/timetracks}/program.js +464 -542
  138. package/{timetracks → dist/timetracks}/programpoint-line-strip.js +101 -122
  139. package/{timetracks → dist/timetracks}/programpoint.js +101 -122
  140. package/{types.ts → dist/types.js} +15 -17
  141. package/{util → dist/util}/account/bufferoffsetmanager.js +179 -209
  142. package/dist/util/account/index.js +23 -0
  143. package/{util/account/single-attribute-buffer-management/buffer-manager.ts → dist/util/account/single-attribute-buffer-management/buffer-manager.js} +108 -119
  144. package/{util/account/single-attribute-buffer-management/buffer-orchestrator.ts → dist/util/account/single-attribute-buffer-management/buffer-orchestrator.js} +150 -173
  145. package/dist/util/account/single-attribute-buffer-management/index.js +9 -0
  146. package/{util/account/single-attribute-buffer-management/object-store.ts → dist/util/account/single-attribute-buffer-management/object-store.js} +51 -65
  147. package/dist/util/account/single-attribute-buffer-management/types.js +2 -0
  148. package/{util → dist/util}/account/util.js +22 -22
  149. package/dist/util/algorithms/index.js +1 -0
  150. package/{util → dist/util}/algorithms/search-binary.js +28 -26
  151. package/dist/util/check/get.js +18 -0
  152. package/dist/util/check/index.js +1 -0
  153. package/dist/util/check/typecheck.js +49 -0
  154. package/{util → dist/util}/geometry/index.js +51 -53
  155. package/{util/gl-util/buffer/attribute-loader.ts → dist/util/gl-util/buffer/attribute-loader.js} +69 -85
  156. package/dist/util/gl-util/buffer/index.js +6 -0
  157. package/dist/util/gl-util/buffer/types.js +1 -0
  158. package/dist/util/gl-util/draw-options/methods.js +38 -0
  159. package/dist/util/gl-util/draw-options/types.js +15 -0
  160. package/{util/gl-util/uniform-block/manager.ts → dist/util/gl-util/uniform-block/manager.js} +156 -187
  161. package/dist/util/gl-util/uniform-block/shader.js +1 -0
  162. package/dist/util/gl-util/uniform-block/types.js +8 -0
  163. package/{util → dist/util}/heatwavedatamanager/datamanager.js +152 -168
  164. package/dist/util/heatwavedatamanager/index.js +10 -0
  165. package/{util → dist/util}/heatwavedatamanager/pointcoordinatesdatacalculator.js +122 -133
  166. package/{util → dist/util}/heatwavedatamanager/pointcoordsmeta.js +20 -22
  167. package/dist/util/index.js +57 -0
  168. package/dist/util/interpolation/index.js +1 -0
  169. package/dist/util/interpolation/timetrack/index.js +5 -0
  170. package/{util → dist/util}/interpolation/timetrack/timetrack-interpolator.js +79 -88
  171. package/{util → dist/util}/interpolation/timetrack/web-worker-str.js +5 -2
  172. package/{util → dist/util}/interpolation/timetrack/web-worker.js +48 -51
  173. package/{util → dist/util}/jshelpers/data-filler.js +20 -19
  174. package/{util → dist/util}/jshelpers/equality.js +20 -17
  175. package/dist/util/jshelpers/index.js +37 -0
  176. package/{util → dist/util}/jshelpers/timefilters.js +32 -32
  177. package/{util → dist/util}/picking/fence.js +46 -46
  178. package/{util → dist/util}/picking/picker-displayer.js +139 -177
  179. package/{util → dist/util}/programs/draw-texture-on-canvas.js +69 -82
  180. package/dist/util/programs/index.js +17 -0
  181. package/{util → dist/util}/programs/shapesonglobe.js +174 -206
  182. package/{util → dist/util}/programs/supersampletotextures.js +103 -132
  183. package/{util → dist/util}/programs/texturetoglobe.js +133 -154
  184. package/{util/shaderfunctions/geometrytransformations.ts → dist/util/shaderfunctions/geometrytransformations.js} +68 -116
  185. package/dist/util/shaderfunctions/index.js +18 -0
  186. package/{util → dist/util}/shaderfunctions/nodata.js +5 -4
  187. package/{util → dist/util}/shaderfunctions/noisefunctions.js +9 -10
  188. package/{util/surface-line-data/arc-bboxes.ts → dist/util/surface-line-data/arc-bboxes.js} +25 -42
  189. package/{util → dist/util}/surface-line-data/arcs-to-cuts.js +50 -74
  190. package/dist/util/surface-line-data/cut-arc.js +1 -0
  191. package/{util/surface-line-data/flow.ts → dist/util/surface-line-data/flow.js} +28 -52
  192. package/dist/util/surface-line-data/rbush-manager.js +1 -0
  193. package/dist/util/surface-line-data/types.js +1 -0
  194. package/dist/util/surface-line-data/web-worker.js +1 -0
  195. package/dist/util/webglobe/gldefaultstates.js +7 -0
  196. package/dist/util/webglobe/index.js +18 -0
  197. package/{util → dist/util}/webglobe/rasteroverlay.js +78 -96
  198. package/{util/webglobjectbuilders.ts → dist/util/webglobjectbuilders.js} +388 -456
  199. package/{util → dist/util}/webglobjectbuilders1.js +237 -271
  200. package/{waveparticles → dist/waveparticles}/adaptor.js +17 -16
  201. package/dist/waveparticles/index.js +10 -0
  202. package/{waveparticles → dist/waveparticles}/plugin.js +266 -313
  203. package/{wind → dist/wind}/imagetovectorfieldandmagnitude.js +35 -39
  204. package/dist/wind/index.js +14 -0
  205. package/{wind → dist/wind}/plugin.js +681 -812
  206. package/{wind → dist/wind}/vectorfieldimage.js +25 -27
  207. package/{write-text → dist/write-text}/attached-text-writer.js +91 -105
  208. package/{write-text → dist/write-text}/context-text.js +98 -125
  209. package/{write-text → dist/write-text}/context-text3.js +155 -178
  210. package/dist/write-text/index.js +5 -0
  211. package/{write-text → dist/write-text}/writer-plugin.js +8 -7
  212. package/package.json +5 -2
  213. package/Math/arc.ts +0 -76
  214. package/Math/constants.ts +0 -11
  215. package/Math/frustum/types.ts +0 -11
  216. package/Math/index.js +0 -0
  217. package/Math/juction/arc-plane.ts +0 -114
  218. package/Math/juction/line-sphere.ts +0 -30
  219. package/Math/line.ts +0 -70
  220. package/Math/matrix4.ts +0 -0
  221. package/Math/plane.ts +0 -86
  222. package/Math/roadmap.md +0 -10
  223. package/Math/types.ts +0 -45
  224. package/Math/utils.js +0 -3
  225. package/algorithms/search-binary.js +0 -14
  226. package/altitude-locator/adaptors.js +0 -0
  227. package/altitude-locator/keymethod.js +0 -0
  228. package/arrowfield/index.js +0 -3
  229. package/bearing-line/index.js +0 -2
  230. package/circle-line-chain/init.js +0 -0
  231. package/circle-line-chain/readme.md +0 -57
  232. package/circle-line-chain/util.js +0 -1
  233. package/compass-rose/index.js +0 -3
  234. package/compassrose/index.js +0 -2
  235. package/depth-locator/readme.md +0 -26
  236. package/globe-types.ts +0 -13
  237. package/heatwave/index.js +0 -4
  238. package/partialrings/goals.md +0 -17
  239. package/partialrings/index.js +0 -3
  240. package/point-heat-map/index.js +0 -0
  241. package/point-heat-map/readme.md +0 -15
  242. package/point-tracks/key-methods.js +0 -3
  243. package/programs/arrowfield/index.js +0 -2
  244. package/programs/float2legendwithratio/index.js +0 -3
  245. package/programs/globeshell/index.js +0 -2
  246. package/programs/globeshell/noise/noises.js +0 -0
  247. package/programs/globeshell/wiggle/index.js +0 -6
  248. package/programs/helpers/blender/index.js +0 -0
  249. package/programs/helpers/fadeaway/index.js +0 -3
  250. package/programs/helpers/fadeaway/object.js +0 -20
  251. package/programs/helpers/index.js +0 -2
  252. package/programs/index.js +0 -21
  253. package/programs/interface.ts +0 -7
  254. package/programs/line-on-globe/index.js +0 -0
  255. package/programs/line-on-globe/util.js +0 -8
  256. package/programs/rings/distancering/index.js +0 -5
  257. package/programs/rings/distancering/shader.js +0 -0
  258. package/programs/rings/index.js +0 -1
  259. package/programs/totems/camerauniformblock.d.ts +0 -48
  260. package/programs/totems/index.ts +0 -2
  261. package/programs/two-d/pixel-circle.js +0 -0
  262. package/programs/vectorfields/index.js +0 -3
  263. package/programs/vectorfields/logics/index.js +0 -5
  264. package/publish.bat +0 -60
  265. package/rangerings/enum.js +0 -3
  266. package/rangerings/index.js +0 -5
  267. package/shape-on-terrain/goal.md +0 -12
  268. package/tests/Math/junction/arc-plane.test.ts +0 -133
  269. package/tests/Math/junction/plane-plane.test.ts +0 -82
  270. package/tests/Math/plane.test.ts +0 -43
  271. package/tests/Math/vec3.test.ts +0 -14
  272. package/timetracks/index.js +0 -6
  273. package/timetracks/readme.md +0 -1
  274. package/tsconfig.json +0 -22
  275. package/util/account/index.js +0 -6
  276. package/util/account/single-attribute-buffer-management/index.ts +0 -13
  277. package/util/account/single-attribute-buffer-management/types.ts +0 -39
  278. package/util/algorithms/index.js +0 -0
  279. package/util/check/get.js +0 -13
  280. package/util/check/index.js +0 -0
  281. package/util/check/typecheck.js +0 -39
  282. package/util/gl-util/buffer/index.ts +0 -6
  283. package/util/gl-util/buffer/types.ts +0 -13
  284. package/util/gl-util/draw-options/methods.ts +0 -66
  285. package/util/gl-util/draw-options/types.ts +0 -28
  286. package/util/gl-util/uniform-block/roadmap.md +0 -70
  287. package/util/gl-util/uniform-block/shader.js +0 -0
  288. package/util/gl-util/uniform-block/types.ts +0 -27
  289. package/util/heatwavedatamanager/index.js +0 -3
  290. package/util/index.js +0 -13
  291. package/util/interpolation/index.js +0 -0
  292. package/util/interpolation/timetrack/index.js +0 -9
  293. package/util/jshelpers/index.js +0 -1
  294. package/util/programs/index.js +0 -1
  295. package/util/shaderfunctions/index.js +0 -2
  296. package/util/surface-line-data/cut-arc.js +0 -0
  297. package/util/surface-line-data/rbush-manager.js +0 -0
  298. package/util/surface-line-data/types.ts +0 -27
  299. package/util/surface-line-data/web-worker.js +0 -0
  300. package/util/webglobe/gldefaultstates.js +0 -5
  301. package/util/webglobe/index.js +0 -2
  302. package/waveparticles/index.js +0 -3
  303. package/wind/index.js +0 -5
  304. package/write-text/index.js +0 -1
@@ -1,42 +1,39 @@
1
- import { createProgram } from "../webglobjectbuilders";
2
- import { shaderfunctions } from "..";
3
- import { latLongBboxtoPixelXYBbox } from "..";
4
- /** TODO:
5
- * 3d icin calistir
6
- */
7
- //TODO: DELETE THIS FILE.
8
-
9
- class TextureToGlobeProgram {
10
- constructor(gl, globe) {
11
- this.globe = globe;
12
- this.gl = gl;
13
- this._is3D = true;
14
- this._programWrapper = this._createProgramWrapper();
15
- this._resizeHandler = this._resizeEventHandler.bind(this);
16
- window.addEventListener('resize',
17
- this._resizeHandler
18
- , true);
19
- }
20
-
21
- _initUniforms() {
22
-
23
- const { gl, _programWrapper } = this;
24
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
25
- gl.useProgram(_programWrapper.program);
26
- // set u_alpha
27
- gl.uniformMatrix3fv(_programWrapper.u_bbox_matrix, false, new Float32Array([
28
- 1, 0, 0,
29
- 0, 1, 0,
30
- 0, 0, 1]));
31
- gl.uniform1f(_programWrapper.u_alpha, 1.0);
32
- gl.uniform1f(_programWrapper.u_is3D, 1.0);
33
- gl.uniform1f(_programWrapper.height, 0.0);
34
- gl.useProgram(currentProgram);
35
-
36
- }
37
-
38
- _createProgramWrapper() {
39
- const gl = this.gl;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextureToGlobeProgram = void 0;
4
+ const webglobjectbuilders_1 = require("../webglobjectbuilders");
5
+ const __1 = require("..");
6
+ const __2 = require("..");
7
+ /** TODO:
8
+ * 3d icin calistir
9
+ */
10
+ //TODO: DELETE THIS FILE.
11
+ class TextureToGlobeProgram {
12
+ constructor(gl, globe) {
13
+ this.globe = globe;
14
+ this.gl = gl;
15
+ this._is3D = true;
16
+ this._programWrapper = this._createProgramWrapper();
17
+ this._resizeHandler = this._resizeEventHandler.bind(this);
18
+ window.addEventListener('resize', this._resizeHandler, true);
19
+ }
20
+ _initUniforms() {
21
+ const { gl, _programWrapper } = this;
22
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
23
+ gl.useProgram(_programWrapper.program);
24
+ // set u_alpha
25
+ gl.uniformMatrix3fv(_programWrapper.u_bbox_matrix, false, new Float32Array([
26
+ 1, 0, 0,
27
+ 0, 1, 0,
28
+ 0, 0, 1
29
+ ]));
30
+ gl.uniform1f(_programWrapper.u_alpha, 1.0);
31
+ gl.uniform1f(_programWrapper.u_is3D, 1.0);
32
+ gl.uniform1f(_programWrapper.height, 0.0);
33
+ gl.useProgram(currentProgram);
34
+ }
35
+ _createProgramWrapper() {
36
+ const gl = this.gl;
40
37
  const vertexSource = `#version 300 es
41
38
  precision highp float;
42
39
 
@@ -57,8 +54,8 @@ class TextureToGlobeProgram {
57
54
  out vec2 v_texcoord;
58
55
 
59
56
 
60
- ` + shaderfunctions.pixelXYToCartesian3DPoint + `
61
- ` + shaderfunctions.pixelXYToCartesian2DPoint + `
57
+ ` + __1.shaderfunctions.pixelXYToCartesian3DPoint + `
58
+ ` + __1.shaderfunctions.pixelXYToCartesian2DPoint + `
62
59
 
63
60
 
64
61
  void main() {
@@ -73,8 +70,7 @@ class TextureToGlobeProgram {
73
70
  gl_PointSize = 100.0;
74
71
  v_texcoord = a_position * 0.5 + 0.5; // need a check
75
72
  }
76
- `;
77
-
73
+ `;
78
74
  const fragmentSource = `#version 300 es
79
75
  precision highp float;
80
76
 
@@ -90,114 +86,97 @@ class TextureToGlobeProgram {
90
86
  // outColor.a *= u_alpha;
91
87
  outColor = vec4(1.0, 0.0, 0.0, 0.5);
92
88
  }
93
- `;
94
-
95
- const program = createProgram(gl, vertexSource, fragmentSource);
96
- const vao = gl.createVertexArray();
97
-
98
- const buffer = gl.createBuffer();
99
- gl.bindVertexArray(vao);
100
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
101
- gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
102
- 0, 0,
103
- 1, 0,
104
- 1, 1,
105
- 0, 1
106
- ]), gl.STATIC_DRAW);
107
- const a_position = - gl.getAttribLocation(program, 'a_position');
108
- gl.enableVertexAttribArray(a_position);
109
- gl.vertexAttribPointer(a_position, 2, gl.FLOAT, false, 0, 0);
110
- gl.bindVertexArray(null);
111
-
112
- return {
113
- program: program,
114
- vao: vao,
115
- u_model_view_matrix: gl.getUniformLocation(program, 'u_model_view_matrix'),
116
- u_proj_matrix: gl.getUniformLocation(program, 'u_proj_matrix'),
117
- u_transpos: gl.getUniformLocation(program, 'u_transpos'),
118
- u_mapWH: gl.getUniformLocation(program, 'u_mapWH'),
119
- u_scrWH: gl.getUniformLocation(program, 'u_scrWH'),
120
- u_texture: gl.getUniformLocation(program, 'u_texture'),
121
- u_bbox_matrix: gl.getUniformLocation(program, 'u_bbox_matrix'),
122
- u_is3D: gl.getUniformLocation(program, 'u_is3D'),
123
- };
124
- }
125
-
126
- draw(modelViewMatrix, projectionMatrix, transPos, texture) {
127
- // console.log('draw')
128
- const { gl, _programWrapper, _is3D } = this;
129
- gl.useProgram(_programWrapper.program);
130
- gl.bindVertexArray(_programWrapper.vao);
131
- gl.uniformMatrix4fv(_programWrapper.u_model_view_matrix, false, modelViewMatrix);
132
- gl.uniformMatrix4fv(_programWrapper.u_proj_matrix, false, projectionMatrix);
133
- gl.uniform3f(_programWrapper.u_transpos, transPos.x, transPos.y, transPos.z);
134
- gl.activeTexture(gl.TEXTURE0);
135
- gl.bindTexture(gl.TEXTURE_2D, texture);
136
- gl.uniform1i(_programWrapper.u_texture, 0);
137
- if (!_is3D) {
138
- const mapWH = this.globe.api_GetCurrentWorldWH();
139
- gl.uniform2f(_programWrapper.u_mapWH, mapWH.width, mapWH.height);
140
- }
141
-
142
- gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
143
- gl.drawArrays(gl.POINTS, 0, 4);
144
- }
145
-
146
- setBBox(minx, maxx, miny, maxy) {
147
- const { gl, _programWrapper } = this;
148
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
149
- gl.useProgram(_programWrapper.program);
150
- gl.uniformMatrix3fv(_programWrapper.u_bbox_matrix, false, new Float32Array([
151
- maxx - minx, 0, minx,
152
- 0, maxy - miny, miny,
153
- 0, 0, 1
154
- ]));
155
- gl.useProgram(currentProgram);
156
- }
157
-
158
- setLatLongBBox(minx, maxx, miny, maxy) {
159
- const bboxMatrix = latLongBboxtoPixelXYBbox(minx, miny, maxx, maxy);
160
- const { gl, _programWrapper } = this;
161
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
162
- gl.useProgram(_programWrapper.program);
163
- gl.uniformMatrix3fv(_programWrapper.u_bbox_matrix, false, bboxMatrix);
164
- gl.useProgram(currentProgram);
165
- }
166
-
167
-
168
- setScreenWH() {
169
- const { gl, _programWrapper, globe } = this;
170
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
171
- gl.useProgram(_programWrapper.program);
172
- gl.uniform2f(_programWrapper.u_scrWH, globe.api_ScrW(), globe.api_ScrH());
173
- gl.useProgram(currentProgram);
174
- }
175
-
176
-
177
- resize() {
178
- const { globe } = this;
179
- this.setScreenWH();
180
- }
181
-
182
- setGeometry() {
183
- const { gl, globe, _programWrapper } = this;
184
- this._is3D = globe.api_GetCurrentGeometry() === 0;
185
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
186
- gl.useProgram(_programWrapper.program);
187
- gl.uniform1f(_programWrapper.u_is3D, this._is3D ? 1.0 : 0.0);
188
- gl.useProgram(currentProgram);
189
- this.resize();
190
- }
191
-
192
- free() {
193
- window.removeEventListener('resize',
194
- this._resizeHandler, true);
195
- }
196
-
197
- _resizeEventHandler() {
198
- this.resize();
199
- }
200
-
201
- }
202
-
203
- export { TextureToGlobeProgram };
89
+ `;
90
+ const program = (0, webglobjectbuilders_1.createProgram)(gl, vertexSource, fragmentSource);
91
+ const vao = gl.createVertexArray();
92
+ const buffer = gl.createBuffer();
93
+ gl.bindVertexArray(vao);
94
+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
95
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
96
+ 0, 0,
97
+ 1, 0,
98
+ 1, 1,
99
+ 0, 1
100
+ ]), gl.STATIC_DRAW);
101
+ const a_position = -gl.getAttribLocation(program, 'a_position');
102
+ gl.enableVertexAttribArray(a_position);
103
+ gl.vertexAttribPointer(a_position, 2, gl.FLOAT, false, 0, 0);
104
+ gl.bindVertexArray(null);
105
+ return {
106
+ program: program,
107
+ vao: vao,
108
+ u_model_view_matrix: gl.getUniformLocation(program, 'u_model_view_matrix'),
109
+ u_proj_matrix: gl.getUniformLocation(program, 'u_proj_matrix'),
110
+ u_transpos: gl.getUniformLocation(program, 'u_transpos'),
111
+ u_mapWH: gl.getUniformLocation(program, 'u_mapWH'),
112
+ u_scrWH: gl.getUniformLocation(program, 'u_scrWH'),
113
+ u_texture: gl.getUniformLocation(program, 'u_texture'),
114
+ u_bbox_matrix: gl.getUniformLocation(program, 'u_bbox_matrix'),
115
+ u_is3D: gl.getUniformLocation(program, 'u_is3D'),
116
+ };
117
+ }
118
+ draw(modelViewMatrix, projectionMatrix, transPos, texture) {
119
+ // console.log('draw')
120
+ const { gl, _programWrapper, _is3D } = this;
121
+ gl.useProgram(_programWrapper.program);
122
+ gl.bindVertexArray(_programWrapper.vao);
123
+ gl.uniformMatrix4fv(_programWrapper.u_model_view_matrix, false, modelViewMatrix);
124
+ gl.uniformMatrix4fv(_programWrapper.u_proj_matrix, false, projectionMatrix);
125
+ gl.uniform3f(_programWrapper.u_transpos, transPos.x, transPos.y, transPos.z);
126
+ gl.activeTexture(gl.TEXTURE0);
127
+ gl.bindTexture(gl.TEXTURE_2D, texture);
128
+ gl.uniform1i(_programWrapper.u_texture, 0);
129
+ if (!_is3D) {
130
+ const mapWH = this.globe.api_GetCurrentWorldWH();
131
+ gl.uniform2f(_programWrapper.u_mapWH, mapWH.width, mapWH.height);
132
+ }
133
+ gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
134
+ gl.drawArrays(gl.POINTS, 0, 4);
135
+ }
136
+ setBBox(minx, maxx, miny, maxy) {
137
+ const { gl, _programWrapper } = this;
138
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
139
+ gl.useProgram(_programWrapper.program);
140
+ gl.uniformMatrix3fv(_programWrapper.u_bbox_matrix, false, new Float32Array([
141
+ maxx - minx, 0, minx,
142
+ 0, maxy - miny, miny,
143
+ 0, 0, 1
144
+ ]));
145
+ gl.useProgram(currentProgram);
146
+ }
147
+ setLatLongBBox(minx, maxx, miny, maxy) {
148
+ const bboxMatrix = (0, __2.latLongBboxtoPixelXYBbox)(minx, miny, maxx, maxy);
149
+ const { gl, _programWrapper } = this;
150
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
151
+ gl.useProgram(_programWrapper.program);
152
+ gl.uniformMatrix3fv(_programWrapper.u_bbox_matrix, false, bboxMatrix);
153
+ gl.useProgram(currentProgram);
154
+ }
155
+ setScreenWH() {
156
+ const { gl, _programWrapper, globe } = this;
157
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
158
+ gl.useProgram(_programWrapper.program);
159
+ gl.uniform2f(_programWrapper.u_scrWH, globe.api_ScrW(), globe.api_ScrH());
160
+ gl.useProgram(currentProgram);
161
+ }
162
+ resize() {
163
+ const { globe } = this;
164
+ this.setScreenWH();
165
+ }
166
+ setGeometry() {
167
+ const { gl, globe, _programWrapper } = this;
168
+ this._is3D = globe.api_GetCurrentGeometry() === 0;
169
+ const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
170
+ gl.useProgram(_programWrapper.program);
171
+ gl.uniform1f(_programWrapper.u_is3D, this._is3D ? 1.0 : 0.0);
172
+ gl.useProgram(currentProgram);
173
+ this.resize();
174
+ }
175
+ free() {
176
+ window.removeEventListener('resize', this._resizeHandler, true);
177
+ }
178
+ _resizeEventHandler() {
179
+ this.resize();
180
+ }
181
+ }
182
+ exports.TextureToGlobeProgram = TextureToGlobeProgram;
@@ -1,40 +1,35 @@
1
- // Z in kolometers
2
- //
3
-
4
-
5
-
6
- export const POLE = `
1
+ "use strict";
2
+ // Z in kolometers
3
+ //
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.circleOnSphere = exports.circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate = exports.circleLimpFromLongLatRadCenterMercatorCompass_accurate = exports.circleLimpFromLongLatRadCenterCartesian3D_accurate = exports.slerp = exports.realDistanceOnSphereR1 = exports.circleCircumferenceInterPolationOf2PointsRadian = exports.angleBetweenTwoPointsRadian = exports.cartesianToSpherical = exports.circleLimpFromLongLatRadCenterMercatorCompass = exports.circleLimpFromLongLatRadCenterMercatorRealDistancePadding = exports.circleLimpFromLongLatRadCenterMercatorRealDistance = exports.circleLimpFromLongLatRadCenterMercatorRealDistanceNew = exports.circleLimpFromLongLatRadCenterCartesian3D = exports.longLatRadToCartesian3DWithR = exports.longLatRadToCartesian3D = exports.longLatRadToMercator = exports.cartesian3DToGLPosition = exports.mercatorXYToGLPosition = exports.pixelXYToCartesian2DPoint = exports.pixelXYToCartesian3DPoint = exports.R_3D = exports.POLE_BY_PI = exports.PI = exports.R = exports.POLE = void 0;
6
+ exports.POLE = `
7
7
  #ifndef POLE
8
8
  #define POLE 20037508.34
9
9
  #endif
10
- `;
11
-
12
- export const R = `
10
+ `;
11
+ exports.R = `
13
12
  #ifndef R
14
13
  #define R 6378137.0
15
14
  #endif
16
- `;
17
-
18
- export const PI = `
15
+ `;
16
+ exports.PI = `
19
17
  #ifndef PI
20
18
  #define PI 3.141592653589793
21
19
 
22
20
  #endif
23
- `;
24
-
25
- export const POLE_BY_PI = `
21
+ `;
22
+ exports.POLE_BY_PI = `
26
23
  #ifndef POLE_BY_PI
27
24
  #define POLE_BY_PI 6378137.0
28
25
  #endif
29
- `;
30
-
31
- export const R_3D = `
26
+ `;
27
+ exports.R_3D = `
32
28
  #ifndef R_3D
33
29
  #define R_3D 6378.137
34
30
  #endif
35
- `;
36
-
37
- export const pixelXYToCartesian3DPoint = R_3D + PI + `
31
+ `;
32
+ exports.pixelXYToCartesian3DPoint = exports.R_3D + exports.PI + `
38
33
  vec3 pixelXYToCartesian3DPoint( vec3 position) {
39
34
  float longRad = PI * (2.0 * position.x - 1.0);
40
35
  float latRad = PI * position.y;
@@ -44,9 +39,8 @@ vec3 pixelXYToCartesian3DPoint( vec3 position) {
44
39
  float z = radius * cos(latRad);
45
40
  return vec3(x, y, z);
46
41
  }
47
- `;
48
-
49
- export const pixelXYToCartesian2DPoint = PI + POLE + POLE_BY_PI + `
42
+ `;
43
+ exports.pixelXYToCartesian2DPoint = exports.PI + exports.POLE + exports.POLE_BY_PI + `
50
44
  vec2 pixelXYToCartesian2DPoint( vec2 position, vec2 translate, vec2 mapWH, vec2 screenWH) {
51
45
  float x = (2.0 * position.x - 1.0) * POLE;
52
46
  x = ((x - translate.x) / mapWH.x) * screenWH.x;
@@ -54,56 +48,47 @@ vec2 pixelXYToCartesian2DPoint( vec2 position, vec2 translate, vec2 mapWH, vec2
54
48
  y = (1.0 - (y - translate.y) / mapWH.y) * screenWH.y;
55
49
  return vec2(x, y);
56
50
  }
57
- `;
58
-
59
- // TODO: rename it to mercatorXYToGLPosition
60
- export const mercatorXYToGLPosition = `
51
+ `;
52
+ // TODO: rename it to mercatorXYToGLPosition
53
+ exports.mercatorXYToGLPosition = `
61
54
  vec4 mercatorXYToGLPosition( vec2 position) { // projection, translate, mapWH, screenWH comes from camera uniform block
62
55
  float x = (( position.x - translate.x ) / mapWH.x) * screenWH.x;
63
56
  float y = (1.0 - (position.y - translate.y) / mapWH.y) * screenWH.y;
64
57
  return projection * vec4(x, y, 0.0, 1.0);
65
58
  }
66
- `;
67
-
68
- export const cartesian3DToGLPosition = `
59
+ `;
60
+ exports.cartesian3DToGLPosition = `
69
61
  vec4 cartesian3DToGLPosition( vec3 position) {
70
62
  return projection * view * vec4(position - translate, 1.0);
71
63
  }
72
- `
73
-
74
-
75
- // pi / pole = 2 / R
76
-
77
- export const longLatRadToMercator = R + PI + `
64
+ `;
65
+ // pi / pole = 2 / R
66
+ exports.longLatRadToMercator = exports.R + exports.PI + `
78
67
  vec2 longLatRadToMercator( vec2 longLatRad) {
79
68
  float x = R * longLatRad.x;
80
69
  float y = R * log( tan( PI / 4.0 + longLatRad.y / 2.0 ) );
81
70
  y -= mix(-60.0, 60.0, abs(longLatRad.y + PI / 8.0) / (PI / 4.0));
82
71
  return vec2(x, y);
83
72
  }
84
- `;
85
-
86
-
87
- export const longLatRadToCartesian3D = R_3D + `
73
+ `;
74
+ exports.longLatRadToCartesian3D = exports.R_3D + `
88
75
  vec3 longLatRadToCartesian3D( vec2 longLat) {
89
76
  float x = R_3D * cos(longLat.y) * cos(longLat.x);
90
77
  float y = R_3D * cos(longLat.y) * sin(longLat.x);
91
78
  float z = R_3D * sin(longLat.y);
92
79
  return vec3(x, y, z);
93
80
  }
94
- `;
95
-
96
- export const longLatRadToCartesian3DWithR = `
81
+ `;
82
+ exports.longLatRadToCartesian3DWithR = `
97
83
  vec3 longLatRadToCartesian3DWithR( vec2 longLat, float radius) {
98
84
  float x = radius * cos(longLat.y) * cos(longLat.x);
99
85
  float y = radius * cos(longLat.y) * sin(longLat.x);
100
86
  float z = radius * sin(longLat.y);
101
87
  return vec3(x, y, z);
102
88
  }
103
- `;
104
-
105
- // TODO: Make it precise. It doesnt use haversine formula. If this changes, change the formmula which calculates text position.
106
- export const circleLimpFromLongLatRadCenterCartesian3D = R + `
89
+ `;
90
+ // TODO: Make it precise. It doesnt use haversine formula. If this changes, change the formmula which calculates text position.
91
+ exports.circleLimpFromLongLatRadCenterCartesian3D = exports.R + `
107
92
  vec3 circleLimpFromLongLatRadCenterCartesian3D( vec2 center, float radius, float angle) {
108
93
  vec3 geoW = longLatRadToCartesian3D(center);
109
94
  vec3 normal = normalize(geoW);
@@ -116,13 +101,9 @@ vec3 circleLimpFromLongLatRadCenterCartesian3D( vec2 center, float radius, float
116
101
  float projected_radius = sin(radius_in_angle) * R / 1000.0;
117
102
  return (geoW * cos(radius_in_angle))+ tangent1 * projected_radius;
118
103
  }
119
- `;
120
-
121
-
122
-
123
- // TODO: Make it precise. Y axis is not correct.
124
-
125
- export const circleLimpFromLongLatRadCenterMercatorRealDistanceNew = PI + `
104
+ `;
105
+ // TODO: Make it precise. Y axis is not correct.
106
+ exports.circleLimpFromLongLatRadCenterMercatorRealDistanceNew = exports.PI + `
126
107
  vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radius, float angle) {
127
108
  float ang = angle + PI / 2.0; // Shift angle to align with +x axis
128
109
  float r = radius / R;
@@ -140,10 +121,8 @@ vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radiu
140
121
  R * longi,
141
122
  R * log(tan(PI / 4.0 + lat / 2.0))
142
123
  );
143
- }`;
144
-
145
-
146
- export const circleLimpFromLongLatRadCenterMercatorRealDistance = PI + `
124
+ }`;
125
+ exports.circleLimpFromLongLatRadCenterMercatorRealDistance = exports.PI + `
147
126
  vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radius, float angle){
148
127
  float ang = angle + PI / 2.0; // this is there because the other methods are implemented in, angle 0 is +x axis orientatation
149
128
  float r = radius / R;
@@ -152,10 +131,9 @@ vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radiu
152
131
  float longi = center.x + atan(sin(ang) * sin(r) * cos(center.y), cos(r) - sin(center.y) * sin_lat);
153
132
  return longLatRadToMercator(vec2(longi, lat));
154
133
  }
155
- `;
156
-
157
- // TODO: reconstruct this function
158
- export const circleLimpFromLongLatRadCenterMercatorRealDistancePadding = `
134
+ `;
135
+ // TODO: reconstruct this function
136
+ exports.circleLimpFromLongLatRadCenterMercatorRealDistancePadding = `
159
137
  vec2 circleLimpFromLongLatRadCenterMercatorRealDistancePadding(vec2 center, float radius, float angle){
160
138
  float radius_radian = radius / R;
161
139
  float new_angle;
@@ -180,53 +158,40 @@ vec2 circleLimpFromLongLatRadCenterMercatorRealDistancePadding(vec2 center, floa
180
158
  float y = center_.y - new_scale * radius * sin(new_angle);
181
159
  return vec2(x, y);
182
160
  }
183
- `
184
-
185
-
186
- export const circleLimpFromLongLatRadCenterMercatorCompass = `
161
+ `;
162
+ exports.circleLimpFromLongLatRadCenterMercatorCompass = `
187
163
  vec2 circleLimpFromLongLatRadCenterMercatorCompass(vec2 center, float radius, float angle){
188
164
  vec2 center_ = longLatRadToMercator(center);
189
165
  float y = -sin(angle) * radius + center_.y;
190
166
  float x = cos(angle) * radius + center_.x;
191
167
  return vec2(x, y);
192
- } `;
193
-
194
-
195
- // Function to convert Cartesian coordinates back to spherical (latitude, longitude)
196
- export const cartesianToSpherical = `
168
+ } `;
169
+ // Function to convert Cartesian coordinates back to spherical (latitude, longitude)
170
+ exports.cartesianToSpherical = `
197
171
  vec2 cartesianToSpherical(vec3 point) {
198
172
  float lat = degrees(asin(point.z)); // Latitude
199
173
  float lon = degrees(atan(point.y, point.x)); // Longitude
200
174
 
201
175
  return vec2(lat, lon);
202
- } `;
203
-
204
- // Main function to calculate an intermediate point
205
-
206
-
207
-
208
- export const angleBetweenTwoPointsRadian = `
176
+ } `;
177
+ // Main function to calculate an intermediate point
178
+ exports.angleBetweenTwoPointsRadian = `
209
179
  float angleBetweenTwoPointsRadian(vec2 start_, vec2 end_) {
210
180
  float start_lat = log(tan((1.0 - start_.y) * PI / 2.0));
211
181
  float end_lat = log(tan((1.0 - end_.y) * PI / 2.0));
212
182
  float angle = atan((end_lat - start_lat) / (end_.x - start_.x));
213
183
  return angle;
214
184
  }
215
- `
216
-
217
- export const circleCircumferenceInterPolationOf2PointsRadian = `
185
+ `;
186
+ exports.circleCircumferenceInterPolationOf2PointsRadian = `
218
187
  float circleCircumferenceInterPolationOf2PointsRadian(vec2 center, vec2 target, float bearing_angle, float ratio) {
219
188
  vec2 t = target - center;
220
189
  float mainAngle = atan(t.x, t.y);
221
190
  float angle = mainAngle - * ratio;
222
191
  return angle;
223
192
  }
224
- `
225
-
226
-
227
-
228
-
229
- export const realDistanceOnSphereR1 = `
193
+ `;
194
+ exports.realDistanceOnSphereR1 = `
230
195
  float realDistanceOnSphereR1(vec2 longLat1, vec2 longLat2) {
231
196
  float dLat = longLat2.y - longLat1.y;
232
197
  float dLong = longLat2.x - longLat1.x;
@@ -234,10 +199,7 @@ float realDistanceOnSphereR1(vec2 longLat1, vec2 longLat2) {
234
199
  float c = 2.0 * atan(sqrt(a), sqrt(1.0 - a));
235
200
  return c;
236
201
  }
237
- `;
238
-
239
-
240
-
202
+ `;
241
203
  const pointsOnSphereBetween = `
242
204
  vec3 pointsOnSphereBetween(vec3 a, vec3 b, float ratio) {
243
205
  // Normalize the input points to ensure they are on the unit sphere
@@ -264,17 +226,15 @@ vec3 pointsOnSphereBetween(vec3 a, vec3 b, float ratio) {
264
226
 
265
227
  // Return the normalized result to ensure it lies on the sphere
266
228
  return normalize(result);
267
- }`;
268
-
269
-
229
+ }`;
270
230
  const slerp = `
271
231
  ${pointsOnSphereBetween}
272
232
  vec3 slerp(vec3 A, vec3 B, float t) {
273
233
  return pointsOnSphereBetween(A, B, t) * mix(length(A), length(B), t);
274
234
  }
275
- `
276
-
277
- const circleLimpFromLongLatRadCenterCartesian3D_accurate = R + `
235
+ `;
236
+ exports.slerp = slerp;
237
+ const circleLimpFromLongLatRadCenterCartesian3D_accurate = exports.R + `
278
238
  vec3 circleLimpFromLongLatRadCenterCartesian3D_accurate( vec3 geoW, float radius, float angle) {
279
239
  vec3 normal = normalize(geoW);
280
240
  vec3 tangent1 = cross(normal, vec3(0.0, 0.0, -1.0));
@@ -285,9 +245,8 @@ vec3 circleLimpFromLongLatRadCenterCartesian3D_accurate( vec3 geoW, float radius
285
245
  float radius_in_angle = radius/R;
286
246
  float projected_radius = sin(radius_in_angle) * R / 1000.0;
287
247
  return (geoW * cos(radius_in_angle)) + tangent1 * projected_radius;
288
- }`;
289
-
290
-
248
+ }`;
249
+ exports.circleLimpFromLongLatRadCenterCartesian3D_accurate = circleLimpFromLongLatRadCenterCartesian3D_accurate;
291
250
  const circleOnSphere = `
292
251
  vec3 rotateVectorAroundAxis(vec3 v, vec3 axis, float angle) {
293
252
  float c = cos(angle);
@@ -344,17 +303,17 @@ vec3 circleOnSphere(vec3 M, vec3 H, float A) {
344
303
 
345
304
  // For simplicity, returning the direct result of rotation. Assume M and H were perfectly on the sphere.
346
305
  return rotatedPoint;
347
- }`;
348
-
306
+ }`;
307
+ exports.circleOnSphere = circleOnSphere;
349
308
  const circleLimpFromLongLatRadCenterMercatorCompass_accurate = `
350
309
  vec2 circleLimpFromLongLatRadCenterMercatorCompass_accurate(vec2 center, float radius, float angle){
351
310
  float y = -sin(angle) * radius + center.y;
352
311
  float x = cos(angle) * radius + center.x;
353
312
  return vec2(x, y);
354
- } `;
355
-
356
- //TODO make it work...
357
- const circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate = PI + `
313
+ } `;
314
+ exports.circleLimpFromLongLatRadCenterMercatorCompass_accurate = circleLimpFromLongLatRadCenterMercatorCompass_accurate;
315
+ //TODO make it work...
316
+ const circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate = exports.PI + `
358
317
  vec2 circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate(vec2 mercator_center, float radius, float angle) {
359
318
  vec2 center = vec2(mercator_center.x /6378137.0 , asin(tanh(mercator_center.y / 6378137.0 )));
360
319
  float ang = angle + PI / 2.0; // Shift angle to align with +x axis
@@ -377,12 +336,5 @@ vec2 circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate(vec2 mercato
377
336
  R * log(tan(PI/4.0+ center.y / 2.0))
378
337
  );
379
338
  return mercator_center - center_mercator + limp;
380
- }`;
381
-
382
- export {
383
- slerp,
384
- circleLimpFromLongLatRadCenterCartesian3D_accurate,
385
- circleLimpFromLongLatRadCenterMercatorCompass_accurate,
386
- circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate,
387
- circleOnSphere,
388
- }
339
+ }`;
340
+ exports.circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate = circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./geometrytransformations"), exports);
18
+ __exportStar(require("./nodata"), exports);