@pirireis/webglobeplugins 1.0.2 → 1.0.4

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 (277) hide show
  1. package/package.json +2 -2
  2. package/plugins/alarms/alarmFadeInFadeOutPlugin/AlarmTimeLineFadeInFadeOutPlugin.js +399 -0
  3. package/{Math/angle-calculation.ts → webglobeplugins/Math/angle-calculation.js} +14 -18
  4. package/{Math/arc-cdf-points.ts → webglobeplugins/Math/arc-cdf-points.js} +272 -329
  5. package/{Math/arc-generate-points-exponantial.ts → webglobeplugins/Math/arc-generate-points-exponantial.js} +254 -299
  6. package/{Math/arc.ts → webglobeplugins/Math/arc.js} +292 -421
  7. package/{Math → webglobeplugins/Math}/bounds/line-bbox.js +186 -225
  8. package/{Math/circle-cdf-points.ts → webglobeplugins/Math/circle-cdf-points.js} +78 -143
  9. package/{Math/circle.ts → webglobeplugins/Math/circle.js} +33 -49
  10. package/{Math/constants.ts → webglobeplugins/Math/constants.js} +4 -12
  11. package/{Math/contour/quadtreecontours.ts → webglobeplugins/Math/contour/quadtreecontours.js} +300 -371
  12. package/{Math → webglobeplugins/Math}/contour/quadtreecontours1.js +298 -336
  13. package/{Math/finite-line-2d.ts → webglobeplugins/Math/finite-line-2d.js} +58 -68
  14. package/{Math/haversine.ts → webglobeplugins/Math/haversine.js} +22 -33
  15. package/webglobeplugins/Math/index.js +1 -0
  16. package/{Math/juction/arc-plane.ts → webglobeplugins/Math/juction/arc-plane.js} +143 -203
  17. package/{Math/juction/line-sphere.ts → webglobeplugins/Math/juction/line-sphere.js} +22 -32
  18. package/{Math/juction/plane-plane.ts → webglobeplugins/Math/juction/plane-plane.js} +53 -62
  19. package/{Math/line.ts → webglobeplugins/Math/line.js} +52 -84
  20. package/webglobeplugins/Math/matrix4.js +1 -0
  21. package/{Math/methods.ts → webglobeplugins/Math/methods.js} +126 -182
  22. package/{Math/plane.ts → webglobeplugins/Math/plane.js} +56 -92
  23. package/{Math/quaternion.ts → webglobeplugins/Math/quaternion.js} +106 -128
  24. package/{Math/templete-shapes/grid-visually-equal.ts → webglobeplugins/Math/templete-shapes/grid-visually-equal.js} +65 -118
  25. package/webglobeplugins/Math/tessellation/constants.js +1 -0
  26. package/{Math/tessellation/methods.ts → webglobeplugins/Math/tessellation/methods.js} +49 -79
  27. package/{Math/tessellation/nearest-value-padding.ts → webglobeplugins/Math/tessellation/nearest-value-padding.js} +112 -147
  28. package/{Math/tessellation/spherical-triangle-area.ts → webglobeplugins/Math/tessellation/spherical-triangle-area.js} +99 -127
  29. package/{Math/tessellation/tile-merger.ts → webglobeplugins/Math/tessellation/tile-merger.js} +429 -578
  30. package/{Math/tessellation/triangle-tessellation.ts → webglobeplugins/Math/tessellation/triangle-tessellation.js} +464 -533
  31. package/webglobeplugins/Math/tessellation/types.js +1 -0
  32. package/webglobeplugins/Math/types.js +1 -0
  33. package/{Math → webglobeplugins/Math}/utils.js +2 -3
  34. package/{Math/vec3.ts → webglobeplugins/Math/vec3.js} +155 -227
  35. package/{Math/xyz-tile.ts → webglobeplugins/Math/xyz-tile.js} +18 -26
  36. package/{algorithms → webglobeplugins/algorithms}/search-binary.js +16 -14
  37. package/webglobeplugins/altitude-locator/adaptors.js +1 -0
  38. package/webglobeplugins/altitude-locator/keymethod.js +1 -0
  39. package/{altitude-locator → webglobeplugins/altitude-locator}/plugin.js +344 -445
  40. package/{altitude-locator → webglobeplugins/altitude-locator}/types.js +21 -26
  41. package/{compass-rose → webglobeplugins/compass-rose}/compass-rose-padding-flat.js +230 -274
  42. package/{compass-rose/compass-text-writer.ts → webglobeplugins/compass-rose/compass-text-writer.js} +155 -210
  43. package/{compass-rose → webglobeplugins/compass-rose}/index.js +3 -3
  44. package/{constants.ts → webglobeplugins/constants.js} +6 -8
  45. package/{heatwave → webglobeplugins/heatwave}/datamanager.js +149 -168
  46. package/{heatwave → webglobeplugins/heatwave}/heatwave.js +206 -261
  47. package/{heatwave → webglobeplugins/heatwave}/index.js +5 -5
  48. package/{heatwave → webglobeplugins/heatwave}/isobar.js +306 -340
  49. package/{heatwave/texture-point-sampler.ts → webglobeplugins/heatwave/texture-point-sampler.js} +187 -220
  50. package/webglobeplugins/investigation-tools/draw/tiles/adapters.js +67 -0
  51. package/{investigation-tools/draw/tiles/tiles.ts → webglobeplugins/investigation-tools/draw/tiles/tiles.js} +128 -162
  52. package/{jest.config.js → webglobeplugins/jest.config.js} +7 -6
  53. package/{pin → webglobeplugins/pin}/pin-object-array1.js +300 -381
  54. package/{pin → webglobeplugins/pin}/pin-point-totem1.js +60 -77
  55. package/{programs → webglobeplugins/programs}/arrowfield/arrow-field.js +60 -89
  56. package/{programs → webglobeplugins/programs}/arrowfield/logic.js +141 -173
  57. package/{programs → webglobeplugins/programs}/data2legend/density-to-legend.js +68 -86
  58. package/{programs → webglobeplugins/programs}/data2legend/point-to-density-texture.js +67 -84
  59. package/{programs → webglobeplugins/programs}/float2legendwithratio/index.js +2 -3
  60. package/{programs → webglobeplugins/programs}/float2legendwithratio/logic.js +118 -144
  61. package/{programs → webglobeplugins/programs}/float2legendwithratio/object.js +104 -141
  62. package/{programs → webglobeplugins/programs}/helpers/blender.js +58 -73
  63. package/{programs/helpers/fadeaway.ts → webglobeplugins/programs/helpers/fadeaway.js} +60 -73
  64. package/{programs → webglobeplugins/programs}/index.js +20 -19
  65. package/{programs → webglobeplugins/programs}/line-on-globe/circle-accurate-3d.js +85 -112
  66. package/{programs → webglobeplugins/programs}/line-on-globe/circle-accurate-flat.js +148 -200
  67. package/{programs → webglobeplugins/programs}/line-on-globe/degree-padding-around-circle-3d.js +102 -134
  68. package/webglobeplugins/programs/line-on-globe/index.js +1 -0
  69. package/{programs → webglobeplugins/programs}/line-on-globe/lines-color-instanced-flat.js +80 -99
  70. package/webglobeplugins/programs/line-on-globe/linestrip/data.js +4 -0
  71. package/{programs/line-on-globe/linestrip/linestrip.ts → webglobeplugins/programs/line-on-globe/linestrip/linestrip.js} +93 -152
  72. package/{programs/line-on-globe/naive-accurate-flexible.ts → webglobeplugins/programs/line-on-globe/naive-accurate-flexible.js} +126 -175
  73. package/{programs → webglobeplugins/programs}/line-on-globe/util.js +5 -8
  74. package/{programs → webglobeplugins/programs}/picking/pickable-polygon-renderer.js +98 -129
  75. package/{programs → webglobeplugins/programs}/picking/pickable-renderer.js +98 -130
  76. package/{programs → webglobeplugins/programs}/point-on-globe/element-globe-surface-glow.js +93 -122
  77. package/{programs → webglobeplugins/programs}/point-on-globe/element-point-glow.js +80 -114
  78. package/{programs → webglobeplugins/programs}/point-on-globe/square-pixel-point.js +121 -139
  79. package/{programs/polygon-on-globe/texture-dem-triangles.ts → webglobeplugins/programs/polygon-on-globe/texture-dem-triangles.js} +178 -209
  80. package/{programs/programcache.ts → webglobeplugins/programs/programcache.js} +126 -134
  81. package/webglobeplugins/programs/rings/index.js +1 -0
  82. package/{programs/rings/partial-ring/piece-of-pie.ts → webglobeplugins/programs/rings/partial-ring/piece-of-pie.js} +152 -222
  83. package/webglobeplugins/programs/totems/attachments/adaptive-opacity.js +131 -0
  84. package/{programs/totems/dem-textures-manager.ts → webglobeplugins/programs/totems/attachments/dem-textures-manager.js} +263 -360
  85. package/webglobeplugins/programs/totems/camera-totem-attactment-interface.js +1 -0
  86. package/{programs/totems/camerauniformblock.ts → webglobeplugins/programs/totems/camerauniformblock.js} +225 -310
  87. package/{programs/totems/canvas-webglobe-info.ts → webglobeplugins/programs/totems/canvas-webglobe-info.js} +132 -147
  88. package/{programs/totems/globe-changes.ts → webglobeplugins/programs/totems/globe-changes.js} +59 -79
  89. package/{programs → webglobeplugins/programs}/totems/gpu-selection-uniform-block.js +99 -127
  90. package/{programs/totems/index.ts → webglobeplugins/programs/totems/index.js} +2 -2
  91. package/{programs → webglobeplugins/programs}/two-d/pixel-padding-for-compass.js +87 -101
  92. package/{programs → webglobeplugins/programs}/util.js +14 -19
  93. package/{programs/vectorfields/logics/constants.ts → webglobeplugins/programs/vectorfields/logics/constants.js} +4 -5
  94. package/{programs/vectorfields/logics/drawrectangleparticles.ts → webglobeplugins/programs/vectorfields/logics/drawrectangleparticles.js} +107 -136
  95. package/{programs → webglobeplugins/programs}/vectorfields/logics/index.js +2 -4
  96. package/webglobeplugins/programs/vectorfields/logics/particle-ubo.js +19 -0
  97. package/{programs/vectorfields/logics/pixelbased.ts → webglobeplugins/programs/vectorfields/logics/pixelbased.js} +89 -122
  98. package/{programs → webglobeplugins/programs}/vectorfields/logics/ubo.js +51 -57
  99. package/{programs/vectorfields/pingpongbuffermanager.ts → webglobeplugins/programs/vectorfields/pingpongbuffermanager.js} +99 -113
  100. package/{range-tools-on-terrain/bearing-line/adapters.ts → webglobeplugins/range-tools-on-terrain/bearing-line/adapters.js} +114 -154
  101. package/{range-tools-on-terrain/bearing-line/plugin.ts → webglobeplugins/range-tools-on-terrain/bearing-line/plugin.js} +457 -569
  102. package/webglobeplugins/range-tools-on-terrain/bearing-line/types.js +1 -0
  103. package/{range-tools-on-terrain/circle-line-chain/adapters.ts → webglobeplugins/range-tools-on-terrain/circle-line-chain/adapters.js} +85 -104
  104. package/{range-tools-on-terrain/circle-line-chain/chain-list-map.ts → webglobeplugins/range-tools-on-terrain/circle-line-chain/chain-list-map.js} +382 -446
  105. package/{range-tools-on-terrain/circle-line-chain/plugin.ts → webglobeplugins/range-tools-on-terrain/circle-line-chain/plugin.js} +464 -607
  106. package/webglobeplugins/range-tools-on-terrain/circle-line-chain/types.js +1 -0
  107. package/{range-tools-on-terrain/range-ring/adapters.ts → webglobeplugins/range-tools-on-terrain/range-ring/adapters.js} +93 -114
  108. package/{range-tools-on-terrain/range-ring/enum.ts → webglobeplugins/range-tools-on-terrain/range-ring/enum.js} +2 -2
  109. package/{range-tools-on-terrain/range-ring/plugin.ts → webglobeplugins/range-tools-on-terrain/range-ring/plugin.js} +377 -444
  110. package/webglobeplugins/range-tools-on-terrain/range-ring/rangeringangletext.js +331 -0
  111. package/webglobeplugins/range-tools-on-terrain/range-ring/types.js +9 -0
  112. package/webglobeplugins/semiplugins/interface.js +1 -0
  113. package/{semiplugins/lightweight/line-plugin.ts → webglobeplugins/semiplugins/lightweight/line-plugin.js} +221 -342
  114. package/{semiplugins/lightweight/piece-of-pie-plugin.ts → webglobeplugins/semiplugins/lightweight/piece-of-pie-plugin.js} +200 -275
  115. package/{semiplugins/shape-on-terrain/arc-plugin.ts → webglobeplugins/semiplugins/shape-on-terrain/arc-plugin.js} +481 -616
  116. package/{semiplugins/shape-on-terrain/circle-plugin.ts → webglobeplugins/semiplugins/shape-on-terrain/circle-plugin.js} +444 -588
  117. package/{semiplugins/shape-on-terrain/padding-1-degree.ts → webglobeplugins/semiplugins/shape-on-terrain/padding-1-degree.js} +539 -713
  118. package/{semiplugins/shape-on-terrain/terrain-polygon/adapters.ts → webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/adapters.js} +55 -69
  119. package/{semiplugins/shape-on-terrain/terrain-polygon/data/cache.ts → webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/data/cache.js} +104 -149
  120. package/{semiplugins/shape-on-terrain/terrain-polygon/data/index-polygon-map.ts → webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/data/index-polygon-map.js} +45 -58
  121. package/{semiplugins/shape-on-terrain/terrain-polygon/data/manager.ts → webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/data/manager.js} +4 -4
  122. package/webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.js +241 -0
  123. package/webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/data/polygon-to-triangles.js +76 -0
  124. package/{semiplugins/shape-on-terrain/terrain-polygon/data/random.ts → webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/data/random.js} +121 -165
  125. package/webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/data/types.js +1 -0
  126. package/{semiplugins/shape-on-terrain/terrain-polygon/data/worker-contact.ts → webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/data/worker-contact.js} +64 -81
  127. package/webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/data/worker.js +162 -0
  128. package/{semiplugins/shape-on-terrain/terrain-polygon/terrain-polygon.ts → webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/terrain-polygon.js} +282 -265
  129. package/webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/test-records.js +14 -0
  130. package/webglobeplugins/semiplugins/shape-on-terrain/terrain-polygon/types.js +8 -0
  131. package/webglobeplugins/semiplugins/shell/bbox-renderer/index.js +2 -0
  132. package/{semiplugins/shell/bbox-renderer/logic.ts → webglobeplugins/semiplugins/shell/bbox-renderer/logic.js} +209 -273
  133. package/webglobeplugins/semiplugins/shell/bbox-renderer/object.js +78 -0
  134. package/webglobeplugins/semiplugins/type.js +1 -0
  135. package/{semiplugins/utility/container-plugin.ts → webglobeplugins/semiplugins/utility/container-plugin.js} +94 -126
  136. package/{semiplugins/utility/object-pass-container-plugin.ts → webglobeplugins/semiplugins/utility/object-pass-container-plugin.js} +80 -101
  137. package/{shaders → webglobeplugins/shaders}/fragment-toy/firework.js +1 -1
  138. package/{shaders → webglobeplugins/shaders}/fragment-toy/singularity.js +2 -5
  139. package/{tracks → webglobeplugins/tracks}/point-heat-map/adaptors/timetracksplugin-format-to-this.js +63 -78
  140. package/webglobeplugins/tracks/point-heat-map/index.js +1 -0
  141. package/{tracks → webglobeplugins/tracks}/point-heat-map/plugin-webworker.js +121 -148
  142. package/{tracks → webglobeplugins/tracks}/point-heat-map/point-to-heat-map-flow.js +121 -150
  143. package/{tracks → webglobeplugins/tracks}/point-tracks/key-methods.js +2 -3
  144. package/{tracks → webglobeplugins/tracks}/point-tracks/plugin.js +401 -487
  145. package/{tracks → webglobeplugins/tracks}/timetracks/adaptors-line-strip.js +65 -79
  146. package/{tracks → webglobeplugins/tracks}/timetracks/plugin-line-strip.js +240 -295
  147. package/{tracks → webglobeplugins/tracks}/timetracks/program-line-strip.js +413 -495
  148. package/{tracks → webglobeplugins/tracks}/timetracks/programpoint-line-strip.js +109 -137
  149. package/webglobeplugins/types.js +19 -0
  150. package/{util → webglobeplugins/util}/account/bufferoffsetmanager.js +176 -209
  151. package/webglobeplugins/util/account/create-buffermap-orchastration.js +39 -0
  152. package/{util → webglobeplugins/util}/account/index.js +3 -6
  153. package/{util/account/single-attribute-buffer-management/buffer-manager.ts → webglobeplugins/util/account/single-attribute-buffer-management/buffer-manager.js} +119 -151
  154. package/{util/account/single-attribute-buffer-management/buffer-orchestrator.ts → webglobeplugins/util/account/single-attribute-buffer-management/buffer-orchestrator.js} +212 -238
  155. package/{util/account/single-attribute-buffer-management/buffer-orchestrator1.ts → webglobeplugins/util/account/single-attribute-buffer-management/buffer-orchestrator1.js} +159 -184
  156. package/{util/account/single-attribute-buffer-management/index.ts → webglobeplugins/util/account/single-attribute-buffer-management/index.js} +4 -11
  157. package/{util/account/single-attribute-buffer-management/object-store.ts → webglobeplugins/util/account/single-attribute-buffer-management/object-store.js} +55 -76
  158. package/webglobeplugins/util/account/single-attribute-buffer-management/types.js +1 -0
  159. package/{util → webglobeplugins/util}/account/util.js +18 -22
  160. package/webglobeplugins/util/algorithms/index.js +1 -0
  161. package/{util → webglobeplugins/util}/algorithms/search-binary.js +25 -26
  162. package/{util/build-strategy/static-dynamic.ts → webglobeplugins/util/build-strategy/static-dynamic.js} +41 -50
  163. package/webglobeplugins/util/check/index.js +1 -0
  164. package/webglobeplugins/util/check/typecheck.js +66 -0
  165. package/{util/frame-counter-trigger.ts → webglobeplugins/util/frame-counter-trigger.js} +84 -99
  166. package/{util/geometry/index.ts → webglobeplugins/util/geometry/index.js} +121 -155
  167. package/webglobeplugins/util/gl-util/buffer/attribute-loader.js +74 -0
  168. package/{util/gl-util/buffer/index.ts → webglobeplugins/util/gl-util/buffer/index.js} +3 -6
  169. package/{util/gl-util/draw-options/methods.ts → webglobeplugins/util/gl-util/draw-options/methods.js} +32 -47
  170. package/{util/gl-util/uniform-block/manager.ts → webglobeplugins/util/gl-util/uniform-block/manager.js} +209 -232
  171. package/{util/globe-default-gl-states.ts → webglobeplugins/util/globe-default-gl-states.js} +4 -5
  172. package/{util/helper-methods.ts → webglobeplugins/util/helper-methods.js} +8 -9
  173. package/{util → webglobeplugins/util}/index.js +10 -9
  174. package/webglobeplugins/util/interpolation/index.js +1 -0
  175. package/webglobeplugins/util/interpolation/timetrack/index.js +2 -0
  176. package/{util → webglobeplugins/util}/interpolation/timetrack/timetrack-interpolator.js +79 -94
  177. package/{util → webglobeplugins/util}/interpolation/timetrack/web-worker.js +46 -51
  178. package/{util/picking/fence.ts → webglobeplugins/util/picking/fence.js} +43 -47
  179. package/{util/picking/picker-displayer.ts → webglobeplugins/util/picking/picker-displayer.js} +176 -226
  180. package/{util → webglobeplugins/util}/programs/draw-from-pixel-coords.js +164 -201
  181. package/{util/programs/draw-texture-on-canvas.ts → webglobeplugins/util/programs/draw-texture-on-canvas.js} +69 -91
  182. package/{util → webglobeplugins/util}/programs/supersampletotextures.js +97 -130
  183. package/{util/programs/texturetoglobe.js → webglobeplugins/util/programs/texturetoglobe_delete.js} +128 -153
  184. package/{util/shaderfunctions/geometrytransformations.ts → webglobeplugins/util/shaderfunctions/geometrytransformations.js} +44 -106
  185. package/{util → webglobeplugins/util}/shaderfunctions/index.js +2 -2
  186. package/{util → webglobeplugins/util}/shaderfunctions/nodata.js +2 -4
  187. package/{util → webglobeplugins/util}/shaderfunctions/noisefunctions.js +7 -10
  188. package/{util/webglobjectbuilders.ts → webglobeplugins/util/webglobjectbuilders.js} +358 -446
  189. package/{vectorfield → webglobeplugins/vectorfield}/arrowfield/adaptor.js +11 -11
  190. package/{vectorfield → webglobeplugins/vectorfield}/arrowfield/index.js +3 -3
  191. package/{vectorfield → webglobeplugins/vectorfield}/arrowfield/plugin.js +83 -128
  192. package/{vectorfield → webglobeplugins/vectorfield}/waveparticles/adaptor.js +15 -16
  193. package/{vectorfield → webglobeplugins/vectorfield}/waveparticles/index.js +3 -3
  194. package/{vectorfield/waveparticles/plugin.ts → webglobeplugins/vectorfield/waveparticles/plugin.js} +455 -506
  195. package/webglobeplugins/vectorfield/wind/adapters/image-to-fields.js +92 -0
  196. package/webglobeplugins/vectorfield/wind/adapters/types.js +1 -0
  197. package/{vectorfield/wind/imagetovectorfieldandmagnitude.ts → webglobeplugins/vectorfield/wind/imagetovectorfieldandmagnitude.js} +53 -78
  198. package/{vectorfield → webglobeplugins/vectorfield}/wind/index.js +5 -5
  199. package/{vectorfield/wind/plugin-persistant.ts → webglobeplugins/vectorfield/wind/plugin-persistant.js} +390 -483
  200. package/{vectorfield → webglobeplugins/vectorfield}/wind/plugin.js +685 -883
  201. package/{vectorfield → webglobeplugins/vectorfield}/wind/vectorfieldimage.js +23 -27
  202. package/{write-text/context-text-bulk.ts → webglobeplugins/write-text/context-text-bulk.js} +200 -285
  203. package/webglobeplugins/write-text/context-text3.js +167 -0
  204. package/{write-text/context-text4.ts → webglobeplugins/write-text/context-text4.js} +146 -231
  205. package/{write-text → webglobeplugins/write-text}/context-textDELETE.js +94 -125
  206. package/{write-text/objectarraylabels/index.ts → webglobeplugins/write-text/objectarraylabels/index.js} +2 -2
  207. package/{write-text → webglobeplugins/write-text}/objectarraylabels/objectarraylabels.js +200 -247
  208. package/Math/index.js +0 -0
  209. package/Math/matrix4.ts +0 -0
  210. package/Math/mesh/mapbox-delaunay.d.ts +0 -74
  211. package/Math/roadmap.md +0 -10
  212. package/Math/tessellation/constants.ts +0 -1
  213. package/Math/tessellation/roadmap.md +0 -48
  214. package/Math/tessellation/types.ts +0 -1
  215. package/Math/types.ts +0 -68
  216. package/altitude-locator/adaptors.js +0 -0
  217. package/altitude-locator/keymethod.js +0 -0
  218. package/investigation-tools/draw/tiles/adapters.ts +0 -133
  219. package/programs/line-on-globe/index.js +0 -0
  220. package/programs/line-on-globe/linestrip/data.ts +0 -29
  221. package/programs/polygon-on-globe/roadmap.md +0 -8
  222. package/programs/rings/index.js +0 -1
  223. package/programs/totems/camera-totem-attactment-interface.ts +0 -4
  224. package/programs/vectorfields/logics/particle-ubo.ts +0 -23
  225. package/publish.bat +0 -62
  226. package/range-tools-on-terrain/bearing-line/types.ts +0 -65
  227. package/range-tools-on-terrain/circle-line-chain/types.ts +0 -43
  228. package/range-tools-on-terrain/range-ring/rangeringangletext.ts +0 -396
  229. package/range-tools-on-terrain/range-ring/types.ts +0 -30
  230. package/semiplugins/interface.ts +0 -14
  231. package/semiplugins/shape-on-terrain/goal.md +0 -12
  232. package/semiplugins/shape-on-terrain/terrain-polygon/data/cache-shortcuts.md +0 -20
  233. package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.js +0 -196
  234. package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.ts +0 -209
  235. package/semiplugins/shape-on-terrain/terrain-polygon/data/polygon-to-triangles.ts +0 -144
  236. package/semiplugins/shape-on-terrain/terrain-polygon/data/readme.md +0 -5
  237. package/semiplugins/shape-on-terrain/terrain-polygon/data/types.ts +0 -37
  238. package/semiplugins/shape-on-terrain/terrain-polygon/data/worker.js +0 -146
  239. package/semiplugins/shape-on-terrain/terrain-polygon/notes.md +0 -90
  240. package/semiplugins/shape-on-terrain/terrain-polygon/types.ts +0 -69
  241. package/semiplugins/shell/bbox-renderer/index.ts +0 -2
  242. package/semiplugins/shell/bbox-renderer/object.ts +0 -129
  243. package/semiplugins/type.ts +0 -8
  244. package/terrain-plugin.mmd +0 -83
  245. package/tests/Math/arc-sampling-test.js +0 -367
  246. package/tests/Math/arc-sampling-test.ts +0 -429
  247. package/tests/Math/arc.test.ts +0 -77
  248. package/tests/Math/junction/arc-limit.test.ts +0 -7
  249. package/tests/Math/junction/arc-plane-points.test.ts +0 -196
  250. package/tests/Math/junction/arc-plane.test.ts +0 -172
  251. package/tests/Math/junction/line-sphere.test.ts +0 -127
  252. package/tests/Math/junction/plane-plane.test.ts +0 -91
  253. package/tests/Math/plane-test.ts +0 -17
  254. package/tests/Math/plane.test.ts +0 -43
  255. package/tests/Math/vec3.test.ts +0 -33
  256. package/tracks/point-heat-map/index.js +0 -0
  257. package/tracks/point-heat-map/readme.md +0 -15
  258. package/tracks/timetracks/readme.md +0 -1
  259. package/tsconfig.json +0 -22
  260. package/types/@pirireis/webglobe.d.ts +0 -102
  261. package/types/delaunator.d.ts +0 -40
  262. package/types/earcut.d.ts +0 -11
  263. package/types/rbush.d.ts +0 -57
  264. package/types.ts +0 -319
  265. package/util/account/create-buffermap-orchastration.ts +0 -85
  266. package/util/account/single-attribute-buffer-management/types.ts +0 -43
  267. package/util/algorithms/index.js +0 -0
  268. package/util/check/index.js +0 -0
  269. package/util/check/typecheck.ts +0 -74
  270. package/util/gl-util/buffer/attribute-loader.ts +0 -84
  271. package/util/interpolation/index.js +0 -0
  272. package/util/interpolation/timetrack/index.js +0 -9
  273. package/vectorfield/wind/adapters/image-to-fields.ts +0 -74
  274. package/vectorfield/wind/adapters/types.ts +0 -12
  275. package/vectorfield/wind/plugin-persistant copy.ts +0 -461
  276. package/write-text/context-text3.ts +0 -252
  277. package/write-text/objectarraylabels/objectarraylabels.d.ts +0 -72
@@ -1,446 +1,382 @@
1
- import { ContextTextWriter3 } from "../../write-text/context-text3";
2
- import { Chain, Node, StyleProperties } from "./types";
3
- interface ChainProperties extends StyleProperties {
4
- [key: string]: any;
5
- }
6
-
7
- interface TextWriter {
8
- insertTextBulk(data: any[], properties: ChainProperties): void;
9
- }
10
-
11
- type KeyMethod = (chainKey: string, nodeKey: string) => string;
12
-
13
- export class ChainListMap {
14
- private _chainMap: Map<string, Node[]>;
15
- private _chainSideProperties: Map<string, ChainProperties>;
16
- private _indexMap: Map<string, number>; // hold list index of lastly updated nodes. on add delete goes empty
17
- private keyMethod: KeyMethod;
18
-
19
- constructor(keyMethod: KeyMethod) {
20
- this._chainMap = new Map();
21
- this._chainSideProperties = new Map();
22
- this._indexMap = new Map();
23
- this.keyMethod = keyMethod;
24
- }
25
-
26
-
27
- hasChain(chainKey: string): boolean {
28
- return this._chainMap.has(chainKey);
29
- }
30
-
31
- getNodes(chainKey: string): Node[] | undefined {
32
- return this._chainMap.get(chainKey);
33
- }
34
-
35
- /**
36
- *
37
- * @param node
38
- * @param chainKey
39
- * @param theNodeKeyFront
40
- */
41
- // TODO: Change name to insertNode
42
- addNode(node: Node, chainKey: string, theNodeKeyFront: string | null = null): void {
43
- const chain = this.getNodes(chainKey);
44
- if (!chain) return;
45
-
46
- let frontIndex: number | null = null;
47
- let existingNodeIndex: number | null = null;
48
- for (let i = 0; i < chain.length; i++) {
49
- const n_ode = chain[i];
50
- if (n_ode.key === node.key) {
51
- existingNodeIndex = i;
52
- }
53
- if (n_ode.key === theNodeKeyFront) {
54
- frontIndex = i;
55
- }
56
- }
57
-
58
- // If node with same key exists, overwrite it
59
- if (existingNodeIndex !== null) {
60
- node.__identity__ = this.keyMethod(chainKey, node.key);
61
- chain[existingNodeIndex] = node;
62
- this._resetIndexChain(chainKey);
63
- return;
64
- }
65
- if (theNodeKeyFront !== null) {
66
- if (frontIndex !== null) {
67
- chain.splice(frontIndex, 0, node);
68
- } else {
69
- throw new Error("Could not find theNodeKeyFront");
70
- }
71
- } else {
72
- chain.push(node);
73
- }
74
- node.__identity__ = this.keyMethod(chainKey, node.key);
75
- this._resetIndexChain(chainKey);
76
- }
77
-
78
- deleteNodesBelongToAChain(chainKey: string, nodeKeys: string[]): string[] {
79
- const chain = this._chainMap.get(chainKey);
80
- if (!chain) return [];
81
-
82
- const deleteKeys: string[] = [];
83
- const removeSet = new Set(nodeKeys);
84
- const newChain: Node[] = [];
85
-
86
- for (let i = 0; i < chain.length - 1; i++) {
87
- const node = chain[i];
88
- const dKey = node.__identity__!;
89
- this._indexMap.delete(dKey);
90
- if (removeSet.has(node.key)) {
91
- deleteKeys.push(dKey);
92
- } else {
93
- newChain.push(node);
94
- }
95
- }
96
-
97
- { // last item case
98
- const lastItem = chain[chain.length - 1];
99
- this._indexMap.delete(lastItem.__identity__!);
100
- if (removeSet.has(lastItem.key)) {
101
- if (chain.length > 1) {
102
- deleteKeys.push(chain[chain.length - 2].__identity__!);
103
- deleteKeys.push(chain[chain.length - 1].__identity__!);
104
- } else if (chain.length === 1) {
105
- deleteKeys.push(lastItem.__identity__!);
106
- }
107
- } else {
108
- newChain.push(lastItem);
109
- }
110
- }
111
-
112
-
113
- this._chainMap.set(chainKey, newChain);
114
- return deleteKeys;
115
- }
116
-
117
- deleteChainAndReturnChainKeys(chainKey: string, textWritersMap: Map<string, ContextTextWriter3> | null = null): string[] {
118
- const keys = this.getNodeKeysOfChain(chainKey);
119
- if (textWritersMap && textWritersMap.size > 0) {
120
- textWritersMap.forEach((writer) => {
121
- writer.deleteTextBulk(keys);
122
- });
123
- }
124
- this._chainMap.delete(chainKey);
125
- this._chainSideProperties.delete(chainKey);
126
- for (const key of keys) this._indexMap.delete(key);
127
- return keys;
128
- }
129
-
130
- updateNode(node: Node, chainKey: string): void {
131
- const index = this.getIndexOfNode(chainKey, node.key);
132
- if (index === undefined) return;
133
-
134
- const chain = this._chainMap.get(chainKey);
135
- if (!chain) return;
136
-
137
- node.__identity__ = this.keyMethod(chainKey, node.key);
138
- chain[index] = node;
139
- }
140
-
141
- updateNodesProperties(chainKey: string,
142
- nodes: Pick<Node, "key" | "circleProperties" | "lineProperties" | "circleOn" | "arcOn" | "lineOn">[]): void {
143
-
144
- const chain = this._chainMap.get(chainKey);
145
- if (!chain) return;
146
- nodes.forEach((node) => {
147
- const index = this.getIndexOfNode(chainKey, node.key);
148
- if (index === undefined) return;
149
- const chainNode = chain[index];
150
- if (node.circleProperties) {
151
- if (typeof chainNode.circleProperties !== 'object') chainNode.circleProperties = {};
152
- Object.entries(node.circleProperties).forEach(([key, value]) => {
153
- chainNode.circleProperties![key] = value;
154
- });
155
- }
156
- if (node.lineProperties) {
157
- if (typeof chainNode.lineProperties !== 'object') chainNode.lineProperties = {};
158
- Object.entries(node.lineProperties).forEach(([key, value]) => {
159
- chainNode.lineProperties![key] = value;
160
- });
161
- }
162
- if (node.circleOn !== undefined) chainNode.circleOn = node.circleOn;
163
- if (node.arcOn !== undefined) chainNode.arcOn = node.arcOn;
164
- if (node.lineOn !== undefined) chainNode.lineOn = node.lineOn;
165
- });
166
- }
167
-
168
- updateCoordsinatesOfNode(node: Pick<Node, "key" | "long" | "lat">, chainKey: string): void {
169
- const index = this.getIndexOfNode(chainKey, node.key);
170
- if (index === undefined) return;
171
-
172
- const chain = this._chainMap.get(chainKey);
173
- if (!chain) return;
174
-
175
- chain[index].long = node.long;
176
- chain[index].lat = node.lat;
177
- }
178
-
179
- setChain(chainKey: string, nodeList: Node[]): void {
180
- if (this._chainMap.has(chainKey)) this._flushIndexMap();
181
- this._chainMap.set(chainKey, nodeList);
182
- nodeList.forEach((v) => v.__identity__ = this.keyMethod(chainKey, v.key));
183
- }
184
-
185
- setChainProperties(chainKey: string, properties: ChainProperties): void {
186
- this._chainSideProperties.set(chainKey, properties);
187
- }
188
-
189
- /**
190
- *
191
- * @param chainKey
192
- * @param properties
193
- * // after this method update text and buffer data of the chain
194
- */
195
- updateChainProperties(chainKey: string, properties: Map<string, any>): void {
196
- const memoryProperties = this._chainSideProperties.get(chainKey);
197
- if (!memoryProperties) return;
198
-
199
- properties.forEach((value, key) => {
200
- memoryProperties[key] = value;
201
- });
202
- }
203
-
204
-
205
- // getNodeProperties(chainKey: string): ChainProperties | undefined {
206
- // return this._chainSideProperties.get(chainKey);
207
- // }
208
-
209
- getChainProperties(chainKey: string): ChainProperties | undefined {
210
- return this._chainSideProperties.get(chainKey);
211
- }
212
-
213
-
214
-
215
- deleteTexts(chainKeys: string[], textWriters: Map<string, ContextTextWriter3>): void {
216
- if (!textWriters || textWriters.size === 0) return;
217
-
218
- textWriters.forEach((writer) => {
219
- chainKeys.forEach((chainKey) => {
220
- const chain = this._chainMap.get(chainKey);
221
- if (!chain) return;
222
-
223
- const keys = chain.map((node) => node.__identity__) as string[];
224
- writer.deleteTextBulk(keys);
225
- });
226
- });
227
-
228
- }
229
-
230
- /**
231
- *
232
- * @param chainKey
233
- * @param callback | (value, index, array) => expected output
234
- */
235
- calculateBufferPropertiesChain(
236
- chainKey: string,
237
- callback: (node: Node, index: number, chain: Node[], props: ChainProperties) => any,
238
- result: any[]
239
- ): void {
240
- const chain = this._chainMap.get(chainKey);
241
- if (!chain) return;
242
-
243
- const props = this._chainSideProperties.get(chainKey);
244
- if (!props) return;
245
-
246
- for (let i = 0; i < chain.length - 1; i++) {
247
- const node = callback(chain[i], i, chain, props);
248
- if (node !== null) result.push(node);
249
- }
250
- }
251
-
252
- /**
253
- * @param chainKey
254
- * @param textWriterObjs
255
- * @param dataPreAdaptor use nodeKeys on updateCoordinatesOnly
256
- */
257
- textUpdate(
258
- chainKey: string,
259
- textWriterObjs: TextWriter[],
260
- dataPreAdaptor?: (item: Node, index: number, nodes: Node[]) => any | null
261
- ): void {
262
- const chain = this._chainMap.get(chainKey);
263
- if (!chain) return
264
- const data = (dataPreAdaptor) ? chain.map(dataPreAdaptor) : chain;
265
- const properties = this._chainSideProperties.get(chainKey);
266
- if (!properties) return;
267
- textWriterObjs.forEach((writer) => {
268
- writer.insertTextBulk(data, properties);
269
- });
270
- }
271
-
272
- getAllChainKeysIterator(): IterableIterator<string> {
273
- return this._chainMap.keys();
274
- }
275
-
276
- getIndexOfNode(chainKey: string, nodeKey: string): number | undefined {
277
- const key = this.keyMethod(chainKey, nodeKey);
278
- if (this._indexMap.has(key)) return this._indexMap.get(key);
279
-
280
- const chain = this._chainMap.get(chainKey);
281
- if (!chain) return undefined;
282
-
283
- for (let i = 0; i < chain.length; i++) {
284
- const node = chain[i];
285
- this._indexMap.set(key, i);
286
- if (node.key === nodeKey) {
287
- return i;
288
- }
289
- }
290
- return undefined;
291
- }
292
-
293
- private _flushIndexMap(): void {
294
- this._indexMap.clear();
295
- }
296
-
297
- private _resetIndexChain(chainKey: string): void {
298
- const chain = this._chainMap.get(chainKey);
299
- if (!chain) return;
300
-
301
- for (let i = 0; i < chain.length; i++) {
302
- const node = chain[i];
303
- this._indexMap.set(this.keyMethod(chainKey, node.key), i);
304
- }
305
- }
306
-
307
- getNodeKeysOfChain(chainKey: string): string[] {
308
- const chain = this._chainMap.get(chainKey);
309
- if (!chain) {
310
- console.warn(`Chain with key ${chainKey} not found.`);
311
- return []
312
- };
313
- const result = chain.map((v) => v.__identity__!);
314
- return result;
315
- }
316
-
317
-
318
-
319
- getChain(chainKey: string, output?: Chain): Chain | undefined {
320
- const nodes = this.getNodes(chainKey);
321
- if (!nodes) return undefined;
322
- const chainProperties = this.getChainProperties(chainKey) ?? {};
323
-
324
- // Directly modify the output object
325
- if (!output) {
326
- output = {} as Chain; // Create a new object if not provided
327
- }
328
-
329
- output.chainKey = chainKey;
330
- output.chainProperties = chainProperties;
331
- output.nodes = nodes;
332
-
333
- return output;
334
- }
335
- }
336
-
337
- // // #####################################
338
- // // #####################################
339
-
340
- // this.clcPlugin = new CircleLineChainPlugin('circleLineChain', {
341
- // textDataPreAdaptor: _this.textWriter.preAdaptor,
342
- // textWritersMap: new Map([
343
- // ['distance', this.textWriter.distance],
344
- // ['totalDistance', this.textWriter.totalDistance],
345
- // ]),
346
- // });
347
-
348
- // // #####################################
349
- // // #####################################
350
-
351
- // _this.clcPlugin.deleteNodes(
352
- // [
353
- // {
354
- // chainKey: chainKey,
355
- // nodeKeys: [currentNodes[index].key],
356
- // },
357
- // ],
358
- // { textWriterIDs: ['distance', 'totalDistance'] },
359
- // );
360
-
361
- // // #####################################
362
- // // #####################################
363
-
364
- // this.clcPlugin.updateText(['distance', 'totalDistance']);
365
-
366
- // // #####################################
367
- // // #####################################
368
-
369
- // this.clcPlugin.updateNodeCoordinates(
370
- // {
371
- // key: key,
372
- // lat: lat,
373
- // long: long,
374
- // },
375
- // chainKey,
376
- // { textWriterIDs: ['distance', 'totalDistance'] },
377
- // );
378
-
379
- // // #####################################
380
- // // #####################################
381
-
382
- // this.clcPlugin.deleteChains([chainKey]);
383
-
384
- // // #####################################
385
- // // #####################################
386
- // for (const key of this.clcPlugin._chainListMap._chainMap.keys()) { }
387
-
388
- // // #####################################
389
- // // #####################################
390
- // _this.clcPlugin.insertBulk(
391
- // [
392
- // {
393
- // chainKey: chainKey,
394
- // nodes: [{ ...currentNode }, { ...nextNode }],
395
- // chainProperties: {
396
- // ...pluginOptions,
397
- // rgba: HelperJS.normalizeRGBA(pluginOptions.rgba),
398
- // dashOpacity: 1,
399
- // },
400
- // },
401
- // ],
402
- // {
403
- // textWriterIDs: ['distance', 'totalDistance'],
404
- // },
405
- // );
406
-
407
- // // #####################################
408
- // // #####################################
409
-
410
- // _this.clcPlugin.addNode(
411
- // {
412
- // key: `point-${chainNodes.length + 1}-${uuidv4()}`,
413
- // lat: currentCoords.lat,
414
- // long: currentCoords.long,
415
- // circleProperties: {},
416
- // },
417
- // chainKey,
418
- // {
419
- // theNodeKeyFront: null,
420
- // textWriterIDs: ['distance', 'totalDistance'],
421
- // },
422
- // );
423
-
424
- // // #####################################
425
- // // #####################################
426
-
427
- // _this.clcPlugin.updateNodesProperties(chainKey, updateNodes, {
428
- // textWriterIDs: ['distance', 'totalDistance'],
429
- // });
430
-
431
- // // #####################################
432
- // // #####################################
433
-
434
- // this.clcPlugin._chainListMap.getChain(chainKey); // ismi degisti. plugininde benzer metodu var.
435
-
436
- // // #####################################
437
- // // #####################################
438
-
439
- // this.clcPlugin.setDrawCircleOn(show);
440
-
441
- // // #####################################
442
- // // #####################################
443
-
444
- // this.clcPlugin.free();
445
-
446
- // // #####################################
1
+ export class ChainListMap {
2
+ _chainMap;
3
+ _chainSideProperties;
4
+ _indexMap; // hold list index of lastly updated nodes. on add delete goes empty
5
+ keyMethod;
6
+ constructor(keyMethod) {
7
+ this._chainMap = new Map();
8
+ this._chainSideProperties = new Map();
9
+ this._indexMap = new Map();
10
+ this.keyMethod = keyMethod;
11
+ }
12
+ hasChain(chainKey) {
13
+ return this._chainMap.has(chainKey);
14
+ }
15
+ getNodes(chainKey) {
16
+ return this._chainMap.get(chainKey);
17
+ }
18
+ /**
19
+ *
20
+ * @param node
21
+ * @param chainKey
22
+ * @param theNodeKeyFront
23
+ */
24
+ // TODO: Change name to insertNode
25
+ addNode(node, chainKey, theNodeKeyFront = null) {
26
+ const chain = this.getNodes(chainKey);
27
+ if (!chain)
28
+ return;
29
+ let frontIndex = null;
30
+ let existingNodeIndex = null;
31
+ for (let i = 0; i < chain.length; i++) {
32
+ const n_ode = chain[i];
33
+ if (n_ode.key === node.key) {
34
+ existingNodeIndex = i;
35
+ }
36
+ if (n_ode.key === theNodeKeyFront) {
37
+ frontIndex = i;
38
+ }
39
+ }
40
+ // If node with same key exists, overwrite it
41
+ if (existingNodeIndex !== null) {
42
+ node.__identity__ = this.keyMethod(chainKey, node.key);
43
+ chain[existingNodeIndex] = node;
44
+ this._resetIndexChain(chainKey);
45
+ return;
46
+ }
47
+ if (theNodeKeyFront !== null) {
48
+ if (frontIndex !== null) {
49
+ chain.splice(frontIndex, 0, node);
50
+ }
51
+ else {
52
+ throw new Error("Could not find theNodeKeyFront");
53
+ }
54
+ }
55
+ else {
56
+ chain.push(node);
57
+ }
58
+ node.__identity__ = this.keyMethod(chainKey, node.key);
59
+ this._resetIndexChain(chainKey);
60
+ }
61
+ deleteNodesBelongToAChain(chainKey, nodeKeys) {
62
+ const chain = this._chainMap.get(chainKey);
63
+ if (!chain)
64
+ return [];
65
+ const deleteKeys = [];
66
+ const removeSet = new Set(nodeKeys);
67
+ const newChain = [];
68
+ for (let i = 0; i < chain.length - 1; i++) {
69
+ const node = chain[i];
70
+ const dKey = node.__identity__;
71
+ this._indexMap.delete(dKey);
72
+ if (removeSet.has(node.key)) {
73
+ deleteKeys.push(dKey);
74
+ }
75
+ else {
76
+ newChain.push(node);
77
+ }
78
+ }
79
+ { // last item case
80
+ const lastItem = chain[chain.length - 1];
81
+ this._indexMap.delete(lastItem.__identity__);
82
+ if (removeSet.has(lastItem.key)) {
83
+ if (chain.length > 1) {
84
+ deleteKeys.push(chain[chain.length - 2].__identity__);
85
+ deleteKeys.push(chain[chain.length - 1].__identity__);
86
+ }
87
+ else if (chain.length === 1) {
88
+ deleteKeys.push(lastItem.__identity__);
89
+ }
90
+ }
91
+ else {
92
+ newChain.push(lastItem);
93
+ }
94
+ }
95
+ this._chainMap.set(chainKey, newChain);
96
+ return deleteKeys;
97
+ }
98
+ deleteChainAndReturnChainKeys(chainKey, textWritersMap = null) {
99
+ const keys = this.getNodeKeysOfChain(chainKey);
100
+ if (textWritersMap && textWritersMap.size > 0) {
101
+ textWritersMap.forEach((writer) => {
102
+ writer.deleteTextBulk(keys);
103
+ });
104
+ }
105
+ this._chainMap.delete(chainKey);
106
+ this._chainSideProperties.delete(chainKey);
107
+ for (const key of keys)
108
+ this._indexMap.delete(key);
109
+ return keys;
110
+ }
111
+ updateNode(node, chainKey) {
112
+ const index = this.getIndexOfNode(chainKey, node.key);
113
+ if (index === undefined)
114
+ return;
115
+ const chain = this._chainMap.get(chainKey);
116
+ if (!chain)
117
+ return;
118
+ node.__identity__ = this.keyMethod(chainKey, node.key);
119
+ chain[index] = node;
120
+ }
121
+ updateNodesProperties(chainKey, nodes) {
122
+ const chain = this._chainMap.get(chainKey);
123
+ if (!chain)
124
+ return;
125
+ nodes.forEach((node) => {
126
+ const index = this.getIndexOfNode(chainKey, node.key);
127
+ if (index === undefined)
128
+ return;
129
+ const chainNode = chain[index];
130
+ if (node.circleProperties) {
131
+ if (typeof chainNode.circleProperties !== 'object')
132
+ chainNode.circleProperties = {};
133
+ Object.entries(node.circleProperties).forEach(([key, value]) => {
134
+ chainNode.circleProperties[key] = value;
135
+ });
136
+ }
137
+ if (node.lineProperties) {
138
+ if (typeof chainNode.lineProperties !== 'object')
139
+ chainNode.lineProperties = {};
140
+ Object.entries(node.lineProperties).forEach(([key, value]) => {
141
+ chainNode.lineProperties[key] = value;
142
+ });
143
+ }
144
+ if (node.circleOn !== undefined)
145
+ chainNode.circleOn = node.circleOn;
146
+ if (node.arcOn !== undefined)
147
+ chainNode.arcOn = node.arcOn;
148
+ if (node.lineOn !== undefined)
149
+ chainNode.lineOn = node.lineOn;
150
+ });
151
+ }
152
+ updateCoordsinatesOfNode(node, chainKey) {
153
+ const index = this.getIndexOfNode(chainKey, node.key);
154
+ if (index === undefined)
155
+ return;
156
+ const chain = this._chainMap.get(chainKey);
157
+ if (!chain)
158
+ return;
159
+ chain[index].long = node.long;
160
+ chain[index].lat = node.lat;
161
+ }
162
+ setChain(chainKey, nodeList) {
163
+ if (this._chainMap.has(chainKey))
164
+ this._flushIndexMap();
165
+ this._chainMap.set(chainKey, nodeList);
166
+ nodeList.forEach((v) => v.__identity__ = this.keyMethod(chainKey, v.key));
167
+ }
168
+ setChainProperties(chainKey, properties) {
169
+ this._chainSideProperties.set(chainKey, properties);
170
+ }
171
+ /**
172
+ *
173
+ * @param chainKey
174
+ * @param properties
175
+ * // after this method update text and buffer data of the chain
176
+ */
177
+ updateChainProperties(chainKey, properties) {
178
+ const memoryProperties = this._chainSideProperties.get(chainKey);
179
+ if (!memoryProperties)
180
+ return;
181
+ properties.forEach((value, key) => {
182
+ memoryProperties[key] = value;
183
+ });
184
+ }
185
+ // getNodeProperties(chainKey: string): ChainProperties | undefined {
186
+ // return this._chainSideProperties.get(chainKey);
187
+ // }
188
+ getChainProperties(chainKey) {
189
+ return this._chainSideProperties.get(chainKey);
190
+ }
191
+ deleteTexts(chainKeys, textWriters) {
192
+ if (!textWriters || textWriters.size === 0)
193
+ return;
194
+ textWriters.forEach((writer) => {
195
+ chainKeys.forEach((chainKey) => {
196
+ const chain = this._chainMap.get(chainKey);
197
+ if (!chain)
198
+ return;
199
+ const keys = chain.map((node) => node.__identity__);
200
+ writer.deleteTextBulk(keys);
201
+ });
202
+ });
203
+ }
204
+ /**
205
+ *
206
+ * @param chainKey
207
+ * @param callback | (value, index, array) => expected output
208
+ */
209
+ calculateBufferPropertiesChain(chainKey, callback, result) {
210
+ const chain = this._chainMap.get(chainKey);
211
+ if (!chain)
212
+ return;
213
+ const props = this._chainSideProperties.get(chainKey);
214
+ if (!props)
215
+ return;
216
+ for (let i = 0; i < chain.length - 1; i++) {
217
+ const node = callback(chain[i], i, chain, props);
218
+ if (node !== null)
219
+ result.push(node);
220
+ }
221
+ }
222
+ /**
223
+ * @param chainKey
224
+ * @param textWriterObjs
225
+ * @param dataPreAdaptor use nodeKeys on updateCoordinatesOnly
226
+ */
227
+ textUpdate(chainKey, textWriterObjs, dataPreAdaptor) {
228
+ const chain = this._chainMap.get(chainKey);
229
+ if (!chain)
230
+ return;
231
+ const data = (dataPreAdaptor) ? chain.map(dataPreAdaptor) : chain;
232
+ const properties = this._chainSideProperties.get(chainKey);
233
+ if (!properties)
234
+ return;
235
+ textWriterObjs.forEach((writer) => {
236
+ writer.insertTextBulk(data, properties);
237
+ });
238
+ }
239
+ getAllChainKeysIterator() {
240
+ return this._chainMap.keys();
241
+ }
242
+ getIndexOfNode(chainKey, nodeKey) {
243
+ const key = this.keyMethod(chainKey, nodeKey);
244
+ if (this._indexMap.has(key))
245
+ return this._indexMap.get(key);
246
+ const chain = this._chainMap.get(chainKey);
247
+ if (!chain)
248
+ return undefined;
249
+ for (let i = 0; i < chain.length; i++) {
250
+ const node = chain[i];
251
+ this._indexMap.set(key, i);
252
+ if (node.key === nodeKey) {
253
+ return i;
254
+ }
255
+ }
256
+ return undefined;
257
+ }
258
+ _flushIndexMap() {
259
+ this._indexMap.clear();
260
+ }
261
+ _resetIndexChain(chainKey) {
262
+ const chain = this._chainMap.get(chainKey);
263
+ if (!chain)
264
+ return;
265
+ for (let i = 0; i < chain.length; i++) {
266
+ const node = chain[i];
267
+ this._indexMap.set(this.keyMethod(chainKey, node.key), i);
268
+ }
269
+ }
270
+ getNodeKeysOfChain(chainKey) {
271
+ const chain = this._chainMap.get(chainKey);
272
+ if (!chain) {
273
+ console.warn(`Chain with key ${chainKey} not found.`);
274
+ return [];
275
+ }
276
+ ;
277
+ const result = chain.map((v) => v.__identity__);
278
+ return result;
279
+ }
280
+ getChain(chainKey, output) {
281
+ const nodes = this.getNodes(chainKey);
282
+ if (!nodes)
283
+ return undefined;
284
+ const chainProperties = this.getChainProperties(chainKey) ?? {};
285
+ // Directly modify the output object
286
+ if (!output) {
287
+ output = {}; // Create a new object if not provided
288
+ }
289
+ output.chainKey = chainKey;
290
+ output.chainProperties = chainProperties;
291
+ output.nodes = nodes;
292
+ return output;
293
+ }
294
+ }
295
+ // // #####################################
296
+ // // #####################################
297
+ // this.clcPlugin = new CircleLineChainPlugin('circleLineChain', {
298
+ // textDataPreAdaptor: _this.textWriter.preAdaptor,
299
+ // textWritersMap: new Map([
300
+ // ['distance', this.textWriter.distance],
301
+ // ['totalDistance', this.textWriter.totalDistance],
302
+ // ]),
303
+ // });
304
+ // // #####################################
305
+ // // #####################################
306
+ // _this.clcPlugin.deleteNodes(
307
+ // [
308
+ // {
309
+ // chainKey: chainKey,
310
+ // nodeKeys: [currentNodes[index].key],
311
+ // },
312
+ // ],
313
+ // { textWriterIDs: ['distance', 'totalDistance'] },
314
+ // );
315
+ // // #####################################
316
+ // // #####################################
317
+ // this.clcPlugin.updateText(['distance', 'totalDistance']);
318
+ // // #####################################
319
+ // // #####################################
320
+ // this.clcPlugin.updateNodeCoordinates(
321
+ // {
322
+ // key: key,
323
+ // lat: lat,
324
+ // long: long,
325
+ // },
326
+ // chainKey,
327
+ // { textWriterIDs: ['distance', 'totalDistance'] },
328
+ // );
329
+ // // #####################################
330
+ // // #####################################
331
+ // this.clcPlugin.deleteChains([chainKey]);
332
+ // // #####################################
333
+ // // #####################################
334
+ // for (const key of this.clcPlugin._chainListMap._chainMap.keys()) { }
335
+ // // #####################################
336
+ // // #####################################
337
+ // _this.clcPlugin.insertBulk(
338
+ // [
339
+ // {
340
+ // chainKey: chainKey,
341
+ // nodes: [{ ...currentNode }, { ...nextNode }],
342
+ // chainProperties: {
343
+ // ...pluginOptions,
344
+ // rgba: HelperJS.normalizeRGBA(pluginOptions.rgba),
345
+ // dashOpacity: 1,
346
+ // },
347
+ // },
348
+ // ],
349
+ // {
350
+ // textWriterIDs: ['distance', 'totalDistance'],
351
+ // },
352
+ // );
353
+ // // #####################################
354
+ // // #####################################
355
+ // _this.clcPlugin.addNode(
356
+ // {
357
+ // key: `point-${chainNodes.length + 1}-${uuidv4()}`,
358
+ // lat: currentCoords.lat,
359
+ // long: currentCoords.long,
360
+ // circleProperties: {},
361
+ // },
362
+ // chainKey,
363
+ // {
364
+ // theNodeKeyFront: null,
365
+ // textWriterIDs: ['distance', 'totalDistance'],
366
+ // },
367
+ // );
368
+ // // #####################################
369
+ // // #####################################
370
+ // _this.clcPlugin.updateNodesProperties(chainKey, updateNodes, {
371
+ // textWriterIDs: ['distance', 'totalDistance'],
372
+ // });
373
+ // // #####################################
374
+ // // #####################################
375
+ // this.clcPlugin._chainListMap.getChain(chainKey); // ismi degisti. plugininde benzer metodu var.
376
+ // // #####################################
377
+ // // #####################################
378
+ // this.clcPlugin.setDrawCircleOn(show);
379
+ // // #####################################
380
+ // // #####################################
381
+ // this.clcPlugin.free();
382
+ // // #####################################