@pirireis/webglobeplugins 0.9.12 → 0.9.13
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 +1 -3
- package/Math/arc.js +29 -32
- package/Math/bounds/line-bbox.js +1 -3
- package/Math/constants.js +1 -6
- package/Math/frustum/types.js +1 -2
- package/Math/juction/arc-plane.js +32 -35
- package/Math/juction/line-sphere.js +9 -12
- package/Math/juction/plane-plane.js +15 -18
- package/Math/line.js +30 -33
- package/Math/methods.js +6 -24
- package/Math/plane.js +22 -25
- package/Math/quaternion.js +6 -9
- package/Math/types.js +1 -2
- package/Math/utils.js +2 -4
- package/Math/vec3.js +5 -8
- package/algorithms/search-binary.js +1 -4
- package/altitude-locator/draw-subset-obj.js +1 -3
- package/altitude-locator/plugin.js +34 -37
- package/altitude-locator/types.js +1 -3
- package/arrowfield/adaptor.js +1 -4
- package/arrowfield/index.js +3 -10
- package/arrowfield/plugin.js +3 -6
- package/bearing-line/index.js +2 -8
- package/bearing-line/plugin.js +62 -66
- package/circle-line-chain/chain-list-map.js +1 -5
- package/circle-line-chain/plugin.js +46 -50
- package/circle-line-chain/util.js +1 -5
- package/compass-rose/compass-rose-padding-flat.js +12 -16
- package/compass-rose/compass-text-writer.js +3 -7
- package/compass-rose/index.js +3 -7
- package/compassrose/compassrose.js +6 -9
- package/compassrose/index.js +2 -8
- package/heatwave/index.js +3 -10
- package/heatwave/isobar/objectarraylabels.js +7 -9
- package/heatwave/isobar/plugin.js +14 -54
- package/heatwave/isobar/quadtreecontours.js +2 -4
- package/heatwave/plugins/heatwaveglobeshell.js +9 -12
- package/index.js +12 -58
- package/package.json +1 -1
- package/partialrings/buffer-manager.js +2 -8
- package/partialrings/index.js +2 -41
- package/partialrings/plugin.js +13 -20
- package/partialrings/program.js +23 -30
- package/pin/pin-object-array.js +8 -13
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +3 -6
- package/point-heat-map/plugin-webworker.js +11 -14
- package/point-heat-map/point-to-heat-map-flow.js +9 -12
- package/point-tracks/key-methods.js +1 -4
- package/point-tracks/plugin.js +15 -19
- package/programs/arrowfield/index.js +2 -7
- package/programs/arrowfield/logic.js +7 -10
- package/programs/arrowfield/object.js +7 -13
- package/programs/data2legend/density-to-legend.js +6 -9
- package/programs/data2legend/point-to-density-texture.js +13 -16
- package/programs/float2legendwithratio/index.js +2 -8
- package/programs/float2legendwithratio/logic.js +3 -6
- package/programs/float2legendwithratio/object.js +5 -11
- package/programs/globe-util/is-globe-moved.js +3 -5
- package/programs/globeshell/index.js +2 -8
- package/programs/globeshell/wiggle/index.js +2 -8
- package/programs/globeshell/wiggle/logic.js +3 -6
- package/programs/globeshell/wiggle/object.js +5 -11
- package/programs/helpers/blender/program.js +3 -6
- package/programs/helpers/fadeaway/index.js +2 -7
- package/programs/helpers/fadeaway/logic.js +3 -6
- package/programs/helpers/fadeaway/object.js +5 -11
- package/programs/helpers/index.js +2 -8
- package/programs/index.js +9 -58
- package/programs/line-on-globe/angled-line.js +19 -22
- package/programs/line-on-globe/circle-accurate-3d.js +21 -24
- package/programs/line-on-globe/circle-accurate-flat.js +18 -24
- package/programs/line-on-globe/circle-accurate.js +27 -30
- package/programs/line-on-globe/circle.js +26 -29
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +23 -26
- package/programs/line-on-globe/lines-color-instanced-flat.js +20 -24
- package/programs/line-on-globe/linestrip.js +28 -31
- package/programs/line-on-globe/naive-accurate-flexible.js +29 -32
- package/programs/line-on-globe/to-the-surface.js +15 -17
- package/programs/line-on-globe/util.js +1 -4
- package/programs/picking/pickable-renderer.js +25 -28
- package/programs/point-on-globe/element-globe-surface-glow.js +22 -25
- package/programs/point-on-globe/element-point-glow.js +26 -29
- package/programs/point-on-globe/square-pixel-point.js +13 -16
- package/programs/programcache.js +1 -6
- package/programs/rings/distancering/circleflatprogram.js +20 -56
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +21 -58
- package/programs/rings/distancering/circlepaddysharedbuffer.js +1 -4
- package/programs/rings/distancering/index.js +5 -14
- package/programs/rings/distancering/paddyflatprogram.js +21 -57
- package/programs/rings/distancering/paddyflatprogram2d.js +21 -57
- package/programs/rings/distancering/paddyflatprogram3d.js +21 -57
- package/programs/rings/index.js +1 -17
- package/programs/rings/partial-ring/piece-of-pie.js +23 -25
- package/programs/totems/camerauniformblock.js +7 -11
- package/programs/totems/canvas-webglobe-info.js +6 -10
- package/programs/totems/gpu-selection-uniform-block.js +7 -11
- package/programs/totems/index.js +2 -40
- package/programs/two-d/pixel-padding-for-compass.js +10 -13
- package/programs/util.js +1 -3
- package/programs/vectorfields/index.js +3 -23
- package/programs/vectorfields/logics/drawrectangleparticles.js +9 -12
- package/programs/vectorfields/logics/index.js +4 -12
- package/programs/vectorfields/logics/pixelbased.js +10 -13
- package/programs/vectorfields/logics/ubo.js +1 -7
- package/programs/vectorfields/pingpongbuffermanager.js +1 -4
- package/rangerings/enum.js +2 -5
- package/rangerings/index.js +5 -15
- package/rangerings/plugin.js +61 -68
- package/rangerings/rangeringangletext.js +26 -29
- package/rangerings/ring-account.js +1 -6
- package/shaders/fragment-toy/firework.js +1 -4
- package/shaders/fragment-toy/singularity.js +1 -4
- package/timetracks/adaptors-line-strip.js +3 -9
- package/timetracks/adaptors.js +3 -8
- package/timetracks/index.js +5 -19
- package/timetracks/plugin-line-strip.js +6 -12
- package/timetracks/plugin.js +6 -12
- package/timetracks/program-line-strip.js +9 -12
- package/timetracks/program.js +10 -13
- package/timetracks/programpoint-line-strip.js +6 -9
- package/timetracks/programpoint.js +6 -9
- package/util/account/bufferoffsetmanager.js +1 -4
- package/util/account/index.js +3 -23
- package/util/account/single-attribute-buffer-management/buffer-manager.js +1 -5
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +1 -5
- package/util/account/single-attribute-buffer-management/index.js +4 -9
- package/util/account/single-attribute-buffer-management/object-store.js +1 -5
- package/util/account/single-attribute-buffer-management/types.js +1 -2
- package/util/account/util.js +1 -5
- package/util/algorithms/search-binary.js +1 -4
- package/util/check/get.js +1 -5
- package/util/check/typecheck.js +7 -16
- package/util/geometry/index.js +1 -7
- package/util/gl-util/buffer/attribute-loader.js +2 -6
- package/util/gl-util/buffer/index.js +2 -5
- package/util/gl-util/draw-options/methods.js +2 -6
- package/util/gl-util/uniform-block/manager.js +2 -5
- package/util/heatwavedatamanager/datamanager.js +1 -4
- package/util/heatwavedatamanager/index.js +3 -10
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +3 -9
- package/util/heatwavedatamanager/pointcoordsmeta.js +1 -4
- package/util/index.js +13 -57
- package/util/interpolation/timetrack/index.js +1 -4
- package/util/interpolation/timetrack/timetrack-interpolator.js +6 -10
- package/util/interpolation/timetrack/web-worker-str.js +1 -4
- package/util/interpolation/timetrack/web-worker.js +2 -4
- package/util/jshelpers/data-filler.js +1 -4
- package/util/jshelpers/equality.js +1 -3
- package/util/jshelpers/index.js +2 -37
- package/util/jshelpers/timefilters.js +1 -3
- package/util/picking/fence.js +1 -4
- package/util/picking/picker-displayer.js +6 -9
- package/util/programs/draw-texture-on-canvas.js +6 -9
- package/util/programs/index.js +1 -17
- package/util/programs/shapesonglobe.js +9 -13
- package/util/programs/supersampletotextures.js +3 -7
- package/util/programs/texturetoglobe.js +8 -11
- package/util/shaderfunctions/geometrytransformations.js +24 -31
- package/util/shaderfunctions/index.js +2 -18
- package/util/shaderfunctions/nodata.js +1 -4
- package/util/shaderfunctions/noisefunctions.js +1 -3
- package/util/webglobe/gldefaultstates.js +1 -4
- package/util/webglobe/index.js +2 -18
- package/util/webglobe/rasteroverlay.js +1 -4
- package/util/webglobjectbuilders.js +16 -34
- package/util/webglobjectbuilders1.js +16 -34
- package/waveparticles/adaptor.js +1 -3
- package/waveparticles/index.js +3 -10
- package/waveparticles/plugin.js +9 -12
- package/wind/imagetovectorfieldandmagnitude.js +1 -4
- package/wind/index.js +5 -14
- package/wind/plugin.js +6 -45
- package/wind/vectorfieldimage.js +1 -3
- package/write-text/attached-text-writer.js +6 -10
- package/write-text/context-text.js +4 -8
- package/write-text/context-text3.js +7 -11
- package/write-text/index.js +1 -5
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const geometrytransformations_1 = require("../../../util/shaderfunctions/geometrytransformations");
|
|
1
|
+
import { createProgram, shaderfunctions } from "../../../util";
|
|
2
|
+
import { CameraUniformBlockTotem, CameraUniformBlockString } from "../../totems";
|
|
3
|
+
import { noRegisterGlobeProgramCache, globeProgramCache } from "../../programcache";
|
|
4
|
+
import { POLE, PI, longLatRadToMercator, mercatorXYToGLPosition, longLatRadToCartesian3D, circleLimpFromLongLatRadCenterCartesian3D_accurate, circleLimpFromLongLatRadCenterMercatorCompass_accurate,
|
|
5
|
+
//circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate,
|
|
6
|
+
cartesian3DToGLPosition } from "../../../util/shaderfunctions/geometrytransformations";
|
|
8
7
|
/**
|
|
9
8
|
* TODO:
|
|
10
9
|
* 1. Triangle face looks at screen. if rotation angle is positive the last vertex must be the faintest.
|
|
@@ -17,14 +16,14 @@ const drawModeMap = Object.freeze({
|
|
|
17
16
|
//${ circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate }
|
|
18
17
|
const vertexShaderSource = `#version 300 es
|
|
19
18
|
|
|
20
|
-
${
|
|
21
|
-
${
|
|
22
|
-
${
|
|
23
|
-
${
|
|
24
|
-
${
|
|
25
|
-
${
|
|
26
|
-
${
|
|
27
|
-
${
|
|
19
|
+
${CameraUniformBlockString}
|
|
20
|
+
${PI}
|
|
21
|
+
${longLatRadToMercator}
|
|
22
|
+
${mercatorXYToGLPosition}
|
|
23
|
+
${longLatRadToCartesian3D}
|
|
24
|
+
${circleLimpFromLongLatRadCenterCartesian3D_accurate}
|
|
25
|
+
${circleLimpFromLongLatRadCenterMercatorCompass_accurate}
|
|
26
|
+
${cartesian3DToGLPosition}
|
|
28
27
|
|
|
29
28
|
uniform float edge_count;
|
|
30
29
|
uniform int draw_mode; // %2 => 0: LINE_STRIP, 1: TRIANGLE_FAN
|
|
@@ -105,7 +104,7 @@ void main() {
|
|
|
105
104
|
|
|
106
105
|
gl_PointSize = 10.0;
|
|
107
106
|
}`;
|
|
108
|
-
const fragmentShaderSource = `#version 300 es` +
|
|
107
|
+
const fragmentShaderSource = `#version 300 es` + POLE + PI + `
|
|
109
108
|
precision highp float;
|
|
110
109
|
// flat in int vid;
|
|
111
110
|
in vec4 v_color;
|
|
@@ -120,15 +119,15 @@ void main() {
|
|
|
120
119
|
if ( v_pos.x < -POLE || v_pos.x > POLE || v_pos.y < -POLE || v_pos.y > POLE ) { discard; }
|
|
121
120
|
outColor = v_color;
|
|
122
121
|
}`;
|
|
123
|
-
|
|
124
|
-
class Logic {
|
|
122
|
+
export const ITEM_SIZE = 10;
|
|
123
|
+
export class Logic {
|
|
125
124
|
constructor(globe) {
|
|
126
125
|
this.globe = globe;
|
|
127
126
|
this.gl = globe.gl;
|
|
128
127
|
this._lastMode = 0;
|
|
129
128
|
this._lastEdgeCount = 64;
|
|
130
129
|
this._lastAlphaMultiplier = 1.0;
|
|
131
|
-
this.program =
|
|
130
|
+
this.program = createProgram(this.gl, vertexShaderSource, fragmentShaderSource);
|
|
132
131
|
const { gl, program } = this;
|
|
133
132
|
{ // set attributes locations
|
|
134
133
|
gl.bindAttribLocation(program, 0, 'center2d');
|
|
@@ -153,7 +152,7 @@ class Logic {
|
|
|
153
152
|
gl.uniform1f(this._edgeCountLocation, this._lastEdgeCount);
|
|
154
153
|
gl.uniform1f(this._plugin_alpha_multiplierLocation, 1.0);
|
|
155
154
|
this.cameraBlockBindingPoint = 0;
|
|
156
|
-
this.cameraBlockTotem =
|
|
155
|
+
this.cameraBlockTotem = globeProgramCache.getProgram(globe, CameraUniformBlockTotem);
|
|
157
156
|
const cameraBlockIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
|
|
158
157
|
gl.uniformBlockBinding(program, cameraBlockIndex, this.cameraBlockBindingPoint);
|
|
159
158
|
gl.useProgram(currentProgram);
|
|
@@ -184,7 +183,7 @@ class Logic {
|
|
|
184
183
|
// gl.enable(gl.DEPTH_TEST);
|
|
185
184
|
}
|
|
186
185
|
free() {
|
|
187
|
-
|
|
186
|
+
noRegisterGlobeProgramCache.releaseProgram(this.globe, CameraUniformBlockTotem);
|
|
188
187
|
this.gl.deleteProgram(this.program);
|
|
189
188
|
this.program = null;
|
|
190
189
|
}
|
|
@@ -268,8 +267,7 @@ class Logic {
|
|
|
268
267
|
return vao;
|
|
269
268
|
}
|
|
270
269
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
release: (globe) => programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic)
|
|
270
|
+
export const PieceOfPieProgramCache = Object.freeze({
|
|
271
|
+
get: (globe) => noRegisterGlobeProgramCache.getProgram(globe, Logic),
|
|
272
|
+
release: (globe) => noRegisterGlobeProgramCache.releaseProgram(globe, Logic)
|
|
275
273
|
});
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CameraUniformBlockTotemCache = exports.CameraUniformBlockString = void 0;
|
|
4
|
-
const programcache_1 = require("../programcache");
|
|
1
|
+
import { globeProgramCache } from "../programcache";
|
|
5
2
|
// import { getFrustumPlanes } from "../../Math/frustum/from-projection-matrix";
|
|
6
3
|
// import { getFrustum } from "../../Math/frustum/from-globeinfo"
|
|
7
4
|
// import { Plane } from "../../Math/";
|
|
8
|
-
|
|
5
|
+
export const CameraUniformBlockString = `
|
|
9
6
|
layout(std140) uniform CameraUniformBlock {
|
|
10
7
|
mat4 view; // 64 bytes 0
|
|
11
8
|
mat4 projection; // 64 bytes 64
|
|
@@ -21,10 +18,10 @@ layout(std140) uniform CameraUniformBlock {
|
|
|
21
18
|
}; // 14 lines
|
|
22
19
|
`;
|
|
23
20
|
const Radian = Math.PI / 180.0;
|
|
24
|
-
class CameraUniformBlockTotem {
|
|
21
|
+
export default class CameraUniformBlockTotem {
|
|
25
22
|
constructor() {
|
|
26
23
|
this.id = "CameraUniformBlockTotem";
|
|
27
|
-
this.description = `Sets a uniform block and provides buffer for it. The following is the glsl uniform block:` +
|
|
24
|
+
this.description = `Sets a uniform block and provides buffer for it. The following is the glsl uniform block:` + CameraUniformBlockString;
|
|
28
25
|
this.gl = null;
|
|
29
26
|
this.globe = null;
|
|
30
27
|
this.ubo = null;
|
|
@@ -153,8 +150,7 @@ class CameraUniformBlockTotem {
|
|
|
153
150
|
};
|
|
154
151
|
}
|
|
155
152
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
release: (globe) => { return programcache_1.globeProgramCache.releaseProgram(globe, CameraUniformBlockTotem); }
|
|
153
|
+
export const CameraUniformBlockTotemCache = Object.freeze({
|
|
154
|
+
get: (globe) => { return globeProgramCache.getProgram(globe, CameraUniformBlockTotem); },
|
|
155
|
+
release: (globe) => { return globeProgramCache.releaseProgram(globe, CameraUniformBlockTotem); }
|
|
160
156
|
});
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.CameraUniformBlockTotemCache = exports.WebglobeInfoUniformBlockString = void 0;
|
|
4
|
-
const programcache_1 = require("../programcache");
|
|
5
|
-
exports.WebglobeInfoUniformBlockString = `
|
|
1
|
+
import { globeProgramCache } from "../programcache";
|
|
2
|
+
export const WebglobeInfoUniformBlockString = `
|
|
6
3
|
layout(std140) uniform WebglobeInfo {
|
|
7
4
|
vec2 canvas_resolution;
|
|
8
5
|
vec2 mouse_radian_long_lat;
|
|
@@ -12,7 +9,7 @@ layout(std140) uniform WebglobeInfo {
|
|
|
12
9
|
float earth_distance;
|
|
13
10
|
};
|
|
14
11
|
`;
|
|
15
|
-
class CameraUniformBlockTotem {
|
|
12
|
+
export default class CameraUniformBlockTotem {
|
|
16
13
|
constructor() {
|
|
17
14
|
this.id = "CameraUniformBlockTotem";
|
|
18
15
|
this.description = `Sets a uniform block and provides buffer for it. The following is the glsl uniform block:` + CameraUniformBlockString;
|
|
@@ -103,8 +100,7 @@ class CameraUniformBlockTotem {
|
|
|
103
100
|
};
|
|
104
101
|
}
|
|
105
102
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
release: (globe) => { return programcache_1.globeProgramCache.releaseProgram(globe, CameraUniformBlockTotem); }
|
|
103
|
+
export const CameraUniformBlockTotemCache = Object.freeze({
|
|
104
|
+
get: (globe) => { return globeProgramCache.getProgram(globe, CameraUniformBlockTotem); },
|
|
105
|
+
release: (globe) => { return globeProgramCache.releaseProgram(globe, CameraUniformBlockTotem); }
|
|
110
106
|
});
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CameraUniformBlockTotemCache = exports.CameraUniformBlockString = void 0;
|
|
4
|
-
const programcache_1 = require("../programcache");
|
|
1
|
+
import { globeProgramCache } from "../programcache";
|
|
5
2
|
// Loads mouse position to buffer
|
|
6
3
|
// TODO implement it
|
|
7
|
-
|
|
4
|
+
export const CameraUniformBlockString = `
|
|
8
5
|
layout(std140) uniform GpuSelectionUniformBlock {
|
|
9
6
|
vec2 mouse_pixel_position;
|
|
10
7
|
vec2 mouse_radian_long_lat;
|
|
11
8
|
}; // 11 lines
|
|
12
9
|
`;
|
|
13
|
-
class CameraUniformBlockTotem {
|
|
10
|
+
export default class CameraUniformBlockTotem {
|
|
14
11
|
constructor() {
|
|
15
12
|
this.id = "CameraUniformBlockTotem";
|
|
16
|
-
this.description = `Sets a uniform block and provides buffer for it. The following is the glsl uniform block:` +
|
|
13
|
+
this.description = `Sets a uniform block and provides buffer for it. The following is the glsl uniform block:` + CameraUniformBlockString;
|
|
17
14
|
this.gl = null;
|
|
18
15
|
this.globe = null;
|
|
19
16
|
this.ubo = null;
|
|
@@ -101,8 +98,7 @@ class CameraUniformBlockTotem {
|
|
|
101
98
|
};
|
|
102
99
|
}
|
|
103
100
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
release: (globe) => { return programcache_1.globeProgramCache.releaseProgram(globe, CameraUniformBlockTotem); }
|
|
101
|
+
export const CameraUniformBlockTotemCache = Object.freeze({
|
|
102
|
+
get: (globe) => { return globeProgramCache.getProgram(globe, CameraUniformBlockTotem); },
|
|
103
|
+
release: (globe) => { return globeProgramCache.releaseProgram(globe, CameraUniformBlockTotem); }
|
|
108
104
|
});
|
package/programs/totems/index.js
CHANGED
|
@@ -1,40 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.CameraUniformBlockTotemCache = exports.CameraUniformBlockString = exports.CameraUniformBlockTotem = void 0;
|
|
37
|
-
const camerauniformblock_1 = __importStar(require("./camerauniformblock"));
|
|
38
|
-
exports.CameraUniformBlockTotem = camerauniformblock_1.default;
|
|
39
|
-
Object.defineProperty(exports, "CameraUniformBlockString", { enumerable: true, get: function () { return camerauniformblock_1.CameraUniformBlockString; } });
|
|
40
|
-
Object.defineProperty(exports, "CameraUniformBlockTotemCache", { enumerable: true, get: function () { return camerauniformblock_1.CameraUniformBlockTotemCache; } });
|
|
1
|
+
import CameraUniformBlockTotem, { CameraUniformBlockString, CameraUniformBlockTotemCache } from "./camerauniformblock";
|
|
2
|
+
export { CameraUniformBlockTotem, CameraUniformBlockString, CameraUniformBlockTotemCache };
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const util_1 = require("../../util");
|
|
5
|
-
const totems_1 = require("../totems");
|
|
6
|
-
const programcache_1 = require("../programcache");
|
|
1
|
+
import { createProgram } from "../../util";
|
|
2
|
+
import { CameraUniformBlockTotemCache, CameraUniformBlockString } from "../totems";
|
|
3
|
+
import { noRegisterGlobeProgramCache } from "../programcache";
|
|
7
4
|
const vertexCount = 720;
|
|
8
5
|
const vertexShaderSource = `#version 300 es
|
|
9
|
-
${
|
|
6
|
+
${CameraUniformBlockString}
|
|
10
7
|
|
|
11
8
|
in vec2 screen_coordinate;
|
|
12
9
|
in float pixel_radius_small_ratio;
|
|
@@ -74,7 +71,7 @@ class Logic {
|
|
|
74
71
|
this.globe = globe;
|
|
75
72
|
this.gl = globe.gl;
|
|
76
73
|
this._lastOpacity = 1;
|
|
77
|
-
this.program =
|
|
74
|
+
this.program = createProgram(this.gl, vertexShaderSource, fragmentShaderSource);
|
|
78
75
|
const { gl, program } = this;
|
|
79
76
|
{ // assign attribute locations
|
|
80
77
|
// in vec2 screen_coordinate;
|
|
@@ -96,7 +93,7 @@ class Logic {
|
|
|
96
93
|
{
|
|
97
94
|
this.cameraBlockBindingPoint = 0;
|
|
98
95
|
const cameraBlockIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
|
|
99
|
-
this.cameraBlockTotem =
|
|
96
|
+
this.cameraBlockTotem = CameraUniformBlockTotemCache.get(globe);
|
|
100
97
|
gl.uniformBlockBinding(program, cameraBlockIndex, this.cameraBlockBindingPoint);
|
|
101
98
|
}
|
|
102
99
|
}
|
|
@@ -153,10 +150,10 @@ class Logic {
|
|
|
153
150
|
}
|
|
154
151
|
free() {
|
|
155
152
|
const { globe } = this;
|
|
156
|
-
|
|
153
|
+
CameraUniformBlockTotemCache.release(globe);
|
|
157
154
|
}
|
|
158
155
|
}
|
|
159
|
-
|
|
160
|
-
get: (globe) =>
|
|
161
|
-
release: (globe) =>
|
|
156
|
+
export const PixelPaddingForFlatCompassCache = Object.freeze({
|
|
157
|
+
get: (globe) => noRegisterGlobeProgramCache.getProgram(globe, Logic),
|
|
158
|
+
release: (globe) => noRegisterGlobeProgramCache.releaseProgram(globe, Logic)
|
|
162
159
|
});
|
package/programs/util.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.longlatbbox2normalbbox = longlatbbox2normalbbox;
|
|
4
1
|
function longlatbbox2normalbbox({ minLon = -180, maxLon = 180, minLat = -90, maxLat = 90 } = {}) {
|
|
5
2
|
// x
|
|
6
3
|
const horOffset = (minLon) * Math.PI / 180;
|
|
@@ -15,3 +12,4 @@ function longlatbbox2normalbbox({ minLon = -180, maxLon = 180, minLat = -90, max
|
|
|
15
12
|
console.log("longlatbbox2normalbbox", result);
|
|
16
13
|
return result;
|
|
17
14
|
}
|
|
15
|
+
export { longlatbbox2normalbbox };
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.PingPongBufferManager = void 0;
|
|
21
|
-
const pingpongbuffermanager_1 = __importDefault(require("./pingpongbuffermanager"));
|
|
22
|
-
exports.PingPongBufferManager = pingpongbuffermanager_1.default;
|
|
23
|
-
__exportStar(require("./logics"), exports);
|
|
1
|
+
import PingPongBufferManager from './pingpongbuffermanager';
|
|
2
|
+
export * from './logics';
|
|
3
|
+
export { PingPongBufferManager };
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const ubo_js_1 = require("./ubo.js");
|
|
5
|
-
const programcache_1 = require("../../programcache");
|
|
1
|
+
import { createProgram } from "../../../util";
|
|
2
|
+
import { UBO_BINDING_POINT, shaderUboSource } from "./ubo.js";
|
|
3
|
+
import { glProgramCache } from "../../programcache";
|
|
6
4
|
/**
|
|
7
5
|
* [+] ubo
|
|
8
6
|
*/
|
|
9
7
|
const vertexShaderSource = `#version 300 es
|
|
10
8
|
precision highp float;
|
|
11
|
-
` +
|
|
9
|
+
` + shaderUboSource + `
|
|
12
10
|
uniform sampler2D u_vector_field;
|
|
13
11
|
in vec2 in_position;
|
|
14
12
|
out vec3 base_color;
|
|
@@ -60,10 +58,10 @@ class Logic {
|
|
|
60
58
|
}
|
|
61
59
|
_createProgram() {
|
|
62
60
|
const gl = this.gl;
|
|
63
|
-
const program =
|
|
61
|
+
const program = createProgram(gl, vertexShaderSource, fragmentShaderSource);
|
|
64
62
|
// ubo point
|
|
65
63
|
const ubo_location = gl.getUniformBlockIndex(program, 'UBO');
|
|
66
|
-
gl.uniformBlockBinding(program, ubo_location,
|
|
64
|
+
gl.uniformBlockBinding(program, ubo_location, UBO_BINDING_POINT);
|
|
67
65
|
return [program, gl.getUniformLocation(program, 'u_vector_field')];
|
|
68
66
|
}
|
|
69
67
|
/**
|
|
@@ -90,18 +88,17 @@ class Logic {
|
|
|
90
88
|
this.program = null;
|
|
91
89
|
}
|
|
92
90
|
}
|
|
93
|
-
class
|
|
91
|
+
export default class {
|
|
94
92
|
constructor(gl) {
|
|
95
93
|
this.gl = gl;
|
|
96
|
-
this.logic =
|
|
94
|
+
this.logic = glProgramCache.getProgram(gl, Logic);
|
|
97
95
|
}
|
|
98
96
|
draw(bufferManager, vectorTexture, uboManager) {
|
|
99
97
|
this.logic.draw(bufferManager, vectorTexture, uboManager);
|
|
100
98
|
}
|
|
101
99
|
free() {
|
|
102
|
-
|
|
100
|
+
glProgramCache.releaseProgram(this.gl, Logic);
|
|
103
101
|
this.logic = null;
|
|
104
102
|
this.gl = null;
|
|
105
103
|
}
|
|
106
104
|
}
|
|
107
|
-
exports.default = default_1;
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.WaveParticalUboManager = exports.DrawRectangleParticles = exports.PixelBasedMove = void 0;
|
|
7
|
-
const pixelbased_1 = __importDefault(require("./pixelbased"));
|
|
8
|
-
exports.PixelBasedMove = pixelbased_1.default;
|
|
9
|
-
const drawrectangleparticles_1 = __importDefault(require("./drawrectangleparticles"));
|
|
10
|
-
exports.DrawRectangleParticles = drawrectangleparticles_1.default;
|
|
11
|
-
const ubo_1 = require("./ubo");
|
|
12
|
-
Object.defineProperty(exports, "WaveParticalUboManager", { enumerable: true, get: function () { return ubo_1.WaveParticalUboManager; } });
|
|
1
|
+
import PixelBasedMove from './pixelbased';
|
|
2
|
+
import DrawRectangleParticles from './drawrectangleparticles';
|
|
3
|
+
import { WaveParticalUboManager } from './ubo';
|
|
4
|
+
export { PixelBasedMove, DrawRectangleParticles, WaveParticalUboManager };
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const ubo_js_1 = require("./ubo.js");
|
|
5
|
-
const programcache_1 = require("../../programcache");
|
|
1
|
+
import { createShader } from "../../../util";
|
|
2
|
+
import { UBO_SIZE, UBO_BINDING_POINT, shaderUboSource } from "./ubo.js";
|
|
3
|
+
import { glProgramCache } from "../../programcache";
|
|
6
4
|
// program output is buffer
|
|
7
5
|
// TODO: Mechanism for randomness
|
|
8
6
|
// drop out mechanism
|
|
9
7
|
// random particle position mechanism
|
|
10
8
|
const vertexShaderSource = `#version 300 es
|
|
11
|
-
` +
|
|
9
|
+
` + shaderUboSource + `
|
|
12
10
|
|
|
13
11
|
uniform sampler2D vector_field;
|
|
14
12
|
in vec2 in_position;
|
|
@@ -99,8 +97,8 @@ class Logic {
|
|
|
99
97
|
// -- private methods
|
|
100
98
|
_createProgram() {
|
|
101
99
|
const gl = this.gl;
|
|
102
|
-
const vertexShader =
|
|
103
|
-
const fragmentShader =
|
|
100
|
+
const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexShaderSource);
|
|
101
|
+
const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSource);
|
|
104
102
|
const program = gl.createProgram();
|
|
105
103
|
gl.attachShader(program, vertexShader);
|
|
106
104
|
gl.attachShader(program, fragmentShader);
|
|
@@ -110,7 +108,7 @@ class Logic {
|
|
|
110
108
|
throw new Error(gl.getProgramParameter(program));
|
|
111
109
|
}
|
|
112
110
|
const ubo_location = gl.getUniformBlockIndex(program, 'UBO');
|
|
113
|
-
gl.uniformBlockBinding(program, ubo_location,
|
|
111
|
+
gl.uniformBlockBinding(program, ubo_location, UBO_BINDING_POINT);
|
|
114
112
|
return [program, gl.getUniformLocation(program, 'vector_field')];
|
|
115
113
|
;
|
|
116
114
|
}
|
|
@@ -122,16 +120,16 @@ class Logic {
|
|
|
122
120
|
return this.gl.getAttribLocation(this.program, 'in_position');
|
|
123
121
|
}
|
|
124
122
|
}
|
|
125
|
-
class
|
|
123
|
+
export default class {
|
|
126
124
|
constructor(gl) {
|
|
127
125
|
this.gl = gl;
|
|
128
|
-
this.logic =
|
|
126
|
+
this.logic = glProgramCache.getProgram(gl, Logic);
|
|
129
127
|
}
|
|
130
128
|
move(bufferManager, vectorTexture, uboManager) {
|
|
131
129
|
this.logic.move(bufferManager, vectorTexture, uboManager);
|
|
132
130
|
}
|
|
133
131
|
free() {
|
|
134
|
-
|
|
132
|
+
glProgramCache.releaseProgram(this.gl, Logic);
|
|
135
133
|
this.program = null;
|
|
136
134
|
this.gl = null;
|
|
137
135
|
}
|
|
@@ -139,4 +137,3 @@ class default_1 {
|
|
|
139
137
|
return this.logic.getInPositionLocation();
|
|
140
138
|
}
|
|
141
139
|
}
|
|
142
|
-
exports.default = default_1;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.shaderUboSource = exports.UBO_BINDING_POINT = exports.UBO_SIZE = exports.WaveParticalUboManager = void 0;
|
|
4
1
|
const UBO_BINDING_POINT = 0;
|
|
5
|
-
exports.UBO_BINDING_POINT = UBO_BINDING_POINT;
|
|
6
2
|
const INITIAL_UBO_DATA = new Float32Array([93.17, 0.2, 1.0, 7.0, 1.0, 1.0, 1.0, 0.05, 2000, 2000]);
|
|
7
3
|
const shaderUboSource = `
|
|
8
4
|
layout(std140) uniform UBO {
|
|
@@ -13,9 +9,7 @@ layout(std140) uniform UBO {
|
|
|
13
9
|
float drop_rate;
|
|
14
10
|
vec2 draw_texture_size;
|
|
15
11
|
};`;
|
|
16
|
-
exports.shaderUboSource = shaderUboSource;
|
|
17
12
|
const UBO_SIZE = 40;
|
|
18
|
-
exports.UBO_SIZE = UBO_SIZE;
|
|
19
13
|
class WaveParticalUboManager {
|
|
20
14
|
constructor(gl) {
|
|
21
15
|
this.gl = gl;
|
|
@@ -60,4 +54,4 @@ class WaveParticalUboManager {
|
|
|
60
54
|
gl.deleteBuffer(_buffer);
|
|
61
55
|
}
|
|
62
56
|
}
|
|
63
|
-
|
|
57
|
+
export { WaveParticalUboManager, UBO_SIZE, UBO_BINDING_POINT, shaderUboSource };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Manages PingPong Buffers.
|
|
4
3
|
* Updated positions are written to the target buffer.
|
|
@@ -6,8 +5,7 @@
|
|
|
6
5
|
*
|
|
7
6
|
* update coords and draw particles programs will use this class.
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
class default_1 {
|
|
8
|
+
export default class {
|
|
11
9
|
constructor(gl, particleCount, inPositionLocation = 0) {
|
|
12
10
|
this.gl = gl;
|
|
13
11
|
this._inPositionLocation = inPositionLocation;
|
|
@@ -65,7 +63,6 @@ class default_1 {
|
|
|
65
63
|
this.gl.deleteVertexArray(this._vaos[1]);
|
|
66
64
|
}
|
|
67
65
|
}
|
|
68
|
-
exports.default = default_1;
|
|
69
66
|
function randomNumbers(count) {
|
|
70
67
|
const result = new Float32Array(count);
|
|
71
68
|
const random = Math.random;
|
package/rangerings/enum.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
Object.
|
|
3
|
-
exports.ENUM_TEXT_HIDE = exports.ENUM_HIDE = void 0;
|
|
4
|
-
exports.ENUM_HIDE = Object.freeze({ SHOW: 0, HIDE: 1, HIDE_1_DEGREE_PADDINGS: 2 });
|
|
5
|
-
exports.ENUM_TEXT_HIDE = Object.freeze({ SHOW: 0, HIDE: 1 });
|
|
1
|
+
export const ENUM_HIDE = Object.freeze({ SHOW: 0, HIDE: 1, HIDE_1_DEGREE_PADDINGS: 2 });
|
|
2
|
+
export const ENUM_TEXT_HIDE = Object.freeze({ SHOW: 0, HIDE: 1 });
|
package/rangerings/index.js
CHANGED
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
exports.ringKeyMethod = exports.RangeRingAngleText = exports.ENUM_TEXT_HIDE = exports.ENUM_HIDE = exports.RangeRings = void 0;
|
|
7
|
-
const plugin_1 = require("./plugin");
|
|
8
|
-
Object.defineProperty(exports, "RangeRings", { enumerable: true, get: function () { return plugin_1.RangeRings; } });
|
|
9
|
-
const ring_account_1 = require("./ring-account");
|
|
10
|
-
Object.defineProperty(exports, "ringKeyMethod", { enumerable: true, get: function () { return ring_account_1.ringKeyMethod; } });
|
|
11
|
-
const rangeringangletext_1 = __importDefault(require("./rangeringangletext"));
|
|
12
|
-
exports.RangeRingAngleText = rangeringangletext_1.default;
|
|
13
|
-
const enum_1 = require("./enum");
|
|
14
|
-
Object.defineProperty(exports, "ENUM_HIDE", { enumerable: true, get: function () { return enum_1.ENUM_HIDE; } });
|
|
15
|
-
Object.defineProperty(exports, "ENUM_TEXT_HIDE", { enumerable: true, get: function () { return enum_1.ENUM_TEXT_HIDE; } });
|
|
1
|
+
import { RangeRings } from "./plugin";
|
|
2
|
+
import { ringKeyMethod } from "./ring-account";
|
|
3
|
+
import RangeRingAngleText from './rangeringangletext';
|
|
4
|
+
import { ENUM_HIDE, ENUM_TEXT_HIDE } from './enum';
|
|
5
|
+
export { RangeRings, ENUM_HIDE, ENUM_TEXT_HIDE, RangeRingAngleText, ringKeyMethod };
|