@pirireis/webglobeplugins 0.17.0 → 1.0.2
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.js → angle-calculation.ts} +18 -14
- package/Math/{arc-cdf-points.js → arc-cdf-points.ts} +329 -272
- package/Math/{arc-generate-points-exponantial.js → arc-generate-points-exponantial.ts} +299 -254
- package/Math/{arc.js → arc.ts} +421 -292
- package/Math/bounds/line-bbox.js +225 -186
- package/Math/{circle-cdf-points.js → circle-cdf-points.ts} +143 -78
- package/Math/{circle.js → circle.ts} +49 -33
- package/Math/{constants.js → constants.ts} +12 -4
- package/Math/contour/{quadtreecontours.js → quadtreecontours.ts} +371 -300
- package/Math/contour/quadtreecontours1.js +336 -298
- package/Math/{finite-line-2d.js → finite-line-2d.ts} +68 -58
- package/Math/haversine.ts +33 -0
- package/Math/index.js +0 -1
- package/Math/juction/{arc-plane.js → arc-plane.ts} +203 -143
- package/Math/juction/{line-sphere.js → line-sphere.ts} +32 -22
- package/Math/juction/{plane-plane.js → plane-plane.ts} +62 -53
- package/Math/{line.js → line.ts} +84 -52
- package/Math/matrix4.ts +0 -0
- package/Math/mesh/mapbox-delaunay.d.ts +74 -0
- package/Math/{methods.js → methods.ts} +182 -107
- package/Math/{plane.js → plane.ts} +92 -56
- package/Math/{quaternion.js → quaternion.ts} +128 -106
- package/Math/roadmap.md +10 -0
- package/Math/templete-shapes/{grid-visually-equal.js → grid-visually-equal.ts} +118 -65
- package/Math/tessellation/constants.ts +1 -0
- package/Math/tessellation/methods.ts +79 -0
- package/Math/tessellation/nearest-value-padding.ts +147 -0
- package/Math/tessellation/roadmap.md +48 -0
- package/Math/tessellation/spherical-triangle-area.ts +127 -0
- package/Math/tessellation/tile-merger.ts +578 -0
- package/Math/tessellation/triangle-tessellation.ts +533 -0
- package/Math/tessellation/types.ts +1 -0
- package/Math/types.ts +68 -0
- package/Math/utils.js +3 -2
- package/Math/{vec3.js → vec3.ts} +227 -151
- package/Math/xyz-tile.ts +26 -0
- package/algorithms/search-binary.js +14 -16
- package/altitude-locator/adaptors.js +0 -1
- package/altitude-locator/keymethod.js +0 -1
- package/altitude-locator/plugin.js +445 -345
- package/altitude-locator/types.js +26 -21
- package/compass-rose/compass-rose-padding-flat.js +274 -230
- package/compass-rose/{compass-text-writer.js → compass-text-writer.ts} +210 -155
- package/compass-rose/index.js +3 -3
- package/{constants.js → constants.ts} +8 -6
- package/heatwave/datamanager.js +168 -149
- package/heatwave/heatwave.js +261 -206
- package/heatwave/index.js +5 -5
- package/heatwave/isobar.js +340 -303
- package/heatwave/{texture-point-sampler.js → texture-point-sampler.ts} +220 -187
- package/investigation-tools/draw/tiles/adapters.ts +133 -0
- package/investigation-tools/draw/tiles/tiles.ts +162 -0
- package/jest.config.js +6 -7
- package/package.json +1 -1
- package/pin/pin-object-array1.js +381 -300
- package/pin/pin-point-totem1.js +77 -60
- package/programs/arrowfield/arrow-field.js +89 -60
- package/programs/arrowfield/logic.js +173 -141
- package/programs/data2legend/density-to-legend.js +86 -68
- package/programs/data2legend/point-to-density-texture.js +84 -67
- package/programs/float2legendwithratio/index.js +3 -2
- package/programs/float2legendwithratio/logic.js +144 -118
- package/programs/float2legendwithratio/object.js +141 -104
- package/programs/helpers/blender.js +73 -58
- package/programs/helpers/{fadeaway.js → fadeaway.ts} +73 -55
- package/programs/index.js +19 -20
- package/programs/line-on-globe/circle-accurate-3d.js +112 -85
- package/programs/line-on-globe/circle-accurate-flat.js +200 -148
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +134 -102
- package/programs/line-on-globe/index.js +0 -1
- package/programs/line-on-globe/lines-color-instanced-flat.js +99 -80
- package/programs/line-on-globe/linestrip/data.ts +29 -0
- package/programs/line-on-globe/linestrip/{linestrip.js → linestrip.ts} +152 -93
- package/programs/line-on-globe/{naive-accurate-flexible.js → naive-accurate-flexible.ts} +175 -126
- package/programs/line-on-globe/util.js +8 -5
- package/programs/picking/pickable-polygon-renderer.js +129 -98
- package/programs/picking/pickable-renderer.js +130 -98
- package/programs/point-on-globe/element-globe-surface-glow.js +122 -93
- package/programs/point-on-globe/element-point-glow.js +114 -80
- package/programs/point-on-globe/square-pixel-point.js +139 -120
- package/programs/polygon-on-globe/roadmap.md +8 -0
- package/programs/polygon-on-globe/texture-dem-triangles.ts +290 -0
- package/programs/{programcache.js → programcache.ts} +134 -126
- package/programs/rings/index.js +1 -1
- package/programs/rings/partial-ring/{piece-of-pie.js → piece-of-pie.ts} +222 -152
- package/programs/totems/camera-totem-attactment-interface.ts +4 -0
- package/programs/totems/{camerauniformblock.js → camerauniformblock.ts} +326 -230
- package/programs/totems/{canvas-webglobe-info.js → canvas-webglobe-info.ts} +147 -132
- package/programs/totems/dem-textures-manager.ts +368 -0
- package/programs/totems/{globe-changes.js → globe-changes.ts} +79 -59
- package/programs/totems/gpu-selection-uniform-block.js +127 -99
- package/programs/totems/{index.js → index.ts} +2 -2
- package/programs/two-d/pixel-padding-for-compass.js +101 -87
- package/programs/util.js +19 -14
- package/programs/vectorfields/logics/{constants.js → constants.ts} +5 -4
- package/programs/vectorfields/logics/drawrectangleparticles.ts +182 -0
- package/programs/vectorfields/logics/index.js +4 -2
- package/programs/vectorfields/logics/particle-ubo.ts +23 -0
- package/programs/vectorfields/logics/{pixelbased.js → pixelbased.ts} +119 -84
- package/programs/vectorfields/logics/ubo.js +57 -51
- package/programs/vectorfields/{pingpongbuffermanager.js → pingpongbuffermanager.ts} +113 -73
- package/publish.bat +62 -0
- package/range-tools-on-terrain/bearing-line/{adapters.js → adapters.ts} +154 -114
- package/range-tools-on-terrain/bearing-line/{plugin.js → plugin.ts} +569 -457
- package/range-tools-on-terrain/bearing-line/types.ts +65 -0
- package/range-tools-on-terrain/circle-line-chain/{adapters.js → adapters.ts} +104 -85
- package/range-tools-on-terrain/circle-line-chain/{chain-list-map.js → chain-list-map.ts} +446 -382
- package/range-tools-on-terrain/circle-line-chain/{plugin.js → plugin.ts} +607 -464
- package/range-tools-on-terrain/circle-line-chain/types.ts +43 -0
- package/range-tools-on-terrain/range-ring/{adapters.js → adapters.ts} +114 -93
- package/range-tools-on-terrain/range-ring/{enum.js → enum.ts} +2 -2
- package/range-tools-on-terrain/range-ring/{plugin.js → plugin.ts} +444 -377
- package/range-tools-on-terrain/range-ring/rangeringangletext.ts +396 -0
- package/range-tools-on-terrain/range-ring/types.ts +30 -0
- package/semiplugins/interface.ts +14 -0
- package/semiplugins/lightweight/{line-plugin.js → line-plugin.ts} +342 -221
- package/semiplugins/lightweight/{piece-of-pie-plugin.js → piece-of-pie-plugin.ts} +275 -200
- package/semiplugins/shape-on-terrain/{arc-plugin.js → arc-plugin.ts} +616 -472
- package/semiplugins/shape-on-terrain/{circle-plugin.js → circle-plugin.ts} +588 -444
- package/semiplugins/shape-on-terrain/goal.md +12 -0
- package/semiplugins/shape-on-terrain/{padding-1-degree.js → padding-1-degree.ts} +713 -539
- package/semiplugins/shape-on-terrain/terrain-polygon/adapters.ts +69 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/cache-shortcuts.md +20 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/cache.ts +149 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/index-polygon-map.ts +58 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/manager.ts +4 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.js +196 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/master-worker.ts +209 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/polygon-to-triangles.ts +144 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/random.ts +165 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/readme.md +5 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/types.ts +37 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/worker-contact.ts +81 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/data/worker.js +146 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/notes.md +90 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/terrain-polygon.ts +265 -0
- package/semiplugins/shape-on-terrain/terrain-polygon/types.ts +69 -0
- package/semiplugins/shell/bbox-renderer/index.ts +2 -0
- package/semiplugins/shell/bbox-renderer/{logic.js → logic.ts} +273 -249
- package/semiplugins/shell/bbox-renderer/object.ts +129 -0
- package/semiplugins/type.ts +8 -0
- package/semiplugins/utility/{container-plugin.js → container-plugin.ts} +126 -94
- package/semiplugins/utility/{object-pass-container-plugin.js → object-pass-container-plugin.ts} +101 -80
- package/shaders/fragment-toy/firework.js +1 -1
- package/shaders/fragment-toy/singularity.js +5 -2
- package/terrain-plugin.mmd +83 -0
- package/tests/Math/arc-sampling-test.js +367 -0
- package/tests/Math/arc-sampling-test.ts +429 -0
- package/tests/Math/arc.test.ts +77 -0
- package/tests/Math/junction/arc-limit.test.ts +7 -0
- package/tests/Math/junction/arc-plane-points.test.ts +196 -0
- package/tests/Math/junction/arc-plane.test.ts +172 -0
- package/tests/Math/junction/line-sphere.test.ts +127 -0
- package/tests/Math/junction/plane-plane.test.ts +91 -0
- package/tests/Math/plane-test.ts +17 -0
- package/tests/Math/plane.test.ts +43 -0
- package/tests/Math/vec3.test.ts +33 -0
- package/tracks/point-heat-map/adaptors/timetracksplugin-format-to-this.js +78 -63
- package/tracks/point-heat-map/index.js +0 -1
- package/tracks/point-heat-map/plugin-webworker.js +148 -121
- package/tracks/point-heat-map/point-to-heat-map-flow.js +150 -121
- package/tracks/point-heat-map/readme.md +15 -0
- package/tracks/point-tracks/key-methods.js +3 -2
- package/tracks/point-tracks/plugin.js +487 -393
- package/tracks/timetracks/adaptors-line-strip.js +79 -65
- package/tracks/timetracks/plugin-line-strip.js +295 -240
- package/tracks/timetracks/program-line-strip.js +495 -411
- package/tracks/timetracks/programpoint-line-strip.js +137 -109
- package/tracks/timetracks/readme.md +1 -0
- package/tsconfig.json +22 -0
- package/types/@pirireis/webglobe.d.ts +102 -0
- package/types/delaunator.d.ts +40 -0
- package/types/earcut.d.ts +11 -0
- package/types/rbush.d.ts +57 -0
- package/types.ts +319 -0
- package/util/account/bufferoffsetmanager.js +209 -176
- package/util/account/create-buffermap-orchastration.ts +85 -0
- package/util/account/index.js +6 -3
- package/util/account/single-attribute-buffer-management/{buffer-manager.js → buffer-manager.ts} +151 -117
- package/util/account/single-attribute-buffer-management/{buffer-orchestrator.js → buffer-orchestrator.ts} +238 -212
- package/util/account/single-attribute-buffer-management/{buffer-orchestrator1.js → buffer-orchestrator1.ts} +184 -159
- package/util/account/single-attribute-buffer-management/{index.js → index.ts} +11 -4
- package/util/account/single-attribute-buffer-management/{object-store.js → object-store.ts} +76 -55
- package/util/account/single-attribute-buffer-management/types.ts +43 -0
- package/util/account/util.js +22 -18
- package/util/algorithms/index.js +0 -1
- package/util/algorithms/search-binary.js +26 -25
- package/util/build-strategy/{static-dynamic.js → static-dynamic.ts} +50 -41
- package/util/check/index.js +0 -1
- package/util/check/typecheck.ts +74 -0
- package/util/{frame-counter-trigger.js → frame-counter-trigger.ts} +99 -84
- package/util/geometry/{index.js → index.ts} +155 -121
- package/util/gl-util/buffer/{attribute-loader.js → attribute-loader.ts} +84 -62
- package/util/gl-util/buffer/{index.js → index.ts} +6 -3
- package/util/gl-util/draw-options/{methods.js → methods.ts} +47 -32
- package/util/gl-util/uniform-block/{manager.js → manager.ts} +232 -190
- package/util/{webglobe/gldefaultstates.js → globe-default-gl-states.ts} +5 -4
- package/util/helper-methods.ts +9 -0
- package/util/index.js +9 -10
- package/util/interpolation/index.js +0 -1
- package/util/interpolation/timetrack/index.js +9 -2
- package/util/interpolation/timetrack/timetrack-interpolator.js +94 -79
- package/util/interpolation/timetrack/web-worker.js +51 -46
- package/util/picking/{fence.js → fence.ts} +47 -41
- package/util/picking/picker-displayer.ts +226 -0
- package/util/programs/draw-from-pixel-coords.js +201 -164
- package/util/programs/{draw-texture-on-canvas.js → draw-texture-on-canvas.ts} +92 -67
- package/util/programs/supersampletotextures.js +130 -97
- package/util/programs/texturetoglobe.js +153 -128
- package/util/shaderfunctions/{geometrytransformations.js → geometrytransformations.ts} +169 -41
- package/util/shaderfunctions/index.js +2 -2
- package/util/shaderfunctions/nodata.js +4 -2
- package/util/shaderfunctions/noisefunctions.js +10 -7
- package/util/{webglobjectbuilders.js → webglobjectbuilders.ts} +446 -358
- package/vectorfield/arrowfield/adaptor.js +11 -11
- package/vectorfield/arrowfield/index.js +3 -3
- package/vectorfield/arrowfield/plugin.js +128 -83
- package/vectorfield/waveparticles/adaptor.js +16 -15
- package/vectorfield/waveparticles/index.js +3 -3
- package/vectorfield/waveparticles/plugin.ts +506 -0
- package/vectorfield/wind/adapters/image-to-fields.ts +74 -0
- package/vectorfield/wind/adapters/types.ts +12 -0
- package/vectorfield/wind/{imagetovectorfieldandmagnitude.js → imagetovectorfieldandmagnitude.ts} +78 -56
- package/vectorfield/wind/index.js +5 -5
- package/vectorfield/wind/plugin-persistant copy.ts +461 -0
- package/vectorfield/wind/plugin-persistant.ts +483 -0
- package/vectorfield/wind/plugin.js +883 -671
- package/vectorfield/wind/vectorfieldimage.js +27 -23
- package/write-text/{context-text-bulk.js → context-text-bulk.ts} +285 -200
- package/write-text/context-text3.ts +252 -0
- package/write-text/{context-text4.js → context-text4.ts} +231 -145
- package/write-text/context-textDELETE.js +125 -94
- package/write-text/objectarraylabels/{index.js → index.ts} +2 -2
- package/write-text/objectarraylabels/objectarraylabels.d.ts +72 -0
- package/write-text/objectarraylabels/objectarraylabels.js +247 -200
- package/Math/matrix4.js +0 -1
- package/Math/tessellation/earcut/adapters.js +0 -37
- package/Math/tessellation/hybrid-triangle-tessellation-meta.js +0 -123
- package/Math/tessellation/methods.js +0 -46
- package/Math/tessellation/shred-input.js +0 -18
- package/Math/tessellation/tile-merger.js +0 -56
- package/Math/tessellation/tiler.js +0 -50
- package/Math/tessellation/triangle-tessellation-meta.js +0 -516
- package/Math/tessellation/triangle-tessellation.js +0 -14
- package/Math/tessellation/types.js +0 -1
- package/Math/tessellation/zoom-catch.js +0 -1
- package/Math/types.js +0 -1
- package/programs/line-on-globe/linestrip/data.js +0 -4
- package/programs/polygon-on-globe/partial-tesselation.js +0 -1
- package/programs/polygon-on-globe/texture-dem-triangle-test-plugin-triangle.js +0 -204
- package/programs/polygon-on-globe/texture-dem-triangle-test-plugin.js +0 -118
- package/programs/polygon-on-globe/texture-dem-triangles.js +0 -236
- package/programs/vectorfields/logics/drawrectangleparticles.js +0 -112
- package/programs/vectorfields/logics/ubo-new.js +0 -25
- package/range-tools-on-terrain/bearing-line/types.js +0 -1
- package/range-tools-on-terrain/circle-line-chain/types.js +0 -1
- package/range-tools-on-terrain/range-ring/rangeringangletext.js +0 -331
- package/range-tools-on-terrain/range-ring/types.js +0 -9
- package/semiplugins/interface.js +0 -1
- package/semiplugins/shape-on-terrain/terrain-cover/texture-dem-cover.js +0 -1
- package/semiplugins/shell/bbox-renderer/index.js +0 -2
- package/semiplugins/shell/bbox-renderer/object.js +0 -65
- package/semiplugins/type.js +0 -1
- package/types.js +0 -19
- package/util/account/create-buffermap-orchastration.js +0 -39
- package/util/account/single-attribute-buffer-management/types.js +0 -1
- package/util/check/typecheck.js +0 -66
- package/util/gl-util/uniform-block/types.js +0 -1
- package/util/picking/picker-displayer.js +0 -134
- package/util/webglobe/index.js +0 -2
- package/util/webglobe/rasteroverlay.js +0 -76
- package/vectorfield/waveparticles/plugin.js +0 -290
- package/write-text/attached-text-writer.js +0 -95
- package/write-text/context-text3.js +0 -167
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
import { createProgram } from "../../util/webglobjectbuilders";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
1
|
+
import { createProgram } from "../../util/webglobjectbuilders";
|
|
2
|
+
import {
|
|
3
|
+
pixelXYToCartesian2DPoint,
|
|
4
|
+
pixelXYToCartesian3DPoint
|
|
5
|
+
} from "../../util/shaderfunctions";
|
|
6
|
+
|
|
7
|
+
import { CameraUniformBlockTotem, globeProgramCache } from "../../programs";
|
|
8
|
+
import { CameraUniformBlockString } from "../../programs/totems/camerauniformblock";
|
|
9
|
+
|
|
10
|
+
// layout(std140) uniform GlobeCamera {
|
|
11
|
+
// mat4 view; // 64 bytes 0
|
|
12
|
+
// mat4 projection; // 64 bytes 64
|
|
13
|
+
// vec3 translate; // 12 bytes 128
|
|
14
|
+
// bool is3D; // 4 bytes 140
|
|
15
|
+
// vec2 mapWH; // 8 bytes 144
|
|
16
|
+
// vec2 screenWH; // 8 bytes 152
|
|
17
|
+
// float z_level; // 4 bytes 160
|
|
18
|
+
// };
|
|
19
|
+
|
|
14
20
|
const vertexShader = `#version 300 es
|
|
15
21
|
|
|
16
22
|
${CameraUniformBlockString}
|
|
@@ -29,7 +35,7 @@ in float end_time;
|
|
|
29
35
|
in vec3 end_color;
|
|
30
36
|
out vec4 v_color;
|
|
31
37
|
|
|
32
|
-
|
|
38
|
+
`+ pixelXYToCartesian3DPoint + pixelXYToCartesian2DPoint + `
|
|
33
39
|
|
|
34
40
|
void main() {
|
|
35
41
|
if (head_time < start_time || head_time > end_time) { return; }
|
|
@@ -45,7 +51,8 @@ void main() {
|
|
|
45
51
|
}
|
|
46
52
|
v_color = vec4(mix(start_color, end_color, t), final_opacity);
|
|
47
53
|
gl_PointSize = point_size;
|
|
48
|
-
}`;
|
|
54
|
+
}`;
|
|
55
|
+
|
|
49
56
|
const fragmentShader = `#version 300 es
|
|
50
57
|
precision highp float;
|
|
51
58
|
in vec4 v_color;
|
|
@@ -58,97 +65,118 @@ void main() {
|
|
|
58
65
|
if (cc > 0.5) {
|
|
59
66
|
outColor.a = 0.0;
|
|
60
67
|
}
|
|
61
|
-
}`;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
this.
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
71
|
-
this.
|
|
72
|
-
this.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
gl
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
gl
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
gl.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
gl.
|
|
104
|
-
|
|
105
|
-
gl.
|
|
106
|
-
|
|
107
|
-
gl.
|
|
108
|
-
|
|
109
|
-
gl.
|
|
110
|
-
gl.
|
|
111
|
-
gl.enableVertexAttribArray(
|
|
112
|
-
gl.vertexAttribPointer(
|
|
113
|
-
gl.
|
|
114
|
-
gl.
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
gl.
|
|
120
|
-
gl.
|
|
121
|
-
gl.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
gl
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
gl
|
|
143
|
-
gl.
|
|
144
|
-
gl.
|
|
145
|
-
gl.
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
gl.
|
|
152
|
-
gl.
|
|
153
|
-
|
|
154
|
-
}
|
|
68
|
+
}`;
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
export default class ProgramPointLineStrip {
|
|
72
|
+
|
|
73
|
+
constructor(gl, globe, attrBuffer, options) {
|
|
74
|
+
|
|
75
|
+
this.gl = gl;
|
|
76
|
+
this._cameraBlockBindingPoint = 0;
|
|
77
|
+
this._globalsBlockBindingPoint = 1;
|
|
78
|
+
this.cameraUniformBlockTotem = globeProgramCache.getProgram(globe, CameraUniformBlockTotem);
|
|
79
|
+
this._vao = gl.createVertexArray();
|
|
80
|
+
this._attbuffer = attrBuffer;
|
|
81
|
+
this.program = this._createProgram();
|
|
82
|
+
this._drawCount = 0;
|
|
83
|
+
|
|
84
|
+
this._globalsbuffer = gl.createBuffer();
|
|
85
|
+
{
|
|
86
|
+
const { gl, _globalsbuffer } = this;
|
|
87
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
88
|
+
gl.bufferData(gl.UNIFORM_BUFFER, 12, gl.STREAM_DRAW);
|
|
89
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 0, new Float32Array([0, options.opacity, options.pointSize]));
|
|
90
|
+
gl.bindBufferBase(gl.UNIFORM_BUFFER, this._globalsBlockBindingPoint, _globalsbuffer);
|
|
91
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
_createProgram() {
|
|
97
|
+
const gl = this.gl
|
|
98
|
+
|
|
99
|
+
const program = createProgram(gl, vertexShader, fragmentShader);
|
|
100
|
+
const ubo = this.cameraUniformBlockTotem.getUBO(); // ubo bl
|
|
101
|
+
const cameraBlockIndex = gl.getUniformBlockIndex(program, "GlobeCamera");
|
|
102
|
+
gl.uniformBlockBinding(program, cameraBlockIndex, this._cameraBlockBindingPoint);
|
|
103
|
+
const globalsBlockIndex = gl.getUniformBlockIndex(program, "Globals");
|
|
104
|
+
gl.bindBufferBase(gl.UNIFORM_BUFFER, this._cameraBlockBindingPoint, ubo);
|
|
105
|
+
gl.uniformBlockBinding(program, globalsBlockIndex, this._globalsBlockBindingPoint);
|
|
106
|
+
gl.bindBufferBase(gl.UNIFORM_BUFFER, this._globalsBlockBindingPoint, this._globalsbuffer);
|
|
107
|
+
|
|
108
|
+
// numaralarda yanlışlık olabilir
|
|
109
|
+
const start_position = gl.getAttribLocation(program, "start_position");
|
|
110
|
+
const start_time = gl.getAttribLocation(program, "start_time");
|
|
111
|
+
const start_color = gl.getAttribLocation(program, "start_color");
|
|
112
|
+
const end_position = gl.getAttribLocation(program, "end_position");
|
|
113
|
+
const end_time = gl.getAttribLocation(program, "end_time");
|
|
114
|
+
const end_color = gl.getAttribLocation(program, "end_color");
|
|
115
|
+
|
|
116
|
+
gl.bindVertexArray(this._vao);
|
|
117
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._attbuffer);
|
|
118
|
+
gl.enableVertexAttribArray(start_position);
|
|
119
|
+
gl.vertexAttribPointer(start_position, 3, gl.FLOAT, false, 36, 0);
|
|
120
|
+
gl.enableVertexAttribArray(start_time);
|
|
121
|
+
gl.vertexAttribPointer(start_time, 1, gl.FLOAT, false, 36, 12);
|
|
122
|
+
gl.enableVertexAttribArray(start_color);
|
|
123
|
+
gl.vertexAttribPointer(start_color, 3, gl.FLOAT, false, 36, 16);
|
|
124
|
+
gl.enableVertexAttribArray(end_position);
|
|
125
|
+
gl.vertexAttribPointer(end_position, 3, gl.FLOAT, false, 36, 36);
|
|
126
|
+
gl.enableVertexAttribArray(end_time);
|
|
127
|
+
gl.vertexAttribPointer(end_time, 1, gl.FLOAT, false, 36, 48);
|
|
128
|
+
gl.enableVertexAttribArray(end_color);
|
|
129
|
+
gl.vertexAttribPointer(end_color, 3, gl.FLOAT, false, 36, 52);
|
|
130
|
+
gl.bindVertexArray(null);
|
|
131
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
132
|
+
return program;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
setOpacity(opacity) {
|
|
137
|
+
const { gl, _globalsbuffer } = this;
|
|
138
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
139
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 4, new Float32Array([opacity]));
|
|
140
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
setDrawCount(count) {
|
|
144
|
+
this._drawCount = count;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
setPointSize(size) {
|
|
149
|
+
const { gl, _globalsbuffer } = this;
|
|
150
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
151
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 8, new Float32Array([size]));
|
|
152
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
setHeadTime(time) {
|
|
157
|
+
const { gl, _globalsbuffer } = this;
|
|
158
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, _globalsbuffer);
|
|
159
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 0, new Float32Array([time]));
|
|
160
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
draw() {
|
|
165
|
+
const { gl, program, _vao, _drawCount } = this;
|
|
166
|
+
gl.useProgram(program);
|
|
167
|
+
gl.bindVertexArray(_vao);
|
|
168
|
+
gl.disable(gl.DEPTH_TEST);
|
|
169
|
+
gl.drawArrays(gl.POINTS, 0, _drawCount);
|
|
170
|
+
gl.enable(gl.DEPTH_TEST);
|
|
171
|
+
gl.bindVertexArray(null);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
free() {
|
|
176
|
+
const { gl, _vao, _globalsbuffer, program } = this;
|
|
177
|
+
gl.deleteVertexArray(_vao);
|
|
178
|
+
// gl.deleteBuffer(_attbuffer);
|
|
179
|
+
gl.deleteBuffer(_globalsbuffer);
|
|
180
|
+
gl.deleteProgram(program);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
TODO: delete program, programpoint, maybe adaptors. which are related to the old version of this plugin.
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
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
|
+
}
|