@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,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
|
-
}
|
package/types/delaunator.d.ts
DELETED
|
@@ -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
|
-
}
|