@pirireis/webglobeplugins 0.16.0 → 0.16.1

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 (480) hide show
  1. package/Math/angle-calculation.js +13 -14
  2. package/Math/bounds/line-bbox.js +186 -225
  3. package/Math/index.js +1 -0
  4. package/Math/mesh/mapbox-delaunay.js +544 -607
  5. package/Math/utils.js +2 -3
  6. package/algorithms/search-binary.js +16 -14
  7. package/altitude-locator/adaptors.js +1 -0
  8. package/altitude-locator/keymethod.js +1 -0
  9. package/altitude-locator/plugin.js +345 -446
  10. package/altitude-locator/types.js +21 -26
  11. package/arrowfield/adaptor.js +11 -11
  12. package/arrowfield/index.js +3 -3
  13. package/arrowfield/plugin.js +83 -128
  14. package/bearing-line/index.js +2 -2
  15. package/bearing-line/plugin.js +444 -520
  16. package/circle-line-chain/chain-list-map.js +201 -221
  17. package/circle-line-chain/init.js +1 -0
  18. package/circle-line-chain/plugin.js +411 -464
  19. package/circle-line-chain/util.js +1 -1
  20. package/compass-rose/compass-rose-padding-flat.js +230 -274
  21. package/compass-rose/compass-text-writer.js +149 -173
  22. package/compass-rose/index.js +3 -3
  23. package/compassrose/compassrose.js +293 -341
  24. package/compassrose/index.js +2 -2
  25. package/constants.js +3 -0
  26. package/heatwave/index.js +3 -4
  27. package/heatwave/isobar/objectarraylabels.js +200 -247
  28. package/heatwave/isobar/plugin.js +302 -339
  29. package/heatwave/isobar/quadtreecontours.js +298 -336
  30. package/heatwave/plugins/heatwaveglobeshell.js +204 -259
  31. package/index.js +12 -15
  32. package/jest.config.js +7 -6
  33. package/package.json +1 -4
  34. package/partialrings/buffer-manager.js +75 -89
  35. package/partialrings/index.js +2 -3
  36. package/partialrings/plugin.js +128 -160
  37. package/partialrings/program.js +188 -233
  38. package/pin/pin-object-array.js +300 -381
  39. package/pin/pin-point-totem.js +60 -77
  40. package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +63 -78
  41. package/point-heat-map/index.js +1 -0
  42. package/point-heat-map/plugin-webworker.js +121 -148
  43. package/point-heat-map/point-to-heat-map-flow.js +124 -150
  44. package/point-tracks/key-methods.js +2 -3
  45. package/point-tracks/plugin.js +393 -480
  46. package/programs/arrowfield/index.js +2 -2
  47. package/programs/arrowfield/logic.js +141 -173
  48. package/programs/arrowfield/object.js +60 -89
  49. package/programs/data2legend/density-to-legend.js +73 -90
  50. package/programs/data2legend/point-to-density-texture.js +70 -87
  51. package/programs/float2legendwithratio/index.js +2 -3
  52. package/programs/float2legendwithratio/logic.js +118 -144
  53. package/programs/float2legendwithratio/object.js +104 -141
  54. package/programs/globe-util/is-globe-moved.js +19 -27
  55. package/programs/globeshell/index.js +2 -2
  56. package/programs/globeshell/wiggle/index.js +2 -3
  57. package/programs/globeshell/wiggle/logic.js +243 -272
  58. package/programs/globeshell/wiggle/object.js +66 -93
  59. package/programs/helpers/blender/index.js +1 -0
  60. package/programs/helpers/blender/program.js +58 -73
  61. package/programs/helpers/fadeaway/index.js +2 -3
  62. package/programs/helpers/fadeaway/logic.js +46 -53
  63. package/programs/helpers/fadeaway/object.js +14 -20
  64. package/programs/helpers/index.js +2 -2
  65. package/programs/index.js +9 -21
  66. package/programs/line-on-globe/circle-accurate-3d.js +87 -115
  67. package/programs/line-on-globe/circle-accurate-flat.js +149 -201
  68. package/programs/line-on-globe/degree-padding-around-circle-3d.js +104 -136
  69. package/programs/line-on-globe/index.js +1 -0
  70. package/programs/line-on-globe/lines-color-instanced-flat.js +83 -102
  71. package/programs/line-on-globe/util.js +5 -8
  72. package/programs/picking/pickable-polygon-renderer.js +98 -129
  73. package/programs/picking/pickable-renderer.js +98 -129
  74. package/programs/point-on-globe/element-globe-surface-glow.js +93 -122
  75. package/programs/point-on-globe/element-point-glow.js +80 -114
  76. package/programs/point-on-globe/square-pixel-point.js +120 -138
  77. package/programs/rings/distancering/circleflatprogram.js +116 -138
  78. package/programs/rings/distancering/circlepaddingfreeangleprogram.js +275 -323
  79. package/programs/rings/distancering/circlepaddysharedbuffer.js +368 -423
  80. package/programs/rings/distancering/index.js +6 -5
  81. package/programs/rings/distancering/paddyflatprogram.js +127 -148
  82. package/programs/rings/distancering/paddyflatprogram2d.js +129 -153
  83. package/programs/rings/distancering/paddyflatprogram3d.js +128 -149
  84. package/programs/rings/index.js +1 -1
  85. package/{dist/programs → programs}/totems/camerauniformblock.js +10 -3
  86. package/programs/totems/gpu-selection-uniform-block.js +99 -127
  87. package/programs/two-d/pixel-circle.js +1 -0
  88. package/programs/two-d/pixel-padding-for-compass.js +97 -112
  89. package/programs/util.js +14 -19
  90. package/programs/vectorfields/index.js +3 -3
  91. package/programs/vectorfields/logics/drawrectangleparticles.js +58 -78
  92. package/programs/vectorfields/logics/index.js +2 -4
  93. package/programs/vectorfields/logics/pixelbased.js +73 -92
  94. package/programs/vectorfields/logics/ubo.js +51 -57
  95. package/programs/vectorfields/pingpongbuffermanager.js +73 -80
  96. package/rangerings/index.js +5 -5
  97. package/rangerings/plugin.js +543 -644
  98. package/rangerings/rangeringangletext.js +326 -369
  99. package/rangerings/ring-account.js +112 -129
  100. package/shaders/fragment-toy/firework.js +1 -1
  101. package/shaders/fragment-toy/singularity.js +2 -5
  102. package/timetracks/adaptors-line-strip.js +65 -80
  103. package/timetracks/index.js +1 -0
  104. package/timetracks/plugin-line-strip.js +240 -295
  105. package/timetracks/program-line-strip.js +411 -491
  106. package/timetracks/programpoint-line-strip.js +98 -122
  107. package/util/account/bufferoffsetmanager.js +176 -209
  108. package/util/account/index.js +3 -6
  109. package/util/account/util.js +18 -22
  110. package/util/algorithms/index.js +1 -0
  111. package/util/algorithms/search-binary.js +25 -26
  112. package/util/check/index.js +1 -0
  113. package/util/geometry/index.js +121 -0
  114. package/util/gl-util/uniform-block/shader.js +1 -0
  115. package/util/heatwavedatamanager/datamanager.js +149 -168
  116. package/util/heatwavedatamanager/index.js +2 -2
  117. package/util/index.js +13 -13
  118. package/util/interpolation/index.js +1 -0
  119. package/util/interpolation/timetrack/index.js +2 -9
  120. package/util/interpolation/timetrack/timetrack-interpolator.js +79 -94
  121. package/util/interpolation/timetrack/web-worker.js +46 -51
  122. package/util/jshelpers/data-filler.js +17 -19
  123. package/util/jshelpers/equality.js +18 -17
  124. package/util/jshelpers/index.js +2 -1
  125. package/util/jshelpers/timefilters.js +30 -32
  126. package/util/picking/fence.js +43 -46
  127. package/util/picking/picker-displayer.js +136 -177
  128. package/util/programs/draw-texture-on-canvas.js +66 -82
  129. package/util/programs/index.js +1 -1
  130. package/util/programs/shapesonglobe.js +167 -203
  131. package/util/programs/supersampletotextures.js +99 -132
  132. package/util/programs/texturetoglobe.js +128 -152
  133. package/util/shaderfunctions/index.js +2 -2
  134. package/util/shaderfunctions/nodata.js +2 -4
  135. package/util/shaderfunctions/noisefunctions.js +7 -10
  136. package/util/surface-line-data/arcs-to-cuts.js +50 -74
  137. package/util/surface-line-data/cut-arc.js +1 -0
  138. package/util/surface-line-data/rbush-manager.js +1 -0
  139. package/util/surface-line-data/web-worker.js +1 -0
  140. package/util/webglobe/gldefaultstates.js +4 -5
  141. package/util/webglobe/index.js +2 -2
  142. package/util/webglobe/rasteroverlay.js +75 -96
  143. package/waveparticles/adaptor.js +15 -16
  144. package/waveparticles/index.js +3 -3
  145. package/waveparticles/plugin.js +290 -342
  146. package/wind/imagetovectorfieldandmagnitude.js +56 -71
  147. package/wind/index.js +5 -5
  148. package/wind/plugin.js +670 -845
  149. package/wind/vectorfieldimage.js +23 -27
  150. package/write-text/attached-text-writer.js +87 -105
  151. package/{dist/write-text → write-text}/context-text-bulk.js +28 -15
  152. package/write-text/context-text.js +94 -125
  153. package/write-text/context-text3old.js +152 -179
  154. package/write-text/index.js +1 -1
  155. package/write-text/writer-plugin.js +8 -7
  156. package/Math/arc-cdf-points.ts +0 -329
  157. package/Math/arc-generate-points-exponantial.ts +0 -299
  158. package/Math/arc.ts +0 -299
  159. package/Math/circle-cdf-points.ts +0 -143
  160. package/Math/circle.ts +0 -49
  161. package/Math/constants.ts +0 -12
  162. package/Math/juction/arc-plane.ts +0 -129
  163. package/Math/juction/line-sphere.ts +0 -30
  164. package/Math/juction/plane-plane.ts +0 -64
  165. package/Math/line.ts +0 -84
  166. package/Math/matrix4.ts +0 -0
  167. package/Math/methods.ts +0 -157
  168. package/Math/plane.ts +0 -92
  169. package/Math/quaternion.ts +0 -128
  170. package/Math/roadmap.md +0 -10
  171. package/Math/templete-shapes/grid-visually-equal.ts +0 -119
  172. package/Math/types.ts +0 -66
  173. package/Math/vec3.ts +0 -180
  174. package/circle-line-chain/readme.md +0 -57
  175. package/depth-locator/readme.md +0 -26
  176. package/dist/Math/angle-calculation.js +0 -13
  177. package/dist/Math/bounds/line-bbox.js +0 -186
  178. package/dist/Math/index.js +0 -1
  179. package/dist/Math/mesh/mapbox-delaunay.js +0 -544
  180. package/dist/Math/utils.js +0 -2
  181. package/dist/algorithms/search-binary.js +0 -16
  182. package/dist/altitude-locator/adaptors.js +0 -1
  183. package/dist/altitude-locator/keymethod.js +0 -1
  184. package/dist/altitude-locator/plugin.js +0 -345
  185. package/dist/altitude-locator/types.js +0 -21
  186. package/dist/arrowfield/adaptor.js +0 -11
  187. package/dist/arrowfield/index.js +0 -3
  188. package/dist/arrowfield/plugin.js +0 -83
  189. package/dist/bearing-line/index.js +0 -2
  190. package/dist/bearing-line/plugin.js +0 -444
  191. package/dist/circle-line-chain/chain-list-map.js +0 -201
  192. package/dist/circle-line-chain/init.js +0 -1
  193. package/dist/circle-line-chain/plugin.js +0 -411
  194. package/dist/circle-line-chain/util.js +0 -1
  195. package/dist/compass-rose/compass-rose-padding-flat.js +0 -230
  196. package/dist/compass-rose/compass-text-writer.js +0 -149
  197. package/dist/compass-rose/index.js +0 -3
  198. package/dist/compassrose/compassrose.js +0 -293
  199. package/dist/compassrose/index.js +0 -2
  200. package/dist/heatwave/index.js +0 -3
  201. package/dist/heatwave/isobar/objectarraylabels.js +0 -200
  202. package/dist/heatwave/isobar/plugin.js +0 -302
  203. package/dist/heatwave/isobar/quadtreecontours.js +0 -298
  204. package/dist/heatwave/plugins/heatwaveglobeshell.js +0 -204
  205. package/dist/index.js +0 -12
  206. package/dist/jest.config.js +0 -7
  207. package/dist/partialrings/buffer-manager.js +0 -75
  208. package/dist/partialrings/index.js +0 -2
  209. package/dist/partialrings/plugin.js +0 -128
  210. package/dist/partialrings/program.js +0 -279
  211. package/dist/pin/pin-object-array.js +0 -300
  212. package/dist/pin/pin-point-totem.js +0 -60
  213. package/dist/point-heat-map/adaptors/timetracksplugin-format-to-this.js +0 -63
  214. package/dist/point-heat-map/index.js +0 -1
  215. package/dist/point-heat-map/plugin-webworker.js +0 -121
  216. package/dist/point-heat-map/point-to-heat-map-flow.js +0 -124
  217. package/dist/point-tracks/key-methods.js +0 -2
  218. package/dist/point-tracks/plugin.js +0 -393
  219. package/dist/programs/arrowfield/index.js +0 -2
  220. package/dist/programs/arrowfield/logic.js +0 -254
  221. package/dist/programs/arrowfield/object.js +0 -60
  222. package/dist/programs/data2legend/density-to-legend.js +0 -98
  223. package/dist/programs/data2legend/point-to-density-texture.js +0 -97
  224. package/dist/programs/float2legendwithratio/index.js +0 -2
  225. package/dist/programs/float2legendwithratio/logic.js +0 -167
  226. package/dist/programs/float2legendwithratio/object.js +0 -104
  227. package/dist/programs/globe-util/is-globe-moved.js +0 -19
  228. package/dist/programs/globeshell/index.js +0 -2
  229. package/dist/programs/globeshell/wiggle/index.js +0 -2
  230. package/dist/programs/globeshell/wiggle/logic.js +0 -342
  231. package/dist/programs/globeshell/wiggle/object.js +0 -66
  232. package/dist/programs/helpers/blender/index.js +0 -1
  233. package/dist/programs/helpers/blender/program.js +0 -76
  234. package/dist/programs/helpers/fadeaway/index.js +0 -2
  235. package/dist/programs/helpers/fadeaway/logic.js +0 -69
  236. package/dist/programs/helpers/fadeaway/object.js +0 -14
  237. package/dist/programs/helpers/index.js +0 -2
  238. package/dist/programs/index.js +0 -9
  239. package/dist/programs/line-on-globe/circle-accurate-3d.js +0 -138
  240. package/dist/programs/line-on-globe/circle-accurate-flat.js +0 -210
  241. package/dist/programs/line-on-globe/degree-padding-around-circle-3d.js +0 -156
  242. package/dist/programs/line-on-globe/index.js +0 -1
  243. package/dist/programs/line-on-globe/lines-color-instanced-flat.js +0 -131
  244. package/dist/programs/line-on-globe/util.js +0 -5
  245. package/dist/programs/picking/pickable-polygon-renderer.js +0 -184
  246. package/dist/programs/picking/pickable-renderer.js +0 -184
  247. package/dist/programs/point-on-globe/element-globe-surface-glow.js +0 -138
  248. package/dist/programs/point-on-globe/element-point-glow.js +0 -150
  249. package/dist/programs/point-on-globe/square-pixel-point.js +0 -171
  250. package/dist/programs/rings/distancering/circleflatprogram.js +0 -116
  251. package/dist/programs/rings/distancering/circlepaddingfreeangleprogram.js +0 -326
  252. package/dist/programs/rings/distancering/circlepaddysharedbuffer.js +0 -368
  253. package/dist/programs/rings/distancering/index.js +0 -6
  254. package/dist/programs/rings/distancering/paddyflatprogram.js +0 -127
  255. package/dist/programs/rings/distancering/paddyflatprogram2d.js +0 -129
  256. package/dist/programs/rings/distancering/paddyflatprogram3d.js +0 -128
  257. package/dist/programs/rings/index.js +0 -1
  258. package/dist/programs/totems/gpu-selection-uniform-block.js +0 -104
  259. package/dist/programs/two-d/pixel-circle.js +0 -1
  260. package/dist/programs/two-d/pixel-padding-for-compass.js +0 -159
  261. package/dist/programs/util.js +0 -14
  262. package/dist/programs/vectorfields/index.js +0 -3
  263. package/dist/programs/vectorfields/logics/drawrectangleparticles.js +0 -113
  264. package/dist/programs/vectorfields/logics/index.js +0 -2
  265. package/dist/programs/vectorfields/logics/pixelbased.js +0 -140
  266. package/dist/programs/vectorfields/logics/ubo.js +0 -60
  267. package/dist/programs/vectorfields/pingpongbuffermanager.js +0 -73
  268. package/dist/rangerings/index.js +0 -5
  269. package/dist/rangerings/plugin.js +0 -543
  270. package/dist/rangerings/rangeringangletext.js +0 -326
  271. package/dist/rangerings/ring-account.js +0 -112
  272. package/dist/shaders/fragment-toy/firework.js +0 -55
  273. package/dist/shaders/fragment-toy/singularity.js +0 -56
  274. package/dist/timetracks/adaptors-line-strip.js +0 -65
  275. package/dist/timetracks/index.js +0 -1
  276. package/dist/timetracks/plugin-line-strip.js +0 -240
  277. package/dist/timetracks/program-line-strip.js +0 -608
  278. package/dist/timetracks/programpoint-line-strip.js +0 -151
  279. package/dist/util/account/bufferoffsetmanager.js +0 -176
  280. package/dist/util/account/index.js +0 -3
  281. package/dist/util/account/util.js +0 -18
  282. package/dist/util/algorithms/index.js +0 -1
  283. package/dist/util/algorithms/search-binary.js +0 -25
  284. package/dist/util/check/index.js +0 -1
  285. package/dist/util/geometry/index.js +0 -47
  286. package/dist/util/gl-util/uniform-block/shader.js +0 -1
  287. package/dist/util/heatwavedatamanager/datamanager.js +0 -149
  288. package/dist/util/heatwavedatamanager/index.js +0 -2
  289. package/dist/util/index.js +0 -13
  290. package/dist/util/interpolation/index.js +0 -1
  291. package/dist/util/interpolation/timetrack/index.js +0 -2
  292. package/dist/util/interpolation/timetrack/timetrack-interpolator.js +0 -79
  293. package/dist/util/interpolation/timetrack/web-worker.js +0 -46
  294. package/dist/util/jshelpers/data-filler.js +0 -17
  295. package/dist/util/jshelpers/equality.js +0 -18
  296. package/dist/util/jshelpers/index.js +0 -2
  297. package/dist/util/jshelpers/timefilters.js +0 -30
  298. package/dist/util/picking/fence.js +0 -43
  299. package/dist/util/picking/picker-displayer.js +0 -136
  300. package/dist/util/programs/draw-texture-on-canvas.js +0 -86
  301. package/dist/util/programs/index.js +0 -1
  302. package/dist/util/programs/shapesonglobe.js +0 -210
  303. package/dist/util/programs/supersampletotextures.js +0 -109
  304. package/dist/util/programs/texturetoglobe.js +0 -179
  305. package/dist/util/shaderfunctions/index.js +0 -2
  306. package/dist/util/shaderfunctions/nodata.js +0 -8
  307. package/dist/util/shaderfunctions/noisefunctions.js +0 -41
  308. package/dist/util/surface-line-data/arcs-to-cuts.js +0 -50
  309. package/dist/util/surface-line-data/cut-arc.js +0 -1
  310. package/dist/util/surface-line-data/rbush-manager.js +0 -1
  311. package/dist/util/surface-line-data/web-worker.js +0 -1
  312. package/dist/util/webglobe/gldefaultstates.js +0 -4
  313. package/dist/util/webglobe/index.js +0 -2
  314. package/dist/util/webglobe/rasteroverlay.js +0 -75
  315. package/dist/waveparticles/adaptor.js +0 -15
  316. package/dist/waveparticles/index.js +0 -3
  317. package/dist/waveparticles/plugin.js +0 -290
  318. package/dist/wind/imagetovectorfieldandmagnitude.js +0 -56
  319. package/dist/wind/index.js +0 -5
  320. package/dist/wind/plugin.js +0 -921
  321. package/dist/wind/vectorfieldimage.js +0 -23
  322. package/dist/write-text/attached-text-writer.js +0 -87
  323. package/dist/write-text/context-text.js +0 -94
  324. package/dist/write-text/context-text3old.js +0 -152
  325. package/dist/write-text/index.js +0 -1
  326. package/dist/write-text/writer-plugin.js +0 -8
  327. package/partialrings/goals.md +0 -17
  328. package/point-heat-map/readme.md +0 -15
  329. package/programs/line-on-globe/linestrip/data.ts +0 -29
  330. package/programs/line-on-globe/linestrip/linestrip.ts +0 -201
  331. package/programs/line-on-globe/naive-accurate-flexible.ts +0 -258
  332. package/programs/polygon-on-globe/texture-dem-triangle-test-plugin.ts +0 -120
  333. package/programs/polygon-on-globe/texture-dem-triangles.ts +0 -207
  334. package/programs/programcache.ts +0 -131
  335. package/programs/rings/partial-ring/piece-of-pie.ts +0 -323
  336. package/programs/totems/camerauniformblock.ts +0 -310
  337. package/programs/totems/canvas-webglobe-info.ts +0 -156
  338. package/programs/totems/globe-changes.ts +0 -79
  339. package/programs/totems/index.ts +0 -2
  340. package/programs/vectorfields/logics/constants.ts +0 -5
  341. package/programs/vectorfields/logics/ubo-new.ts +0 -37
  342. package/publish.bat +0 -62
  343. package/range-tools-on-terrain/bearing-line/adapters.ts +0 -154
  344. package/range-tools-on-terrain/bearing-line/plugin.ts +0 -569
  345. package/range-tools-on-terrain/bearing-line/types.ts +0 -65
  346. package/range-tools-on-terrain/circle-line-chain/adapters.ts +0 -109
  347. package/range-tools-on-terrain/circle-line-chain/chain-list-map.ts +0 -446
  348. package/range-tools-on-terrain/circle-line-chain/plugin.ts +0 -607
  349. package/range-tools-on-terrain/circle-line-chain/types.ts +0 -43
  350. package/range-tools-on-terrain/range-ring/adapters.ts +0 -114
  351. package/range-tools-on-terrain/range-ring/enum.ts +0 -2
  352. package/range-tools-on-terrain/range-ring/plugin.ts +0 -447
  353. package/range-tools-on-terrain/range-ring/rangeringangletext.ts +0 -396
  354. package/range-tools-on-terrain/range-ring/types.ts +0 -30
  355. package/rangerings/enum.ts +0 -2
  356. package/semiplugins/interface.ts +0 -14
  357. package/semiplugins/lightweight/line-plugin.ts +0 -343
  358. package/semiplugins/lightweight/piece-of-pie-plugin.ts +0 -275
  359. package/semiplugins/shape-on-terrain/arc-plugin.ts +0 -602
  360. package/semiplugins/shape-on-terrain/circle-plugin.ts +0 -588
  361. package/semiplugins/shape-on-terrain/goal.md +0 -12
  362. package/semiplugins/shape-on-terrain/padding-1-degree.ts +0 -714
  363. package/semiplugins/shape-on-terrain/terrain-cover/notes.md +0 -90
  364. package/semiplugins/shape-on-terrain/terrain-cover/texture-dem-cover.ts +0 -0
  365. package/semiplugins/type.ts +0 -8
  366. package/tests/Math/arc-sampling-test.js +0 -367
  367. package/tests/Math/arc-sampling-test.ts +0 -429
  368. package/tests/Math/arc.test.ts +0 -102
  369. package/tests/Math/junction/arc-plane.test.ts +0 -163
  370. package/tests/Math/junction/plane-plane.test.ts +0 -91
  371. package/tests/Math/plane-test.ts +0 -17
  372. package/tests/Math/plane.test.ts +0 -43
  373. package/tests/Math/vec3.test.ts +0 -14
  374. package/timetracks/readme.md +0 -1
  375. package/tsconfig.json +0 -22
  376. package/types.ts +0 -265
  377. package/util/account/create-buffermap-orchastration.ts +0 -85
  378. package/util/account/single-attribute-buffer-management/buffer-manager.ts +0 -149
  379. package/util/account/single-attribute-buffer-management/buffer-orchestrator.ts +0 -332
  380. package/util/account/single-attribute-buffer-management/buffer-orchestrator1.ts +0 -184
  381. package/util/account/single-attribute-buffer-management/index.ts +0 -11
  382. package/util/account/single-attribute-buffer-management/object-store.ts +0 -76
  383. package/util/account/single-attribute-buffer-management/types.ts +0 -43
  384. package/util/build-strategy/general-strategy.ts +0 -99
  385. package/util/build-strategy/static-dynamic.ts +0 -50
  386. package/util/check/typecheck.ts +0 -74
  387. package/util/frame-counter-trigger.ts +0 -99
  388. package/util/geometry/index.ts +0 -64
  389. package/util/gl-util/buffer/attribute-loader.ts +0 -84
  390. package/util/gl-util/buffer/index.ts +0 -6
  391. package/util/gl-util/draw-options/methods.ts +0 -47
  392. package/util/gl-util/uniform-block/manager.ts +0 -210
  393. package/util/gl-util/uniform-block/roadmap.md +0 -70
  394. package/util/gl-util/uniform-block/types.ts +0 -20
  395. package/util/heatwavedatamanager/pointcoordsmeta.ts +0 -28
  396. package/util/heatwavedatamanager/texture-point-sampler.ts +0 -198
  397. package/util/shaderfunctions/geometrytransformations.ts +0 -388
  398. package/util/surface-line-data/arc-bboxes.ts +0 -42
  399. package/util/surface-line-data/flow.ts +0 -52
  400. package/util/surface-line-data/types.ts +0 -27
  401. package/util/webglobjectbuilders.ts +0 -446
  402. package/write-text/context-text-bulk.ts +0 -268
  403. package/write-text/context-text3.ts +0 -253
  404. package/write-text/context-text4.ts +0 -243
  405. /package/{dist/Math → Math}/arc-cdf-points.js +0 -0
  406. /package/{dist/Math → Math}/arc-generate-points-exponantial.js +0 -0
  407. /package/{dist/Math → Math}/arc.js +0 -0
  408. /package/{dist/Math → Math}/circle-cdf-points.js +0 -0
  409. /package/{dist/Math → Math}/circle.js +0 -0
  410. /package/{dist/Math → Math}/constants.js +0 -0
  411. /package/{dist/Math → Math}/juction/arc-plane.js +0 -0
  412. /package/{dist/Math → Math}/juction/line-sphere.js +0 -0
  413. /package/{dist/Math → Math}/juction/plane-plane.js +0 -0
  414. /package/{dist/Math → Math}/line.js +0 -0
  415. /package/{dist/Math → Math}/matrix4.js +0 -0
  416. /package/{dist/Math → Math}/methods.js +0 -0
  417. /package/{dist/Math → Math}/plane.js +0 -0
  418. /package/{dist/Math → Math}/quaternion.js +0 -0
  419. /package/{dist/Math → Math}/templete-shapes/grid-visually-equal.js +0 -0
  420. /package/{dist/Math → Math}/types.js +0 -0
  421. /package/{dist/Math → Math}/vec3.js +0 -0
  422. /package/{dist/programs → programs}/line-on-globe/linestrip/data.js +0 -0
  423. /package/{dist/programs → programs}/line-on-globe/linestrip/linestrip.js +0 -0
  424. /package/{dist/programs → programs}/line-on-globe/naive-accurate-flexible.js +0 -0
  425. /package/{dist/programs → programs}/polygon-on-globe/texture-dem-triangle-test-plugin.js +0 -0
  426. /package/{dist/programs → programs}/polygon-on-globe/texture-dem-triangles.js +0 -0
  427. /package/{dist/programs → programs}/programcache.js +0 -0
  428. /package/{dist/programs → programs}/rings/partial-ring/piece-of-pie.js +0 -0
  429. /package/{dist/programs → programs}/totems/canvas-webglobe-info.js +0 -0
  430. /package/{dist/programs → programs}/totems/globe-changes.js +0 -0
  431. /package/{dist/programs → programs}/totems/index.js +0 -0
  432. /package/{dist/programs → programs}/vectorfields/logics/constants.js +0 -0
  433. /package/{dist/programs → programs}/vectorfields/logics/ubo-new.js +0 -0
  434. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/bearing-line/adapters.js +0 -0
  435. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/bearing-line/plugin.js +0 -0
  436. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/bearing-line/types.js +0 -0
  437. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/circle-line-chain/adapters.js +0 -0
  438. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/circle-line-chain/chain-list-map.js +0 -0
  439. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/circle-line-chain/plugin.js +0 -0
  440. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/circle-line-chain/types.js +0 -0
  441. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/range-ring/adapters.js +0 -0
  442. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/range-ring/enum.js +0 -0
  443. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/range-ring/plugin.js +0 -0
  444. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/range-ring/rangeringangletext.js +0 -0
  445. /package/{dist/range-tools-on-terrain → range-tools-on-terrain}/range-ring/types.js +0 -0
  446. /package/{dist/rangerings → rangerings}/enum.js +0 -0
  447. /package/{dist/semiplugins → semiplugins}/interface.js +0 -0
  448. /package/{dist/semiplugins → semiplugins}/lightweight/line-plugin.js +0 -0
  449. /package/{dist/semiplugins → semiplugins}/lightweight/piece-of-pie-plugin.js +0 -0
  450. /package/{dist/semiplugins → semiplugins}/shape-on-terrain/arc-plugin.js +0 -0
  451. /package/{dist/semiplugins → semiplugins}/shape-on-terrain/circle-plugin.js +0 -0
  452. /package/{dist/semiplugins → semiplugins}/shape-on-terrain/padding-1-degree.js +0 -0
  453. /package/{dist/semiplugins → semiplugins}/shape-on-terrain/terrain-cover/texture-dem-cover.js +0 -0
  454. /package/{dist/semiplugins → semiplugins}/type.js +0 -0
  455. /package/{dist/types.js → types.js} +0 -0
  456. /package/{dist/util → util}/account/create-buffermap-orchastration.js +0 -0
  457. /package/{dist/util → util}/account/single-attribute-buffer-management/buffer-manager.js +0 -0
  458. /package/{dist/util → util}/account/single-attribute-buffer-management/buffer-orchestrator.js +0 -0
  459. /package/{dist/util → util}/account/single-attribute-buffer-management/buffer-orchestrator1.js +0 -0
  460. /package/{dist/util → util}/account/single-attribute-buffer-management/index.js +0 -0
  461. /package/{dist/util → util}/account/single-attribute-buffer-management/object-store.js +0 -0
  462. /package/{dist/util → util}/account/single-attribute-buffer-management/types.js +0 -0
  463. /package/{dist/util → util}/build-strategy/general-strategy.js +0 -0
  464. /package/{dist/util → util}/build-strategy/static-dynamic.js +0 -0
  465. /package/{dist/util → util}/check/typecheck.js +0 -0
  466. /package/{dist/util → util}/frame-counter-trigger.js +0 -0
  467. /package/{dist/util → util}/gl-util/buffer/attribute-loader.js +0 -0
  468. /package/{dist/util → util}/gl-util/buffer/index.js +0 -0
  469. /package/{dist/util → util}/gl-util/draw-options/methods.js +0 -0
  470. /package/{dist/util → util}/gl-util/uniform-block/manager.js +0 -0
  471. /package/{dist/util → util}/gl-util/uniform-block/types.js +0 -0
  472. /package/{dist/util → util}/heatwavedatamanager/pointcoordsmeta.js +0 -0
  473. /package/{dist/util → util}/heatwavedatamanager/texture-point-sampler.js +0 -0
  474. /package/{dist/util → util}/shaderfunctions/geometrytransformations.js +0 -0
  475. /package/{dist/util → util}/surface-line-data/arc-bboxes.js +0 -0
  476. /package/{dist/util → util}/surface-line-data/flow.js +0 -0
  477. /package/{dist/util → util}/surface-line-data/types.js +0 -0
  478. /package/{dist/util → util}/webglobjectbuilders.js +0 -0
  479. /package/{dist/write-text → write-text}/context-text3.js +0 -0
  480. /package/{dist/write-text → write-text}/context-text4.js +0 -0
@@ -1,388 +0,0 @@
1
- // Z in kolometers
2
- //
3
-
4
-
5
-
6
- export const POLE = `
7
- #ifndef POLE
8
- #define POLE 20037508.34
9
- #endif
10
- `;
11
-
12
- export const R = `
13
- #ifndef R
14
- #define R 6378137.0
15
- #endif
16
- `;
17
-
18
- export const PI = `
19
- #ifndef PI
20
- #define PI 3.141592653589793
21
-
22
- #endif
23
- `;
24
-
25
- export const POLE_BY_PI = `
26
- #ifndef POLE_BY_PI
27
- #define POLE_BY_PI 6378137.0
28
- #endif
29
- `;
30
-
31
- export const R_3D = `
32
- #ifndef R_3D
33
- #define R_3D 6378.137
34
- #endif
35
- `;
36
-
37
- export const pixelXYToCartesian3DPoint = R_3D + PI + `
38
- vec3 pixelXYToCartesian3DPoint( vec3 position) {
39
- float longRad = PI * (2.0 * position.x - 1.0);
40
- float latRad = PI * position.y;
41
- float radius = R_3D + position.z;
42
- float x = radius * sin(latRad) * cos(longRad);
43
- float y = radius * sin(latRad) * sin(longRad);
44
- float z = radius * cos(latRad);
45
- return vec3(x, y, z);
46
- }
47
- `;
48
-
49
- export const pixelXYToCartesian2DPoint = PI + POLE + POLE_BY_PI + `
50
- vec2 pixelXYToCartesian2DPoint( vec2 position, vec2 translate, vec2 mapWH, vec2 screenWH) {
51
- float x = (2.0 * position.x - 1.0) * POLE;
52
- x = ((x - translate.x) / mapWH.x) * screenWH.x;
53
- float y = log( tan( ( 1.0 - position.y ) * PI / 2.0 ) ) * POLE_BY_PI;
54
- y = (1.0 - (y - translate.y) / mapWH.y) * screenWH.y;
55
- return vec2(x, y);
56
- }
57
- `;
58
-
59
- // TODO: rename it to mercatorXYToGLPosition
60
- export const mercatorXYToGLPosition = `
61
- vec4 mercatorXYToGLPosition( vec2 position) { // projection, translate, mapWH, screenWH comes from camera uniform block
62
- float x = (( position.x - translate.x ) / mapWH.x) * screenWH.x;
63
- float y = (1.0 - (position.y - translate.y) / mapWH.y) * screenWH.y;
64
- return projection * vec4(x, y, 0.0, 1.0);
65
- }
66
- `;
67
-
68
- export const cartesian3DToGLPosition = `
69
- vec4 cartesian3DToGLPosition( vec3 position) {
70
- return projection * view * vec4(position - translate, 1.0);
71
- }
72
- `
73
-
74
-
75
- // pi / pole = 2 / R
76
-
77
- export const longLatRadToMercator = R + PI + `
78
- vec2 longLatRadToMercator( vec2 longLatRad) {
79
- float x = R * longLatRad.x;
80
- float y = R * log( tan( PI / 4.0 + longLatRad.y / 2.0 ) );
81
- y -= mix(-60.0, 60.0, abs(longLatRad.y + PI / 8.0) / (PI / 4.0));
82
- return vec2(x, y);
83
- }
84
- `;
85
-
86
-
87
- export const longLatRadToCartesian3D = R_3D + `
88
- vec3 longLatRadToCartesian3D( vec2 longLat) {
89
- float x = R_3D * cos(longLat.y) * cos(longLat.x);
90
- float y = R_3D * cos(longLat.y) * sin(longLat.x);
91
- float z = R_3D * sin(longLat.y);
92
- return vec3(x, y, z);
93
- }
94
- `;
95
-
96
- export const longLatRadToCartesian3DWithR = `
97
- vec3 longLatRadToCartesian3DWithR( vec2 longLat, float radius) {
98
- float x = radius * cos(longLat.y) * cos(longLat.x);
99
- float y = radius * cos(longLat.y) * sin(longLat.x);
100
- float z = radius * sin(longLat.y);
101
- return vec3(x, y, z);
102
- }
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 + `
107
- vec3 circleLimpFromLongLatRadCenterCartesian3D( vec2 center, float radius, float angle) {
108
- vec3 geoW = longLatRadToCartesian3D(center);
109
- vec3 normal = normalize(geoW);
110
- vec3 tangent1 = cross(normal, vec3(0.0, 0.0, -1.0));
111
- if ( length(tangent1) < 0.1 ){ tangent1 = cross(normal, vec3(0.0, -1.0, 0.0)); }
112
- tangent1 = normalize(tangent1);
113
- // rotate tangent with given angle
114
- tangent1 = cos(angle) * tangent1 - sin(angle) * cross(normal, tangent1);
115
- float radius_in_angle = radius/R;
116
- float projected_radius = sin(radius_in_angle) * R / 1000.0;
117
- return (geoW * cos(radius_in_angle))+ tangent1 * projected_radius;
118
- }
119
- `;
120
-
121
-
122
-
123
- // TODO: Make it precise. Y axis is not correct.
124
-
125
- export const circleLimpFromLongLatRadCenterMercatorRealDistanceNew = PI + `
126
- vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radius, float angle) {
127
- float ang = angle + PI / 2.0; // Shift angle to align with +x axis
128
- float r = radius / R;
129
- float cos_r = cos(r);
130
- float sin_r = sin(r);
131
-
132
- float sin_lat = sin(center.y) * cos_r + cos(center.y) * sin_r * cos(ang);
133
- float lat = asin(sin_lat);
134
-
135
- float delta_long = atan(sin(ang) * sin_r * cos(center.y), cos_r - sin(center.y) * sin_lat);
136
- float longi = center.x + delta_long;
137
-
138
-
139
- return vec2(
140
- R * longi,
141
- R * log(tan(PI / 4.0 + lat / 2.0))
142
- );
143
- }`;
144
-
145
-
146
- export const circleLimpFromLongLatRadCenterMercatorRealDistance = PI + `
147
- vec2 circleLimpFromLongLatRadCenterMercatorRealDistance(vec2 center, float radius, float angle){
148
- float ang = angle + PI / 2.0; // this is there because the other methods are implemented in, angle 0 is +x axis orientatation
149
- float r = radius / R;
150
- float sin_lat = sin(center.y) * cos(r) + cos(center.y) * sin(r) * cos(ang);
151
- float lat = asin(sin_lat);
152
- float longi = center.x + atan(sin(ang) * sin(r) * cos(center.y), cos(r) - sin(center.y) * sin_lat);
153
- return longLatRadToMercator(vec2(longi, lat));
154
- }
155
- `;
156
-
157
- // TODO: reconstruct this function
158
- export const circleLimpFromLongLatRadCenterMercatorRealDistancePadding = `
159
- vec2 circleLimpFromLongLatRadCenterMercatorRealDistancePadding(vec2 center, float radius, float angle){
160
- float radius_radian = radius / R;
161
- float new_angle;
162
- if (angle != - 1.5707963267948966192313216916398) {
163
- float section = floor(angle / (PI / 2.0)) + 1.0;
164
- float lat = center.y - radius_radian * sin(angle);
165
- float scale = 1.0 / abs(cos(lat));
166
- new_angle = atan(tan(angle) * scale);
167
- if (section == 2.0) {
168
- new_angle = mod(new_angle, PI);
169
- } else if (section == 3.0) {
170
- new_angle = new_angle + PI;
171
- }
172
- } else {
173
- new_angle = angle;
174
- }
175
- float new_lat = center.y - radius_radian * sin(new_angle);
176
- float new_scale = 1.0 / abs(cos(new_lat));
177
-
178
- vec2 center_ = longLatRadToMercator(center);
179
- float x = center_.x + new_scale * radius * cos(new_angle);
180
- float y = center_.y - new_scale * radius * sin(new_angle);
181
- return vec2(x, y);
182
- }
183
- `
184
-
185
-
186
- export const circleLimpFromLongLatRadCenterMercatorCompass = `
187
- vec2 circleLimpFromLongLatRadCenterMercatorCompass(vec2 center, float radius, float angle){
188
- vec2 center_ = longLatRadToMercator(center);
189
- float y = -sin(angle) * radius + center_.y;
190
- float x = cos(angle) * radius + center_.x;
191
- return vec2(x, y);
192
- } `;
193
-
194
-
195
- // Function to convert Cartesian coordinates back to spherical (latitude, longitude)
196
- export const cartesianToSpherical = `
197
- vec2 cartesianToSpherical(vec3 point) {
198
- float lat = degrees(asin(point.z)); // Latitude
199
- float lon = degrees(atan(point.y, point.x)); // Longitude
200
-
201
- return vec2(lat, lon);
202
- } `;
203
-
204
- // Main function to calculate an intermediate point
205
-
206
-
207
-
208
- export const angleBetweenTwoPointsRadian = `
209
- float angleBetweenTwoPointsRadian(vec2 start_, vec2 end_) {
210
- float start_lat = log(tan((1.0 - start_.y) * PI / 2.0));
211
- float end_lat = log(tan((1.0 - end_.y) * PI / 2.0));
212
- float angle = atan((end_lat - start_lat) / (end_.x - start_.x));
213
- return angle;
214
- }
215
- `
216
-
217
- export const circleCircumferenceInterPolationOf2PointsRadian = `
218
- float circleCircumferenceInterPolationOf2PointsRadian(vec2 center, vec2 target, float bearing_angle, float ratio) {
219
- vec2 t = target - center;
220
- float mainAngle = atan(t.x, t.y);
221
- float angle = mainAngle - * ratio;
222
- return angle;
223
- }
224
- `
225
-
226
-
227
-
228
-
229
- export const realDistanceOnSphereR1 = `
230
- float realDistanceOnSphereR1(vec2 longLat1, vec2 longLat2) {
231
- float dLat = longLat2.y - longLat1.y;
232
- float dLong = longLat2.x - longLat1.x;
233
- float a = sin(dLat / 2.0) * sin(dLat / 2.0) + cos(longLat1.y) * cos(longLat2.y) * sin(dLong / 2.0) * sin(dLong / 2.0);
234
- float c = 2.0 * atan(sqrt(a), sqrt(1.0 - a));
235
- return c;
236
- }
237
- `;
238
-
239
-
240
-
241
- const pointsOnSphereBetween = `
242
- vec3 pointsOnSphereBetween(vec3 a, vec3 b, float ratio) {
243
- // Normalize the input points to ensure they are on the unit sphere
244
- a = normalize(a);
245
- b = normalize(b);
246
-
247
- // Compute the dot product and clamp it to avoid numerical issues
248
- // float dotProduct = clamp(dot(a, b), -1.0, 1.0);
249
-
250
- // Compute the angle between the points
251
- float theta = acos(dot(a, b));
252
-
253
- // Handle the edge case where the points are nearly identical
254
- if (theta < 0.0001) {
255
- return normalize(mix(a, b, ratio)); // Linear interpolation as fallback
256
- }
257
-
258
- // Compute the interpolated point using spherical linear interpolation (slerp)
259
- float sinTheta = sin(theta);
260
- float factorA = sin((1.0 - ratio) * theta) / sinTheta;
261
- float factorB = sin(ratio * theta) / sinTheta;
262
-
263
- vec3 result = factorA * a + factorB * b;
264
-
265
- // Return the normalized result to ensure it lies on the sphere
266
- return normalize(result);
267
- }`;
268
-
269
-
270
- const slerp = `
271
- ${pointsOnSphereBetween}
272
- vec3 slerp(vec3 A, vec3 B, float t) {
273
- return pointsOnSphereBetween(A, B, t) * mix(length(A), length(B), t);
274
- }
275
- `
276
-
277
- const circleLimpFromLongLatRadCenterCartesian3D_accurate = R + `
278
- vec3 circleLimpFromLongLatRadCenterCartesian3D_accurate( vec3 geoW, float radius, float angle) {
279
- vec3 normal = normalize(geoW);
280
- vec3 tangent1 = cross(normal, vec3(0.0, 0.0, -1.0));
281
- if ( length(tangent1) < 0.1 ){ tangent1 = cross(normal, vec3(0.0, -1.0, 0.0)); }
282
- tangent1 = normalize(tangent1);
283
- // rotate tangent with given angle
284
- tangent1 = cos(angle) * tangent1 - sin(angle) * cross(normal, tangent1);
285
- float radius_in_angle = radius/R;
286
- float projected_radius = sin(radius_in_angle) * R / 1000.0;
287
- return (geoW * cos(radius_in_angle)) + tangent1 * projected_radius;
288
- }`;
289
-
290
-
291
- const circleOnSphere = `
292
- vec3 rotateVectorAroundAxis(vec3 v, vec3 axis, float angle) {
293
- float c = cos(angle);
294
- float s = sin(angle);
295
- float t = 1.0 - c;
296
- vec3 normalizedAxis = normalize(axis); // Ensure axis is unit length
297
-
298
- return vec3(
299
- (t * normalizedAxis.x * normalizedAxis.x + c) * v.x +
300
- (t * normalizedAxis.x * normalizedAxis.y - s * normalizedAxis.z) * v.y +
301
- (t * normalizedAxis.x * normalizedAxis.z + s * normalizedAxis.y) * v.z,
302
-
303
- (t * normalizedAxis.x * normalizedAxis.y + s * normalizedAxis.z) * v.x +
304
- (t * normalizedAxis.y * normalizedAxis.y + c) * v.y +
305
- (t * normalizedAxis.y * normalizedAxis.z - s * normalizedAxis.x) * v.z,
306
-
307
- (t * normalizedAxis.x * normalizedAxis.z - s * normalizedAxis.y) * v.x +
308
- (t * normalizedAxis.y * normalizedAxis.z + s * normalizedAxis.x) * v.y +
309
- (t * normalizedAxis.z * normalizedAxis.z + c) * v.z
310
- );
311
-
312
- // Alternative, more compact way using cross and dot products:
313
- // vec3 crossProd = cross(normalizedAxis, v);
314
- // float dotProd = dot(normalizedAxis, v);
315
- // return v * c + crossProd * s + normalizedAxis * dotProd * t;
316
- }
317
-
318
- /**
319
- * @brief Calculates a point on a circle drawn on the surface of a sphere.
320
- * The sphere is assumed to be centered at the origin (0,0,0).
321
- * The circle's center on the sphere surface is M, and H is a starting point on the circle.
322
- * The function returns the point obtained by rotating H around the axis defined by M by angle A.
323
- *
324
- * @param M The center point of the circle on the sphere's surface. The vector from the origin to M defines the rotation axis.
325
- * @param H A starting point on the circle (also on the sphere's surface).
326
- * @param A The angle of rotation in radians. Use radians(degrees) if your input is in degrees.
327
- * @return A vec3 representing the calculated point on the sphere's surface.
328
- */
329
- vec3 circleOnSphere(vec3 M, vec3 H, float A) {
330
- // The rotation axis is the vector from the origin to the circle's center point M on the sphere.
331
- // This axis vector needs to be normalized for the rotation formula.
332
- vec3 rotationAxis = normalize(M);
333
-
334
- // Rotate the starting point H around the rotation axis by angle A.
335
- vec3 rotatedPoint = rotateVectorAroundAxis(H, rotationAxis, A);
336
-
337
- // Optional but recommended: Re-normalize the result to ensure it stays exactly on the sphere's surface,
338
- // counteracting potential floating-point inaccuracies, especially if the original sphere radius was 1.
339
- // If the sphere has a different radius R, you might want to normalize and multiply by R:
340
- // float radius = length(M); // Assuming M is exactly on the surface
341
- // return normalize(rotatedPoint) * radius;
342
- // If it's a unit sphere:
343
- // return normalize(rotatedPoint);
344
-
345
- // For simplicity, returning the direct result of rotation. Assume M and H were perfectly on the sphere.
346
- return rotatedPoint;
347
- }`;
348
-
349
- const circleLimpFromLongLatRadCenterMercatorCompass_accurate = `
350
- vec2 circleLimpFromLongLatRadCenterMercatorCompass_accurate(vec2 center, float radius, float angle){
351
- float y = -sin(angle) * radius + center.y;
352
- float x = cos(angle) * radius + center.x;
353
- return vec2(x, y);
354
- } `;
355
-
356
- //TODO make it work...
357
- const circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate = PI + `
358
- vec2 circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate(vec2 mercator_center, float radius, float angle) {
359
- vec2 center = vec2(mercator_center.x /6378137.0 , asin(tanh(mercator_center.y / 6378137.0 )));
360
- float ang = angle + PI / 2.0; // Shift angle to align with +x axis
361
- float r = radius / R;
362
- float cos_r = cos(r);
363
- float sin_r = sin(r);
364
-
365
- float sin_lat = sin(center.y) * cos_r + cos(center.y) * sin_r * cos(ang);
366
- float lat = asin(sin_lat);
367
-
368
- float delta_long = atan(sin(ang) * sin_r * cos(center.y), cos_r - sin(center.y) * sin_lat);
369
- float longi = center.x + delta_long;
370
- // float y = mix(-80.5, 80.5, abs(center.y + PI / 2.0));
371
- vec2 limp = vec2(
372
- R * longi,
373
- R * log(tan(PI / 4.0 + lat / 2.0))
374
- );
375
- vec2 center_mercator = vec2(
376
- R * center.x,
377
- R * log(tan(PI/4.0+ center.y / 2.0))
378
- );
379
- return mercator_center - center_mercator + limp;
380
- }`;
381
-
382
- export {
383
- slerp,
384
- circleLimpFromLongLatRadCenterCartesian3D_accurate,
385
- circleLimpFromLongLatRadCenterMercatorCompass_accurate,
386
- circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate,
387
- circleOnSphere,
388
- }
@@ -1,42 +0,0 @@
1
-
2
-
3
- // function naiveBBox(a: number[], b: number[]): BBox {
4
- // return {
5
- // minX: Math.min(a[0], b[0]),
6
- // minY: Math.min(a[1], b[1]),
7
- // maxX: Math.max(a[0], b[0]),
8
- // maxY: Math.max(a[1], b[1])
9
- // };
10
-
11
- // }
12
-
13
-
14
- // function slerp(a: Vector, b: Vector, t: number, theta: number, sinTheta: number): Vector {
15
-
16
- // }
17
-
18
-
19
- // function getArcBBoxes(arc: Arc, dotStep: number = 0.025): BBox[] {
20
- // const start = arc.start;
21
- // const end = arc.end;
22
- // const a = [start[0], start[1], start[2]];
23
- // const b = [end[0], end[1], end[2]];
24
-
25
-
26
-
27
-
28
- // const theta = Math.acos(a[0] * b[0] + a[1] * b[1] + a[2] * b[2]);
29
- // const step = dotStep / theta;
30
-
31
- // if (step >= 1) {
32
- // return [naiveBBox(start, end)];
33
- // }
34
-
35
-
36
- // let points = [start] as Vector[];
37
-
38
-
39
- // let currentStep =
40
-
41
- // return bbox;
42
- // }
@@ -1,52 +0,0 @@
1
-
2
-
3
-
4
-
5
- // class FlowManager {
6
- // _populateCount: number;
7
- // _rbush: RBush<any>;
8
- // _arcToCutsManager: ArcToCutsManager;
9
- // consturctor({ populateCount = 36, dotDistanceOfArcCuts = 1 / Math.pow(2, 10 - 1) }) {
10
- // this._populateCount = populateCount;
11
-
12
- // // does the cutting and id mapping(one to many)
13
- // // cuts have their bbox ready for rbush
14
- // this._rbush = new RBush(1000);
15
- // this._arcToCutsManager = new ArcToCutsManager({ dotDistanceOfArcCuts, rbush: this._rbush }); // 10km
16
-
17
- // }
18
-
19
-
20
-
21
-
22
-
23
- // /**
24
- // * adds or updates an arc in the rbush and the cuts manager
25
- // */
26
- // insertArc(arc: Arc) {
27
- // this._arcToCutsManager.insertArc(arc);
28
-
29
- // }
30
-
31
-
32
-
33
- // deleteArc(id: Arc['id']) {
34
- // this._arcToCutsManager.deleteArc(id);
35
- // }
36
-
37
-
38
- // queryBBox(bbox: BBox) {
39
-
40
- // const arcIDSet = new Set(this._rbush.query(bbox).map(x => x.id)); // sets Of ids of arcs
41
-
42
- // // arcs U bbox => arcs
43
-
44
-
45
- // // populate points
46
- // // return typed array of points belonging to all the arcs of cuts
47
- // }
48
-
49
-
50
-
51
-
52
- // }
@@ -1,27 +0,0 @@
1
- type BBox = {
2
- minX: number;
3
- minY: number;
4
- maxX: number;
5
- maxY: number;
6
- id?: string;
7
- }
8
-
9
- type Point = { lon: number, lat: number };
10
- type Vector = [number, number, number]; // x y z
11
-
12
-
13
- type Arc = {
14
- id: string;
15
- start: number[];
16
- end: number[];
17
- };
18
-
19
-
20
- interface RBUSH {
21
- insert: (item: BBox) => void;
22
- remove: (item: BBox) => void;
23
- search: (bbox: BBox) => BBox[];
24
- clear: () => void;
25
- all: () => BBox[];
26
-
27
- }