@pirireis/webglobeplugins 1.0.2 → 1.0.3

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 (259) hide show
  1. package/Math/{angle-calculation.ts → angle-calculation.js} +14 -18
  2. package/Math/{arc-cdf-points.ts → arc-cdf-points.js} +272 -329
  3. package/Math/{arc-generate-points-exponantial.ts → arc-generate-points-exponantial.js} +254 -299
  4. package/Math/{arc.ts → arc.js} +292 -421
  5. package/Math/bounds/line-bbox.js +186 -225
  6. package/Math/{circle-cdf-points.ts → circle-cdf-points.js} +78 -143
  7. package/Math/{circle.ts → circle.js} +33 -49
  8. package/Math/{constants.ts → constants.js} +4 -12
  9. package/Math/contour/{quadtreecontours.ts → quadtreecontours.js} +300 -371
  10. package/Math/contour/quadtreecontours1.js +298 -336
  11. package/Math/{finite-line-2d.ts → finite-line-2d.js} +58 -68
  12. package/Math/{haversine.ts → haversine.js} +22 -33
  13. package/Math/index.js +1 -0
  14. package/Math/juction/{arc-plane.ts → arc-plane.js} +143 -203
  15. package/Math/juction/{line-sphere.ts → line-sphere.js} +22 -32
  16. package/Math/juction/{plane-plane.ts → plane-plane.js} +53 -62
  17. package/Math/{line.ts → line.js} +52 -84
  18. package/Math/matrix4.js +1 -0
  19. package/Math/{methods.ts → methods.js} +126 -182
  20. package/Math/{plane.ts → plane.js} +56 -92
  21. package/Math/{quaternion.ts → quaternion.js} +106 -128
  22. package/Math/templete-shapes/{grid-visually-equal.ts → grid-visually-equal.js} +65 -118
  23. package/Math/tessellation/constants.js +1 -0
  24. package/Math/tessellation/{methods.ts → methods.js} +49 -79
  25. package/Math/tessellation/{nearest-value-padding.ts → nearest-value-padding.js} +112 -147
  26. package/Math/tessellation/{spherical-triangle-area.ts → spherical-triangle-area.js} +99 -127
  27. package/Math/tessellation/{tile-merger.ts → tile-merger.js} +429 -578
  28. package/Math/tessellation/{triangle-tessellation.ts → triangle-tessellation.js} +386 -533
  29. package/Math/tessellation/types.js +1 -0
  30. package/Math/types.js +1 -0
  31. package/Math/utils.js +2 -3
  32. package/Math/{vec3.ts → vec3.js} +155 -227
  33. package/Math/{xyz-tile.ts → xyz-tile.js} +18 -26
  34. package/algorithms/search-binary.js +16 -14
  35. package/altitude-locator/adaptors.js +1 -0
  36. package/altitude-locator/keymethod.js +1 -0
  37. package/altitude-locator/plugin.js +344 -445
  38. package/altitude-locator/types.js +21 -26
  39. package/compass-rose/compass-rose-padding-flat.js +230 -274
  40. package/compass-rose/{compass-text-writer.ts → compass-text-writer.js} +155 -210
  41. package/compass-rose/index.js +3 -3
  42. package/{constants.ts → constants.js} +6 -8
  43. package/heatwave/datamanager.js +149 -168
  44. package/heatwave/heatwave.js +206 -261
  45. package/heatwave/index.js +5 -5
  46. package/heatwave/isobar.js +303 -340
  47. package/heatwave/{texture-point-sampler.ts → texture-point-sampler.js} +187 -220
  48. package/investigation-tools/draw/tiles/adapters.js +67 -0
  49. package/investigation-tools/draw/tiles/{tiles.ts → tiles.js} +128 -162
  50. package/jest.config.js +7 -6
  51. package/package.json +1 -1
  52. package/pin/pin-object-array1.js +300 -381
  53. package/pin/pin-point-totem1.js +60 -77
  54. package/programs/arrowfield/arrow-field.js +60 -89
  55. package/programs/arrowfield/logic.js +141 -173
  56. package/programs/data2legend/density-to-legend.js +68 -86
  57. package/programs/data2legend/point-to-density-texture.js +67 -84
  58. package/programs/float2legendwithratio/index.js +2 -3
  59. package/programs/float2legendwithratio/logic.js +118 -144
  60. package/programs/float2legendwithratio/object.js +104 -141
  61. package/programs/helpers/blender.js +58 -73
  62. package/programs/helpers/{fadeaway.ts → fadeaway.js} +60 -73
  63. package/programs/index.js +20 -19
  64. package/programs/line-on-globe/circle-accurate-3d.js +85 -112
  65. package/programs/line-on-globe/circle-accurate-flat.js +148 -200
  66. package/programs/line-on-globe/degree-padding-around-circle-3d.js +102 -134
  67. package/programs/line-on-globe/index.js +1 -0
  68. package/programs/line-on-globe/lines-color-instanced-flat.js +80 -99
  69. package/programs/line-on-globe/linestrip/data.js +4 -0
  70. package/programs/line-on-globe/linestrip/{linestrip.ts → linestrip.js} +93 -152
  71. package/programs/line-on-globe/{naive-accurate-flexible.ts → naive-accurate-flexible.js} +126 -175
  72. package/programs/line-on-globe/util.js +5 -8
  73. package/programs/picking/pickable-polygon-renderer.js +98 -129
  74. package/programs/picking/pickable-renderer.js +98 -130
  75. package/programs/point-on-globe/element-globe-surface-glow.js +93 -122
  76. package/programs/point-on-globe/element-point-glow.js +80 -114
  77. package/programs/point-on-globe/square-pixel-point.js +121 -139
  78. package/programs/polygon-on-globe/{texture-dem-triangles.ts → texture-dem-triangles.js} +163 -207
  79. package/programs/{programcache.ts → programcache.js} +126 -134
  80. package/programs/rings/index.js +1 -1
  81. package/programs/rings/partial-ring/{piece-of-pie.ts → piece-of-pie.js} +152 -222
  82. package/programs/totems/camera-totem-attactment-interface.js +1 -0
  83. package/programs/totems/{camerauniformblock.ts → camerauniformblock.js} +225 -310
  84. package/programs/totems/{canvas-webglobe-info.ts → canvas-webglobe-info.js} +132 -147
  85. package/programs/totems/{dem-textures-manager.ts → dem-textures-manager.js} +257 -360
  86. package/programs/totems/{globe-changes.ts → globe-changes.js} +59 -79
  87. package/programs/totems/gpu-selection-uniform-block.js +99 -127
  88. package/programs/totems/{index.ts → index.js} +2 -2
  89. package/programs/two-d/pixel-padding-for-compass.js +87 -101
  90. package/programs/util.js +14 -19
  91. package/programs/vectorfields/logics/{constants.ts → constants.js} +4 -5
  92. package/programs/vectorfields/logics/{drawrectangleparticles.ts → drawrectangleparticles.js} +80 -115
  93. package/programs/vectorfields/logics/index.js +2 -4
  94. package/programs/vectorfields/logics/particle-ubo.js +16 -0
  95. package/programs/vectorfields/logics/{pixelbased.ts → pixelbased.js} +86 -115
  96. package/programs/vectorfields/logics/ubo.js +51 -57
  97. package/programs/vectorfields/{pingpongbuffermanager.ts → pingpongbuffermanager.js} +99 -113
  98. package/range-tools-on-terrain/bearing-line/{adapters.ts → adapters.js} +114 -154
  99. package/range-tools-on-terrain/bearing-line/{plugin.ts → plugin.js} +457 -569
  100. package/range-tools-on-terrain/bearing-line/types.js +1 -0
  101. package/range-tools-on-terrain/circle-line-chain/{adapters.ts → adapters.js} +85 -104
  102. package/range-tools-on-terrain/circle-line-chain/{chain-list-map.ts → chain-list-map.js} +382 -446
  103. package/range-tools-on-terrain/circle-line-chain/{plugin.ts → plugin.js} +464 -607
  104. package/range-tools-on-terrain/circle-line-chain/types.js +1 -0
  105. package/range-tools-on-terrain/range-ring/{adapters.ts → adapters.js} +93 -114
  106. package/range-tools-on-terrain/range-ring/{enum.ts → enum.js} +2 -2
  107. package/range-tools-on-terrain/range-ring/{plugin.ts → plugin.js} +377 -444
  108. package/range-tools-on-terrain/range-ring/rangeringangletext.js +331 -0
  109. package/range-tools-on-terrain/range-ring/types.js +9 -0
  110. package/semiplugins/interface.js +1 -0
  111. package/semiplugins/lightweight/{line-plugin.ts → line-plugin.js} +221 -342
  112. package/semiplugins/lightweight/{piece-of-pie-plugin.ts → piece-of-pie-plugin.js} +200 -275
  113. package/semiplugins/shape-on-terrain/{arc-plugin.ts → arc-plugin.js} +481 -616
  114. package/semiplugins/shape-on-terrain/{circle-plugin.ts → circle-plugin.js} +444 -588
  115. package/semiplugins/shape-on-terrain/{padding-1-degree.ts → padding-1-degree.js} +539 -713
  116. package/semiplugins/shape-on-terrain/terrain-polygon/{adapters.ts → adapters.js} +55 -69
  117. package/semiplugins/shape-on-terrain/terrain-polygon/data/{cache.ts → cache.js} +102 -149
  118. package/semiplugins/shape-on-terrain/terrain-polygon/data/{index-polygon-map.ts → index-polygon-map.js} +45 -58
  119. package/semiplugins/shape-on-terrain/terrain-polygon/data/{manager.ts → manager.js} +4 -4
  120. package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.js +177 -196
  121. package/semiplugins/shape-on-terrain/terrain-polygon/data/{polygon-to-triangles.ts → polygon-to-triangles.js} +100 -144
  122. package/semiplugins/shape-on-terrain/terrain-polygon/data/{random.ts → random.js} +121 -165
  123. package/semiplugins/shape-on-terrain/terrain-polygon/data/types.js +1 -0
  124. package/semiplugins/shape-on-terrain/terrain-polygon/data/{worker-contact.ts → worker-contact.js} +63 -81
  125. package/semiplugins/shape-on-terrain/terrain-polygon/data/worker.js +125 -146
  126. package/semiplugins/shape-on-terrain/terrain-polygon/{terrain-polygon.ts → terrain-polygon.js} +219 -265
  127. package/semiplugins/shape-on-terrain/terrain-polygon/types.js +8 -0
  128. package/semiplugins/shell/bbox-renderer/index.js +2 -0
  129. package/semiplugins/shell/bbox-renderer/{logic.ts → logic.js} +209 -273
  130. package/semiplugins/shell/bbox-renderer/object.js +75 -0
  131. package/semiplugins/type.js +1 -0
  132. package/semiplugins/utility/{container-plugin.ts → container-plugin.js} +94 -126
  133. package/semiplugins/utility/{object-pass-container-plugin.ts → object-pass-container-plugin.js} +80 -101
  134. package/shaders/fragment-toy/firework.js +1 -1
  135. package/shaders/fragment-toy/singularity.js +2 -5
  136. package/tracks/point-heat-map/adaptors/timetracksplugin-format-to-this.js +63 -78
  137. package/tracks/point-heat-map/index.js +1 -0
  138. package/tracks/point-heat-map/plugin-webworker.js +121 -148
  139. package/tracks/point-heat-map/point-to-heat-map-flow.js +121 -150
  140. package/tracks/point-tracks/key-methods.js +2 -3
  141. package/tracks/point-tracks/plugin.js +401 -487
  142. package/tracks/timetracks/adaptors-line-strip.js +65 -79
  143. package/tracks/timetracks/plugin-line-strip.js +240 -295
  144. package/tracks/timetracks/program-line-strip.js +411 -495
  145. package/tracks/timetracks/programpoint-line-strip.js +109 -137
  146. package/types.js +19 -0
  147. package/util/account/bufferoffsetmanager.js +176 -209
  148. package/util/account/create-buffermap-orchastration.js +39 -0
  149. package/util/account/index.js +3 -6
  150. package/util/account/single-attribute-buffer-management/{buffer-manager.ts → buffer-manager.js} +119 -151
  151. package/util/account/single-attribute-buffer-management/{buffer-orchestrator.ts → buffer-orchestrator.js} +212 -238
  152. package/util/account/single-attribute-buffer-management/{buffer-orchestrator1.ts → buffer-orchestrator1.js} +159 -184
  153. package/util/account/single-attribute-buffer-management/{index.ts → index.js} +4 -11
  154. package/util/account/single-attribute-buffer-management/{object-store.ts → object-store.js} +55 -76
  155. package/util/account/single-attribute-buffer-management/types.js +1 -0
  156. package/util/account/util.js +18 -22
  157. package/util/algorithms/index.js +1 -0
  158. package/util/algorithms/search-binary.js +25 -26
  159. package/util/build-strategy/{static-dynamic.ts → static-dynamic.js} +41 -50
  160. package/util/check/index.js +1 -0
  161. package/util/check/typecheck.js +66 -0
  162. package/util/{frame-counter-trigger.ts → frame-counter-trigger.js} +84 -99
  163. package/util/geometry/{index.ts → index.js} +121 -155
  164. package/util/gl-util/buffer/{attribute-loader.ts → attribute-loader.js} +62 -84
  165. package/util/gl-util/buffer/{index.ts → index.js} +3 -6
  166. package/util/gl-util/draw-options/{methods.ts → methods.js} +32 -47
  167. package/util/gl-util/uniform-block/{manager.ts → manager.js} +200 -232
  168. package/util/{globe-default-gl-states.ts → globe-default-gl-states.js} +4 -5
  169. package/util/{helper-methods.ts → helper-methods.js} +8 -9
  170. package/util/index.js +10 -9
  171. package/util/interpolation/index.js +1 -0
  172. package/util/interpolation/timetrack/index.js +2 -9
  173. package/util/interpolation/timetrack/timetrack-interpolator.js +79 -94
  174. package/util/interpolation/timetrack/web-worker.js +46 -51
  175. package/util/picking/{fence.ts → fence.js} +43 -47
  176. package/util/picking/{picker-displayer.ts → picker-displayer.js} +176 -226
  177. package/util/programs/draw-from-pixel-coords.js +164 -201
  178. package/util/programs/{draw-texture-on-canvas.ts → draw-texture-on-canvas.js} +69 -91
  179. package/util/programs/supersampletotextures.js +97 -130
  180. package/util/programs/texturetoglobe.js +128 -153
  181. package/util/shaderfunctions/{geometrytransformations.ts → geometrytransformations.js} +44 -106
  182. package/util/shaderfunctions/index.js +2 -2
  183. package/util/shaderfunctions/nodata.js +2 -4
  184. package/util/shaderfunctions/noisefunctions.js +7 -10
  185. package/util/{webglobjectbuilders.ts → webglobjectbuilders.js} +358 -446
  186. package/vectorfield/arrowfield/adaptor.js +11 -11
  187. package/vectorfield/arrowfield/index.js +3 -3
  188. package/vectorfield/arrowfield/plugin.js +83 -128
  189. package/vectorfield/waveparticles/adaptor.js +15 -16
  190. package/vectorfield/waveparticles/index.js +3 -3
  191. package/vectorfield/waveparticles/{plugin.ts → plugin.js} +415 -506
  192. package/vectorfield/wind/adapters/{image-to-fields.ts → image-to-fields.js} +61 -74
  193. package/vectorfield/wind/adapters/types.js +1 -0
  194. package/vectorfield/wind/{imagetovectorfieldandmagnitude.ts → imagetovectorfieldandmagnitude.js} +53 -78
  195. package/vectorfield/wind/index.js +5 -5
  196. package/vectorfield/wind/{plugin-persistant copy.ts → plugin-persistant copy.js } +364 -461
  197. package/vectorfield/wind/{plugin-persistant.ts → plugin-persistant.js} +375 -483
  198. package/vectorfield/wind/plugin.js +685 -883
  199. package/vectorfield/wind/vectorfieldimage.js +23 -27
  200. package/write-text/{context-text-bulk.ts → context-text-bulk.js} +200 -285
  201. package/write-text/context-text3.js +167 -0
  202. package/write-text/{context-text4.ts → context-text4.js} +146 -231
  203. package/write-text/context-textDELETE.js +94 -125
  204. package/write-text/objectarraylabels/{index.ts → index.js} +2 -2
  205. package/write-text/objectarraylabels/objectarraylabels.js +200 -247
  206. package/Math/matrix4.ts +0 -0
  207. package/Math/mesh/mapbox-delaunay.d.ts +0 -74
  208. package/Math/roadmap.md +0 -10
  209. package/Math/tessellation/constants.ts +0 -1
  210. package/Math/tessellation/roadmap.md +0 -48
  211. package/Math/tessellation/types.ts +0 -1
  212. package/Math/types.ts +0 -68
  213. package/investigation-tools/draw/tiles/adapters.ts +0 -133
  214. package/programs/line-on-globe/linestrip/data.ts +0 -29
  215. package/programs/polygon-on-globe/roadmap.md +0 -8
  216. package/programs/totems/camera-totem-attactment-interface.ts +0 -4
  217. package/programs/vectorfields/logics/particle-ubo.ts +0 -23
  218. package/publish.bat +0 -62
  219. package/range-tools-on-terrain/bearing-line/types.ts +0 -65
  220. package/range-tools-on-terrain/circle-line-chain/types.ts +0 -43
  221. package/range-tools-on-terrain/range-ring/rangeringangletext.ts +0 -396
  222. package/range-tools-on-terrain/range-ring/types.ts +0 -30
  223. package/semiplugins/interface.ts +0 -14
  224. package/semiplugins/shape-on-terrain/goal.md +0 -12
  225. package/semiplugins/shape-on-terrain/terrain-polygon/data/cache-shortcuts.md +0 -20
  226. package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.ts +0 -209
  227. package/semiplugins/shape-on-terrain/terrain-polygon/data/readme.md +0 -5
  228. package/semiplugins/shape-on-terrain/terrain-polygon/data/types.ts +0 -37
  229. package/semiplugins/shape-on-terrain/terrain-polygon/notes.md +0 -90
  230. package/semiplugins/shape-on-terrain/terrain-polygon/types.ts +0 -69
  231. package/semiplugins/shell/bbox-renderer/index.ts +0 -2
  232. package/semiplugins/shell/bbox-renderer/object.ts +0 -129
  233. package/semiplugins/type.ts +0 -8
  234. package/terrain-plugin.mmd +0 -83
  235. package/tests/Math/arc-sampling-test.js +0 -367
  236. package/tests/Math/arc-sampling-test.ts +0 -429
  237. package/tests/Math/arc.test.ts +0 -77
  238. package/tests/Math/junction/arc-limit.test.ts +0 -7
  239. package/tests/Math/junction/arc-plane-points.test.ts +0 -196
  240. package/tests/Math/junction/arc-plane.test.ts +0 -172
  241. package/tests/Math/junction/line-sphere.test.ts +0 -127
  242. package/tests/Math/junction/plane-plane.test.ts +0 -91
  243. package/tests/Math/plane-test.ts +0 -17
  244. package/tests/Math/plane.test.ts +0 -43
  245. package/tests/Math/vec3.test.ts +0 -33
  246. package/tracks/point-heat-map/readme.md +0 -15
  247. package/tracks/timetracks/readme.md +0 -1
  248. package/tsconfig.json +0 -22
  249. package/types/@pirireis/webglobe.d.ts +0 -102
  250. package/types/delaunator.d.ts +0 -40
  251. package/types/earcut.d.ts +0 -11
  252. package/types/rbush.d.ts +0 -57
  253. package/types.ts +0 -319
  254. package/util/account/create-buffermap-orchastration.ts +0 -85
  255. package/util/account/single-attribute-buffer-management/types.ts +0 -43
  256. package/util/check/typecheck.ts +0 -74
  257. package/vectorfield/wind/adapters/types.ts +0 -12
  258. package/write-text/context-text3.ts +0 -252
  259. package/write-text/objectarraylabels/objectarraylabels.d.ts +0 -72
@@ -1,39 +1,32 @@
1
- // Z in kolometers
2
- //
3
-
4
- const EPSILON = 0.00001;
5
-
1
+ // Z in kolometers
2
+ //
3
+ const EPSILON = 0.00001;
6
4
  export const POLE = `
7
5
  #ifndef POLE
8
6
  #define POLE 20037508.34
9
7
  #endif
10
- `;
11
-
8
+ `;
12
9
  export const R = `
13
10
  #ifndef R
14
11
  #define R 6378137.0
15
12
  #endif
16
- `;
17
-
13
+ `;
18
14
  export const PI = `
19
15
  #ifndef PI
20
16
  #define PI 3.141592653589793
21
17
 
22
18
  #endif
23
- `;
24
-
19
+ `;
25
20
  export const POLE_BY_PI = `
26
21
  #ifndef POLE_BY_PI
27
22
  #define POLE_BY_PI 6378137.0
28
23
  #endif
29
- `;
30
-
24
+ `;
31
25
  export const R_3D = `
32
26
  #ifndef R_3D
33
27
  #define R_3D 6378.137
34
28
  #endif
35
- `;
36
-
29
+ `;
37
30
  export const pixelXYToCartesian3DPoint = R_3D + PI + `
38
31
  vec3 pixelXYToCartesian3DPoint( vec3 position) {
39
32
  float longRad = PI * (2.0 * position.x - 1.0);
@@ -44,8 +37,7 @@ vec3 pixelXYToCartesian3DPoint( vec3 position) {
44
37
  float z = radius * cos(latRad);
45
38
  return vec3(x, y, z);
46
39
  }
47
- `;
48
-
40
+ `;
49
41
  export const pixelXYToCartesian2DPoint = PI + POLE + POLE_BY_PI + `
50
42
  vec2 pixelXYToCartesian2DPoint( vec2 position, vec2 translate, vec2 mapWH, vec2 screenWH) {
51
43
  float x = (2.0 * position.x - 1.0) * POLE;
@@ -54,26 +46,21 @@ vec2 pixelXYToCartesian2DPoint( vec2 position, vec2 translate, vec2 mapWH, vec2
54
46
  y = (1.0 - (y - translate.y) / mapWH.y) * screenWH.y;
55
47
  return vec2(x, y);
56
48
  }
57
- `;
58
-
59
- // TODO: rename it to mercatorXYToGLPosition
49
+ `;
50
+ // TODO: rename it to mercatorXYToGLPosition
60
51
  export const mercatorXYToGLPosition = `
61
52
  vec4 mercatorXYToGLPosition( vec2 position) { // projection, translate, mapWH, screenWH comes from camera uniform block
62
53
  float x = (( position.x - translate.x ) / mapWH.x) * screenWH.x;
63
54
  float y = (1.0 - (position.y - translate.y) / mapWH.y) * screenWH.y;
64
55
  return projection * vec4(x, y, 0.0, 1.0);
65
56
  }
66
- `;
67
-
57
+ `;
68
58
  export const cartesian3DToGLPosition = `
69
59
  vec4 cartesian3DToGLPosition( vec3 position) {
70
60
  return projection * view * vec4(position - translate, 1.0);
71
61
  }
72
- `
73
-
74
-
75
- // pi / pole = 2 / R
76
-
62
+ `;
63
+ // pi / pole = 2 / R
77
64
  export const longLatRadToMercator = R + PI + `
78
65
  vec2 longLatRadToMercator( vec2 longLatRad) {
79
66
  float x = R * longLatRad.x;
@@ -81,9 +68,7 @@ vec2 longLatRadToMercator( vec2 longLatRad) {
81
68
  y -= mix(-60.0, 60.0, abs(longLatRad.y + PI / 8.0) / (PI / 4.0));
82
69
  return vec2(x, y);
83
70
  }
84
- `;
85
-
86
-
71
+ `;
87
72
  export const longLatRadToCartesian3D = R_3D + `
88
73
  vec3 longLatRadToCartesian3D( vec2 longLat) {
89
74
  float x = R_3D * cos(longLat.y) * cos(longLat.x);
@@ -91,8 +76,7 @@ vec3 longLatRadToCartesian3D( vec2 longLat) {
91
76
  float z = R_3D * sin(longLat.y);
92
77
  return vec3(x, y, z);
93
78
  }
94
- `;
95
-
79
+ `;
96
80
  export const longLatRadToCartesian3DWithR = `
97
81
  vec3 longLatRadToCartesian3DWithR( vec2 longLat, float radius) {
98
82
  float x = radius * cos(longLat.y) * cos(longLat.x);
@@ -100,9 +84,8 @@ vec3 longLatRadToCartesian3DWithR( vec2 longLat, float radius) {
100
84
  float z = radius * sin(longLat.y);
101
85
  return vec3(x, y, z);
102
86
  }
103
- `;
104
-
105
- // TODO: Make it precise. It doesnt use haversine formula. If this changes, change the formmula which calculates text position.
87
+ `;
88
+ // TODO: Make it precise. It doesnt use haversine formula. If this changes, change the formmula which calculates text position.
106
89
  export const circleLimpFromLongLatRadCenterCartesian3D = R + `
107
90
  vec3 circleLimpFromLongLatRadCenterCartesian3D( vec2 center, float radius, float angle) {
108
91
  vec3 geoW = longLatRadToCartesian3D(center);
@@ -116,12 +99,8 @@ vec3 circleLimpFromLongLatRadCenterCartesian3D( vec2 center, float radius, float
116
99
  float projected_radius = sin(radius_in_angle) * R / 1000.0;
117
100
  return (geoW * cos(radius_in_angle))+ tangent1 * projected_radius;
118
101
  }
119
- `;
120
-
121
-
122
-
123
- // TODO: Make it precise. Y axis is not correct.
124
-
102
+ `;
103
+ // TODO: Make it precise. Y axis is not correct.
125
104
  export const circleLimpFromLongLatRadCenterMercatorRealDistanceNew = PI + `
126
105
  vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radius, float angle) {
127
106
  float ang = angle + PI / 2.0; // Shift angle to align with +x axis
@@ -140,9 +119,7 @@ vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radiu
140
119
  R * longi,
141
120
  R * log(tan(PI / 4.0 + lat / 2.0))
142
121
  );
143
- }`;
144
-
145
-
122
+ }`;
146
123
  export const circleLimpFromLongLatRadCenterMercatorRealDistance = PI + `
147
124
  vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radius, float angle){
148
125
  float ang = angle + PI / 2.0; // this is there because the other methods are implemented in, angle 0 is +x axis orientatation
@@ -152,9 +129,8 @@ vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radiu
152
129
  float longi = center.x + atan(sin(ang) * sin(r) * cos(center.y), cos(r) - sin(center.y) * sin_lat);
153
130
  return longLatRadToMercator(vec2(longi, lat));
154
131
  }
155
- `;
156
-
157
- // TODO: reconstruct this function
132
+ `;
133
+ // TODO: reconstruct this function
158
134
  export const circleLimpFromLongLatRadCenterMercatorRealDistancePadding = `
159
135
  vec2 circleLimpFromLongLatRadCenterMercatorRealDistancePadding(vec2 center, float radius, float angle){
160
136
  float radius_radian = radius / R;
@@ -180,31 +156,23 @@ vec2 circleLimpFromLongLatRadCenterMercatorRealDistancePadding(vec2 center, floa
180
156
  float y = center_.y - new_scale * radius * sin(new_angle);
181
157
  return vec2(x, y);
182
158
  }
183
- `
184
-
185
-
159
+ `;
186
160
  export const circleLimpFromLongLatRadCenterMercatorCompass = `
187
161
  vec2 circleLimpFromLongLatRadCenterMercatorCompass(vec2 center, float radius, float angle){
188
162
  vec2 center_ = longLatRadToMercator(center);
189
163
  float y = -sin(angle) * radius + center_.y;
190
164
  float x = cos(angle) * radius + center_.x;
191
165
  return vec2(x, y);
192
- } `;
193
-
194
-
195
- // Function to convert Cartesian coordinates back to spherical (latitude, longitude)
166
+ } `;
167
+ // Function to convert Cartesian coordinates back to spherical (latitude, longitude)
196
168
  export const cartesianToSpherical = `
197
169
  vec2 cartesianToSpherical(vec3 point) {
198
170
  float lat = degrees(asin(point.z)); // Latitude
199
171
  float lon = degrees(atan(point.y, point.x)); // Longitude
200
172
 
201
173
  return vec2(lat, lon);
202
- } `;
203
-
204
- // Main function to calculate an intermediate point
205
-
206
-
207
-
174
+ } `;
175
+ // Main function to calculate an intermediate point
208
176
  export const angleBetweenTwoPointsRadian = `
209
177
  float angleBetweenTwoPointsRadian(vec2 start_, vec2 end_) {
210
178
  float start_lat = log(tan((1.0 - start_.y) * PI / 2.0));
@@ -212,8 +180,7 @@ float angleBetweenTwoPointsRadian(vec2 start_, vec2 end_) {
212
180
  float angle = atan((end_lat - start_lat) / (end_.x - start_.x));
213
181
  return angle;
214
182
  }
215
- `
216
-
183
+ `;
217
184
  export const circleCircumferenceInterPolationOf2PointsRadian = `
218
185
  float circleCircumferenceInterPolationOf2PointsRadian(vec2 center, vec2 target, float bearing_angle, float ratio) {
219
186
  vec2 t = target - center;
@@ -221,9 +188,7 @@ float circleCircumferenceInterPolationOf2PointsRadian(vec2 center, vec2 target,
221
188
  float angle = mainAngle - * ratio;
222
189
  return angle;
223
190
  }
224
- `
225
-
226
-
191
+ `;
227
192
  export const slopeFromTexture = R + PI + `
228
193
  float slopeFromTexture(highp sampler2DArray heightMap, vec3 uv, vec2 texelSize) {
229
194
  float hL = texture(heightMap, uv - vec3(texelSize.x, 0.0, 0.0)).r;
@@ -235,8 +200,7 @@ float slopeFromTexture(highp sampler2DArray heightMap, vec3 uv, vec2 texelSize)
235
200
  float slope = sqrt(dX * dX + dY * dY);
236
201
  return slope;
237
202
  }
238
- `;
239
-
203
+ `;
240
204
  export const normalFromTexture = `
241
205
  vec3 normalFromTexture(highp sampler2DArray heightMap, vec3 uv, vec2 texelSize, float strength) {
242
206
  float hL = texture(heightMap, uv - vec3(texelSize.x, 0.0, 0.0)).r;
@@ -252,8 +216,7 @@ vec3 normalFromTexture(highp sampler2DArray heightMap, vec3 uv, vec2 texelSize,
252
216
  // Return normalized surface normal (-dX, -dY, 1.0)
253
217
  return normalize(vec3(-dX, -dY, 1.0));
254
218
  }
255
- `;
256
-
219
+ `;
257
220
  export const realDistanceOnSphereR1 = `
258
221
  float realDistanceOnSphereR1(vec2 longLat1, vec2 longLat2) {
259
222
  float dLat = longLat2.y - longLat1.y;
@@ -262,16 +225,12 @@ float realDistanceOnSphereR1(vec2 longLat1, vec2 longLat2) {
262
225
  float c = 2.0 * atan(sqrt(a), sqrt(1.0 - a));
263
226
  return c;
264
227
  }
265
- `;
266
-
267
-
228
+ `;
268
229
  export const isPointInBBox = `
269
230
  bool isPointInBBox(vec2 point, vec4 bbox) {
270
231
  return point.x + ${EPSILON} >= bbox.x && point.x <= bbox.z + ${EPSILON}&& point.y + ${EPSILON} >= bbox.y && point.y <= bbox.w + ${EPSILON};
271
232
  }
272
- `;
273
-
274
-
233
+ `;
275
234
  export const relativeBBoxPositionRadian = `
276
235
  ${PI}
277
236
  ${isPointInBBox}
@@ -299,11 +258,7 @@ vec2 relativeBBoxPositionRadian(vec2 point, vec4 bbox) {
299
258
  }
300
259
  return vec2(-1.0, -1.0);
301
260
  }
302
- `;
303
-
304
-
305
-
306
-
261
+ `;
307
262
  export const isPointInBBox2 = `
308
263
  bool isPointInBBox(vec2 point, vec4 bbox) {
309
264
  float horizontal_epsilon = (bbox.z - bbox.x) * 0.05;
@@ -313,8 +268,7 @@ bool isPointInBBox(vec2 point, vec4 bbox) {
313
268
  point.y + vertical_epsilon >= bbox.y &&
314
269
  point.y <= bbox.w + vertical_epsilon;
315
270
  }
316
- `;
317
-
271
+ `;
318
272
  const pointsOnSphereBetween = `
319
273
  vec3 pointsOnSphereBetween(vec3 a, vec3 b, float ratio) {
320
274
  // Normalize the input points to ensure they are on the unit sphere
@@ -341,16 +295,13 @@ vec3 pointsOnSphereBetween(vec3 a, vec3 b, float ratio) {
341
295
 
342
296
  // Return the normalized result to ensure it lies on the sphere
343
297
  return normalize(result);
344
- }`;
345
-
346
-
298
+ }`;
347
299
  const slerp = `
348
300
  ${pointsOnSphereBetween}
349
301
  vec3 slerp(vec3 A, vec3 B, float t) {
350
302
  return pointsOnSphereBetween(A, B, t) * mix(length(A), length(B), t);
351
303
  }
352
- `
353
-
304
+ `;
354
305
  const circleLimpFromLongLatRadCenterCartesian3D_accurate = R + `
355
306
  vec3 circleLimpFromLongLatRadCenterCartesian3D_accurate( vec3 geoW, float radius, float angle) {
356
307
  vec3 normal = normalize(geoW);
@@ -362,9 +313,7 @@ vec3 circleLimpFromLongLatRadCenterCartesian3D_accurate( vec3 geoW, float radius
362
313
  float radius_in_angle = radius/R;
363
314
  float projected_radius = sin(radius_in_angle) * R / 1000.0;
364
315
  return (geoW * cos(radius_in_angle)) + tangent1 * projected_radius;
365
- }`;
366
-
367
-
316
+ }`;
368
317
  const circleOnSphere = `
369
318
  vec3 rotateVectorAroundAxis(vec3 v, vec3 axis, float angle) {
370
319
  float c = cos(angle);
@@ -421,16 +370,14 @@ vec3 circleOnSphere(vec3 M, vec3 H, float A) {
421
370
 
422
371
  // For simplicity, returning the direct result of rotation. Assume M and H were perfectly on the sphere.
423
372
  return rotatedPoint;
424
- }`;
425
-
373
+ }`;
426
374
  const circleLimpFromLongLatRadCenterMercatorCompass_accurate = `
427
375
  vec2 circleLimpFromLongLatRadCenterMercatorCompass_accurate(vec2 center, float radius, float angle){
428
376
  float y = -sin(angle) * radius + center.y;
429
377
  float x = cos(angle) * radius + center.x;
430
378
  return vec2(x, y);
431
- } `;
432
-
433
- //TODO make it work...
379
+ } `;
380
+ //TODO make it work...
434
381
  const circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate = PI + `
435
382
  vec2 circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate(vec2 mercator_center, float radius, float angle) {
436
383
  vec2 center = vec2(mercator_center.x /6378137.0 , asin(tanh(mercator_center.y / 6378137.0 )));
@@ -454,14 +401,5 @@ vec2 circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate(vec2 mercato
454
401
  R * log(tan(PI/4.0+ center.y / 2.0))
455
402
  );
456
403
  return mercator_center - center_mercator + limp;
457
- }`;
458
-
459
-
460
-
461
- export {
462
- slerp,
463
- circleLimpFromLongLatRadCenterCartesian3D_accurate,
464
- circleLimpFromLongLatRadCenterMercatorCompass_accurate,
465
- circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate,
466
- circleOnSphere,
467
- }
404
+ }`;
405
+ export { slerp, circleLimpFromLongLatRadCenterCartesian3D_accurate, circleLimpFromLongLatRadCenterMercatorCompass_accurate, circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate, circleOnSphere, };
@@ -1,2 +1,2 @@
1
- export * from './geometrytransformations';
2
- export * from './nodata';
1
+ export * from './geometrytransformations';
2
+ export * from './nodata';
@@ -4,7 +4,5 @@ vec2 vertexIDtoTextureCoordinate(float id, vec2 textureDimentions) {
4
4
  float y = floor(id / textureDimentions.x);
5
5
  return vec2( x / textureDimentions.x, y / textureDimentions.y);
6
6
  }
7
- `;
8
-
9
-
10
- export {vertexIDtoTextureCoordinate};
7
+ `;
8
+ export { vertexIDtoTextureCoordinate };
@@ -1,9 +1,8 @@
1
- const permute34 = ```vec3 permute34(vec3 x) {
1
+ const permute34 = `` `vec3 permute34(vec3 x) {
2
2
  x = ((x * 34.0) + 1.0) * x;
3
3
  return x - floor(x * (1.0 / 289.0)) * 289.0;
4
- }```;
5
-
6
- const waveNoice = ```float waveNoice(vec2 v)
4
+ }` ``;
5
+ const waveNoice = `` `float waveNoice(vec2 v)
7
6
  {
8
7
  const vec4 C = vec4(0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439);
9
8
 
@@ -36,9 +35,7 @@ const waveNoice = ```float waveNoice(vec2 v)
36
35
  g.x = a0.x * x0.x + h.x * x0.y;
37
36
  g.yz = a0.yz * x12.xz + h.yz * x12.yw;
38
37
  return 130.0 * dot(m, g);
39
- }```;
40
-
41
-
42
- export default {
43
- permute34, waveNoice
44
- }
38
+ }` ``;
39
+ export default {
40
+ permute34, waveNoice
41
+ };