@pirireis/webglobeplugins 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/Math/{angle-calculation.ts → angle-calculation.js} +14 -18
  2. package/Math/{arc-cdf-points.ts → arc-cdf-points.js} +272 -329
  3. package/Math/{arc-generate-points-exponantial.ts → arc-generate-points-exponantial.js} +254 -299
  4. package/Math/{arc.ts → arc.js} +292 -421
  5. package/Math/bounds/line-bbox.js +186 -225
  6. package/Math/{circle-cdf-points.ts → circle-cdf-points.js} +78 -143
  7. package/Math/{circle.ts → circle.js} +33 -49
  8. package/Math/{constants.ts → constants.js} +4 -12
  9. package/Math/contour/{quadtreecontours.ts → quadtreecontours.js} +300 -371
  10. package/Math/contour/quadtreecontours1.js +298 -336
  11. package/Math/{finite-line-2d.ts → finite-line-2d.js} +58 -68
  12. package/Math/{haversine.ts → haversine.js} +22 -33
  13. package/Math/index.js +1 -0
  14. package/Math/juction/{arc-plane.ts → arc-plane.js} +143 -203
  15. package/Math/juction/{line-sphere.ts → line-sphere.js} +22 -32
  16. package/Math/juction/{plane-plane.ts → plane-plane.js} +53 -62
  17. package/Math/{line.ts → line.js} +52 -84
  18. package/Math/matrix4.js +1 -0
  19. package/Math/{methods.ts → methods.js} +126 -182
  20. package/Math/{plane.ts → plane.js} +56 -92
  21. package/Math/{quaternion.ts → quaternion.js} +106 -128
  22. package/Math/templete-shapes/{grid-visually-equal.ts → grid-visually-equal.js} +65 -118
  23. package/Math/tessellation/constants.js +1 -0
  24. package/Math/tessellation/{methods.ts → methods.js} +49 -79
  25. package/Math/tessellation/{nearest-value-padding.ts → nearest-value-padding.js} +112 -147
  26. package/Math/tessellation/{spherical-triangle-area.ts → spherical-triangle-area.js} +99 -127
  27. package/Math/tessellation/{tile-merger.ts → tile-merger.js} +429 -578
  28. package/Math/tessellation/{triangle-tessellation.ts → triangle-tessellation.js} +386 -533
  29. package/Math/tessellation/types.js +1 -0
  30. package/Math/types.js +1 -0
  31. package/Math/utils.js +2 -3
  32. package/Math/{vec3.ts → vec3.js} +155 -227
  33. package/Math/{xyz-tile.ts → xyz-tile.js} +18 -26
  34. package/algorithms/search-binary.js +16 -14
  35. package/altitude-locator/adaptors.js +1 -0
  36. package/altitude-locator/keymethod.js +1 -0
  37. package/altitude-locator/plugin.js +344 -445
  38. package/altitude-locator/types.js +21 -26
  39. package/compass-rose/compass-rose-padding-flat.js +230 -274
  40. package/compass-rose/{compass-text-writer.ts → compass-text-writer.js} +155 -210
  41. package/compass-rose/index.js +3 -3
  42. package/{constants.ts → constants.js} +6 -8
  43. package/heatwave/datamanager.js +149 -168
  44. package/heatwave/heatwave.js +206 -261
  45. package/heatwave/index.js +5 -5
  46. package/heatwave/isobar.js +303 -340
  47. package/heatwave/{texture-point-sampler.ts → texture-point-sampler.js} +187 -220
  48. package/investigation-tools/draw/tiles/adapters.js +67 -0
  49. package/investigation-tools/draw/tiles/{tiles.ts → tiles.js} +128 -162
  50. package/jest.config.js +7 -6
  51. package/package.json +1 -1
  52. package/pin/pin-object-array1.js +300 -381
  53. package/pin/pin-point-totem1.js +60 -77
  54. package/programs/arrowfield/arrow-field.js +60 -89
  55. package/programs/arrowfield/logic.js +141 -173
  56. package/programs/data2legend/density-to-legend.js +68 -86
  57. package/programs/data2legend/point-to-density-texture.js +67 -84
  58. package/programs/float2legendwithratio/index.js +2 -3
  59. package/programs/float2legendwithratio/logic.js +118 -144
  60. package/programs/float2legendwithratio/object.js +104 -141
  61. package/programs/helpers/blender.js +58 -73
  62. package/programs/helpers/{fadeaway.ts → fadeaway.js} +60 -73
  63. package/programs/index.js +20 -19
  64. package/programs/line-on-globe/circle-accurate-3d.js +85 -112
  65. package/programs/line-on-globe/circle-accurate-flat.js +148 -200
  66. package/programs/line-on-globe/degree-padding-around-circle-3d.js +102 -134
  67. package/programs/line-on-globe/index.js +1 -0
  68. package/programs/line-on-globe/lines-color-instanced-flat.js +80 -99
  69. package/programs/line-on-globe/linestrip/data.js +4 -0
  70. package/programs/line-on-globe/linestrip/{linestrip.ts → linestrip.js} +93 -152
  71. package/programs/line-on-globe/{naive-accurate-flexible.ts → naive-accurate-flexible.js} +126 -175
  72. package/programs/line-on-globe/util.js +5 -8
  73. package/programs/picking/pickable-polygon-renderer.js +98 -129
  74. package/programs/picking/pickable-renderer.js +98 -130
  75. package/programs/point-on-globe/element-globe-surface-glow.js +93 -122
  76. package/programs/point-on-globe/element-point-glow.js +80 -114
  77. package/programs/point-on-globe/square-pixel-point.js +121 -139
  78. package/programs/polygon-on-globe/{texture-dem-triangles.ts → texture-dem-triangles.js} +163 -207
  79. package/programs/{programcache.ts → programcache.js} +126 -134
  80. package/programs/rings/index.js +1 -1
  81. package/programs/rings/partial-ring/{piece-of-pie.ts → piece-of-pie.js} +152 -222
  82. package/programs/totems/camera-totem-attactment-interface.js +1 -0
  83. package/programs/totems/{camerauniformblock.ts → camerauniformblock.js} +225 -310
  84. package/programs/totems/{canvas-webglobe-info.ts → canvas-webglobe-info.js} +132 -147
  85. package/programs/totems/{dem-textures-manager.ts → dem-textures-manager.js} +257 -360
  86. package/programs/totems/{globe-changes.ts → globe-changes.js} +59 -79
  87. package/programs/totems/gpu-selection-uniform-block.js +99 -127
  88. package/programs/totems/{index.ts → index.js} +2 -2
  89. package/programs/two-d/pixel-padding-for-compass.js +87 -101
  90. package/programs/util.js +14 -19
  91. package/programs/vectorfields/logics/{constants.ts → constants.js} +4 -5
  92. package/programs/vectorfields/logics/{drawrectangleparticles.ts → drawrectangleparticles.js} +80 -115
  93. package/programs/vectorfields/logics/index.js +2 -4
  94. package/programs/vectorfields/logics/particle-ubo.js +16 -0
  95. package/programs/vectorfields/logics/{pixelbased.ts → pixelbased.js} +86 -115
  96. package/programs/vectorfields/logics/ubo.js +51 -57
  97. package/programs/vectorfields/{pingpongbuffermanager.ts → pingpongbuffermanager.js} +99 -113
  98. package/range-tools-on-terrain/bearing-line/{adapters.ts → adapters.js} +114 -154
  99. package/range-tools-on-terrain/bearing-line/{plugin.ts → plugin.js} +457 -569
  100. package/range-tools-on-terrain/bearing-line/types.js +1 -0
  101. package/range-tools-on-terrain/circle-line-chain/{adapters.ts → adapters.js} +85 -104
  102. package/range-tools-on-terrain/circle-line-chain/{chain-list-map.ts → chain-list-map.js} +382 -446
  103. package/range-tools-on-terrain/circle-line-chain/{plugin.ts → plugin.js} +464 -607
  104. package/range-tools-on-terrain/circle-line-chain/types.js +1 -0
  105. package/range-tools-on-terrain/range-ring/{adapters.ts → adapters.js} +93 -114
  106. package/range-tools-on-terrain/range-ring/{enum.ts → enum.js} +2 -2
  107. package/range-tools-on-terrain/range-ring/{plugin.ts → plugin.js} +377 -444
  108. package/range-tools-on-terrain/range-ring/rangeringangletext.js +331 -0
  109. package/range-tools-on-terrain/range-ring/types.js +9 -0
  110. package/semiplugins/interface.js +1 -0
  111. package/semiplugins/lightweight/{line-plugin.ts → line-plugin.js} +221 -342
  112. package/semiplugins/lightweight/{piece-of-pie-plugin.ts → piece-of-pie-plugin.js} +200 -275
  113. package/semiplugins/shape-on-terrain/{arc-plugin.ts → arc-plugin.js} +481 -616
  114. package/semiplugins/shape-on-terrain/{circle-plugin.ts → circle-plugin.js} +444 -588
  115. package/semiplugins/shape-on-terrain/{padding-1-degree.ts → padding-1-degree.js} +539 -713
  116. package/semiplugins/shape-on-terrain/terrain-polygon/{adapters.ts → adapters.js} +55 -69
  117. package/semiplugins/shape-on-terrain/terrain-polygon/data/{cache.ts → cache.js} +102 -149
  118. package/semiplugins/shape-on-terrain/terrain-polygon/data/{index-polygon-map.ts → index-polygon-map.js} +45 -58
  119. package/semiplugins/shape-on-terrain/terrain-polygon/data/{manager.ts → manager.js} +4 -4
  120. package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.js +177 -196
  121. package/semiplugins/shape-on-terrain/terrain-polygon/data/{polygon-to-triangles.ts → polygon-to-triangles.js} +100 -144
  122. package/semiplugins/shape-on-terrain/terrain-polygon/data/{random.ts → random.js} +121 -165
  123. package/semiplugins/shape-on-terrain/terrain-polygon/data/types.js +1 -0
  124. package/semiplugins/shape-on-terrain/terrain-polygon/data/{worker-contact.ts → worker-contact.js} +63 -81
  125. package/semiplugins/shape-on-terrain/terrain-polygon/data/worker.js +125 -146
  126. package/semiplugins/shape-on-terrain/terrain-polygon/{terrain-polygon.ts → terrain-polygon.js} +219 -265
  127. package/semiplugins/shape-on-terrain/terrain-polygon/types.js +8 -0
  128. package/semiplugins/shell/bbox-renderer/index.js +2 -0
  129. package/semiplugins/shell/bbox-renderer/{logic.ts → logic.js} +209 -273
  130. package/semiplugins/shell/bbox-renderer/object.js +75 -0
  131. package/semiplugins/type.js +1 -0
  132. package/semiplugins/utility/{container-plugin.ts → container-plugin.js} +94 -126
  133. package/semiplugins/utility/{object-pass-container-plugin.ts → object-pass-container-plugin.js} +80 -101
  134. package/shaders/fragment-toy/firework.js +1 -1
  135. package/shaders/fragment-toy/singularity.js +2 -5
  136. package/tracks/point-heat-map/adaptors/timetracksplugin-format-to-this.js +63 -78
  137. package/tracks/point-heat-map/index.js +1 -0
  138. package/tracks/point-heat-map/plugin-webworker.js +121 -148
  139. package/tracks/point-heat-map/point-to-heat-map-flow.js +121 -150
  140. package/tracks/point-tracks/key-methods.js +2 -3
  141. package/tracks/point-tracks/plugin.js +401 -487
  142. package/tracks/timetracks/adaptors-line-strip.js +65 -79
  143. package/tracks/timetracks/plugin-line-strip.js +240 -295
  144. package/tracks/timetracks/program-line-strip.js +411 -495
  145. package/tracks/timetracks/programpoint-line-strip.js +109 -137
  146. package/types.js +19 -0
  147. package/util/account/bufferoffsetmanager.js +176 -209
  148. package/util/account/create-buffermap-orchastration.js +39 -0
  149. package/util/account/index.js +3 -6
  150. package/util/account/single-attribute-buffer-management/{buffer-manager.ts → buffer-manager.js} +119 -151
  151. package/util/account/single-attribute-buffer-management/{buffer-orchestrator.ts → buffer-orchestrator.js} +212 -238
  152. package/util/account/single-attribute-buffer-management/{buffer-orchestrator1.ts → buffer-orchestrator1.js} +159 -184
  153. package/util/account/single-attribute-buffer-management/{index.ts → index.js} +4 -11
  154. package/util/account/single-attribute-buffer-management/{object-store.ts → object-store.js} +55 -76
  155. package/util/account/single-attribute-buffer-management/types.js +1 -0
  156. package/util/account/util.js +18 -22
  157. package/util/algorithms/index.js +1 -0
  158. package/util/algorithms/search-binary.js +25 -26
  159. package/util/build-strategy/{static-dynamic.ts → static-dynamic.js} +41 -50
  160. package/util/check/index.js +1 -0
  161. package/util/check/typecheck.js +66 -0
  162. package/util/{frame-counter-trigger.ts → frame-counter-trigger.js} +84 -99
  163. package/util/geometry/{index.ts → index.js} +121 -155
  164. package/util/gl-util/buffer/{attribute-loader.ts → attribute-loader.js} +62 -84
  165. package/util/gl-util/buffer/{index.ts → index.js} +3 -6
  166. package/util/gl-util/draw-options/{methods.ts → methods.js} +32 -47
  167. package/util/gl-util/uniform-block/{manager.ts → manager.js} +200 -232
  168. package/util/{globe-default-gl-states.ts → globe-default-gl-states.js} +4 -5
  169. package/util/{helper-methods.ts → helper-methods.js} +8 -9
  170. package/util/index.js +10 -9
  171. package/util/interpolation/index.js +1 -0
  172. package/util/interpolation/timetrack/index.js +2 -9
  173. package/util/interpolation/timetrack/timetrack-interpolator.js +79 -94
  174. package/util/interpolation/timetrack/web-worker.js +46 -51
  175. package/util/picking/{fence.ts → fence.js} +43 -47
  176. package/util/picking/{picker-displayer.ts → picker-displayer.js} +176 -226
  177. package/util/programs/draw-from-pixel-coords.js +164 -201
  178. package/util/programs/{draw-texture-on-canvas.ts → draw-texture-on-canvas.js} +69 -91
  179. package/util/programs/supersampletotextures.js +97 -130
  180. package/util/programs/texturetoglobe.js +128 -153
  181. package/util/shaderfunctions/{geometrytransformations.ts → geometrytransformations.js} +44 -106
  182. package/util/shaderfunctions/index.js +2 -2
  183. package/util/shaderfunctions/nodata.js +2 -4
  184. package/util/shaderfunctions/noisefunctions.js +7 -10
  185. package/util/{webglobjectbuilders.ts → webglobjectbuilders.js} +358 -446
  186. package/vectorfield/arrowfield/adaptor.js +11 -11
  187. package/vectorfield/arrowfield/index.js +3 -3
  188. package/vectorfield/arrowfield/plugin.js +83 -128
  189. package/vectorfield/waveparticles/adaptor.js +15 -16
  190. package/vectorfield/waveparticles/index.js +3 -3
  191. package/vectorfield/waveparticles/{plugin.ts → plugin.js} +415 -506
  192. package/vectorfield/wind/adapters/{image-to-fields.ts → image-to-fields.js} +61 -74
  193. package/vectorfield/wind/adapters/types.js +1 -0
  194. package/vectorfield/wind/{imagetovectorfieldandmagnitude.ts → imagetovectorfieldandmagnitude.js} +53 -78
  195. package/vectorfield/wind/index.js +5 -5
  196. package/vectorfield/wind/{plugin-persistant copy.ts → plugin-persistant copy.js } +364 -461
  197. package/vectorfield/wind/{plugin-persistant.ts → plugin-persistant.js} +375 -483
  198. package/vectorfield/wind/plugin.js +685 -883
  199. package/vectorfield/wind/vectorfieldimage.js +23 -27
  200. package/write-text/{context-text-bulk.ts → context-text-bulk.js} +200 -285
  201. package/write-text/context-text3.js +167 -0
  202. package/write-text/{context-text4.ts → context-text4.js} +146 -231
  203. package/write-text/context-textDELETE.js +94 -125
  204. package/write-text/objectarraylabels/{index.ts → index.js} +2 -2
  205. package/write-text/objectarraylabels/objectarraylabels.js +200 -247
  206. package/Math/matrix4.ts +0 -0
  207. package/Math/mesh/mapbox-delaunay.d.ts +0 -74
  208. package/Math/roadmap.md +0 -10
  209. package/Math/tessellation/constants.ts +0 -1
  210. package/Math/tessellation/roadmap.md +0 -48
  211. package/Math/tessellation/types.ts +0 -1
  212. package/Math/types.ts +0 -68
  213. package/investigation-tools/draw/tiles/adapters.ts +0 -133
  214. package/programs/line-on-globe/linestrip/data.ts +0 -29
  215. package/programs/polygon-on-globe/roadmap.md +0 -8
  216. package/programs/totems/camera-totem-attactment-interface.ts +0 -4
  217. package/programs/vectorfields/logics/particle-ubo.ts +0 -23
  218. package/publish.bat +0 -62
  219. package/range-tools-on-terrain/bearing-line/types.ts +0 -65
  220. package/range-tools-on-terrain/circle-line-chain/types.ts +0 -43
  221. package/range-tools-on-terrain/range-ring/rangeringangletext.ts +0 -396
  222. package/range-tools-on-terrain/range-ring/types.ts +0 -30
  223. package/semiplugins/interface.ts +0 -14
  224. package/semiplugins/shape-on-terrain/goal.md +0 -12
  225. package/semiplugins/shape-on-terrain/terrain-polygon/data/cache-shortcuts.md +0 -20
  226. package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.ts +0 -209
  227. package/semiplugins/shape-on-terrain/terrain-polygon/data/readme.md +0 -5
  228. package/semiplugins/shape-on-terrain/terrain-polygon/data/types.ts +0 -37
  229. package/semiplugins/shape-on-terrain/terrain-polygon/notes.md +0 -90
  230. package/semiplugins/shape-on-terrain/terrain-polygon/types.ts +0 -69
  231. package/semiplugins/shell/bbox-renderer/index.ts +0 -2
  232. package/semiplugins/shell/bbox-renderer/object.ts +0 -129
  233. package/semiplugins/type.ts +0 -8
  234. package/terrain-plugin.mmd +0 -83
  235. package/tests/Math/arc-sampling-test.js +0 -367
  236. package/tests/Math/arc-sampling-test.ts +0 -429
  237. package/tests/Math/arc.test.ts +0 -77
  238. package/tests/Math/junction/arc-limit.test.ts +0 -7
  239. package/tests/Math/junction/arc-plane-points.test.ts +0 -196
  240. package/tests/Math/junction/arc-plane.test.ts +0 -172
  241. package/tests/Math/junction/line-sphere.test.ts +0 -127
  242. package/tests/Math/junction/plane-plane.test.ts +0 -91
  243. package/tests/Math/plane-test.ts +0 -17
  244. package/tests/Math/plane.test.ts +0 -43
  245. package/tests/Math/vec3.test.ts +0 -33
  246. package/tracks/point-heat-map/readme.md +0 -15
  247. package/tracks/timetracks/readme.md +0 -1
  248. package/tsconfig.json +0 -22
  249. package/types/@pirireis/webglobe.d.ts +0 -102
  250. package/types/delaunator.d.ts +0 -40
  251. package/types/earcut.d.ts +0 -11
  252. package/types/rbush.d.ts +0 -57
  253. package/types.ts +0 -319
  254. package/util/account/create-buffermap-orchastration.ts +0 -85
  255. package/util/account/single-attribute-buffer-management/types.ts +0 -43
  256. package/util/check/typecheck.ts +0 -74
  257. package/vectorfield/wind/adapters/types.ts +0 -12
  258. package/write-text/context-text3.ts +0 -252
  259. package/write-text/objectarraylabels/objectarraylabels.d.ts +0 -72
@@ -1,15 +0,0 @@
1
- # Content
2
-
3
- point-heat-map/
4
- ├── plugin.js
5
- └── point-to-heat-flow.js
6
-
7
- ## plugin.js
8
-
9
- Contains plugin plugin that calculates data on main thread.
10
-
11
- ## point-to-heat-flow.js
12
-
13
- Contains a wrapper around point-to-density and density-to-color-ramp programs.
14
-
15
- The reason behind seperation of program flow and plugin is to explore web-worker version of interpolation and compare it with main thread version.
@@ -1 +0,0 @@
1
- TODO: delete program, programpoint, maybe adaptors. which are related to the old version of this plugin.
package/tsconfig.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2022",
4
- "module": "es2015",
5
- "outDir": "./dist",
6
- "strict": true,
7
- "esModuleInterop": true,
8
- "skipLibCheck": true,
9
- "forceConsistentCasingInFileNames": true,
10
- "allowJs": true,
11
- "declaration": false
12
- },
13
- "include": [
14
- "**/*.ts", // Include all .ts files in the current directory and subdirectories
15
- "**/*.js" // Include all .js files in the current directory and subdirectories
16
- ],
17
- "exclude": [
18
- "node_modules",
19
- "dist", // Exclude the output directory itself
20
- "./tests/**/*" // Exclude tests directory
21
- ]
22
- }
@@ -1,102 +0,0 @@
1
- interface LayerObjectObjectArray {
2
- displayName: string;
3
- layerType: number;
4
- wkbGeom: null;
5
- wfsLayerName: null;
6
- objectType: string;
7
- bbox: null;
8
- startLod: number;
9
- endLod: number;
10
- continuousLOD: boolean;
11
- MVTXYZName: string;
12
- rasterize: boolean;
13
- style: StyleObjectArray;
14
- id: string;
15
- }
16
-
17
- interface LabelObjectArray {
18
- offset: { x: number; y: number };
19
- fontFamily: { hollowWidth: number };
20
- vAlignment: number;
21
- hAlignment: number;
22
- size: number;
23
- text: string;
24
- }
25
-
26
- declare module "@pirireis/webglobe" {
27
- // A placeholder for the main globe object.
28
- // It seems to have at least an `ObjectArray` property.
29
- export interface CSGlobe {
30
- ObjectArray: {
31
- Add(object: LayerObjectObjectArray): void;
32
- Delete(id: string): void;
33
- GetDefaultStyle(): StyleObjectArray;
34
- StyleChanged(object: LayerObjectObjectArray): void;
35
- UpdateData(object: LayerObjectObjectArray, mode: any, buckets: DataBucketObjectArray[], options: { attribs: boolean; icon: boolean; text: boolean }): void;
36
- SetData(object: LayerObjectObjectArray, data: DataBucketObjectArray): void;
37
- };
38
- }
39
-
40
- // Enum for icon types, based on usage.
41
- export enum CSIconTypes {
42
- NOICON = 0,
43
- // Other icon types can be added here.
44
- }
45
-
46
- // Enum for object types, based on usage.
47
- export enum CSObjectTypes {
48
- POINT = 1,
49
- // Other object types like LINE, POLYGON can be added here.
50
- }
51
-
52
- // Enum for object array update operations.
53
- export enum CSObjectArrayUpdateTypes {
54
- ADD = 0,
55
- UPDATE = 1,
56
- DELETE = 2,
57
- }
58
-
59
-
60
- export enum CSZMode {
61
- Z_MSL = 0,
62
- Z_GROUND_PERVERTEX = 1,
63
- Z_GROUND_FOLLOW = 2
64
- }
65
-
66
- export enum CSMeasureTextPositionTypes {
67
- CENTER = 'center',
68
- LEFT = 'left',
69
- RIGHT = 'right',
70
- TOP = 'top',
71
- BOTTOM = 'bottom',
72
- TOP_LEFT = 'top_left',
73
- TOP_RIGHT = 'top_right',
74
- BOTTOM_LEFT = 'bottom_left',
75
- BOTTOM_RIGHT = 'bottom_right'
76
- }
77
-
78
- // Interface for the style of an object array.
79
- export interface CSObjectArrayStyle {
80
- labels: CSLabelStyle[];
81
- fidKey: string;
82
- iconType: CSIconTypes;
83
- // Other style properties can be added here.
84
- }
85
-
86
- // Interface for the style of a label.
87
- export interface CSLabelStyle {
88
- text?: string;
89
- vAlignment?: number;
90
- hAlignment?: number;
91
- size?: number;
92
- drawAlways?: boolean;
93
- fontFamily?: {
94
- name?: string;
95
- bold?: boolean;
96
- hollow?: boolean;
97
- hollowWidth?: number;
98
- hollowOpacity?: number;
99
- };
100
- // Other label style properties can be added here.
101
- }
102
- }
@@ -1,40 +0,0 @@
1
- declare module 'delaunator' {
2
- export default class Delaunator<T extends ArrayLike<number> = Float64Array> {
3
- /**
4
- * Constructs a delaunay triangulation object given an array of points.
5
- * @param points Array of points
6
- * @param getX Optional function to extract x coordinate from point (defaults to p => p[0])
7
- * @param getY Optional function to extract y coordinate from point (defaults to p => p[1])
8
- */
9
- static from<P>(
10
- points: P[],
11
- getX?: (p: P) => number,
12
- getY?: (p: P) => number
13
- ): Delaunator<Float64Array>;
14
-
15
- /**
16
- * Constructs a delaunay triangulation object given an array of point coordinates
17
- * of the form: [x0, y0, x1, y1, ...]
18
- * @param coords Array of coordinates
19
- */
20
- constructor(coords: T);
21
-
22
- /** Array of point coordinates in the form [x0, y0, x1, y1, ...] */
23
- coords: T;
24
-
25
- /** Array of triangle vertex indices (each group of three numbers forms a triangle) */
26
- triangles: Uint32Array;
27
-
28
- /** Array of triangle half-edge indices for traversing the triangulation */
29
- halfedges: Int32Array;
30
-
31
- /** Array of indices that reference points on the convex hull, counter-clockwise */
32
- hull: Uint32Array;
33
-
34
- /**
35
- * Updates the triangulation if coords values were modified in place.
36
- * Useful for iterative relaxation algorithms.
37
- */
38
- update(): void;
39
- }
40
- }
package/types/earcut.d.ts DELETED
@@ -1,11 +0,0 @@
1
- declare module "earcut" {
2
- /**
3
- * Triangulate a polygon with holes.
4
- * @param vertices is a flat array of vertex coordinates like [x0,y0, x1,y1, x2,y2, ...]
5
- * @param holes is an array of hole indices if any (e.g.[5, 8] for a 12-vertex input would mean one hole with vertices 5–7 and another with 8–11).
6
- * @param dimensions is the number of coordinates per vertex in the input array (2 by default ).Only two are used for triangulation (x and y), and the rest are ignored.
7
- * @returns An array of triangle vertex indices.
8
- */
9
- function earcut(vertices: number[], holes?: number[], dimensions?: number): number[];
10
- export default earcut;
11
- }
package/types/rbush.d.ts DELETED
@@ -1,57 +0,0 @@
1
- declare module 'rbush' {
2
- export interface BBox {
3
- minX: number;
4
- minY: number;
5
- maxX: number;
6
- maxY: number;
7
- }
8
-
9
- export default class RBush<T = any> {
10
- constructor(maxEntries?: number);
11
-
12
- /**
13
- * Insert an item into the tree
14
- */
15
- insert(item: T & BBox): this;
16
-
17
- /**
18
- * Bulk-insert items into the tree
19
- */
20
- load(items: Array<T & BBox>): this;
21
-
22
- /**
23
- * Remove a previously inserted item
24
- */
25
- remove(item: T & BBox, equals?: (a: T & BBox, b: T & BBox) => boolean): this;
26
-
27
- /**
28
- * Remove all items within a bounding box
29
- */
30
- clear(): this;
31
-
32
- /**
33
- * Search for items intersecting a bounding box
34
- */
35
- search(bbox: BBox): Array<T & BBox>;
36
-
37
- /**
38
- * Search for all items contained within a bounding box
39
- */
40
- collides(bbox: BBox): boolean;
41
-
42
- /**
43
- * Export data as JSON object
44
- */
45
- toJSON(): any;
46
-
47
- /**
48
- * Import data from a JSON object
49
- */
50
- fromJSON(data: any): this;
51
-
52
- /**
53
- * Bulk-insert items and build the tree
54
- */
55
- all(): Array<T & BBox>;
56
- }
57
- }
package/types.ts DELETED
@@ -1,319 +0,0 @@
1
- export type TypedArray =
2
- Float32Array | Float64Array |
3
- Int32Array | Int16Array | Int8Array |
4
- Uint32Array | Uint16Array | Uint8Array | Uint8ClampedArray;
5
-
6
-
7
- export type Color = [number, number, number, number] | Float32Array; // RGBA color format 0-1
8
- export type CentigradeDegree = number;
9
- export type Meter = number;
10
- export type Radian = number;
11
- export type Degree = number;
12
- export type LongLatDegree = [CentigradeDegree, CentigradeDegree]; // [longitude, latitude]
13
- export type LongLatRadian = [Radian, Radian]; // [longitude, latitude]
14
-
15
- export type ColorRatio = {
16
- color: Color;
17
- ratio: CentigradeDegree;
18
- };
19
-
20
- export type BUFFER_TYPE = "STATIC_DRAW" | "DYNAMIC_DRAW" | "STREAM_DRAW";
21
-
22
-
23
- export type DRAW_MODE = 'LINE_STRIP' | 'TRIANGLE_FAN' | 'TRIANGLES' | 'POINTS' | 'LINES' | 'LINE_LOOP' | 'TRIANGLE_STRIP' | 'LINE_STRIP_ADJACENCY' | 'TRIANGLE_STRIP_ADJACENCY' | 'LINES_ADJACENCY' | 'PATCHES';
24
-
25
-
26
- export type GlobeLookInfo = {
27
- CenterLong: CentigradeDegree;
28
- CenterLat: CentigradeDegree;
29
- Distance: Meter;
30
- Tilt: CentigradeDegree;
31
- NorthAng: CentigradeDegree;
32
- }
33
-
34
-
35
- export type GlobeBBox = {
36
- ur: { x: Degree; y: Degree };
37
- ll: { x: Degree; y: Degree };
38
- }
39
-
40
- export type Tile = {
41
- row: number;
42
- column: number;
43
- level: number;
44
- }
45
-
46
-
47
- export type DrawnTileInfo = {
48
- x: number;
49
- y: number;
50
- level: number;
51
- mesh: Float32Array[];
52
- bbox: GlobeBBox;
53
- }
54
-
55
-
56
- interface GlobeMath {
57
- FindPointByPolar(
58
- centerLong: CentigradeDegree,
59
- centerLat: CentigradeDegree,
60
- distance: Meter,
61
- azimuth: CentigradeDegree
62
- ): { long: CentigradeDegree, lat: CentigradeDegree };
63
- GetDist2D(
64
- long1: CentigradeDegree,
65
- lat1: CentigradeDegree,
66
- long2: CentigradeDegree,
67
- lat2: CentigradeDegree
68
- ): Meter;
69
- GetAzimuthAngle(
70
- long1: CentigradeDegree,
71
- lat1: CentigradeDegree,
72
- long2: CentigradeDegree,
73
- lat2: CentigradeDegree
74
- ): CentigradeDegree;
75
- Clamp(x: number, min: number, max: number): number;
76
- }
77
-
78
-
79
-
80
-
81
- export interface TextFont {
82
- name: string;
83
- textColor: string;
84
- hollowColor: string;
85
- size: number;
86
- hollow: boolean;
87
- bold: boolean;
88
- italic: boolean;
89
- position?: CSMeasureTextPositionTypes | string | null;
90
- }
91
-
92
-
93
- type DrawOrder = {
94
- GetObj(index: number): PluginInterface | null;
95
- }
96
-
97
- type FCamera = {
98
- FCamLongLat: { x: Radian, y: Radian };
99
- }
100
-
101
- export interface Globe {
102
- DrawRender(): void;
103
- api_ScrW(): number;
104
- api_ScrH(): number;
105
- api_RegisterPlugin(plugin: PluginInterface, beforeObject: PluginInterface | null | undefined): void;
106
- api_UnRegisterPlugin(pluginId: string): void;
107
- api_GetCurrentGeometry(): 0 | 1;
108
- api_FlyToPoint(long: number, lat: number, height: number, tilt: number, heading: number): void;
109
- api_GetMousePos(): { canvasX: number; canvasY: number; };
110
- api_GetCurrentLODWithDecimal(): number;
111
- api_GetCurrentWorldWH(): { width: number; height: number };
112
- api_GetCurrentLookInfo(): GlobeLookInfo;
113
- api_GetCartesian3DPoint: (long: number, lat: number, height: number, msl: boolean) => [number, number, number];
114
- api_GetMercator2DPoint: (long: number, lat: number) => [number, number];
115
- api_IsScreenMoving(): boolean;
116
- api_GetMouseDeg(): { lng: number; lat: number } | null;
117
- api_GetZScale(): number;
118
- api_SetSpaceColor(color: string): void; // color format: #RRGGBBAA
119
- api_SetZScale(zScale: number): void; // Max 4
120
- api_SetWireFrameMode(wireFrame: boolean): void; // default false
121
- api_DrawContextTextMultiLine(text: string, textFont: TextFont, opacity: number, position:
122
- { x: number; y: number }, angleIsOn?: boolean | null, angle?: number | null): void;
123
- api_GetScreenPointFromGeo(coords: { long: number; lat: number; z: number }, isMSL: boolean): { x: number | null; y: number | null };
124
- api_GetCurrentWorldLimit(): GlobeBBox;
125
- api_GetVisibleTilesInfo(): DrawnTileInfo[];
126
- gl: WebGL2RenderingContext;
127
- Fp: { x: number; y: number; z: number };
128
- FUPos: { x: number; y: number; z: number };
129
- Math: GlobeMath;
130
- ObjectArray: ObjectArray;
131
- DrawOrder: DrawOrder;
132
- FCamera: FCamera;
133
- }
134
-
135
-
136
-
137
- export type GlobeChanges = {
138
- geometry: boolean;
139
- look: boolean;
140
- lod: boolean;
141
- lod2DWheel: boolean;
142
- elevationScale: boolean;
143
- screenMoved: boolean;
144
- }
145
-
146
- export type ChargerInput = {
147
- totalTime: number;
148
- ratio: number;
149
- acceleration: number;
150
- }
151
-
152
-
153
- export type DrawRange = {
154
- first: number;
155
- count: number;
156
- };
157
-
158
-
159
- export type DrawRangeIndexParams = {
160
- drawRange: DrawRange;
161
- elementBuffer?: WebGLBuffer;
162
- elementBufferIndexType?: number;
163
- drawMode?: number;
164
- };
165
-
166
-
167
- export interface ProgramInterface {
168
- draw(vao: WebGLVertexArrayObject, drawOptions: DrawRangeIndexParams, opacity: number, flexibleUBO: UBOHandler | null): void;
169
- createUBO(bufferReadType?: "STATIC_DRAW" | "DYNAMIC_DRAW" | "STREAM_DRAW"): UBOHandler;
170
- createVAO(...inputs: (BufferAndReadInfo | null)[]): WebGLVertexArrayObject;
171
- free(): void;
172
-
173
- }
174
-
175
- export enum CSRenderPass {
176
- NORMAL = 0,
177
- SELECTED,
178
- EDITING
179
- }
180
-
181
- export interface PluginInterface {
182
- id: string;
183
- globe: Globe | null;
184
- init(globe: Globe, gl: WebGL2RenderingContext): void;
185
- draw3D(projectionMatrix: Float32Array, modelViewMatrix: Float32Array, transPosition: { x: number, y: number, z: number }, csRenderPass: CSRenderPass): void;
186
- draw2D?(csRenderPass: CSRenderPass): void;
187
- free(): void;
188
-
189
- mouseDown?(x: number, y: number, event: MouseEvent, csRenderPass: CSRenderPass): boolean;
190
- mouseMove?(x: number, y: number, event: MouseEvent, csRenderPass: CSRenderPass): boolean;
191
- mouseUp?(x: number, y: number, event: MouseEvent, csRenderPass: CSRenderPass): boolean;
192
- mouseClick?(x: number, y: number, event: MouseEvent, csRenderPass: CSRenderPass): boolean;
193
- mouseDblClick?(x: number, y: number, event: MouseEvent, csRenderPass: CSRenderPass): boolean;
194
-
195
- supportNormalPass?: boolean;
196
- supportSelectedPass?: boolean;
197
- supportEditingPass?: boolean;
198
- }
199
-
200
-
201
-
202
- export type BufferAndReadInfo = {
203
- buffer: WebGLBuffer;
204
- stride: number;
205
- offset: number;
206
- };
207
-
208
- export type BufferInfo = BufferAndReadInfo | null;
209
-
210
- export type AttributeLoaderOptions = {
211
- divisor?: number | null;
212
- type?: number | null;
213
- escapeValues?: Array<number> | null;
214
- normalized?: boolean;
215
- };
216
-
217
- export type UBOHandler = {
218
- ubo: WebGLBuffer;
219
- update: (nameValueMap: Map<string, any>) => void;
220
- updateSingle: (name: string, value: Float32Array | Uint32Array | Int32Array | DataView | ArrayBuffer) => void;
221
- bind: () => void;
222
- unbind: () => void;
223
- free: () => void;
224
- };
225
-
226
-
227
- export type PluginAttachmentParameters = {
228
- plugin: PluginInterface;
229
- freeOnUnregister?: boolean;
230
- }
231
-
232
-
233
-
234
- export interface ElevationMode {
235
- setElevationMode(mode: "agl" | "msl"): void;
236
- }
237
-
238
- export interface UpdateColor {
239
- updateColors(keyColorCouples: { key: string, color: Color }[], drawRender: boolean): void;
240
- }
241
-
242
-
243
- // OBJECT ARRAY START
244
-
245
-
246
- export interface ObjectArray {
247
- Add(object: LayerObjectObjectArray): void;
248
- Delete(id: string): void;
249
- GetDefaultStyle(): StyleObjectArray;
250
- StyleChanged(object: LayerObjectObjectArray): void;
251
- UpdateData(object: LayerObjectObjectArray, mode: any, buckets: DataBucketObjectArray[], options: { attribs: boolean; icon: boolean; text: boolean }): void;
252
- SetData(object: LayerObjectObjectArray, data: DataBucketObjectArray): void;
253
- }
254
-
255
- export interface StyleObjectArray {
256
- fidKey: string;
257
- opacity: number;
258
- labels: LabelObjectArray[];
259
- }
260
-
261
- export interface LabelObjectArray {
262
- offset: { x: number; y: number };
263
- fontFamily: { hollowWidth: number };
264
- vAlignment: number;
265
- hAlignment: number;
266
- size: number;
267
- text: string;
268
- }
269
-
270
- export interface LayerObjectObjectArray {
271
- displayName: string;
272
- layerType: number;
273
- wkbGeom: null;
274
- wfsLayerName: null;
275
- objectType: string;
276
- bbox: null;
277
- startLod: number;
278
- endLod: number;
279
- continuousLOD: boolean;
280
- MVTXYZName: string;
281
- rasterize: boolean;
282
- style: StyleObjectArray;
283
- id: string;
284
- }
285
-
286
- export interface DataBucketObjectArray {
287
- coords: number[];
288
- coordsZ: number[];
289
- attribs: Record<string, any>[];
290
- }
291
-
292
-
293
-
294
- // OBJECT ARRAY FINISH
295
-
296
-
297
- // GLOBE MANAGER
298
-
299
- export interface GlobeManager {
300
- /**
301
- * When mesh service is not working call this method with (false, true) it fixes issues
302
- * @param retry
303
- * @param divideMeshFurther
304
- */
305
- api_ReTryAtMeshTimeout(retry: boolean, divideMeshFurther: boolean): void;
306
- }
307
-
308
- export enum CSMeasureTextPositionTypes {
309
- CENTER = 'center',
310
- LEFT = 'left',
311
- RIGHT = 'right',
312
- TOP = 'bottom',
313
- BOTTOM = 'top',
314
- TOP_LEFT = 'bottom_left',
315
- TOP_RIGHT = 'bottom_right',
316
- BOTTOM_LEFT = 'top_left',
317
- BOTTOM_RIGHT = 'top_right',
318
- };
319
-
@@ -1,85 +0,0 @@
1
- // IN construction
2
-
3
-
4
- import { BufferManagersMap } from "./single-attribute-buffer-management/types";
5
- import { BufferManager } from "./single-attribute-buffer-management/buffer-manager";
6
- import { BufferOrchestrator } from "./single-attribute-buffer-management/buffer-orchestrator";
7
-
8
-
9
-
10
- export type BufferDetails = {
11
- bufferType: "STATIC_DRAW" | "DYNAMIC_DRAW" | "STREAM_DRAW";
12
- itemSize: number;
13
- adaptor: (x: any) => Float32Array;
14
- }
15
-
16
-
17
- export type BufferDetailsMap = Map<string, BufferDetails>;
18
-
19
-
20
- export class BufferMapOrchestrator {
21
- gl: WebGL2RenderingContext;
22
- bufferManagersMap: BufferManagersMap;
23
- bufferOrchestrator: BufferOrchestrator;
24
-
25
-
26
-
27
- constructor(
28
- gl: WebGL2RenderingContext,
29
- bufferDetailsMap: BufferDetailsMap,
30
- initialCapacity: number = 10
31
- ) {
32
- this.gl = gl;
33
- this.bufferManagersMap = new Map();
34
- this.bufferOrchestrator = new BufferOrchestrator({ capacity: 10 });
35
-
36
- for (const [key, details] of bufferDetailsMap) {
37
- const { itemSize, bufferType, adaptor } = details;
38
- const bufferManager = new BufferManager(gl, itemSize, { bufferType, initialCapacity });
39
- this.bufferManagersMap.set(key, { bufferManager, adaptor });
40
- }
41
-
42
-
43
- }
44
-
45
-
46
- insertBulk<T>(items: T[]): void {
47
- // @ts-ignore
48
- this.bufferOrchestrator.insertBulk(
49
- items,
50
- this.bufferManagersMap
51
- );
52
- }
53
-
54
-
55
- updateBulk<T>(items: T[], bufferKeys: string[] = []): void {
56
- // @ts-ignore
57
- this.bufferOrchestrator.updateBulk(
58
- items,
59
- this.bufferManagersMap,
60
- bufferKeys
61
- );
62
- }
63
-
64
-
65
- deleteBulk(keys: string[]): void {
66
- // @ts-ignore
67
- this.bufferOrchestrator.deleteBulk(
68
- keys,
69
- this.bufferManagersMap
70
- );
71
- }
72
-
73
-
74
- resetWithCapacity(capacity: number): void {
75
- this.bufferOrchestrator.resetWithCapacity(this.bufferManagersMap, capacity);
76
- }
77
-
78
-
79
- free(): void {
80
- for (const [key, { bufferManager }] of this.bufferManagersMap) {
81
- bufferManager.free();
82
- }
83
- this.bufferManagersMap.clear();
84
- }
85
- }
@@ -1,43 +0,0 @@
1
- import { TypedArray } from "../../../types";
2
-
3
- type BufferManagersMap = Map<string, {
4
- bufferManager: BufferManager;
5
- adaptor: (item: any) => Float32Array;
6
- }>;
7
-
8
- interface BufferManager {
9
- readonly gl: WebGL2RenderingContext;
10
- readonly buffer: WebGLBuffer;
11
- readonly itemSize: number;
12
- readonly bufferType: string;
13
- readonly isFreed: boolean;
14
-
15
- insertBulk(blocks: any[], offsets: number[]): void;
16
- insertBlock(items: any[], offset: number, adaptor: Function, dataConstructor?: { new(length: number): TypedArray }): void;
17
- deleteBulk(offsets: number[]): void;
18
- resetWithCapacity(capacity: number): void;
19
- defrag(offsetValues: MapIterator<number> | number[], occupiedCapacity: number, newCapacity: number): void;
20
- extendBuffer(occupiedCapacity: number, newCapacity: number): void;
21
- free(): void;
22
- }
23
-
24
- interface BufferOrchestrator {
25
- offsetMap: Map<string, number>;
26
- tombstoneOffsets: number[];
27
- _length: number;
28
- _capacity: number;
29
- getOffset(key: string): number | undefined;
30
- nextOffset(): number | undefined;
31
- //nextTombstone(): number | undefined;
32
- ensureSpace(itemsLength: number, bufferManagersMap: BufferManagersMap): void;
33
- updateBulk(items: any[], bufferManagersMap: BufferManagersMap, bufferKeys?: string[]): void;
34
- deleteBulk(keys: string[], bufferManagersMap: BufferManagersMap): void;
35
- resetWithCapacity(bufferManagersMap: BufferManagersMap, capacity: number | null): void;
36
- }
37
-
38
-
39
- export {
40
- BufferManagersMap,
41
- BufferManager,
42
- BufferOrchestrator
43
- }