@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.
- package/Math/{angle-calculation.ts → angle-calculation.js} +14 -18
- package/Math/{arc-cdf-points.ts → arc-cdf-points.js} +272 -329
- package/Math/{arc-generate-points-exponantial.ts → arc-generate-points-exponantial.js} +254 -299
- package/Math/{arc.ts → arc.js} +292 -421
- package/Math/bounds/line-bbox.js +186 -225
- package/Math/{circle-cdf-points.ts → circle-cdf-points.js} +78 -143
- package/Math/{circle.ts → circle.js} +33 -49
- package/Math/{constants.ts → constants.js} +4 -12
- package/Math/contour/{quadtreecontours.ts → quadtreecontours.js} +300 -371
- package/Math/contour/quadtreecontours1.js +298 -336
- package/Math/{finite-line-2d.ts → finite-line-2d.js} +58 -68
- package/Math/{haversine.ts → haversine.js} +22 -33
- package/Math/index.js +1 -0
- package/Math/juction/{arc-plane.ts → arc-plane.js} +143 -203
- package/Math/juction/{line-sphere.ts → line-sphere.js} +22 -32
- package/Math/juction/{plane-plane.ts → plane-plane.js} +53 -62
- package/Math/{line.ts → line.js} +52 -84
- package/Math/matrix4.js +1 -0
- package/Math/{methods.ts → methods.js} +126 -182
- package/Math/{plane.ts → plane.js} +56 -92
- package/Math/{quaternion.ts → quaternion.js} +106 -128
- package/Math/templete-shapes/{grid-visually-equal.ts → grid-visually-equal.js} +65 -118
- package/Math/tessellation/constants.js +1 -0
- package/Math/tessellation/{methods.ts → methods.js} +49 -79
- package/Math/tessellation/{nearest-value-padding.ts → nearest-value-padding.js} +112 -147
- package/Math/tessellation/{spherical-triangle-area.ts → spherical-triangle-area.js} +99 -127
- package/Math/tessellation/{tile-merger.ts → tile-merger.js} +429 -578
- package/Math/tessellation/{triangle-tessellation.ts → triangle-tessellation.js} +386 -533
- package/Math/tessellation/types.js +1 -0
- package/Math/types.js +1 -0
- package/Math/utils.js +2 -3
- package/Math/{vec3.ts → vec3.js} +155 -227
- package/Math/{xyz-tile.ts → xyz-tile.js} +18 -26
- package/algorithms/search-binary.js +16 -14
- package/altitude-locator/adaptors.js +1 -0
- package/altitude-locator/keymethod.js +1 -0
- package/altitude-locator/plugin.js +344 -445
- package/altitude-locator/types.js +21 -26
- package/compass-rose/compass-rose-padding-flat.js +230 -274
- package/compass-rose/{compass-text-writer.ts → compass-text-writer.js} +155 -210
- package/compass-rose/index.js +3 -3
- package/{constants.ts → constants.js} +6 -8
- package/heatwave/datamanager.js +149 -168
- package/heatwave/heatwave.js +206 -261
- package/heatwave/index.js +5 -5
- package/heatwave/isobar.js +303 -340
- package/heatwave/{texture-point-sampler.ts → texture-point-sampler.js} +187 -220
- package/investigation-tools/draw/tiles/adapters.js +67 -0
- package/investigation-tools/draw/tiles/{tiles.ts → tiles.js} +128 -162
- package/jest.config.js +7 -6
- package/package.json +1 -1
- package/pin/pin-object-array1.js +300 -381
- package/pin/pin-point-totem1.js +60 -77
- package/programs/arrowfield/arrow-field.js +60 -89
- package/programs/arrowfield/logic.js +141 -173
- package/programs/data2legend/density-to-legend.js +68 -86
- package/programs/data2legend/point-to-density-texture.js +67 -84
- package/programs/float2legendwithratio/index.js +2 -3
- package/programs/float2legendwithratio/logic.js +118 -144
- package/programs/float2legendwithratio/object.js +104 -141
- package/programs/helpers/blender.js +58 -73
- package/programs/helpers/{fadeaway.ts → fadeaway.js} +60 -73
- package/programs/index.js +20 -19
- package/programs/line-on-globe/circle-accurate-3d.js +85 -112
- package/programs/line-on-globe/circle-accurate-flat.js +148 -200
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +102 -134
- package/programs/line-on-globe/index.js +1 -0
- package/programs/line-on-globe/lines-color-instanced-flat.js +80 -99
- package/programs/line-on-globe/linestrip/data.js +4 -0
- package/programs/line-on-globe/linestrip/{linestrip.ts → linestrip.js} +93 -152
- package/programs/line-on-globe/{naive-accurate-flexible.ts → naive-accurate-flexible.js} +126 -175
- package/programs/line-on-globe/util.js +5 -8
- package/programs/picking/pickable-polygon-renderer.js +98 -129
- package/programs/picking/pickable-renderer.js +98 -130
- package/programs/point-on-globe/element-globe-surface-glow.js +93 -122
- package/programs/point-on-globe/element-point-glow.js +80 -114
- package/programs/point-on-globe/square-pixel-point.js +121 -139
- package/programs/polygon-on-globe/{texture-dem-triangles.ts → texture-dem-triangles.js} +163 -207
- package/programs/{programcache.ts → programcache.js} +126 -134
- package/programs/rings/index.js +1 -1
- package/programs/rings/partial-ring/{piece-of-pie.ts → piece-of-pie.js} +152 -222
- package/programs/totems/camera-totem-attactment-interface.js +1 -0
- package/programs/totems/{camerauniformblock.ts → camerauniformblock.js} +225 -310
- package/programs/totems/{canvas-webglobe-info.ts → canvas-webglobe-info.js} +132 -147
- package/programs/totems/{dem-textures-manager.ts → dem-textures-manager.js} +257 -360
- package/programs/totems/{globe-changes.ts → globe-changes.js} +59 -79
- package/programs/totems/gpu-selection-uniform-block.js +99 -127
- package/programs/totems/{index.ts → index.js} +2 -2
- package/programs/two-d/pixel-padding-for-compass.js +87 -101
- package/programs/util.js +14 -19
- package/programs/vectorfields/logics/{constants.ts → constants.js} +4 -5
- package/programs/vectorfields/logics/{drawrectangleparticles.ts → drawrectangleparticles.js} +80 -115
- package/programs/vectorfields/logics/index.js +2 -4
- package/programs/vectorfields/logics/particle-ubo.js +16 -0
- package/programs/vectorfields/logics/{pixelbased.ts → pixelbased.js} +86 -115
- package/programs/vectorfields/logics/ubo.js +51 -57
- package/programs/vectorfields/{pingpongbuffermanager.ts → pingpongbuffermanager.js} +99 -113
- package/range-tools-on-terrain/bearing-line/{adapters.ts → adapters.js} +114 -154
- package/range-tools-on-terrain/bearing-line/{plugin.ts → plugin.js} +457 -569
- package/range-tools-on-terrain/bearing-line/types.js +1 -0
- package/range-tools-on-terrain/circle-line-chain/{adapters.ts → adapters.js} +85 -104
- package/range-tools-on-terrain/circle-line-chain/{chain-list-map.ts → chain-list-map.js} +382 -446
- package/range-tools-on-terrain/circle-line-chain/{plugin.ts → plugin.js} +464 -607
- package/range-tools-on-terrain/circle-line-chain/types.js +1 -0
- package/range-tools-on-terrain/range-ring/{adapters.ts → adapters.js} +93 -114
- package/range-tools-on-terrain/range-ring/{enum.ts → enum.js} +2 -2
- package/range-tools-on-terrain/range-ring/{plugin.ts → plugin.js} +377 -444
- package/range-tools-on-terrain/range-ring/rangeringangletext.js +331 -0
- package/range-tools-on-terrain/range-ring/types.js +9 -0
- package/semiplugins/interface.js +1 -0
- package/semiplugins/lightweight/{line-plugin.ts → line-plugin.js} +221 -342
- package/semiplugins/lightweight/{piece-of-pie-plugin.ts → piece-of-pie-plugin.js} +200 -275
- package/semiplugins/shape-on-terrain/{arc-plugin.ts → arc-plugin.js} +481 -616
- package/semiplugins/shape-on-terrain/{circle-plugin.ts → circle-plugin.js} +444 -588
- package/semiplugins/shape-on-terrain/{padding-1-degree.ts → padding-1-degree.js} +539 -713
- package/semiplugins/shape-on-terrain/terrain-polygon/{adapters.ts → adapters.js} +55 -69
- package/semiplugins/shape-on-terrain/terrain-polygon/data/{cache.ts → cache.js} +102 -149
- package/semiplugins/shape-on-terrain/terrain-polygon/data/{index-polygon-map.ts → index-polygon-map.js} +45 -58
- package/semiplugins/shape-on-terrain/terrain-polygon/data/{manager.ts → manager.js} +4 -4
- package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.js +177 -196
- package/semiplugins/shape-on-terrain/terrain-polygon/data/{polygon-to-triangles.ts → polygon-to-triangles.js} +100 -144
- package/semiplugins/shape-on-terrain/terrain-polygon/data/{random.ts → random.js} +121 -165
- package/semiplugins/shape-on-terrain/terrain-polygon/data/types.js +1 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/{worker-contact.ts → worker-contact.js} +63 -81
- package/semiplugins/shape-on-terrain/terrain-polygon/data/worker.js +125 -146
- package/semiplugins/shape-on-terrain/terrain-polygon/{terrain-polygon.ts → terrain-polygon.js} +219 -265
- package/semiplugins/shape-on-terrain/terrain-polygon/types.js +8 -0
- package/semiplugins/shell/bbox-renderer/index.js +2 -0
- package/semiplugins/shell/bbox-renderer/{logic.ts → logic.js} +209 -273
- package/semiplugins/shell/bbox-renderer/object.js +75 -0
- package/semiplugins/type.js +1 -0
- package/semiplugins/utility/{container-plugin.ts → container-plugin.js} +94 -126
- package/semiplugins/utility/{object-pass-container-plugin.ts → object-pass-container-plugin.js} +80 -101
- package/shaders/fragment-toy/firework.js +1 -1
- package/shaders/fragment-toy/singularity.js +2 -5
- package/tracks/point-heat-map/adaptors/timetracksplugin-format-to-this.js +63 -78
- package/tracks/point-heat-map/index.js +1 -0
- package/tracks/point-heat-map/plugin-webworker.js +121 -148
- package/tracks/point-heat-map/point-to-heat-map-flow.js +121 -150
- package/tracks/point-tracks/key-methods.js +2 -3
- package/tracks/point-tracks/plugin.js +401 -487
- package/tracks/timetracks/adaptors-line-strip.js +65 -79
- package/tracks/timetracks/plugin-line-strip.js +240 -295
- package/tracks/timetracks/program-line-strip.js +411 -495
- package/tracks/timetracks/programpoint-line-strip.js +109 -137
- package/types.js +19 -0
- package/util/account/bufferoffsetmanager.js +176 -209
- package/util/account/create-buffermap-orchastration.js +39 -0
- package/util/account/index.js +3 -6
- package/util/account/single-attribute-buffer-management/{buffer-manager.ts → buffer-manager.js} +119 -151
- package/util/account/single-attribute-buffer-management/{buffer-orchestrator.ts → buffer-orchestrator.js} +212 -238
- package/util/account/single-attribute-buffer-management/{buffer-orchestrator1.ts → buffer-orchestrator1.js} +159 -184
- package/util/account/single-attribute-buffer-management/{index.ts → index.js} +4 -11
- package/util/account/single-attribute-buffer-management/{object-store.ts → object-store.js} +55 -76
- package/util/account/single-attribute-buffer-management/types.js +1 -0
- package/util/account/util.js +18 -22
- package/util/algorithms/index.js +1 -0
- package/util/algorithms/search-binary.js +25 -26
- package/util/build-strategy/{static-dynamic.ts → static-dynamic.js} +41 -50
- package/util/check/index.js +1 -0
- package/util/check/typecheck.js +66 -0
- package/util/{frame-counter-trigger.ts → frame-counter-trigger.js} +84 -99
- package/util/geometry/{index.ts → index.js} +121 -155
- package/util/gl-util/buffer/{attribute-loader.ts → attribute-loader.js} +62 -84
- package/util/gl-util/buffer/{index.ts → index.js} +3 -6
- package/util/gl-util/draw-options/{methods.ts → methods.js} +32 -47
- package/util/gl-util/uniform-block/{manager.ts → manager.js} +200 -232
- package/util/{globe-default-gl-states.ts → globe-default-gl-states.js} +4 -5
- package/util/{helper-methods.ts → helper-methods.js} +8 -9
- package/util/index.js +10 -9
- package/util/interpolation/index.js +1 -0
- package/util/interpolation/timetrack/index.js +2 -9
- package/util/interpolation/timetrack/timetrack-interpolator.js +79 -94
- package/util/interpolation/timetrack/web-worker.js +46 -51
- package/util/picking/{fence.ts → fence.js} +43 -47
- package/util/picking/{picker-displayer.ts → picker-displayer.js} +176 -226
- package/util/programs/draw-from-pixel-coords.js +164 -201
- package/util/programs/{draw-texture-on-canvas.ts → draw-texture-on-canvas.js} +69 -91
- package/util/programs/supersampletotextures.js +97 -130
- package/util/programs/texturetoglobe.js +128 -153
- package/util/shaderfunctions/{geometrytransformations.ts → geometrytransformations.js} +44 -106
- package/util/shaderfunctions/index.js +2 -2
- package/util/shaderfunctions/nodata.js +2 -4
- package/util/shaderfunctions/noisefunctions.js +7 -10
- package/util/{webglobjectbuilders.ts → webglobjectbuilders.js} +358 -446
- package/vectorfield/arrowfield/adaptor.js +11 -11
- package/vectorfield/arrowfield/index.js +3 -3
- package/vectorfield/arrowfield/plugin.js +83 -128
- package/vectorfield/waveparticles/adaptor.js +15 -16
- package/vectorfield/waveparticles/index.js +3 -3
- package/vectorfield/waveparticles/{plugin.ts → plugin.js} +415 -506
- package/vectorfield/wind/adapters/{image-to-fields.ts → image-to-fields.js} +61 -74
- package/vectorfield/wind/adapters/types.js +1 -0
- package/vectorfield/wind/{imagetovectorfieldandmagnitude.ts → imagetovectorfieldandmagnitude.js} +53 -78
- package/vectorfield/wind/index.js +5 -5
- package/vectorfield/wind/{plugin-persistant copy.ts → plugin-persistant copy.js } +364 -461
- package/vectorfield/wind/{plugin-persistant.ts → plugin-persistant.js} +375 -483
- package/vectorfield/wind/plugin.js +685 -883
- package/vectorfield/wind/vectorfieldimage.js +23 -27
- package/write-text/{context-text-bulk.ts → context-text-bulk.js} +200 -285
- package/write-text/context-text3.js +167 -0
- package/write-text/{context-text4.ts → context-text4.js} +146 -231
- package/write-text/context-textDELETE.js +94 -125
- package/write-text/objectarraylabels/{index.ts → index.js} +2 -2
- package/write-text/objectarraylabels/objectarraylabels.js +200 -247
- package/Math/matrix4.ts +0 -0
- package/Math/mesh/mapbox-delaunay.d.ts +0 -74
- package/Math/roadmap.md +0 -10
- package/Math/tessellation/constants.ts +0 -1
- package/Math/tessellation/roadmap.md +0 -48
- package/Math/tessellation/types.ts +0 -1
- package/Math/types.ts +0 -68
- package/investigation-tools/draw/tiles/adapters.ts +0 -133
- package/programs/line-on-globe/linestrip/data.ts +0 -29
- package/programs/polygon-on-globe/roadmap.md +0 -8
- package/programs/totems/camera-totem-attactment-interface.ts +0 -4
- package/programs/vectorfields/logics/particle-ubo.ts +0 -23
- package/publish.bat +0 -62
- package/range-tools-on-terrain/bearing-line/types.ts +0 -65
- package/range-tools-on-terrain/circle-line-chain/types.ts +0 -43
- package/range-tools-on-terrain/range-ring/rangeringangletext.ts +0 -396
- package/range-tools-on-terrain/range-ring/types.ts +0 -30
- package/semiplugins/interface.ts +0 -14
- package/semiplugins/shape-on-terrain/goal.md +0 -12
- package/semiplugins/shape-on-terrain/terrain-polygon/data/cache-shortcuts.md +0 -20
- package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.ts +0 -209
- package/semiplugins/shape-on-terrain/terrain-polygon/data/readme.md +0 -5
- package/semiplugins/shape-on-terrain/terrain-polygon/data/types.ts +0 -37
- package/semiplugins/shape-on-terrain/terrain-polygon/notes.md +0 -90
- package/semiplugins/shape-on-terrain/terrain-polygon/types.ts +0 -69
- package/semiplugins/shell/bbox-renderer/index.ts +0 -2
- package/semiplugins/shell/bbox-renderer/object.ts +0 -129
- package/semiplugins/type.ts +0 -8
- package/terrain-plugin.mmd +0 -83
- package/tests/Math/arc-sampling-test.js +0 -367
- package/tests/Math/arc-sampling-test.ts +0 -429
- package/tests/Math/arc.test.ts +0 -77
- package/tests/Math/junction/arc-limit.test.ts +0 -7
- package/tests/Math/junction/arc-plane-points.test.ts +0 -196
- package/tests/Math/junction/arc-plane.test.ts +0 -172
- package/tests/Math/junction/line-sphere.test.ts +0 -127
- package/tests/Math/junction/plane-plane.test.ts +0 -91
- package/tests/Math/plane-test.ts +0 -17
- package/tests/Math/plane.test.ts +0 -43
- package/tests/Math/vec3.test.ts +0 -33
- package/tracks/point-heat-map/readme.md +0 -15
- package/tracks/timetracks/readme.md +0 -1
- package/tsconfig.json +0 -22
- package/types/@pirireis/webglobe.d.ts +0 -102
- package/types/delaunator.d.ts +0 -40
- package/types/earcut.d.ts +0 -11
- package/types/rbush.d.ts +0 -57
- package/types.ts +0 -319
- package/util/account/create-buffermap-orchastration.ts +0 -85
- package/util/account/single-attribute-buffer-management/types.ts +0 -43
- package/util/check/typecheck.ts +0 -74
- package/vectorfield/wind/adapters/types.ts +0 -12
- package/write-text/context-text3.ts +0 -252
- package/write-text/objectarraylabels/objectarraylabels.d.ts +0 -72
|
@@ -1,247 +1,200 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* @
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* @
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* @
|
|
20
|
-
* @property {
|
|
21
|
-
* @property {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
this.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this.style = this.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
this._idCollector.
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
this._idCollector.delete(id);
|
|
202
|
-
|
|
203
|
-
deleteBucket.coords.push(0, 0);
|
|
204
|
-
deleteBucket.coordsZ.push(0);
|
|
205
|
-
deleteBucket.attribs.push({
|
|
206
|
-
[this.primaryKey]: id,
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
if (paritalData.add.coords.length > 0) {
|
|
212
|
-
this.updateData(paritalData.add, CSObjectArrayUpdateTypes.ADD);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
if (paritalData.update.coords.length > 0) {
|
|
216
|
-
this.updateData(
|
|
217
|
-
paritalData.update,
|
|
218
|
-
CSObjectArrayUpdateTypes.UPDATE,
|
|
219
|
-
paritalData.canChange
|
|
220
|
-
);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
if (paritalData.delete.coords.length > 0) {
|
|
224
|
-
this.updateData(paritalData.delete, CSObjectArrayUpdateTypes.DELETE);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
setPrimarykey(key) {
|
|
230
|
-
this.primaryKey = key;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
setSymbolSet(symbolSet) {
|
|
234
|
-
this.symbolSet = symbolSet;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
getLabelStyle() {
|
|
238
|
-
return this.style.labels[0];
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
setLabelStyle(style) {
|
|
242
|
-
this.style.labels[0] = style;
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
export default ObjectArrayLabels;
|
|
1
|
+
import { CSGlobe, CSIconTypes, CSObjectTypes, CSObjectArrayUpdateTypes, } from "@pirireis/webglobe";
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {Object} IconPayload
|
|
4
|
+
* @property {string} app6DCode
|
|
5
|
+
* @property {string} accsCode
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {IconPayload & Object.<string, any>} PointPayload
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {Object} CanChangeOptions
|
|
12
|
+
* @property {boolean} [attribs=false]
|
|
13
|
+
* @property {boolean} [icon=false]
|
|
14
|
+
* @property {boolean} [label=false]
|
|
15
|
+
* @property {boolean} [heading=false]
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* @typedef {Object} PointObjectArray
|
|
19
|
+
* @property {number[]} coords [longitude1, latitude1, longitude2, latitude2, ....]
|
|
20
|
+
* @property {number[]} coordsZ [z1, z2, ....]
|
|
21
|
+
* @property {PointPayload[]} attribs
|
|
22
|
+
*/
|
|
23
|
+
class ObjectArrayLabels {
|
|
24
|
+
/**
|
|
25
|
+
* @param {number | string} id
|
|
26
|
+
* @param {CSGlobe} globe
|
|
27
|
+
*/
|
|
28
|
+
constructor(id, globe, labelStyle = null) {
|
|
29
|
+
this.id = id;
|
|
30
|
+
this.setGlobe(globe);
|
|
31
|
+
this.data = [
|
|
32
|
+
{
|
|
33
|
+
coords: [],
|
|
34
|
+
coordsZ: [],
|
|
35
|
+
attribs: [],
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
this.primaryKey = "id";
|
|
39
|
+
this.objectType = CSObjectTypes.POINT;
|
|
40
|
+
this.filter = null;
|
|
41
|
+
this.bbox = null;
|
|
42
|
+
this.startLod = 2;
|
|
43
|
+
this.endLod = 19;
|
|
44
|
+
this.query = true;
|
|
45
|
+
this.reportObj = function (values, mouseEvent) { };
|
|
46
|
+
this._idCollector = new Set();
|
|
47
|
+
this._setStyle(labelStyle);
|
|
48
|
+
}
|
|
49
|
+
_setStyle(labelStyle) {
|
|
50
|
+
this.style = this.globe.ObjectArray.GetDefaultStyle();
|
|
51
|
+
if (labelStyle) {
|
|
52
|
+
this.style.labels[0] = labelStyle;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.style.labels[0].vAlignment = 2; // dikey olarak tam noktanın ortası
|
|
56
|
+
this.style.labels[0].hAlignment = 2; // yatay olarak tam noktanın ortası
|
|
57
|
+
this.style.labels[0].size = 11;
|
|
58
|
+
this.style.labels[0].drawAlways = true;
|
|
59
|
+
this.style.labels[0].fontFamily.name = "arial";
|
|
60
|
+
this.style.labels[0].fontFamily.bold = false;
|
|
61
|
+
this.style.labels[0].fontFamily.hollow = true;
|
|
62
|
+
this.style.labels[0].fontFamily.hollowWidth = 1;
|
|
63
|
+
this.style.labels[0].fontFamily.hollowOpacity = 1;
|
|
64
|
+
}
|
|
65
|
+
this.style.labels[0].text = "${value}";
|
|
66
|
+
this.style.fidKey = this.primaryKey;
|
|
67
|
+
this.style.iconType = CSIconTypes.NOICON; // milIcon ekleyebilmek için icon tipi MAP olmalı
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @param {CSGlobe} [globe]
|
|
71
|
+
*/
|
|
72
|
+
setGlobe(globe) {
|
|
73
|
+
if (!globe)
|
|
74
|
+
return;
|
|
75
|
+
this.globe = globe;
|
|
76
|
+
}
|
|
77
|
+
addToMap() {
|
|
78
|
+
this.globe.ObjectArray.Add(this);
|
|
79
|
+
}
|
|
80
|
+
removeFromMap() {
|
|
81
|
+
this.flush();
|
|
82
|
+
this.globe.ObjectArray.Delete(this.id);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Haritaya kullanılacak veriyi verir. Her çağrıldığında tüm hesaplamalar yeniden yapılır
|
|
86
|
+
* @param {PointObjectArray} data
|
|
87
|
+
*/
|
|
88
|
+
setData(data) {
|
|
89
|
+
this.globe.ObjectArray.SetData(this, [data]);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @param {PointObjectArray} data
|
|
93
|
+
* @param {CSObjectArrayUpdateTypes} operation
|
|
94
|
+
* @param {CanChangeOptions} [canChange]
|
|
95
|
+
*/
|
|
96
|
+
updateData(data, operation, canChange) {
|
|
97
|
+
this.globe.ObjectArray.UpdateData(this, operation, [data], canChange);
|
|
98
|
+
}
|
|
99
|
+
flush() {
|
|
100
|
+
const deleteBucket = {
|
|
101
|
+
coords: [],
|
|
102
|
+
coordsZ: [],
|
|
103
|
+
attribs: [],
|
|
104
|
+
};
|
|
105
|
+
this.setData(deleteBucket);
|
|
106
|
+
this._idCollector = new Set();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Haritaya kullanılacak veriyi verir. Her çağrıldığında tüm hesaplamalar yeniden yapılmaz, ancak ön hesaplama maliyeti vardır
|
|
110
|
+
* @param {PointObjectArray} data
|
|
111
|
+
*/
|
|
112
|
+
setControlledData(data) {
|
|
113
|
+
const paritalData = {
|
|
114
|
+
add: {
|
|
115
|
+
coords: [],
|
|
116
|
+
coordsZ: [],
|
|
117
|
+
attribs: [],
|
|
118
|
+
},
|
|
119
|
+
update: {
|
|
120
|
+
coords: [],
|
|
121
|
+
coordsZ: [],
|
|
122
|
+
attribs: [],
|
|
123
|
+
},
|
|
124
|
+
delete: {
|
|
125
|
+
coords: [],
|
|
126
|
+
coordsZ: [],
|
|
127
|
+
attribs: [],
|
|
128
|
+
},
|
|
129
|
+
canChange: {
|
|
130
|
+
// Tüm değişimler gözardı edilecek
|
|
131
|
+
attribs: false,
|
|
132
|
+
icon: false,
|
|
133
|
+
label: false,
|
|
134
|
+
heading: false,
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
// İlk toplu ekleme adımı
|
|
138
|
+
if (this._idCollector.size === 0) {
|
|
139
|
+
this.setData(data);
|
|
140
|
+
// Eklenen id'ler set edildi
|
|
141
|
+
for (let i = 0; i < data.attribs.length; i++) {
|
|
142
|
+
const currentPayload = data.attribs[i];
|
|
143
|
+
const id = currentPayload[this.primaryKey];
|
|
144
|
+
this._idCollector.add(id);
|
|
145
|
+
}
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
/** @type {Set<string>} */
|
|
149
|
+
const dataIds = new Set();
|
|
150
|
+
for (let i = 0; i < data.attribs.length; i++) {
|
|
151
|
+
const currentPayload = data.attribs[i];
|
|
152
|
+
const id = currentPayload[this.primaryKey];
|
|
153
|
+
let bucket = paritalData.add;
|
|
154
|
+
dataIds.add(id);
|
|
155
|
+
if (this._idCollector.has(id)) {
|
|
156
|
+
bucket = paritalData.update;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
this._idCollector.add(id);
|
|
160
|
+
}
|
|
161
|
+
bucket.coords.push(data.coords[2 * i], data.coords[2 * i + 1]);
|
|
162
|
+
bucket.coordsZ.push(data.coordsZ[i]);
|
|
163
|
+
bucket.attribs.push(currentPayload);
|
|
164
|
+
}
|
|
165
|
+
// Artık varolmayan elemenları sil
|
|
166
|
+
const deleteBucket = paritalData.delete;
|
|
167
|
+
this._idCollector.forEach((id) => {
|
|
168
|
+
if (!dataIds.has(id)) {
|
|
169
|
+
this._idCollector.delete(id);
|
|
170
|
+
deleteBucket.coords.push(0, 0);
|
|
171
|
+
deleteBucket.coordsZ.push(0);
|
|
172
|
+
deleteBucket.attribs.push({
|
|
173
|
+
[this.primaryKey]: id,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
if (paritalData.add.coords.length > 0) {
|
|
178
|
+
this.updateData(paritalData.add, CSObjectArrayUpdateTypes.ADD);
|
|
179
|
+
}
|
|
180
|
+
if (paritalData.update.coords.length > 0) {
|
|
181
|
+
this.updateData(paritalData.update, CSObjectArrayUpdateTypes.UPDATE, paritalData.canChange);
|
|
182
|
+
}
|
|
183
|
+
if (paritalData.delete.coords.length > 0) {
|
|
184
|
+
this.updateData(paritalData.delete, CSObjectArrayUpdateTypes.DELETE);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
setPrimarykey(key) {
|
|
188
|
+
this.primaryKey = key;
|
|
189
|
+
}
|
|
190
|
+
setSymbolSet(symbolSet) {
|
|
191
|
+
this.symbolSet = symbolSet;
|
|
192
|
+
}
|
|
193
|
+
getLabelStyle() {
|
|
194
|
+
return this.style.labels[0];
|
|
195
|
+
}
|
|
196
|
+
setLabelStyle(style) {
|
|
197
|
+
this.style.labels[0] = style;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
export default ObjectArrayLabels;
|
package/Math/matrix4.ts
DELETED
|
File without changes
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
export default class Delaunator {
|
|
2
|
-
/**
|
|
3
|
-
* Constructs a delaunay triangulation object given an array of points (`[x, y]` by default).
|
|
4
|
-
* `getX` and `getY` are optional functions of the form `(point) => value` for custom point formats.
|
|
5
|
-
*/
|
|
6
|
-
static from<P>(
|
|
7
|
-
points: P[],
|
|
8
|
-
getX?: (p: P) => number,
|
|
9
|
-
getY?: (p: P) => number
|
|
10
|
-
): Delaunator;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Constructs a delaunay triangulation object given an array of point coordinates of the form:
|
|
14
|
-
* `[x0, y0, x1, y1, ...]` (use a typed array for best performance). Duplicate points are skipped.
|
|
15
|
-
*/
|
|
16
|
-
constructor(coords: ArrayLike<number>);
|
|
17
|
-
|
|
18
|
-
/** The input coordinates array */
|
|
19
|
-
coords: ArrayLike<number>;
|
|
20
|
-
|
|
21
|
-
/** A `Uint32Array` array of indices that reference points on the convex hull of the input data, counter-clockwise. */
|
|
22
|
-
hull: Uint32Array;
|
|
23
|
-
|
|
24
|
-
/** A `Uint32Array` array of triangle vertex indices (each group of three numbers forms a triangle). All triangles are directed counterclockwise. */
|
|
25
|
-
triangles: Uint32Array;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* A `Int32Array` array of triangle half-edge indices that allows you to traverse the triangulation.
|
|
29
|
-
* `i`-th half-edge in the array corresponds to vertex `triangles[i]` the half-edge is coming from.
|
|
30
|
-
* `halfedges[i]` is the index of a twin half-edge in an adjacent triangle (or `-1` for outer half-edges on the convex hull).
|
|
31
|
-
*/
|
|
32
|
-
halfedges: Int32Array;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Updates the triangulation if you modified `delaunay.coords` values in place, avoiding expensive memory allocations.
|
|
36
|
-
* Useful for iterative relaxation algorithms such as Lloyd's.
|
|
37
|
-
*/
|
|
38
|
-
update(): void;
|
|
39
|
-
|
|
40
|
-
// Private properties and methods
|
|
41
|
-
private _triangles: Uint32Array;
|
|
42
|
-
private _halfedges: Int32Array;
|
|
43
|
-
private _hashSize: number;
|
|
44
|
-
private _hullPrev: Uint32Array;
|
|
45
|
-
private _hullNext: Uint32Array;
|
|
46
|
-
private _hullTri: Uint32Array;
|
|
47
|
-
private _hullHash: Int32Array;
|
|
48
|
-
private _ids: Uint32Array;
|
|
49
|
-
private _dists: Float64Array;
|
|
50
|
-
private trianglesLen: number;
|
|
51
|
-
private _cx: number;
|
|
52
|
-
private _cy: number;
|
|
53
|
-
private _hullStart: number;
|
|
54
|
-
|
|
55
|
-
private _hashKey(x: number, y: number): number;
|
|
56
|
-
private _legalize(a: number): number;
|
|
57
|
-
private _link(a: number, b: number): void;
|
|
58
|
-
private _addTriangle(i0: number, i1: number, i2: number, a: number, b: number, c: number): number;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Utility functions (not exported in the original module)
|
|
62
|
-
declare function pseudoAngle(dx: number, dy: number): number;
|
|
63
|
-
declare function dist(ax: number, ay: number, bx: number, by: number): number;
|
|
64
|
-
declare function inCircle(ax: number, ay: number, bx: number, by: number, cx: number, cy: number, px: number, py: number): boolean;
|
|
65
|
-
declare function circumradius(ax: number, ay: number, bx: number, by: number, cx: number, cy: number): number;
|
|
66
|
-
declare function circumcenter(ax: number, ay: number, bx: number, by: number, cx: number, cy: number): { x: number; y: number };
|
|
67
|
-
declare function quicksort(ids: Uint32Array, dists: Float64Array, left: number, right: number): void;
|
|
68
|
-
declare function swap(arr: Uint32Array, i: number, j: number): void;
|
|
69
|
-
declare function defaultGetX(p: [number, number]): number;
|
|
70
|
-
declare function defaultGetY(p: [number, number]): number;
|
|
71
|
-
|
|
72
|
-
// Constants
|
|
73
|
-
declare const EPSILON: number;
|
|
74
|
-
declare const EDGE_STACK: Uint32Array;
|
package/Math/roadmap.md
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
There is an arc on a unit sphere. The sphere center is at the origin. The arc is represented with start and points.
|
|
3
|
-
|
|
4
|
-
And there is a plane the intersects with the same sphere. Represented with vector and distance from origin.
|
|
5
|
-
|
|
6
|
-
I want to know the relative position of points to the plane. If they are at the same direction with the plane vector or not.
|
|
7
|
-
|
|
8
|
-
If two points are on the same side of the plane. If so, do they closer to origin then plane or not.
|
|
9
|
-
|
|
10
|
-
If two points are on different side of the plane, I want to know the intersection point of arc and plane.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const TILE_COUNTS = Array.from({length: 22}, (_, i) => Math.pow(2, i ));
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# Preprocess
|
|
2
|
-
|
|
3
|
-
1) EarCut: Polygon -> triangles
|
|
4
|
-
2) triangles to arcs
|
|
5
|
-
3) cut arcs
|
|
6
|
-
* Find peak points in latitude dimention.
|
|
7
|
-
* Find latitude and longitude cut points on zoom 12 ( 12 becse elevation starts)
|
|
8
|
-
* Cut from that latiude in meridian dimension
|
|
9
|
-
**Question** Should I cut from peak point, before finding zoom cuts?
|
|
10
|
-
I feels like no need. We will see
|
|
11
|
-
4) Put tringles in rbush
|
|
12
|
-
|
|
13
|
-
**Question** What represents a triangle?
|
|
14
|
-
3 Arcs, with metadata of bbox,
|
|
15
|
-
Since we cut from peak point parallel junktion with any arc should give maximum 1 point.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# Maintainance
|
|
19
|
-
|
|
20
|
-
Rbush tree needs maintanance. Maybe a delete counter. When it exceeds threshhold. rebuild tree with last income
|
|
21
|
-
|
|
22
|
-
On edit mode the shapes change frequently. Lightweight version should work on theese cases.
|
|
23
|
-
|
|
24
|
-
**Question** How lightweight version is different?
|
|
25
|
-
Smaller instance of the structure only holds updated data. Probably rBush is put aside. All the shapes on this instance are processed each frame.
|
|
26
|
-
|
|
27
|
-
# On Fly
|
|
28
|
-
|
|
29
|
-
Get screenBBox,
|
|
30
|
-
Get 6 high reslutiotion tiles
|
|
31
|
-
|
|
32
|
-
find all triangles that touches it.
|
|
33
|
-
Create Meshes of theme on webworker
|
|
34
|
-
load result elements (3d and longlat coordinates) and indexes to gpu
|
|
35
|
-
load DEM data as texture
|
|
36
|
-
|
|
37
|
-
**Question** What will happen if a triangles resolution is not changed on the upcoming frame?
|
|
38
|
-
need to cache each triangles last resolution,
|
|
39
|
-
|
|
40
|
-
Catched items for each triangle:
|
|
41
|
-
1) mesh coordinates
|
|
42
|
-
2) mesh indexes or indexes should be easy to calculate
|
|
43
|
-
**Question** How to calculate? Store how many points each parallel has.
|
|
44
|
-
3) Zoom Level
|
|
45
|
-
|
|
46
|
-
If triangle has deeper mesh then its need to be, it can just use it
|
|
47
|
-
Maybe I find a smart way to prune to mesh without distrupt its structure for lower resulution mesh
|
|
48
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
package/Math/types.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
type Radians = number;
|
|
2
|
-
type Degrees = number;
|
|
3
|
-
type Meter = number;
|
|
4
|
-
type Fraction = number; // between 0 and 1
|
|
5
|
-
type WGS84 = [number, number]; // [longitude, latitude]
|
|
6
|
-
type Vec2 = [number, number]; // [x, y] or [longitude, latitude] in Mercator projection
|
|
7
|
-
type Vec3 = [number, number, number];
|
|
8
|
-
type Vec4 = [number, number, number, number];
|
|
9
|
-
|
|
10
|
-
type Line = {
|
|
11
|
-
origin: Vec3;
|
|
12
|
-
direction: Vec3;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
type FiniteLine2D = [number, number, number, number];
|
|
16
|
-
|
|
17
|
-
type Plane = {
|
|
18
|
-
normal: Vec3;
|
|
19
|
-
distance: number;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// TODO: CLEAN THIS USE LongLatRadian OR LongLatDegree FROM types.ts
|
|
23
|
-
type LongLat = [number, number]; // [longitude, latitude]
|
|
24
|
-
|
|
25
|
-
type Quaternion = [number, number, number, number];
|
|
26
|
-
|
|
27
|
-
type Arc = {
|
|
28
|
-
p0: Vec3;
|
|
29
|
-
p1: Vec3;
|
|
30
|
-
normal: Vec3; // normal of the circle arc lie on
|
|
31
|
-
coverPlane: Plane; // plane that divides the circle that the arc lie on into visible and covered half
|
|
32
|
-
coverAngle: Radians;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
type Sphere = {
|
|
36
|
-
center: Vec3;
|
|
37
|
-
radius: number;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
type Circle = {
|
|
41
|
-
center: LongLat;
|
|
42
|
-
radius: Meter; // in meters
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
type CircleClosestAzimuthAngleProperties = {
|
|
46
|
-
normal: Vec3;
|
|
47
|
-
northPointProjectedToOriginPlaneNormalized: Vec3;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export {
|
|
51
|
-
Vec2,
|
|
52
|
-
Vec3,
|
|
53
|
-
Vec4,
|
|
54
|
-
Line,
|
|
55
|
-
Plane,
|
|
56
|
-
Quaternion,
|
|
57
|
-
Fraction,
|
|
58
|
-
WGS84,
|
|
59
|
-
Arc,
|
|
60
|
-
Sphere,
|
|
61
|
-
Radians,
|
|
62
|
-
Degrees,
|
|
63
|
-
Meter,
|
|
64
|
-
LongLat,
|
|
65
|
-
Circle,
|
|
66
|
-
CircleClosestAzimuthAngleProperties,
|
|
67
|
-
FiniteLine2D
|
|
68
|
-
}
|