@pirireis/webglobeplugins 0.9.12 → 0.9.14
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,15 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const logic_1 = __importDefault(require("./logic"));
|
|
7
|
-
const programcache_1 = require("../programcache");
|
|
1
|
+
import Float2LegentWithRatioProgram from './logic';
|
|
2
|
+
import { glProgramCache } from '../programcache';
|
|
8
3
|
// Uniform Buffer Objects use this
|
|
9
|
-
class DataObject {
|
|
4
|
+
export default class DataObject {
|
|
10
5
|
constructor(gl, { width = 1, height = 1, texture0 = null, texture1 = null, colorRampTexture = null, colorRampRange = null, escapeValue = 99999, blendRatio = 0.0, minMaxEdges = null, } = {}) {
|
|
11
6
|
this.gl = gl;
|
|
12
|
-
this.programlogic =
|
|
7
|
+
this.programlogic = glProgramCache.getProgram(gl, Float2LegentWithRatioProgram);
|
|
13
8
|
this.heatParametersBlockManager = this.programlogic.getUniformBlockManager();
|
|
14
9
|
this.width = width;
|
|
15
10
|
this.height = height;
|
|
@@ -103,8 +98,7 @@ class DataObject {
|
|
|
103
98
|
gl.deleteTexture(texture0);
|
|
104
99
|
gl.deleteTexture(texture1);
|
|
105
100
|
gl.deleteTexture(colorRampTexture);
|
|
106
|
-
|
|
101
|
+
glProgramCache.releaseProgram(this.gl, Float2LegentWithRatioProgram);
|
|
107
102
|
this.heatParametersBlockManager.free();
|
|
108
103
|
}
|
|
109
104
|
}
|
|
110
|
-
exports.default = DataObject;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const programcache_1 = require("../programcache");
|
|
1
|
+
import { noRegisterGlobeProgramCache } from "../programcache";
|
|
4
2
|
class IsGlobeMoved {
|
|
5
3
|
constructor(globe) {
|
|
6
4
|
this.globe = globe;
|
|
@@ -16,6 +14,6 @@ class IsGlobeMoved {
|
|
|
16
14
|
}
|
|
17
15
|
}
|
|
18
16
|
const IsGlobeMovedCache = Object.freeze({
|
|
19
|
-
get: (globe) =>
|
|
20
|
-
release: (globe) =>
|
|
17
|
+
get: (globe) => noRegisterGlobeProgramCache.getProgram(globe, IsGlobeMoved),
|
|
18
|
+
release: (globe) => noRegisterGlobeProgramCache.releaseProgram(globe, IsGlobeMoved)
|
|
21
19
|
});
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GlobeShellWiggle = void 0;
|
|
7
|
-
const wiggle_1 = __importDefault(require("./globeshell/wiggle"));
|
|
8
|
-
exports.GlobeShellWiggle = wiggle_1.default;
|
|
1
|
+
import GlobeShellWiggle from "./globeshell/wiggle";
|
|
2
|
+
export { GlobeShellWiggle };
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GlobeShellWiggle = void 0;
|
|
7
|
-
const object_1 = __importDefault(require("./object"));
|
|
8
|
-
exports.GlobeShellWiggle = object_1.default;
|
|
1
|
+
import GlobeShellWiggle from './object';
|
|
2
|
+
export { GlobeShellWiggle };
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const util_1 = require("../../../util");
|
|
4
|
-
class Logic {
|
|
1
|
+
import { createProgram } from '../../../util';
|
|
2
|
+
export default class Logic {
|
|
5
3
|
constructor() {
|
|
6
4
|
this.id = "GlobeShellProgram";
|
|
7
5
|
this.description = "This program implements flyweight pattern for globe." +
|
|
@@ -121,7 +119,7 @@ class Logic {
|
|
|
121
119
|
outColor.a *= v_opacity;
|
|
122
120
|
}`;
|
|
123
121
|
const gl = this.gl;
|
|
124
|
-
const program =
|
|
122
|
+
const program = createProgram(gl, vertexShader, fragmentShader);
|
|
125
123
|
const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
126
124
|
gl.useProgram(program);
|
|
127
125
|
this.shellBlockBindingPoint = 0;
|
|
@@ -288,7 +286,6 @@ class Logic {
|
|
|
288
286
|
return { _vao };
|
|
289
287
|
}
|
|
290
288
|
}
|
|
291
|
-
exports.default = Logic;
|
|
292
289
|
class ShellBlockManager {
|
|
293
290
|
constructor(gl) {
|
|
294
291
|
this.gl = gl;
|
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const programcache_1 = require("../../programcache");
|
|
7
|
-
const logic_1 = __importDefault(require("./logic"));
|
|
8
|
-
class GlobeShell {
|
|
1
|
+
import { globeProgramCache } from '../../programcache';
|
|
2
|
+
import GlobeShellProgram from './logic';
|
|
3
|
+
export default class GlobeShell {
|
|
9
4
|
constructor(gl, globe, { minLon = -180, maxLon = 180, minLat = -90, maxLat = 90, height = 0, u_opacity = 1, wiggleInKM = 0, wiggleSpeed = 0,
|
|
10
5
|
// eastWestTied, Not implemented yet
|
|
11
6
|
} = {}) {
|
|
12
7
|
this.gl = gl;
|
|
13
8
|
this.globe = globe;
|
|
14
|
-
this.program =
|
|
9
|
+
this.program = globeProgramCache.getProgram(globe, GlobeShellProgram);
|
|
15
10
|
this.shellBlockManager = this.program.getShellBlockBufferManager();
|
|
16
11
|
this.update = this.shellBlockManager.update.bind(this.shellBlockManager);
|
|
17
12
|
this.innerTime = 0;
|
|
@@ -65,8 +60,7 @@ class GlobeShell {
|
|
|
65
60
|
}
|
|
66
61
|
}
|
|
67
62
|
free() {
|
|
68
|
-
|
|
63
|
+
globeProgramCache.releaseProgram(this.globe, GlobeShellProgram);
|
|
69
64
|
this.shellBlockManager.free();
|
|
70
65
|
}
|
|
71
66
|
}
|
|
72
|
-
exports.default = GlobeShell;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const util_1 = require("../util");
|
|
1
|
+
import { createProgram } from "../util";
|
|
4
2
|
/**
|
|
5
3
|
* Blends two float32textures with given ratio.
|
|
6
4
|
*/
|
|
@@ -24,14 +22,14 @@ void main() {
|
|
|
24
22
|
outColor = mix(color0, color1, u_ratio);
|
|
25
23
|
}
|
|
26
24
|
`;
|
|
27
|
-
class BlenderProgram {
|
|
25
|
+
export default class BlenderProgram {
|
|
28
26
|
constructor(gl) {
|
|
29
27
|
this.gl = gl;
|
|
30
28
|
this.programWrapper = this._createProgramWrapper();
|
|
31
29
|
}
|
|
32
30
|
_craeteProgramWrapper() {
|
|
33
31
|
const gl = this.gl;
|
|
34
|
-
const program =
|
|
32
|
+
const program = createProgram(gl, vertexShader, fragmentShader);
|
|
35
33
|
this.vao = gl.createVertexArray();
|
|
36
34
|
gl.bindVertexArray(this.vao);
|
|
37
35
|
this._buffer = gl.createBuffer();
|
|
@@ -76,4 +74,3 @@ class BlenderProgram {
|
|
|
76
74
|
return texture;
|
|
77
75
|
}
|
|
78
76
|
}
|
|
79
|
-
exports.default = BlenderProgram;
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const object_1 = __importDefault(require("./object"));
|
|
7
|
-
exports.default = object_1.default;
|
|
1
|
+
import FadeAway from './object';
|
|
2
|
+
export default FadeAway;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const util_1 = require("../../../util");
|
|
1
|
+
import { createProgram } from "../../../util";
|
|
4
2
|
const vertexShaderSource = `#version 300 es
|
|
5
3
|
precision highp float;
|
|
6
4
|
in vec2 a_position;
|
|
@@ -26,10 +24,10 @@ void main() {
|
|
|
26
24
|
outColor = vec4(color.rgb, color.a * opacity);
|
|
27
25
|
}
|
|
28
26
|
`;
|
|
29
|
-
class FadeAwayProgram {
|
|
27
|
+
export default class FadeAwayProgram {
|
|
30
28
|
constructor(gl) {
|
|
31
29
|
this.gl = gl;
|
|
32
|
-
this.program =
|
|
30
|
+
this.program = createProgram(gl, vertexShaderSource, fragmentShaderSource);
|
|
33
31
|
this.vao = gl.createVertexArray();
|
|
34
32
|
gl.bindVertexArray(this.vao);
|
|
35
33
|
this._buffer = gl.createBuffer();
|
|
@@ -69,4 +67,3 @@ class FadeAwayProgram {
|
|
|
69
67
|
gl.deleteBuffer(_buffer);
|
|
70
68
|
}
|
|
71
69
|
}
|
|
72
|
-
exports.default = FadeAwayProgram;
|
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const programcache_1 = require("../../programcache");
|
|
7
|
-
const logic_1 = __importDefault(require("./logic"));
|
|
8
|
-
class FadeAway {
|
|
1
|
+
import { glProgramCache } from "../../programcache";
|
|
2
|
+
import FadeAwayProgram from "./logic";
|
|
3
|
+
export default class FadeAway {
|
|
9
4
|
constructor(gl) {
|
|
10
5
|
this.gl = gl;
|
|
11
|
-
this.program =
|
|
6
|
+
this.program = glProgramCache.getProgram(gl, FadeAwayProgram);
|
|
12
7
|
}
|
|
13
8
|
draw(sourceTexture, opacity) {
|
|
14
9
|
this.program.draw(sourceTexture, opacity);
|
|
15
10
|
}
|
|
16
11
|
free() {
|
|
17
|
-
|
|
12
|
+
glProgramCache.releaseProgram(FadeAwayProgram);
|
|
18
13
|
}
|
|
19
14
|
}
|
|
20
|
-
exports.default = FadeAway;
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.FadeAway = void 0;
|
|
7
|
-
const fadeaway_1 = __importDefault(require("./fadeaway"));
|
|
8
|
-
exports.FadeAway = fadeaway_1.default;
|
|
1
|
+
import FadeAway from './fadeaway';
|
|
2
|
+
export { FadeAway };
|
package/programs/index.js
CHANGED
|
@@ -1,58 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.rings = exports.FadeAway = exports.vectorfield = exports.noRegisterGlobeProgramCache = exports.globeProgramCache = exports.glProgramCache = exports.CameraUniformBlockString = exports.CameraUniformBlockTotem = exports.ArrowField = exports.GlobeShellWiggle = exports.Float2LegendWithRatio = void 0;
|
|
40
|
-
const float2legendwithratio_1 = require("./float2legendwithratio");
|
|
41
|
-
Object.defineProperty(exports, "Float2LegendWithRatio", { enumerable: true, get: function () { return float2legendwithratio_1.Float2LegendWithRatio; } });
|
|
42
|
-
const wiggle_1 = require("./globeshell/wiggle");
|
|
43
|
-
Object.defineProperty(exports, "GlobeShellWiggle", { enumerable: true, get: function () { return wiggle_1.GlobeShellWiggle; } });
|
|
44
|
-
const index_1 = require("./totems/index");
|
|
45
|
-
Object.defineProperty(exports, "CameraUniformBlockTotem", { enumerable: true, get: function () { return index_1.CameraUniformBlockTotem; } });
|
|
46
|
-
Object.defineProperty(exports, "CameraUniformBlockString", { enumerable: true, get: function () { return index_1.CameraUniformBlockString; } });
|
|
47
|
-
const arrowfield_1 = __importDefault(require("./arrowfield"));
|
|
48
|
-
exports.ArrowField = arrowfield_1.default;
|
|
49
|
-
const programcache_1 = require("./programcache");
|
|
50
|
-
Object.defineProperty(exports, "glProgramCache", { enumerable: true, get: function () { return programcache_1.glProgramCache; } });
|
|
51
|
-
Object.defineProperty(exports, "globeProgramCache", { enumerable: true, get: function () { return programcache_1.globeProgramCache; } });
|
|
52
|
-
Object.defineProperty(exports, "noRegisterGlobeProgramCache", { enumerable: true, get: function () { return programcache_1.noRegisterGlobeProgramCache; } });
|
|
53
|
-
const vectorfield = __importStar(require("./vectorfields"));
|
|
54
|
-
exports.vectorfield = vectorfield;
|
|
55
|
-
const helpers_1 = require("./helpers");
|
|
56
|
-
Object.defineProperty(exports, "FadeAway", { enumerable: true, get: function () { return helpers_1.FadeAway; } });
|
|
57
|
-
const rings = __importStar(require("./rings"));
|
|
58
|
-
exports.rings = rings;
|
|
1
|
+
import { Float2LegendWithRatio } from "./float2legendwithratio";
|
|
2
|
+
import { GlobeShellWiggle } from "./globeshell/wiggle";
|
|
3
|
+
import { CameraUniformBlockTotem, CameraUniformBlockString } from "./totems/index";
|
|
4
|
+
import ArrowField from "./arrowfield";
|
|
5
|
+
import { glProgramCache, globeProgramCache, noRegisterGlobeProgramCache } from "./programcache";
|
|
6
|
+
import * as vectorfield from "./vectorfields";
|
|
7
|
+
import { FadeAway } from "./helpers";
|
|
8
|
+
import * as rings from "./rings";
|
|
9
|
+
export { Float2LegendWithRatio, GlobeShellWiggle, ArrowField, CameraUniformBlockTotem, CameraUniformBlockString, glProgramCache, globeProgramCache, noRegisterGlobeProgramCache, vectorfield, FadeAway, rings };
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// angle radius, rgba, dashRatio, rgbaMode
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const geometrytransformations_1 = require("../../util/shaderfunctions/geometrytransformations");
|
|
8
|
-
const programcache_1 = require("../programcache");
|
|
2
|
+
import { createProgram } from "../../util";
|
|
3
|
+
import { CameraUniformBlockTotemCache, CameraUniformBlockString } from "../totems";
|
|
4
|
+
import { longLatRadToMercator, longLatRadToCartesian3D, cartesian3DToGLPosition, mercatorXYToGLPosition, circleLimpFromLongLatRadCenterCartesian3D, circleLimpFromLongLatRadCenterMercatorCompass, circleLimpFromLongLatRadCenterMercatorRealDistance, POLE } from "../../util/shaderfunctions/geometrytransformations";
|
|
5
|
+
import { noRegisterGlobeProgramCache } from "../programcache";
|
|
9
6
|
const EDGE_COUNT_ON_SPHERE = 50;
|
|
10
7
|
const vertexShaderSource = `#version 300 es
|
|
11
8
|
precision highp float;
|
|
12
9
|
|
|
13
|
-
${
|
|
14
|
-
${
|
|
15
|
-
${
|
|
16
|
-
${
|
|
17
|
-
${
|
|
18
|
-
${
|
|
19
|
-
${
|
|
20
|
-
${
|
|
10
|
+
${CameraUniformBlockString}
|
|
11
|
+
${longLatRadToMercator}
|
|
12
|
+
${longLatRadToCartesian3D}
|
|
13
|
+
${cartesian3DToGLPosition}
|
|
14
|
+
${mercatorXYToGLPosition}
|
|
15
|
+
${circleLimpFromLongLatRadCenterCartesian3D}
|
|
16
|
+
${circleLimpFromLongLatRadCenterMercatorCompass}
|
|
17
|
+
${circleLimpFromLongLatRadCenterMercatorRealDistance}
|
|
21
18
|
|
|
22
19
|
in vec2 center_point;
|
|
23
20
|
in float angle;
|
|
@@ -51,7 +48,7 @@ void main() {
|
|
|
51
48
|
v_dash_ratio = dash_ratio;
|
|
52
49
|
}`;
|
|
53
50
|
const fragmentShaderSource = `#version 300 es
|
|
54
|
-
${
|
|
51
|
+
${POLE}
|
|
55
52
|
precision highp float;
|
|
56
53
|
|
|
57
54
|
uniform float opacity;
|
|
@@ -73,7 +70,7 @@ class Logic {
|
|
|
73
70
|
constructor(globe) {
|
|
74
71
|
this.globe = globe;
|
|
75
72
|
this.gl = globe.gl;
|
|
76
|
-
this.program =
|
|
73
|
+
this.program = createProgram(this.gl, vertexShaderSource, fragmentShaderSource);
|
|
77
74
|
this._lastOpacity = 1;
|
|
78
75
|
const { gl, program } = this;
|
|
79
76
|
{ // assign attribute locations
|
|
@@ -93,7 +90,7 @@ class Logic {
|
|
|
93
90
|
}
|
|
94
91
|
this.cameraBlockBindingPoint = 0;
|
|
95
92
|
const cameraBlockIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
|
|
96
|
-
this.cameraBlockTotem =
|
|
93
|
+
this.cameraBlockTotem = CameraUniformBlockTotemCache.get(globe);
|
|
97
94
|
gl.uniformBlockBinding(program, cameraBlockIndex, this.cameraBlockBindingPoint);
|
|
98
95
|
}
|
|
99
96
|
draw(vao, length, opacity) {
|
|
@@ -164,13 +161,13 @@ class Logic {
|
|
|
164
161
|
free() {
|
|
165
162
|
if (this.isFreed)
|
|
166
163
|
return;
|
|
167
|
-
|
|
164
|
+
CameraUniformBlockTotemCache.release(this.globe);
|
|
168
165
|
this.cameraBlockTotem = null;
|
|
169
166
|
this.gl.deleteProgram(this.program);
|
|
170
167
|
this.isFreed = true;
|
|
171
168
|
}
|
|
172
169
|
}
|
|
173
|
-
|
|
174
|
-
get: (globe) => { return
|
|
175
|
-
release: (globe) => { return
|
|
170
|
+
export const AngledLineProgramCache = Object.freeze({
|
|
171
|
+
get: (globe) => { return noRegisterGlobeProgramCache.getProgram(globe, Logic); },
|
|
172
|
+
release: (globe) => { return noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
|
|
176
173
|
});
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const webglobjectbuilders_1 = require("../../util/webglobjectbuilders");
|
|
5
|
-
const camerauniformblock_1 = require("../totems/camerauniformblock");
|
|
6
|
-
const programcache_1 = require("../programcache");
|
|
1
|
+
import { createProgram } from "../../util/webglobjectbuilders";
|
|
2
|
+
import { CameraUniformBlockString, CameraUniformBlockTotemCache } from "../totems/camerauniformblock";
|
|
3
|
+
import { noRegisterGlobeProgramCache } from "../programcache";
|
|
7
4
|
// import { vaoAttributeLoader } from "../../util/account/util";
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
import { attributeLoader } from "../../util/gl-util/buffer/attribute-loader";
|
|
6
|
+
import { cartesian3DToGLPosition, circleLimpFromLongLatRadCenterCartesian3D_accurate, circleOnSphere, POLE, PI } from "../../util/shaderfunctions/geometrytransformations";
|
|
10
7
|
/**
|
|
11
8
|
* TODO:
|
|
12
9
|
* 1. integrate geometry functions for radius angle and center
|
|
@@ -19,10 +16,10 @@ const EDGE_COUNT_ON_SPHERE = 360;
|
|
|
19
16
|
//${circleLimpFromLongLatRadCenterCartesian3D_accurate}
|
|
20
17
|
const vertexShaderSource = `#version 300 es
|
|
21
18
|
precision highp float;
|
|
22
|
-
${
|
|
23
|
-
${
|
|
24
|
-
${
|
|
25
|
-
${
|
|
19
|
+
${PI}
|
|
20
|
+
${CameraUniformBlockString}
|
|
21
|
+
${cartesian3DToGLPosition}
|
|
22
|
+
${circleOnSphere}
|
|
26
23
|
|
|
27
24
|
uniform float edge_count;
|
|
28
25
|
|
|
@@ -52,7 +49,7 @@ void main() {
|
|
|
52
49
|
gl_PointSize = 3.0;
|
|
53
50
|
}`;
|
|
54
51
|
const fragmentShaderSource = `#version 300 es
|
|
55
|
-
${
|
|
52
|
+
${POLE}
|
|
56
53
|
precision highp float;
|
|
57
54
|
uniform float opacity;
|
|
58
55
|
in vec4 v_color;
|
|
@@ -75,7 +72,7 @@ class Logic {
|
|
|
75
72
|
this.globe = globe;
|
|
76
73
|
this.gl = globe.gl;
|
|
77
74
|
this._lastOpacity = 1.0;
|
|
78
|
-
this.program =
|
|
75
|
+
this.program = createProgram(this.gl, vertexShaderSource, fragmentShaderSource);
|
|
79
76
|
const { gl, program } = this;
|
|
80
77
|
this.program.uniforms = {
|
|
81
78
|
opacity: gl.getUniformLocation(program, "opacity")
|
|
@@ -94,7 +91,7 @@ class Logic {
|
|
|
94
91
|
gl.bindAttribLocation(program, 4, "dash_opacity");
|
|
95
92
|
}
|
|
96
93
|
this.cameraBindingPoint = 0;
|
|
97
|
-
this.cameraBlockTotem =
|
|
94
|
+
this.cameraBlockTotem = CameraUniformBlockTotemCache.get(globe);
|
|
98
95
|
const cameraBlockLocation = gl.getUniformBlockIndex(program, "CameraUniformBlock");
|
|
99
96
|
gl.uniformBlockBinding(program, cameraBlockLocation, this.cameraBindingPoint);
|
|
100
97
|
}
|
|
@@ -103,12 +100,12 @@ class Logic {
|
|
|
103
100
|
const vao = gl.createVertexArray();
|
|
104
101
|
const divisor = 1;
|
|
105
102
|
gl.bindVertexArray(vao);
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
attributeLoader(gl, center3dObj, 0, 3, { divisor });
|
|
104
|
+
attributeLoader(gl, target3dObj, 1, 3, { divisor });
|
|
108
105
|
// attributeLoader(gl, radiusObj, 1, 1, { divisor });
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
106
|
+
attributeLoader(gl, colorObj, 2, 4, { divisor });
|
|
107
|
+
attributeLoader(gl, dashRatioObj, 3, 1, { divisor });
|
|
108
|
+
attributeLoader(gl, dashOpacityObj, 4, 1, { divisor });
|
|
112
109
|
gl.bindVertexArray(null);
|
|
113
110
|
gl.bindVertexArray(null);
|
|
114
111
|
return vao;
|
|
@@ -130,12 +127,12 @@ class Logic {
|
|
|
130
127
|
free() {
|
|
131
128
|
if (this.isFreed)
|
|
132
129
|
return;
|
|
133
|
-
|
|
130
|
+
CameraUniformBlockTotemCache.release(this.globe);
|
|
134
131
|
this.gl.deleteProgram(this.program);
|
|
135
132
|
this.isFreed = true;
|
|
136
133
|
}
|
|
137
134
|
}
|
|
138
|
-
|
|
139
|
-
get: (globe) =>
|
|
140
|
-
release: (globe) =>
|
|
135
|
+
export const CircleCache = Object.freeze({
|
|
136
|
+
get: (globe) => noRegisterGlobeProgramCache.getProgram(globe, Logic),
|
|
137
|
+
release: (globe) => noRegisterGlobeProgramCache.releaseProgram(globe, Logic)
|
|
141
138
|
});
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const webglobjectbuilders_1 = require("../../util/webglobjectbuilders");
|
|
7
|
-
const camerauniformblock_1 = require("../totems/camerauniformblock");
|
|
8
|
-
const programcache_1 = require("../programcache");
|
|
9
|
-
const util_1 = require("../../util/account/util");
|
|
10
|
-
const geometrytransformations_1 = require("../../util/shaderfunctions/geometrytransformations");
|
|
1
|
+
import { createProgram } from "../../util/webglobjectbuilders";
|
|
2
|
+
import { CameraUniformBlockString, CameraUniformBlockTotemCache } from "../totems/camerauniformblock";
|
|
3
|
+
import { noRegisterGlobeProgramCache } from "../programcache";
|
|
4
|
+
import { vaoAttributeLoader } from "../../util/account/util";
|
|
5
|
+
import { mercatorXYToGLPosition, POLE } from "../../util/shaderfunctions/geometrytransformations";
|
|
11
6
|
const Pole = 20037508.34;
|
|
12
7
|
/**
|
|
13
8
|
* Warning:
|
|
@@ -17,15 +12,14 @@ const Pole = 20037508.34;
|
|
|
17
12
|
* Plus 1 for returning to the start point. 1 for cutting the circle into pieces.
|
|
18
13
|
*/
|
|
19
14
|
const EDGE_COUNT = 62;
|
|
20
|
-
exports.EDGE_COUNT = EDGE_COUNT;
|
|
21
15
|
const ESCAPE_VALUE = 200000000;
|
|
22
16
|
const vertexShaderSource = `#version 300 es
|
|
23
17
|
precision highp float;
|
|
24
18
|
|
|
25
19
|
# define escape_value ${ESCAPE_VALUE}.0
|
|
26
20
|
|
|
27
|
-
${
|
|
28
|
-
${
|
|
21
|
+
${CameraUniformBlockString}
|
|
22
|
+
${mercatorXYToGLPosition}
|
|
29
23
|
|
|
30
24
|
uniform int edge_count;
|
|
31
25
|
|
|
@@ -60,7 +54,7 @@ void main() {
|
|
|
60
54
|
|
|
61
55
|
}`;
|
|
62
56
|
const fragmentShaderSource = `#version 300 es
|
|
63
|
-
${
|
|
57
|
+
${POLE}
|
|
64
58
|
precision highp float;
|
|
65
59
|
uniform float opacity;
|
|
66
60
|
in vec4 v_color;
|
|
@@ -89,7 +83,7 @@ class Logic {
|
|
|
89
83
|
this._lastOpacity = 1.0;
|
|
90
84
|
this._lastMercatorMode = 0;
|
|
91
85
|
this._lastEdgeCount = EDGE_COUNT;
|
|
92
|
-
this.program =
|
|
86
|
+
this.program = createProgram(this.gl, vertexShaderSource, fragmentShaderSource);
|
|
93
87
|
const { gl, program } = this;
|
|
94
88
|
this.program.uniforms = {
|
|
95
89
|
opacity: gl.getUniformLocation(program, "opacity"),
|
|
@@ -109,7 +103,7 @@ class Logic {
|
|
|
109
103
|
gl.bindAttribLocation(program, 2, "dash_ratio");
|
|
110
104
|
gl.bindAttribLocation(program, 3, "dash_opacity");
|
|
111
105
|
this.cameraBindingPoint = 0;
|
|
112
|
-
this.cameraBlockTotem =
|
|
106
|
+
this.cameraBlockTotem = CameraUniformBlockTotemCache.get(globe);
|
|
113
107
|
const cameraBlockLocation = gl.getUniformBlockIndex(program, "CameraUniformBlock");
|
|
114
108
|
gl.uniformBlockBinding(program, cameraBlockLocation, this.cameraBindingPoint);
|
|
115
109
|
}
|
|
@@ -119,19 +113,19 @@ class Logic {
|
|
|
119
113
|
gl.bindVertexArray(vao);
|
|
120
114
|
{ // make this a function end import from account module.
|
|
121
115
|
const { buffer, stride = 0, offset = 0 } = centerObj;
|
|
122
|
-
|
|
116
|
+
vaoAttributeLoader(gl, buffer, 0, 2, stride, offset, null);
|
|
123
117
|
}
|
|
124
118
|
{
|
|
125
119
|
const { buffer, stride = 0, offset = 0 } = colorObj;
|
|
126
|
-
|
|
120
|
+
vaoAttributeLoader(gl, buffer, 1, 4, stride, offset, null);
|
|
127
121
|
}
|
|
128
122
|
{
|
|
129
123
|
const { buffer, stride = 0, offset = 0 } = dashRatioObj;
|
|
130
|
-
|
|
124
|
+
vaoAttributeLoader(gl, buffer, 2, 1, stride, offset, null);
|
|
131
125
|
}
|
|
132
126
|
{
|
|
133
127
|
const { buffer, stride = 0, offset = 0 } = dashOpacityObj;
|
|
134
|
-
|
|
128
|
+
vaoAttributeLoader(gl, buffer, 3, 1, stride, offset, null);
|
|
135
129
|
}
|
|
136
130
|
gl.bindVertexArray(null);
|
|
137
131
|
gl.bindVertexArray(null);
|
|
@@ -158,16 +152,15 @@ class Logic {
|
|
|
158
152
|
free() {
|
|
159
153
|
if (this.isFreed)
|
|
160
154
|
return;
|
|
161
|
-
|
|
155
|
+
CameraUniformBlockTotemCache.release(this.globe);
|
|
162
156
|
this.gl.deleteProgram(this.program);
|
|
163
157
|
this.isFreed = true;
|
|
164
158
|
}
|
|
165
159
|
}
|
|
166
160
|
const CircleCache = Object.freeze({
|
|
167
|
-
get: (globe) =>
|
|
168
|
-
release: (globe) =>
|
|
161
|
+
get: (globe) => noRegisterGlobeProgramCache.getProgram(globe, Logic),
|
|
162
|
+
release: (globe) => noRegisterGlobeProgramCache.releaseProgram(globe, Logic)
|
|
169
163
|
});
|
|
170
|
-
exports.CircleCache = CircleCache;
|
|
171
164
|
function centerCoords2dflatDataCreator(globe, centerLong, centerLat, targetLong, targetLat, { startAngleOfCircle = null, edgeCount = EDGE_COUNT, radiusOffset = 0 } = {}) {
|
|
172
165
|
const centerCoords2dflat = new Float32Array(edgeCount * 2);
|
|
173
166
|
const radius2d = globe.Math.GetDist2D(centerLong, centerLat, targetLong, targetLat) + radiusOffset;
|
|
@@ -214,3 +207,4 @@ function centerCoords2dflatDataCreatorWithRadius(globe, centerLong, centerLat, r
|
|
|
214
207
|
function manhattanDistance(x1, y1, x2, y2) {
|
|
215
208
|
return Math.max(Math.abs(x1 - x2), Math.abs(y1 - y2));
|
|
216
209
|
}
|
|
210
|
+
export { CircleCache, EDGE_COUNT, centerCoords2dflatDataCreator, centerCoords2dflatDataCreatorWithRadius };
|