@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,65 +1,51 @@
1
-
2
- export class ObjectStore {
3
- _container;
4
-
5
-
6
- constructor({ initialCapcity = 10 } = {}) {
7
- this._container = this._createEmptyList(initialCapcity);
8
- }
9
-
10
-
11
- resetWithCapacity(capacity: number) {
12
- this._container = this._createEmptyList(capacity);
13
- }
14
-
15
-
16
- deleteBulk(offsets: number[]) {
17
- for (let i = 0; i < offsets.length; i++) {
18
- const offset = offsets[i];
19
- if (offset !== undefined) {
20
- this._container[offset] = null;
21
- }
22
- }
23
- }
24
-
25
-
26
- insertBulk(objects: any[], offsets: number[]) {
27
- for (let i = 0; i < objects.length; i++) {
28
- const object = objects[i];
29
- const offset = offsets[i];
30
- if (offset !== undefined) {
31
- this._container[offset] = object;
32
- }
33
- }
34
- }
35
-
36
- defrag(offsetValues: number[], occupiedCapacity: number, newCapacity: number) {
37
-
38
- const hold = this._createEmptyList(newCapacity);
39
- for (let i = 0; i < offsetValues.length; i++) {
40
- const offset = offsetValues[i];
41
- if (offset !== undefined) {
42
- hold[i] = this._container[offset];
43
- }
44
- }
45
- this._container = hold;
46
- }
47
-
48
- extendBuffer(occupiedCapacity: number, newCapacity: number) {
49
- const oldCapacity = this._container.length;
50
- this._container = this._container.concat(this._createEmptyList(newCapacity - oldCapacity));
51
- }
52
-
53
- _createEmptyList(size: number) {
54
- return new Array(size).fill(null);
55
- }
56
-
57
- get(index: number) {
58
- return this._container[index];
59
- }
60
-
61
-
62
- free() {
63
-
64
- }
65
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectStore = void 0;
4
+ class ObjectStore {
5
+ constructor({ initialCapcity = 10 } = {}) {
6
+ this._container = this._createEmptyList(initialCapcity);
7
+ }
8
+ resetWithCapacity(capacity) {
9
+ this._container = this._createEmptyList(capacity);
10
+ }
11
+ deleteBulk(offsets) {
12
+ for (let i = 0; i < offsets.length; i++) {
13
+ const offset = offsets[i];
14
+ if (offset !== undefined) {
15
+ this._container[offset] = null;
16
+ }
17
+ }
18
+ }
19
+ insertBulk(objects, offsets) {
20
+ for (let i = 0; i < objects.length; i++) {
21
+ const object = objects[i];
22
+ const offset = offsets[i];
23
+ if (offset !== undefined) {
24
+ this._container[offset] = object;
25
+ }
26
+ }
27
+ }
28
+ defrag(offsetValues, occupiedCapacity, newCapacity) {
29
+ const hold = this._createEmptyList(newCapacity);
30
+ for (let i = 0; i < offsetValues.length; i++) {
31
+ const offset = offsetValues[i];
32
+ if (offset !== undefined) {
33
+ hold[i] = this._container[offset];
34
+ }
35
+ }
36
+ this._container = hold;
37
+ }
38
+ extendBuffer(occupiedCapacity, newCapacity) {
39
+ const oldCapacity = this._container.length;
40
+ this._container = this._container.concat(this._createEmptyList(newCapacity - oldCapacity));
41
+ }
42
+ _createEmptyList(size) {
43
+ return new Array(size).fill(null);
44
+ }
45
+ get(index) {
46
+ return this._container[index];
47
+ }
48
+ free() {
49
+ }
50
+ }
51
+ exports.ObjectStore = ObjectStore;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,22 +1,22 @@
1
- export const vaoAttributeLoader = (gl, buffer, index, size, stride, offset, divisor = null, type = null) => {
2
- if (!gl || !buffer) {
3
- throw new Error("Invalid WebGL context or buffer");
4
- }
5
- if (index < 0) {
6
- throw new Error("Attribute index must be non-negative");
7
- }
8
- if (stride < 0 || offset < 0) {
9
- throw new Error("Stride and offset must be non-negative");
10
- }
11
-
12
- const attribType = type === null ? gl.FLOAT : type;
13
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
14
- gl.enableVertexAttribArray(index);
15
- gl.vertexAttribPointer(index, size, attribType, false, stride, offset);
16
- if (divisor !== null) {
17
- gl.vertexAttribDivisor(index, divisor);
18
- }
19
-
20
- }
21
-
22
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vaoAttributeLoader = void 0;
4
+ const vaoAttributeLoader = (gl, buffer, index, size, stride, offset, divisor = null, type = null) => {
5
+ if (!gl || !buffer) {
6
+ throw new Error("Invalid WebGL context or buffer");
7
+ }
8
+ if (index < 0) {
9
+ throw new Error("Attribute index must be non-negative");
10
+ }
11
+ if (stride < 0 || offset < 0) {
12
+ throw new Error("Stride and offset must be non-negative");
13
+ }
14
+ const attribType = type === null ? gl.FLOAT : type;
15
+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
16
+ gl.enableVertexAttribArray(index);
17
+ gl.vertexAttribPointer(index, size, attribType, false, stride, offset);
18
+ if (divisor !== null) {
19
+ gl.vertexAttribDivisor(index, divisor);
20
+ }
21
+ };
22
+ exports.vaoAttributeLoader = vaoAttributeLoader;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1,26 +1,28 @@
1
- /**
2
- * @typedef {Array<number>} ListLike
3
- * @typedef {number || null} Index
4
- */
5
-
6
- /**
7
- * @param {ListLike} container
8
- * @param {number} value
9
- * @returns {Index}
10
- */
11
- const findFirstIndexInRange = (container, value) => {
12
- let start = 0;
13
- let end = container.length - 1;
14
- let mid = 0;
15
- while (start <= end) {
16
- mid = Math.floor((start + end) / 2);
17
- if (container[mid] <= value && value <= container[mid + 1]) return mid;
18
- if (container[mid] < value) start = mid + 1;
19
- else end = mid - 1;
20
- }
21
- return null;
22
- }
23
-
24
-
25
- export { findFirstIndexInRange };
26
-
1
+ "use strict";
2
+ /**
3
+ * @typedef {Array<number>} ListLike
4
+ * @typedef {number || null} Index
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.findFirstIndexInRange = void 0;
8
+ /**
9
+ * @param {ListLike} container
10
+ * @param {number} value
11
+ * @returns {Index}
12
+ */
13
+ const findFirstIndexInRange = (container, value) => {
14
+ let start = 0;
15
+ let end = container.length - 1;
16
+ let mid = 0;
17
+ while (start <= end) {
18
+ mid = Math.floor((start + end) / 2);
19
+ if (container[mid] <= value && value <= container[mid + 1])
20
+ return mid;
21
+ if (container[mid] < value)
22
+ start = mid + 1;
23
+ else
24
+ end = mid - 1;
25
+ }
26
+ return null;
27
+ };
28
+ exports.findFirstIndexInRange = findFirstIndexInRange;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapGetOrThrow = void 0;
4
+ const mapGetOrThrow = (errorNote) => {
5
+ return (mapInstance, ids) => {
6
+ if (!ids)
7
+ throw new Error("There is no map keys to get");
8
+ const result = [];
9
+ for (let i = 0; i < ids.length; i++) {
10
+ const e = mapInstance.get(ids[i]);
11
+ if (e === undefined)
12
+ throw new Error(errorNote + " " + ids[i]);
13
+ result.push(e);
14
+ }
15
+ return result;
16
+ };
17
+ };
18
+ exports.mapGetOrThrow = mapGetOrThrow;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ // Generic
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.isBoolean = exports.constraintFloat = exports.isTextFont = exports.opacityCheck = exports.isHexColorWithOpacity = exports.isHexColor = void 0;
5
+ const doesOwnProperties = (properties, errorMessage) => {
6
+ return (object) => {
7
+ properties.forEach(element => {
8
+ if (!Object.hasOwn(object, element))
9
+ throw new TypeError(errorMessage + ':' + element);
10
+ });
11
+ };
12
+ };
13
+ const isHexColor = (hexColor) => /^#[0-9A-F]{6}$/i.test(hexColor);
14
+ exports.isHexColor = isHexColor;
15
+ const isHexColorWithOpacity = (hexColor) => /^#[0-9A-F]{6}[0-9a-f]{0,2}$/i.test(hexColor);
16
+ exports.isHexColorWithOpacity = isHexColorWithOpacity;
17
+ const opacityCheck = (opacity) => {
18
+ if (typeof opacity !== "number")
19
+ throw new TypeError("style.opacity must a number");
20
+ if (opacity < 0 || 1 < opacity)
21
+ throw new RangeError("Opacity Range Must be 0-1");
22
+ };
23
+ exports.opacityCheck = opacityCheck;
24
+ // Text Related
25
+ const fontCheckTypes = doesOwnProperties(["name", "textColor", "hollowColor", "size", "bold", "italic"], "font does not have");
26
+ const fontCheckColors = (textColor, hollowColor) => (0, exports.isHexColor)(textColor) && (0, exports.isHexColor)(hollowColor);
27
+ const isTextFont = (textFont) => {
28
+ fontCheckTypes(textFont);
29
+ fontCheckColors(textFont.textColor, textFont.hollowColor);
30
+ if (typeof textFont.size !== "number")
31
+ throw new TypeError("textFont size is not a number");
32
+ };
33
+ exports.isTextFont = isTextFont;
34
+ const constraintFloat = (x, lowerBound = null, upperBound = null) => {
35
+ if (typeof x !== "number")
36
+ throw new Error("type must be numberic");
37
+ if (lowerBound === null && upperBound === null)
38
+ return;
39
+ if (lowerBound !== null && lowerBound > x)
40
+ throw new Error(`input must be greater than ${lowerBound}`);
41
+ if (upperBound !== null && x > upperBound)
42
+ throw new Error(`input must be less than ${upperBound}`);
43
+ };
44
+ exports.constraintFloat = constraintFloat;
45
+ const isBoolean = (x) => {
46
+ if (typeof x !== "boolean")
47
+ throw new TypeError("type must be boolean");
48
+ };
49
+ exports.isBoolean = isBoolean;
@@ -1,53 +1,51 @@
1
- function latLongToPixelXY(latitude, longitude) {
2
- return {
3
- x: (longitude + 180) / 360,
4
- y: (90 - latitude) / 180
5
- };
6
- }
7
-
8
- /**
9
- * createBBoxMatrix( minX, maxX, minY, maxY)
10
- * use this matrix to transform a point from 0 to 1 range to the bounding box
11
- * for example: Transform image coordinates to map coordinates
12
- * glsl`vec3 pos = u_bbox_matrix * vec3(v_particle_pos.x, v_particle_pos.y, 1.0);`
13
- */
14
- function createBBoxMatrix(minX, maxX, minY, maxY) {
15
- return new Float32Array([
16
- maxX - minX, 0, 0,
17
- 0, maxY - minY, 0,
18
- minX, minY, 1
19
- ])
20
- }
21
-
22
- function latLongBboxtoPixelXYBbox(minX, minY, maxX, maxY) {
23
- const minXY = latLongToPixelXY(minY, minX);
24
- const maxXY = latLongToPixelXY(maxY, maxX);
25
- return createBBoxMatrix(minXY.x, maxXY.x, minXY.y, maxXY.y);
26
- }
27
-
28
-
29
- /**
30
- *
31
- * @param {Float32List} array
32
- * @returns {Float32Array}
33
- */
34
- function normalize(array, newLength = 1) {
35
- let total = 0;
36
- for (let i = 0; i < array.length; i++) {
37
- total += array[i] * array[i];
38
- }
39
- const len = newLength / Math.sqrt(total);
40
- const result = new Float32Array(array.length);
41
- for (let i = 0; i < array.length; i++) {
42
- result[i] = array[i] * len;
43
- }
44
- return result;
45
- }
46
-
47
-
48
- function sphereCoord(long, lat, globe, height = 0) {
49
- return normalize(globe.api_GetCartesian3DPoint(long, lat, 0, 0), 6378.137 + height);
50
- }
51
-
52
-
53
- export { createBBoxMatrix, latLongToPixelXY, latLongBboxtoPixelXYBbox, sphereCoord, normalize };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBBoxMatrix = createBBoxMatrix;
4
+ exports.latLongToPixelXY = latLongToPixelXY;
5
+ exports.latLongBboxtoPixelXYBbox = latLongBboxtoPixelXYBbox;
6
+ exports.sphereCoord = sphereCoord;
7
+ exports.normalize = normalize;
8
+ function latLongToPixelXY(latitude, longitude) {
9
+ return {
10
+ x: (longitude + 180) / 360,
11
+ y: (90 - latitude) / 180
12
+ };
13
+ }
14
+ /**
15
+ * createBBoxMatrix( minX, maxX, minY, maxY)
16
+ * use this matrix to transform a point from 0 to 1 range to the bounding box
17
+ * for example: Transform image coordinates to map coordinates
18
+ * glsl`vec3 pos = u_bbox_matrix * vec3(v_particle_pos.x, v_particle_pos.y, 1.0);`
19
+ */
20
+ function createBBoxMatrix(minX, maxX, minY, maxY) {
21
+ return new Float32Array([
22
+ maxX - minX, 0, 0,
23
+ 0, maxY - minY, 0,
24
+ minX, minY, 1
25
+ ]);
26
+ }
27
+ function latLongBboxtoPixelXYBbox(minX, minY, maxX, maxY) {
28
+ const minXY = latLongToPixelXY(minY, minX);
29
+ const maxXY = latLongToPixelXY(maxY, maxX);
30
+ return createBBoxMatrix(minXY.x, maxXY.x, minXY.y, maxXY.y);
31
+ }
32
+ /**
33
+ *
34
+ * @param {Float32List} array
35
+ * @returns {Float32Array}
36
+ */
37
+ function normalize(array, newLength = 1) {
38
+ let total = 0;
39
+ for (let i = 0; i < array.length; i++) {
40
+ total += array[i] * array[i];
41
+ }
42
+ const len = newLength / Math.sqrt(total);
43
+ const result = new Float32Array(array.length);
44
+ for (let i = 0; i < array.length; i++) {
45
+ result[i] = array[i] * len;
46
+ }
47
+ return result;
48
+ }
49
+ function sphereCoord(long, lat, globe, height = 0) {
50
+ return normalize(globe.api_GetCartesian3DPoint(long, lat, 0, 0), 6378.137 + height);
51
+ }
@@ -1,85 +1,69 @@
1
- import './types';
2
-
3
-
4
- /**
5
- * @typedef BufferAndReadInfo Buffers can be intertwined or interleaved.
6
- * This object forces user to adapt generic convention of buffer and read information.
7
- * @type {Object}
8
- * @property {WebGLBuffer} buffer
9
- * @property {number} stride
10
- * @property {number} offset
11
- */
12
-
13
- /**
14
- *
15
- * @param {WebGLBuffer} gl
16
- * @param {BufferAndReadInfo} bufferAndReadInfo
17
- * @param {number} index
18
- * @param {number} size
19
- * @param {Object} options
20
- * @param {*} options.type | default gl.FLOAT, gl.UNSIGNED_BYTE, gl.SHORT, gl.UNSIGNED_SHORT, gl.INT, gl.UNSIGNED_INT
21
- * @param {number} options.divisor
22
- * @param {Array<number>} options.escapeValues
23
- * @returns
24
- */
25
-
26
-
27
-
28
- const attributeLoader = (
29
- gl: WebGL2RenderingContext,
30
- bufferAndReadInfo: BufferAndReadInfo | null,
31
- index: number,
32
- size: number,
33
- {
34
- divisor = null,
35
- type = null,
36
- escapeValues = null,
37
- normalized = false
38
- }: AttributeLoaderOptions = {}) => {
39
- if (size < 1 || size > 4) throw new Error("Size must be between 1 and 4");
40
- if (bufferAndReadInfo == null) {
41
- if (escapeValues !== null) constantFunction(gl, index, size, escapeValues);
42
- return;
43
- }
44
-
45
- const { buffer, stride, offset } = bufferAndReadInfo;
46
- if (!gl || !buffer) {
47
- throw new Error("Invalid WebGL context or buffer");
48
- }
49
- if (index < 0) {
50
- throw new Error("Attribute index must be non-negative");
51
- }
52
- if (stride < 0 || offset < 0) {
53
- throw new Error("Stride and offset must be non-negative");
54
- }
55
- const attribType = type === null ? gl.FLOAT : type;
56
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
57
- gl.enableVertexAttribArray(index);
58
- gl.vertexAttribPointer(index, size, attribType, normalized, stride, offset);
59
- if (divisor !== null) {
60
- gl.vertexAttribDivisor(index, divisor);
61
- }
62
- }
63
-
64
- /**
65
- *
66
- * @param {WebGLBuffer} buffer
67
- * @param {number} stride
68
- * @param {number} offset
69
- * @returns {BufferAndReadInfo}
70
- */
71
- const createBufferAndReadInfo = (buffer: WebGLBuffer, stride: number = 0, offset: number = 0): BufferAndReadInfo | null => {
72
- if (buffer == null) return null;
73
- return { buffer, stride, offset };
74
- }
75
-
76
-
77
-
78
- const constantFunction = (gl: WebGL2RenderingContext, index: number, size: number, escapeValues: Array<number>) => {
79
- const func = `vertexAttrib${size}f`;
80
- // @ts-ignore
81
- gl[func](index, ...escapeValues);
82
- }
83
-
84
-
85
- export { attributeLoader, createBufferAndReadInfo };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBufferAndReadInfo = exports.attributeLoader = void 0;
4
+ require("./types");
5
+ /**
6
+ * @typedef BufferAndReadInfo Buffers can be intertwined or interleaved.
7
+ * This object forces user to adapt generic convention of buffer and read information.
8
+ * @type {Object}
9
+ * @property {WebGLBuffer} buffer
10
+ * @property {number} stride
11
+ * @property {number} offset
12
+ */
13
+ /**
14
+ *
15
+ * @param {WebGLBuffer} gl
16
+ * @param {BufferAndReadInfo} bufferAndReadInfo
17
+ * @param {number} index
18
+ * @param {number} size
19
+ * @param {Object} options
20
+ * @param {*} options.type | default gl.FLOAT, gl.UNSIGNED_BYTE, gl.SHORT, gl.UNSIGNED_SHORT, gl.INT, gl.UNSIGNED_INT
21
+ * @param {number} options.divisor
22
+ * @param {Array<number>} options.escapeValues
23
+ * @returns
24
+ */
25
+ const attributeLoader = (gl, bufferAndReadInfo, index, size, { divisor = null, type = null, escapeValues = null, normalized = false } = {}) => {
26
+ if (size < 1 || size > 4)
27
+ throw new Error("Size must be between 1 and 4");
28
+ if (bufferAndReadInfo == null) {
29
+ if (escapeValues !== null)
30
+ constantFunction(gl, index, size, escapeValues);
31
+ return;
32
+ }
33
+ const { buffer, stride, offset } = bufferAndReadInfo;
34
+ if (!gl || !buffer) {
35
+ throw new Error("Invalid WebGL context or buffer");
36
+ }
37
+ if (index < 0) {
38
+ throw new Error("Attribute index must be non-negative");
39
+ }
40
+ if (stride < 0 || offset < 0) {
41
+ throw new Error("Stride and offset must be non-negative");
42
+ }
43
+ const attribType = type === null ? gl.FLOAT : type;
44
+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
45
+ gl.enableVertexAttribArray(index);
46
+ gl.vertexAttribPointer(index, size, attribType, normalized, stride, offset);
47
+ if (divisor !== null) {
48
+ gl.vertexAttribDivisor(index, divisor);
49
+ }
50
+ };
51
+ exports.attributeLoader = attributeLoader;
52
+ /**
53
+ *
54
+ * @param {WebGLBuffer} buffer
55
+ * @param {number} stride
56
+ * @param {number} offset
57
+ * @returns {BufferAndReadInfo}
58
+ */
59
+ const createBufferAndReadInfo = (buffer, stride = 0, offset = 0) => {
60
+ if (buffer == null)
61
+ return null;
62
+ return { buffer, stride, offset };
63
+ };
64
+ exports.createBufferAndReadInfo = createBufferAndReadInfo;
65
+ const constantFunction = (gl, index, size, escapeValues) => {
66
+ const func = `vertexAttrib${size}f`;
67
+ // @ts-ignore
68
+ gl[func](index, ...escapeValues);
69
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // import './types';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.attributeLoader = void 0;
5
+ const attribute_loader_1 = require("./attribute-loader");
6
+ Object.defineProperty(exports, "attributeLoader", { enumerable: true, get: function () { return attribute_loader_1.attributeLoader; } });
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.drawInstanced = exports.drawArrays = void 0;
4
+ require("./types");
5
+ /**
6
+ * Draws instanced geometry using WebGL2.
7
+ */
8
+ const drawInstanced = (gl, mode, drawOptions, vertexCount) => {
9
+ var _a;
10
+ const { drawRange, elementBufferIndexType = gl.UNSIGNED_INT } = drawOptions;
11
+ const { first = 0, count: instanceCount = 1 } = drawRange;
12
+ if (first > 0 || drawOptions.elementBuffer) {
13
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, (_a = drawOptions.elementBuffer) !== null && _a !== void 0 ? _a : null);
14
+ gl.drawElementsInstanced(mode, vertexCount, elementBufferIndexType, first, instanceCount);
15
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
16
+ }
17
+ else {
18
+ gl.drawArraysInstanced(mode, first, vertexCount, instanceCount);
19
+ }
20
+ };
21
+ exports.drawInstanced = drawInstanced;
22
+ /**
23
+ * Draws geometry using WebGL2.
24
+ */
25
+ const drawArrays = (gl, defaultMode, drawOptions) => {
26
+ const { drawRange, elementBuffer, elementBufferIndexType = gl.UNSIGNED_INT, drawMode = null } = drawOptions;
27
+ const { first = 0, count } = drawRange;
28
+ const mode = drawMode !== null && drawMode !== void 0 ? drawMode : defaultMode;
29
+ if (elementBuffer) {
30
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, elementBuffer);
31
+ gl.drawElements(mode, count, elementBufferIndexType, first);
32
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
33
+ }
34
+ else {
35
+ gl.drawArrays(mode, first, count);
36
+ }
37
+ };
38
+ exports.drawArrays = drawArrays;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * @typedef DrawRange
4
+ * @type {Object}
5
+ * @property {int} first
6
+ * @property {int} count
7
+ *
8
+ * @typedef DrawRangeIndexParams
9
+ * @type {Object}
10
+ * @property {null|DrawRange} drawRange
11
+ * @property {null|ElementBuffer} elementBuffer
12
+ * @property {null|indexType} indexType
13
+ * @property {null|int} drawMode
14
+ *
15
+ */