@pirireis/webglobeplugins 0.9.10 → 0.9.11
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 +8 -8
- package/Math/arc.js +18 -18
- package/Math/bounds/line-bbox.js +80 -78
- package/Math/constants.js +3 -3
- package/Math/juction/arc-plane.js +23 -23
- package/Math/juction/line-sphere.js +11 -11
- package/Math/juction/plane-plane.js +11 -11
- package/Math/line.js +16 -14
- package/Math/methods.js +72 -67
- package/Math/plane.js +18 -16
- package/Math/quaternion.js +49 -45
- package/Math/utils.js +2 -2
- package/Math/vec3.js +45 -42
- package/algorithms/search-binary.js +4 -4
- package/altitude-locator/draw-subset-obj.js +8 -7
- package/altitude-locator/plugin.js +113 -97
- package/arrowfield/adaptor.js +4 -3
- package/arrowfield/index.js +2 -2
- package/arrowfield/plugin.js +65 -62
- package/bearing-line/index.js +1 -1
- package/bearing-line/plugin.js +225 -200
- package/circle-line-chain/chain-list-map.js +88 -82
- package/circle-line-chain/plugin.js +154 -129
- package/circle-line-chain/util.js +1 -1
- package/compass-rose/compass-rose-padding-flat.js +126 -104
- package/compass-rose/compass-text-writer.js +70 -62
- package/compass-rose/index.js +2 -2
- package/compassrose/compassrose.js +50 -46
- package/compassrose/index.js +1 -1
- package/heatwave/index.js +2 -2
- package/heatwave/isobar/objectarraylabels.js +48 -44
- package/heatwave/isobar/plugin.js +123 -104
- package/heatwave/isobar/quadtreecontours.js +92 -76
- package/heatwave/plugins/heatwaveglobeshell.js +87 -69
- package/index.js +11 -11
- package/package.json +1 -1
- package/partialrings/buffer-manager.js +64 -32
- package/partialrings/index.js +1 -1
- package/partialrings/plugin.js +84 -48
- package/partialrings/program.js +47 -136
- package/pin/pin-object-array.js +86 -83
- package/pin/pin-point-totem.js +22 -21
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
- package/point-heat-map/plugin-webworker.js +45 -40
- package/point-heat-map/point-to-heat-map-flow.js +42 -40
- package/point-tracks/key-methods.js +1 -1
- package/point-tracks/plugin.js +142 -127
- package/programs/arrowfield/index.js +1 -1
- package/programs/arrowfield/logic.js +62 -170
- package/programs/arrowfield/object.js +35 -33
- package/programs/data2legend/density-to-legend.js +21 -45
- package/programs/data2legend/point-to-density-texture.js +27 -52
- package/programs/float2legendwithratio/index.js +1 -1
- package/programs/float2legendwithratio/logic.js +42 -88
- package/programs/float2legendwithratio/object.js +46 -43
- package/programs/globe-util/is-globe-moved.js +11 -10
- package/programs/globeshell/index.js +1 -1
- package/programs/globeshell/wiggle/index.js +1 -1
- package/programs/globeshell/wiggle/logic.js +98 -191
- package/programs/globeshell/wiggle/object.js +35 -33
- package/programs/helpers/blender/program.js +19 -36
- package/programs/helpers/fadeaway/index.js +1 -1
- package/programs/helpers/fadeaway/logic.js +13 -35
- package/programs/helpers/fadeaway/object.js +10 -9
- package/programs/helpers/index.js +1 -1
- package/programs/index.js +8 -8
- package/programs/line-on-globe/angled-line.js +32 -91
- package/programs/line-on-globe/circle-accurate-3d.js +32 -82
- package/programs/line-on-globe/circle-accurate-flat.js +50 -108
- package/programs/line-on-globe/circle-accurate.js +33 -103
- package/programs/line-on-globe/circle.js +32 -97
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +33 -83
- package/programs/line-on-globe/lines-color-instanced-flat.js +34 -79
- package/programs/line-on-globe/linestrip.js +39 -100
- package/programs/line-on-globe/naive-accurate-flexible.js +48 -118
- package/programs/line-on-globe/to-the-surface.js +29 -58
- package/programs/line-on-globe/util.js +1 -1
- package/programs/picking/pickable-renderer.js +33 -117
- package/programs/point-on-globe/element-globe-surface-glow.js +38 -78
- package/programs/point-on-globe/element-point-glow.js +35 -103
- package/programs/point-on-globe/square-pixel-point.js +27 -76
- package/programs/programcache.js +13 -13
- package/programs/rings/distancering/circleflatprogram.js +21 -63
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +145 -156
- package/programs/rings/distancering/circlepaddysharedbuffer.js +197 -121
- package/programs/rings/distancering/index.js +4 -4
- package/programs/rings/distancering/paddyflatprogram.js +20 -73
- package/programs/rings/distancering/paddyflatprogram2d.js +22 -75
- package/programs/rings/distancering/paddyflatprogram3d.js +20 -73
- package/programs/rings/partial-ring/piece-of-pie.js +35 -137
- package/programs/totems/camerauniformblock.js +51 -64
- package/programs/totems/canvas-webglobe-info.js +40 -48
- package/programs/totems/gpu-selection-uniform-block.js +40 -44
- package/programs/totems/index.js +1 -1
- package/programs/two-d/pixel-padding-for-compass.js +29 -90
- package/programs/util.js +7 -6
- package/programs/vectorfields/index.js +1 -1
- package/programs/vectorfields/logics/drawrectangleparticles.js +29 -70
- package/programs/vectorfields/logics/index.js +3 -3
- package/programs/vectorfields/logics/pixelbased.js +35 -91
- package/programs/vectorfields/logics/ubo.js +25 -31
- package/programs/vectorfields/pingpongbuffermanager.js +34 -30
- package/rangerings/index.js +4 -4
- package/rangerings/plugin.js +252 -202
- package/rangerings/rangeringangletext.js +120 -108
- package/rangerings/ring-account.js +69 -52
- package/shaders/fragment-toy/firework.js +1 -55
- package/shaders/fragment-toy/singularity.js +1 -55
- package/timetracks/adaptors-line-strip.js +37 -26
- package/timetracks/adaptors.js +61 -47
- package/timetracks/index.js +4 -4
- package/timetracks/plugin-line-strip.js +63 -59
- package/timetracks/plugin.js +69 -65
- package/timetracks/program-line-strip.js +103 -296
- package/timetracks/program.js +113 -419
- package/timetracks/programpoint-line-strip.js +44 -97
- package/timetracks/programpoint.js +44 -90
- package/util/account/bufferoffsetmanager.js +95 -72
- package/util/account/index.js +1 -1
- package/util/account/single-attribute-buffer-management/buffer-manager.js +43 -39
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +94 -64
- package/util/account/single-attribute-buffer-management/index.js +3 -3
- package/util/account/single-attribute-buffer-management/object-store.js +30 -28
- package/util/account/util.js +4 -2
- package/util/algorithms/search-binary.js +4 -4
- package/util/check/get.js +5 -5
- package/util/check/typecheck.js +15 -13
- package/util/geometry/index.js +11 -9
- package/util/gl-util/buffer/attribute-loader.js +20 -8
- package/util/gl-util/buffer/index.js +1 -1
- package/util/gl-util/draw-options/methods.js +7 -7
- package/util/gl-util/uniform-block/manager.js +67 -55
- package/util/heatwavedatamanager/datamanager.js +116 -56
- package/util/heatwavedatamanager/index.js +2 -2
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +40 -37
- package/util/heatwavedatamanager/pointcoordsmeta.js +10 -9
- package/util/index.js +6 -6
- package/util/interpolation/timetrack/index.js +1 -1
- package/util/interpolation/timetrack/timetrack-interpolator.js +29 -27
- package/util/interpolation/timetrack/web-worker-str.js +1 -179
- package/util/interpolation/timetrack/web-worker.js +4 -4
- package/util/jshelpers/data-filler.js +7 -7
- package/util/jshelpers/timefilters.js +7 -7
- package/util/picking/fence.js +7 -7
- package/util/picking/picker-displayer.js +52 -46
- package/util/programs/draw-texture-on-canvas.js +21 -39
- package/util/programs/shapesonglobe.js +64 -104
- package/util/programs/supersampletotextures.js +39 -45
- package/util/programs/texturetoglobe.js +48 -98
- package/util/shaderfunctions/geometrytransformations.js +27 -322
- package/util/shaderfunctions/nodata.js +1 -7
- package/util/shaderfunctions/noisefunctions.js +9 -39
- package/util/surface-line-data/arcs-to-cuts.js +23 -20
- package/util/webglobe/rasteroverlay.js +37 -35
- package/util/webglobjectbuilders.js +60 -55
- package/util/webglobjectbuilders1.js +49 -48
- package/waveparticles/adaptor.js +7 -6
- package/waveparticles/index.js +2 -2
- package/waveparticles/plugin.js +84 -79
- package/wind/imagetovectorfieldandmagnitude.js +15 -15
- package/wind/index.js +4 -4
- package/wind/plugin.js +251 -453
- package/wind/vectorfieldimage.js +5 -5
- package/write-text/attached-text-writer.js +48 -46
- package/write-text/context-text.js +58 -51
- package/write-text/context-text3.js +74 -69
|
@@ -1,30 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CameraUniformBlockTotemCache = exports.CameraUniformBlockString = void 0;
|
|
4
|
-
|
|
4
|
+
var programcache_1 = require("../programcache");
|
|
5
5
|
// import { getFrustumPlanes } from "../../Math/frustum/from-projection-matrix";
|
|
6
6
|
// import { getFrustum } from "../../Math/frustum/from-globeinfo"
|
|
7
7
|
// import { Plane } from "../../Math/";
|
|
8
|
-
exports.CameraUniformBlockString =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
vec3 translate; // 12 bytes 128
|
|
13
|
-
bool is3D; // 4 bytes 140
|
|
14
|
-
vec2 mapWH; // 8 bytes 144
|
|
15
|
-
vec2 screenWH; // 8 bytes 152
|
|
16
|
-
float z_level; // 4 bytes 160 | 164
|
|
17
|
-
float world_distance; // 4 bytes 164
|
|
18
|
-
float world_tilt; // 4 bytes 168
|
|
19
|
-
float world_north_angle; // 4 bytes 172
|
|
20
|
-
vec2 world_center_radian; // 8 bytes 176 | 184
|
|
21
|
-
}; // 14 lines
|
|
22
|
-
`;
|
|
23
|
-
const Radian = Math.PI / 180.0;
|
|
24
|
-
class CameraUniformBlockTotem {
|
|
25
|
-
constructor() {
|
|
8
|
+
exports.CameraUniformBlockString = "\nlayout(std140) uniform CameraUniformBlock {\n mat4 view; // 64 bytes 0\n mat4 projection; // 64 bytes 64\n vec3 translate; // 12 bytes 128\n bool is3D; // 4 bytes 140\n vec2 mapWH; // 8 bytes 144\n vec2 screenWH; // 8 bytes 152\n float z_level; // 4 bytes 160 | 164\n float world_distance; // 4 bytes 164\n float world_tilt; // 4 bytes 168\n float world_north_angle; // 4 bytes 172\n vec2 world_center_radian; // 8 bytes 176 | 184\n}; // 14 lines\n";
|
|
9
|
+
var Radian = Math.PI / 180.0;
|
|
10
|
+
var CameraUniformBlockTotem = /** @class */ (function () {
|
|
11
|
+
function CameraUniformBlockTotem() {
|
|
26
12
|
this.id = "CameraUniformBlockTotem";
|
|
27
|
-
this.description =
|
|
13
|
+
this.description = "Sets a uniform block and provides buffer for it. The following is the glsl uniform block:" + exports.CameraUniformBlockString;
|
|
28
14
|
this.gl = null;
|
|
29
15
|
this.globe = null;
|
|
30
16
|
this.ubo = null;
|
|
@@ -41,7 +27,7 @@ class CameraUniformBlockTotem {
|
|
|
41
27
|
isMoved: false,
|
|
42
28
|
};
|
|
43
29
|
}
|
|
44
|
-
init(globe, gl) {
|
|
30
|
+
CameraUniformBlockTotem.prototype.init = function (globe, gl) {
|
|
45
31
|
this.gl = gl;
|
|
46
32
|
this.globe = globe;
|
|
47
33
|
this.ubo = this._createUBO();
|
|
@@ -49,31 +35,31 @@ class CameraUniformBlockTotem {
|
|
|
49
35
|
this.mapWHFloat32 = new Float32Array(2);
|
|
50
36
|
this.setGeometry();
|
|
51
37
|
this.resize();
|
|
52
|
-
}
|
|
53
|
-
_createUBO() {
|
|
54
|
-
|
|
55
|
-
|
|
38
|
+
};
|
|
39
|
+
CameraUniformBlockTotem.prototype._createUBO = function () {
|
|
40
|
+
var gl = this.gl;
|
|
41
|
+
var ubo = gl.createBuffer();
|
|
56
42
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
57
43
|
// 184 bytes in reality. Overflow on linux for some reason. So, 200 bytes.
|
|
58
44
|
gl.bufferData(gl.UNIFORM_BUFFER, 200, gl.STREAM_DRAW);
|
|
59
45
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, 0, ubo);
|
|
60
46
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
61
47
|
return ubo;
|
|
62
|
-
}
|
|
63
|
-
resize() {
|
|
64
|
-
|
|
48
|
+
};
|
|
49
|
+
CameraUniformBlockTotem.prototype.resize = function () {
|
|
50
|
+
var _a = this, gl = _a.gl, globe = _a.globe, ubo = _a.ubo;
|
|
65
51
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
66
52
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 152, new Float32Array([globe.api_ScrW(), globe.api_ScrH()]));
|
|
67
53
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
68
|
-
}
|
|
69
|
-
setGeometry() {
|
|
70
|
-
|
|
71
|
-
|
|
54
|
+
};
|
|
55
|
+
CameraUniformBlockTotem.prototype.setGeometry = function () {
|
|
56
|
+
var _a = this, gl = _a.gl, globe = _a.globe, ubo = _a.ubo;
|
|
57
|
+
var is3D = globe.api_GetCurrentGeometry() === 0;
|
|
72
58
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
73
59
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 140, new Float32Array([is3D]));
|
|
74
|
-
}
|
|
75
|
-
draw3D(projection, modelView, translate) {
|
|
76
|
-
|
|
60
|
+
};
|
|
61
|
+
CameraUniformBlockTotem.prototype.draw3D = function (projection, modelView, translate) {
|
|
62
|
+
var _a = this, gl = _a.gl, traslateFloat32 = _a.traslateFloat32, ubo = _a.ubo, mapWHFloat32 = _a.mapWHFloat32, globe = _a.globe;
|
|
77
63
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
78
64
|
{ // view, projection, translat
|
|
79
65
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 0, modelView);
|
|
@@ -87,7 +73,7 @@ class CameraUniformBlockTotem {
|
|
|
87
73
|
}
|
|
88
74
|
{ // mapWH
|
|
89
75
|
if (globe.api_GetCurrentGeometry() === 1) {
|
|
90
|
-
|
|
76
|
+
var _b = globe.api_GetCurrentWorldWH(), width = _b.width, height = _b.height;
|
|
91
77
|
mapWHFloat32.set([width, height]);
|
|
92
78
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 144, mapWHFloat32);
|
|
93
79
|
}
|
|
@@ -97,7 +83,7 @@ class CameraUniformBlockTotem {
|
|
|
97
83
|
// float world_tilt; // 4 bytes 168
|
|
98
84
|
// float world_north_angle; // 4 bytes 172
|
|
99
85
|
// vec2 world_center_radian; // 8 bytes 180
|
|
100
|
-
|
|
86
|
+
var _c = globe.api_GetCurrentLookInfo(), CenterLong = _c.CenterLong, CenterLat = _c.CenterLat, Distance = _c.Distance, Tilt = _c.Tilt, NorthAng = _c.NorthAng;
|
|
101
87
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 164, new Float32Array([
|
|
102
88
|
Distance, Radian * Tilt, Radian * NorthAng, Radian * CenterLong, Radian * CenterLat
|
|
103
89
|
]));
|
|
@@ -105,40 +91,40 @@ class CameraUniformBlockTotem {
|
|
|
105
91
|
// this._frustumPlanes = getFrustumPlanes(projection, translate);
|
|
106
92
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
107
93
|
{ // isMoved
|
|
108
|
-
|
|
94
|
+
var currentLOD = globe.api_GetCurrentLODWithDecimal();
|
|
109
95
|
this._isMovedParams.isMoved = this._isMovedParams.lastLod !== currentLOD || globe.api_IsScreenMoving();
|
|
110
96
|
this._isMovedParams.lastLod = currentLOD;
|
|
111
97
|
}
|
|
112
98
|
// getFrustum(globe, 50, this._frustumPlanes);
|
|
113
|
-
}
|
|
114
|
-
assignBindingPoint(program, bindingPoint) {
|
|
115
|
-
|
|
116
|
-
|
|
99
|
+
};
|
|
100
|
+
CameraUniformBlockTotem.prototype.assignBindingPoint = function (program, bindingPoint) {
|
|
101
|
+
var gl = this.gl;
|
|
102
|
+
var cameraBlockIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
|
|
117
103
|
gl.uniformBlockBinding(program, cameraBlockIndex, bindingPoint);
|
|
118
|
-
}
|
|
119
|
-
getUBO() {
|
|
104
|
+
};
|
|
105
|
+
CameraUniformBlockTotem.prototype.getUBO = function () {
|
|
120
106
|
return this.ubo;
|
|
121
|
-
}
|
|
122
|
-
getFrustumPlanes() {
|
|
107
|
+
};
|
|
108
|
+
CameraUniformBlockTotem.prototype.getFrustumPlanes = function () {
|
|
123
109
|
return this._frustumPlanes;
|
|
124
|
-
}
|
|
125
|
-
bind(bindingPoint) {
|
|
126
|
-
|
|
110
|
+
};
|
|
111
|
+
CameraUniformBlockTotem.prototype.bind = function (bindingPoint) {
|
|
112
|
+
var _a = this, gl = _a.gl, ubo = _a.ubo;
|
|
127
113
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPoint, ubo);
|
|
128
|
-
}
|
|
129
|
-
unbind(bindingPoint) {
|
|
130
|
-
|
|
114
|
+
};
|
|
115
|
+
CameraUniformBlockTotem.prototype.unbind = function (bindingPoint) {
|
|
116
|
+
var gl = this.gl;
|
|
131
117
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPoint, null);
|
|
132
|
-
}
|
|
133
|
-
isMoved() {
|
|
118
|
+
};
|
|
119
|
+
CameraUniformBlockTotem.prototype.isMoved = function () {
|
|
134
120
|
return this._isMovedParams.isMoved;
|
|
135
|
-
}
|
|
136
|
-
free() {
|
|
137
|
-
|
|
121
|
+
};
|
|
122
|
+
CameraUniformBlockTotem.prototype.free = function () {
|
|
123
|
+
var _a = this, gl = _a.gl, ubo = _a.ubo;
|
|
138
124
|
gl.deleteBuffer(ubo);
|
|
139
|
-
}
|
|
140
|
-
readBuffer() {
|
|
141
|
-
|
|
125
|
+
};
|
|
126
|
+
CameraUniformBlockTotem.prototype.readBuffer = function () {
|
|
127
|
+
var result = new Float32Array(41);
|
|
142
128
|
this.gl.bindBuffer(this.gl.UNIFORM_BUFFER, this.ubo);
|
|
143
129
|
this.gl.getBufferSubData(this.gl.UNIFORM_BUFFER, 0, result);
|
|
144
130
|
this.gl.bindBuffer(this.gl.UNIFORM_BUFFER, null);
|
|
@@ -151,10 +137,11 @@ class CameraUniformBlockTotem {
|
|
|
151
137
|
screenWH: result.slice(38, 40),
|
|
152
138
|
z_level: result[40]
|
|
153
139
|
};
|
|
154
|
-
}
|
|
155
|
-
|
|
140
|
+
};
|
|
141
|
+
return CameraUniformBlockTotem;
|
|
142
|
+
}());
|
|
156
143
|
exports.default = CameraUniformBlockTotem;
|
|
157
144
|
exports.CameraUniformBlockTotemCache = Object.freeze({
|
|
158
|
-
get: (globe)
|
|
159
|
-
release: (globe)
|
|
145
|
+
get: function (globe) { return programcache_1.globeProgramCache.getProgram(globe, CameraUniformBlockTotem); },
|
|
146
|
+
release: function (globe) { return programcache_1.globeProgramCache.releaseProgram(globe, CameraUniformBlockTotem); }
|
|
160
147
|
});
|
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CameraUniformBlockTotemCache = exports.WebglobeInfoUniformBlockString = void 0;
|
|
4
|
-
|
|
5
|
-
exports.WebglobeInfoUniformBlockString =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
vec2 mouse_radian_long_lat;
|
|
9
|
-
vec2 mouse_pixel_xy;
|
|
10
|
-
float north_angle;
|
|
11
|
-
float world_tilt;
|
|
12
|
-
float earth_distance;
|
|
13
|
-
};
|
|
14
|
-
`;
|
|
15
|
-
class CameraUniformBlockTotem {
|
|
16
|
-
constructor() {
|
|
4
|
+
var programcache_1 = require("../programcache");
|
|
5
|
+
exports.WebglobeInfoUniformBlockString = "\nlayout(std140) uniform WebglobeInfo {\n vec2 canvas_resolution;\n vec2 mouse_radian_long_lat;\n vec2 mouse_pixel_xy;\n float north_angle;\n float world_tilt;\n float earth_distance;\n}; \n";
|
|
6
|
+
var CameraUniformBlockTotem = /** @class */ (function () {
|
|
7
|
+
function CameraUniformBlockTotem() {
|
|
17
8
|
this.id = "CameraUniformBlockTotem";
|
|
18
|
-
this.description =
|
|
9
|
+
this.description = "Sets a uniform block and provides buffer for it. The following is the glsl uniform block:" + CameraUniformBlockString;
|
|
19
10
|
this.gl = null;
|
|
20
11
|
this.globe = null;
|
|
21
12
|
this.ubo = null;
|
|
22
13
|
}
|
|
23
|
-
init(globe, gl) {
|
|
14
|
+
CameraUniformBlockTotem.prototype.init = function (globe, gl) {
|
|
24
15
|
this.gl = gl;
|
|
25
16
|
this.globe = globe;
|
|
26
17
|
this.ubo = this._createUBO();
|
|
@@ -28,30 +19,30 @@ class CameraUniformBlockTotem {
|
|
|
28
19
|
this.mapWHFloat32 = new Float32Array(2);
|
|
29
20
|
this.setGeometry();
|
|
30
21
|
this.resize();
|
|
31
|
-
}
|
|
32
|
-
_createUBO() {
|
|
33
|
-
|
|
34
|
-
|
|
22
|
+
};
|
|
23
|
+
CameraUniformBlockTotem.prototype._createUBO = function () {
|
|
24
|
+
var gl = this.gl;
|
|
25
|
+
var ubo = gl.createBuffer();
|
|
35
26
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
36
27
|
gl.bufferData(gl.UNIFORM_BUFFER, 164, gl.STREAM_DRAW);
|
|
37
28
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, 0, ubo);
|
|
38
29
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
39
30
|
return ubo;
|
|
40
|
-
}
|
|
41
|
-
resize() {
|
|
42
|
-
|
|
31
|
+
};
|
|
32
|
+
CameraUniformBlockTotem.prototype.resize = function () {
|
|
33
|
+
var _a = this, gl = _a.gl, globe = _a.globe, ubo = _a.ubo;
|
|
43
34
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
44
35
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 152, new Float32Array([globe.api_ScrW(), globe.api_ScrH()]));
|
|
45
36
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
46
|
-
}
|
|
47
|
-
setGeometry() {
|
|
48
|
-
|
|
49
|
-
|
|
37
|
+
};
|
|
38
|
+
CameraUniformBlockTotem.prototype.setGeometry = function () {
|
|
39
|
+
var _a = this, gl = _a.gl, globe = _a.globe, ubo = _a.ubo;
|
|
40
|
+
var is3D = globe.api_GetCurrentGeometry() === 0;
|
|
50
41
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
51
42
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 140, new Float32Array([is3D]));
|
|
52
|
-
}
|
|
53
|
-
draw3D(projection, modelView, translate) {
|
|
54
|
-
|
|
43
|
+
};
|
|
44
|
+
CameraUniformBlockTotem.prototype.draw3D = function (projection, modelView, translate) {
|
|
45
|
+
var _a = this, gl = _a.gl, traslateFloat32 = _a.traslateFloat32, ubo = _a.ubo, mapWHFloat32 = _a.mapWHFloat32, globe = _a.globe;
|
|
55
46
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
56
47
|
{ // view, projection, translate
|
|
57
48
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 0, modelView);
|
|
@@ -65,30 +56,30 @@ class CameraUniformBlockTotem {
|
|
|
65
56
|
}
|
|
66
57
|
{ // mapWH
|
|
67
58
|
if (globe.api_GetCurrentGeometry() === 1) {
|
|
68
|
-
|
|
59
|
+
var _b = globe.api_GetCurrentWorldWH(), width = _b.width, height = _b.height;
|
|
69
60
|
mapWHFloat32.set([width, height]);
|
|
70
61
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 144, mapWHFloat32);
|
|
71
62
|
}
|
|
72
63
|
}
|
|
73
64
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
74
|
-
}
|
|
75
|
-
getUBO() {
|
|
65
|
+
};
|
|
66
|
+
CameraUniformBlockTotem.prototype.getUBO = function () {
|
|
76
67
|
return this.ubo;
|
|
77
|
-
}
|
|
78
|
-
bind(bindingPoint) {
|
|
79
|
-
|
|
68
|
+
};
|
|
69
|
+
CameraUniformBlockTotem.prototype.bind = function (bindingPoint) {
|
|
70
|
+
var _a = this, gl = _a.gl, ubo = _a.ubo;
|
|
80
71
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPoint, ubo);
|
|
81
|
-
}
|
|
82
|
-
unbind(bindingPoint) {
|
|
83
|
-
|
|
72
|
+
};
|
|
73
|
+
CameraUniformBlockTotem.prototype.unbind = function (bindingPoint) {
|
|
74
|
+
var gl = this.gl;
|
|
84
75
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPoint, null);
|
|
85
|
-
}
|
|
86
|
-
free() {
|
|
87
|
-
|
|
76
|
+
};
|
|
77
|
+
CameraUniformBlockTotem.prototype.free = function () {
|
|
78
|
+
var _a = this, gl = _a.gl, ubo = _a.ubo;
|
|
88
79
|
gl.deleteBuffer(ubo);
|
|
89
|
-
}
|
|
90
|
-
readBuffer() {
|
|
91
|
-
|
|
80
|
+
};
|
|
81
|
+
CameraUniformBlockTotem.prototype.readBuffer = function () {
|
|
82
|
+
var result = new Float32Array(41);
|
|
92
83
|
this.gl.bindBuffer(this.gl.UNIFORM_BUFFER, this.ubo);
|
|
93
84
|
this.gl.getBufferSubData(this.gl.UNIFORM_BUFFER, 0, result);
|
|
94
85
|
this.gl.bindBuffer(this.gl.UNIFORM_BUFFER, null);
|
|
@@ -101,10 +92,11 @@ class CameraUniformBlockTotem {
|
|
|
101
92
|
screenWH: result.slice(38, 40),
|
|
102
93
|
z_level: result[40]
|
|
103
94
|
};
|
|
104
|
-
}
|
|
105
|
-
|
|
95
|
+
};
|
|
96
|
+
return CameraUniformBlockTotem;
|
|
97
|
+
}());
|
|
106
98
|
exports.default = CameraUniformBlockTotem;
|
|
107
99
|
exports.CameraUniformBlockTotemCache = Object.freeze({
|
|
108
|
-
get: (globe)
|
|
109
|
-
release: (globe)
|
|
100
|
+
get: function (globe) { return programcache_1.globeProgramCache.getProgram(globe, CameraUniformBlockTotem); },
|
|
101
|
+
release: function (globe) { return programcache_1.globeProgramCache.releaseProgram(globe, CameraUniformBlockTotem); }
|
|
110
102
|
});
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CameraUniformBlockTotemCache = exports.CameraUniformBlockString = void 0;
|
|
4
|
-
|
|
4
|
+
var programcache_1 = require("../programcache");
|
|
5
5
|
// Loads mouse position to buffer
|
|
6
6
|
// TODO implement it
|
|
7
|
-
exports.CameraUniformBlockString =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
vec2 mouse_radian_long_lat;
|
|
11
|
-
}; // 11 lines
|
|
12
|
-
`;
|
|
13
|
-
class CameraUniformBlockTotem {
|
|
14
|
-
constructor() {
|
|
7
|
+
exports.CameraUniformBlockString = "\nlayout(std140) uniform GpuSelectionUniformBlock {\n vec2 mouse_pixel_position;\n vec2 mouse_radian_long_lat;\n}; // 11 lines\n";
|
|
8
|
+
var CameraUniformBlockTotem = /** @class */ (function () {
|
|
9
|
+
function CameraUniformBlockTotem() {
|
|
15
10
|
this.id = "CameraUniformBlockTotem";
|
|
16
|
-
this.description =
|
|
11
|
+
this.description = "Sets a uniform block and provides buffer for it. The following is the glsl uniform block:" + exports.CameraUniformBlockString;
|
|
17
12
|
this.gl = null;
|
|
18
13
|
this.globe = null;
|
|
19
14
|
this.ubo = null;
|
|
20
15
|
}
|
|
21
|
-
init(globe, gl) {
|
|
16
|
+
CameraUniformBlockTotem.prototype.init = function (globe, gl) {
|
|
22
17
|
this.gl = gl;
|
|
23
18
|
this.globe = globe;
|
|
24
19
|
this.ubo = this._createUBO();
|
|
@@ -26,30 +21,30 @@ class CameraUniformBlockTotem {
|
|
|
26
21
|
this.mapWHFloat32 = new Float32Array(2);
|
|
27
22
|
this.setGeometry();
|
|
28
23
|
this.resize();
|
|
29
|
-
}
|
|
30
|
-
_createUBO() {
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
};
|
|
25
|
+
CameraUniformBlockTotem.prototype._createUBO = function () {
|
|
26
|
+
var gl = this.gl;
|
|
27
|
+
var ubo = gl.createBuffer();
|
|
33
28
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
34
29
|
gl.bufferData(gl.UNIFORM_BUFFER, 164, gl.STREAM_DRAW);
|
|
35
30
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, 0, ubo);
|
|
36
31
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
37
32
|
return ubo;
|
|
38
|
-
}
|
|
39
|
-
resize() {
|
|
40
|
-
|
|
33
|
+
};
|
|
34
|
+
CameraUniformBlockTotem.prototype.resize = function () {
|
|
35
|
+
var _a = this, gl = _a.gl, globe = _a.globe, ubo = _a.ubo;
|
|
41
36
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
42
37
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 152, new Float32Array([globe.api_ScrW(), globe.api_ScrH()]));
|
|
43
38
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
44
|
-
}
|
|
45
|
-
setGeometry() {
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
};
|
|
40
|
+
CameraUniformBlockTotem.prototype.setGeometry = function () {
|
|
41
|
+
var _a = this, gl = _a.gl, globe = _a.globe, ubo = _a.ubo;
|
|
42
|
+
var is3D = globe.api_GetCurrentGeometry() === 0;
|
|
48
43
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
49
44
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 140, new Float32Array([is3D]));
|
|
50
|
-
}
|
|
51
|
-
draw3D(projection, modelView, translate) {
|
|
52
|
-
|
|
45
|
+
};
|
|
46
|
+
CameraUniformBlockTotem.prototype.draw3D = function (projection, modelView, translate) {
|
|
47
|
+
var _a = this, gl = _a.gl, traslateFloat32 = _a.traslateFloat32, ubo = _a.ubo, mapWHFloat32 = _a.mapWHFloat32, globe = _a.globe;
|
|
53
48
|
gl.bindBuffer(gl.UNIFORM_BUFFER, ubo);
|
|
54
49
|
{ // view, projection, translate
|
|
55
50
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 0, modelView);
|
|
@@ -63,30 +58,30 @@ class CameraUniformBlockTotem {
|
|
|
63
58
|
}
|
|
64
59
|
{ // mapWH
|
|
65
60
|
if (globe.api_GetCurrentGeometry() === 1) {
|
|
66
|
-
|
|
61
|
+
var _b = globe.api_GetCurrentWorldWH(), width = _b.width, height = _b.height;
|
|
67
62
|
mapWHFloat32.set([width, height]);
|
|
68
63
|
gl.bufferSubData(gl.UNIFORM_BUFFER, 144, mapWHFloat32);
|
|
69
64
|
}
|
|
70
65
|
}
|
|
71
66
|
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
72
|
-
}
|
|
73
|
-
getUBO() {
|
|
67
|
+
};
|
|
68
|
+
CameraUniformBlockTotem.prototype.getUBO = function () {
|
|
74
69
|
return this.ubo;
|
|
75
|
-
}
|
|
76
|
-
bind(bindingPoint) {
|
|
77
|
-
|
|
70
|
+
};
|
|
71
|
+
CameraUniformBlockTotem.prototype.bind = function (bindingPoint) {
|
|
72
|
+
var _a = this, gl = _a.gl, ubo = _a.ubo;
|
|
78
73
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPoint, ubo);
|
|
79
|
-
}
|
|
80
|
-
unbind(bindingPoint) {
|
|
81
|
-
|
|
74
|
+
};
|
|
75
|
+
CameraUniformBlockTotem.prototype.unbind = function (bindingPoint) {
|
|
76
|
+
var gl = this.gl;
|
|
82
77
|
gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPoint, null);
|
|
83
|
-
}
|
|
84
|
-
free() {
|
|
85
|
-
|
|
78
|
+
};
|
|
79
|
+
CameraUniformBlockTotem.prototype.free = function () {
|
|
80
|
+
var _a = this, gl = _a.gl, ubo = _a.ubo;
|
|
86
81
|
gl.deleteBuffer(ubo);
|
|
87
|
-
}
|
|
88
|
-
readBuffer() {
|
|
89
|
-
|
|
82
|
+
};
|
|
83
|
+
CameraUniformBlockTotem.prototype.readBuffer = function () {
|
|
84
|
+
var result = new Float32Array(41);
|
|
90
85
|
this.gl.bindBuffer(this.gl.UNIFORM_BUFFER, this.ubo);
|
|
91
86
|
this.gl.getBufferSubData(this.gl.UNIFORM_BUFFER, 0, result);
|
|
92
87
|
this.gl.bindBuffer(this.gl.UNIFORM_BUFFER, null);
|
|
@@ -99,10 +94,11 @@ class CameraUniformBlockTotem {
|
|
|
99
94
|
screenWH: result.slice(38, 40),
|
|
100
95
|
z_level: result[40]
|
|
101
96
|
};
|
|
102
|
-
}
|
|
103
|
-
|
|
97
|
+
};
|
|
98
|
+
return CameraUniformBlockTotem;
|
|
99
|
+
}());
|
|
104
100
|
exports.default = CameraUniformBlockTotem;
|
|
105
101
|
exports.CameraUniformBlockTotemCache = Object.freeze({
|
|
106
|
-
get: (globe)
|
|
107
|
-
release: (globe)
|
|
102
|
+
get: function (globe) { return programcache_1.globeProgramCache.getProgram(globe, CameraUniformBlockTotem); },
|
|
103
|
+
release: function (globe) { return programcache_1.globeProgramCache.releaseProgram(globe, CameraUniformBlockTotem); }
|
|
108
104
|
});
|
package/programs/totems/index.js
CHANGED
|
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.CameraUniformBlockTotemCache = exports.CameraUniformBlockString = exports.CameraUniformBlockTotem = void 0;
|
|
37
|
-
|
|
37
|
+
var camerauniformblock_1 = __importStar(require("./camerauniformblock"));
|
|
38
38
|
exports.CameraUniformBlockTotem = camerauniformblock_1.default;
|
|
39
39
|
Object.defineProperty(exports, "CameraUniformBlockString", { enumerable: true, get: function () { return camerauniformblock_1.CameraUniformBlockString; } });
|
|
40
40
|
Object.defineProperty(exports, "CameraUniformBlockTotemCache", { enumerable: true, get: function () { return camerauniformblock_1.CameraUniformBlockTotemCache; } });
|