@pirireis/webglobeplugins 0.9.9 → 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 +15 -0
- package/Math/arc.js +65 -0
- package/Math/bounds/line-bbox.js +190 -0
- package/Math/constants.js +9 -0
- package/Math/frustum/camera.js +24 -0
- package/Math/frustum/from-globeinfo.js +48 -0
- package/Math/frustum/types.js +2 -0
- package/Math/globe-util/horizon-plane.js +112 -0
- package/Math/index.js +1 -0
- package/Math/juction/arc-plane.js +83 -0
- package/Math/juction/line-sphere.js +25 -0
- package/Math/juction/plane-plane.js +58 -0
- package/Math/line.js +58 -0
- package/Math/matrix4.js +1 -0
- package/Math/methods.js +206 -0
- package/Math/plane.js +62 -0
- package/Math/quaternion.js +108 -0
- package/Math/types.js +2 -0
- package/Math/utils.js +4 -0
- package/Math/vec3.js +129 -0
- package/algorithms/search-binary.js +19 -0
- package/altitude-locator/adaptors.js +1 -0
- package/altitude-locator/draw-subset-obj.js +19 -0
- package/altitude-locator/keymethod.js +1 -0
- package/altitude-locator/plugin.js +357 -0
- package/altitude-locator/types.js +23 -0
- package/arrowfield/adaptor.js +15 -0
- package/arrowfield/index.js +10 -0
- package/arrowfield/plugin.js +89 -0
- package/bearing-line/index.js +8 -0
- package/bearing-line/plugin.js +474 -0
- package/circle-line-chain/chain-list-map.js +211 -0
- package/circle-line-chain/init.js +1 -0
- package/circle-line-chain/plugin.js +449 -0
- package/circle-line-chain/util.js +5 -0
- package/compass-rose/compass-rose-padding-flat.js +247 -0
- package/compass-rose/compass-text-writer.js +161 -0
- package/compass-rose/index.js +7 -0
- package/compassrose/compassrose.js +300 -0
- package/compassrose/index.js +8 -0
- package/globe-types.js +1 -0
- package/heatwave/index.js +10 -0
- package/heatwave/isobar/objectarraylabels.js +206 -0
- package/heatwave/isobar/plugin.js +362 -0
- package/heatwave/isobar/quadtreecontours.js +316 -0
- package/heatwave/plugins/heatwaveglobeshell.js +224 -0
- package/index.js +11 -11
- package/jest.config.js +7 -0
- package/package.json +4 -4
- package/partialrings/buffer-manager.js +113 -0
- package/partialrings/index.js +41 -0
- package/partialrings/plugin.js +171 -0
- package/partialrings/program.js +197 -0
- package/pin/pin-object-array.js +308 -0
- package/pin/pin-point-totem.js +61 -0
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +66 -0
- package/point-heat-map/index.js +1 -0
- package/point-heat-map/plugin-webworker.js +131 -0
- package/point-heat-map/point-to-heat-map-flow.js +129 -0
- package/point-tracks/key-methods.js +5 -0
- package/point-tracks/plugin.js +353 -0
- package/programs/arrowfield/index.js +7 -0
- package/programs/arrowfield/logic.js +149 -0
- package/programs/arrowfield/object.js +68 -0
- package/programs/data2legend/density-to-legend.js +77 -0
- package/programs/data2legend/point-to-density-texture.js +75 -0
- package/programs/float2legendwithratio/index.js +8 -0
- package/programs/float2legendwithratio/logic.js +125 -0
- package/programs/float2legendwithratio/object.js +113 -0
- package/programs/globe-util/is-globe-moved.js +22 -0
- package/programs/globeshell/index.js +8 -0
- package/programs/globeshell/noise/noises.js +1 -0
- package/programs/globeshell/wiggle/index.js +8 -0
- package/programs/globeshell/wiggle/logic.js +252 -0
- package/programs/globeshell/wiggle/object.js +74 -0
- package/programs/helpers/blender/index.js +1 -0
- package/programs/helpers/blender/program.js +62 -0
- package/programs/helpers/fadeaway/index.js +7 -0
- package/programs/helpers/fadeaway/logic.js +50 -0
- package/programs/helpers/fadeaway/object.js +21 -0
- package/programs/helpers/index.js +8 -0
- package/programs/index.js +58 -0
- package/programs/interface.js +1 -0
- package/programs/line-on-globe/angled-line.js +117 -0
- package/programs/line-on-globe/circle-accurate-3d.js +91 -0
- package/programs/line-on-globe/circle-accurate-flat.js +158 -0
- package/programs/line-on-globe/circle-accurate.js +108 -0
- package/programs/line-on-globe/circle.js +102 -0
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +109 -0
- package/programs/line-on-globe/index.js +1 -0
- package/programs/line-on-globe/lines-color-instanced-flat.js +91 -0
- package/programs/line-on-globe/linestrip.js +110 -0
- package/programs/line-on-globe/naive-accurate-flexible.js +125 -0
- package/programs/line-on-globe/to-the-surface.js +82 -0
- package/programs/line-on-globe/util.js +8 -0
- package/programs/picking/pickable-renderer.js +104 -0
- package/programs/point-on-globe/element-globe-surface-glow.js +102 -0
- package/programs/point-on-globe/element-point-glow.js +85 -0
- package/programs/point-on-globe/square-pixel-point.js +125 -0
- package/programs/programcache.js +131 -0
- package/programs/rings/distancering/circleflatprogram.js +114 -0
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +358 -0
- package/programs/rings/distancering/circlepaddysharedbuffer.js +433 -0
- package/programs/rings/distancering/index.js +14 -0
- package/programs/rings/distancering/paddyflatprogram.js +119 -0
- package/programs/rings/distancering/paddyflatprogram2d.js +121 -0
- package/programs/rings/distancering/paddyflatprogram3d.js +119 -0
- package/programs/rings/distancering/shader.js +1 -0
- package/programs/rings/index.js +17 -0
- package/programs/rings/partial-ring/piece-of-pie.js +173 -0
- package/programs/totems/camerauniformblock.js +147 -0
- package/programs/totems/canvas-webglobe-info.js +102 -0
- package/programs/totems/gpu-selection-uniform-block.js +104 -0
- package/programs/totems/index.js +40 -0
- package/programs/two-d/pixel-circle.js +1 -0
- package/programs/two-d/pixel-padding-for-compass.js +101 -0
- package/programs/util.js +18 -0
- package/programs/vectorfields/index.js +23 -0
- package/programs/vectorfields/logics/drawrectangleparticles.js +66 -0
- package/programs/vectorfields/logics/index.js +12 -0
- package/programs/vectorfields/logics/pixelbased.js +86 -0
- package/programs/vectorfields/logics/ubo.js +57 -0
- package/programs/vectorfields/pingpongbuffermanager.js +80 -0
- package/rangerings/enum.js +5 -0
- package/rangerings/index.js +15 -0
- package/rangerings/plugin.js +610 -0
- package/rangerings/rangeringangletext.js +341 -0
- package/rangerings/ring-account.js +134 -0
- package/shaders/fragment-toy/firework.js +4 -0
- package/shaders/fragment-toy/singularity.js +5 -0
- package/shape-on-terrain/arc/naive/plugin.js +252 -0
- package/timetracks/adaptors-line-strip.js +82 -0
- package/timetracks/adaptors.js +136 -0
- package/timetracks/index.js +19 -0
- package/timetracks/plugin-line-strip.js +254 -0
- package/timetracks/plugin.js +262 -0
- package/timetracks/program-line-strip.js +418 -0
- package/timetracks/program.js +466 -0
- package/timetracks/programpoint-line-strip.js +101 -0
- package/timetracks/programpoint.js +101 -0
- package/types.js +15 -0
- package/util/account/bufferoffsetmanager.js +202 -0
- package/util/account/index.js +23 -0
- package/util/account/single-attribute-buffer-management/buffer-manager.js +112 -0
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +180 -0
- package/util/account/single-attribute-buffer-management/index.js +9 -0
- package/util/account/single-attribute-buffer-management/object-store.js +53 -0
- package/util/account/single-attribute-buffer-management/types.js +2 -0
- package/util/account/util.js +24 -0
- package/util/algorithms/index.js +1 -0
- package/util/algorithms/search-binary.js +28 -0
- package/util/check/get.js +18 -0
- package/util/check/index.js +1 -0
- package/util/check/typecheck.js +51 -0
- package/util/geometry/index.js +53 -0
- package/util/gl-util/buffer/attribute-loader.js +81 -0
- package/util/gl-util/buffer/index.js +6 -0
- package/util/gl-util/buffer/types.js +1 -0
- package/util/gl-util/draw-options/methods.js +38 -0
- package/util/gl-util/draw-options/types.js +15 -0
- package/util/gl-util/uniform-block/manager.js +168 -0
- package/util/gl-util/uniform-block/shader.js +1 -0
- package/util/gl-util/uniform-block/types.js +8 -0
- package/util/heatwavedatamanager/datamanager.js +212 -0
- package/util/heatwavedatamanager/index.js +10 -0
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +125 -0
- package/util/heatwavedatamanager/pointcoordsmeta.js +21 -0
- package/util/index.js +57 -0
- package/util/interpolation/index.js +1 -0
- package/util/interpolation/timetrack/index.js +5 -0
- package/util/interpolation/timetrack/timetrack-interpolator.js +81 -0
- package/util/interpolation/timetrack/web-worker-str.js +5 -0
- package/util/interpolation/timetrack/web-worker.js +48 -0
- package/util/jshelpers/data-filler.js +20 -0
- package/util/jshelpers/equality.js +20 -0
- package/util/jshelpers/index.js +37 -0
- package/util/jshelpers/timefilters.js +32 -0
- package/util/picking/fence.js +46 -0
- package/util/picking/picker-displayer.js +145 -0
- package/util/programs/draw-texture-on-canvas.js +71 -0
- package/util/programs/index.js +17 -0
- package/util/programs/shapesonglobe.js +174 -0
- package/util/programs/supersampletotextures.js +107 -0
- package/util/programs/texturetoglobe.js +132 -0
- package/util/shaderfunctions/geometrytransformations.js +45 -0
- package/util/shaderfunctions/index.js +18 -0
- package/util/shaderfunctions/nodata.js +5 -0
- package/util/shaderfunctions/noisefunctions.js +13 -0
- package/util/surface-line-data/arc-bboxes.js +25 -0
- package/util/surface-line-data/arcs-to-cuts.js +53 -0
- package/util/surface-line-data/cut-arc.js +1 -0
- package/util/surface-line-data/flow.js +28 -0
- package/util/surface-line-data/rbush-manager.js +1 -0
- package/util/surface-line-data/types.js +1 -0
- package/util/surface-line-data/web-worker.js +1 -0
- package/util/webglobe/gldefaultstates.js +7 -0
- package/util/webglobe/index.js +18 -0
- package/util/webglobe/rasteroverlay.js +80 -0
- package/util/webglobjectbuilders.js +393 -0
- package/util/webglobjectbuilders1.js +238 -0
- package/waveparticles/adaptor.js +18 -0
- package/waveparticles/index.js +10 -0
- package/waveparticles/plugin.js +271 -0
- package/wind/imagetovectorfieldandmagnitude.js +35 -0
- package/wind/index.js +14 -0
- package/wind/plugin.js +724 -0
- package/wind/vectorfieldimage.js +25 -0
- package/write-text/attached-text-writer.js +93 -0
- package/write-text/context-text.js +105 -0
- package/write-text/context-text3.js +160 -0
- package/write-text/index.js +5 -0
- package/write-text/writer-plugin.js +8 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GlobeShellWiggle = void 0;
|
|
7
|
+
var object_1 = __importDefault(require("./object"));
|
|
8
|
+
exports.GlobeShellWiggle = object_1.default;
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var util_1 = require("../../../util");
|
|
4
|
+
var Logic = /** @class */ (function () {
|
|
5
|
+
function Logic() {
|
|
6
|
+
this.id = "GlobeShellProgram";
|
|
7
|
+
this.description = "This program implements flyweight pattern for globe." +
|
|
8
|
+
"At globes draw3D call stack, this program should be prior to any program that uses it." +
|
|
9
|
+
"draw3D method of this object only sets Projetion, ModelView and Translate matrices and if the mode is 2D mapWH .";
|
|
10
|
+
}
|
|
11
|
+
Logic.prototype.init = function (globe, gl) {
|
|
12
|
+
this.gl = gl;
|
|
13
|
+
this.globe = globe;
|
|
14
|
+
this.programWrapper = this._createProgramWrapper();
|
|
15
|
+
this._transformArray = new Float32Array(3);
|
|
16
|
+
this.setGeometry();
|
|
17
|
+
this.resize();
|
|
18
|
+
this.updateTime(0);
|
|
19
|
+
this.setMesh({ xRes: 64, yRes: 64, eastWestTied: false });
|
|
20
|
+
};
|
|
21
|
+
Logic.prototype._createProgramWrapper = function () {
|
|
22
|
+
var vertexShader = "#version 300 es\n #define R 6378.137\n #define PI 3.1415926535897932384626433832795\n #define POLE 20037508.34\n #define POLE_BY_PI 6366198.2\n #define HALF_PI 1.5707963267948966192313216916398\n\n uniform vec2 u_mesh_resolution;\n \n layout(std140) uniform ShellBlock {\n vec2 u_grid_offset_rad;\n vec2 u_grid_size_rad;\n float u_height;\n float u_wiggle;\n float u_time;\n float u_opacity;\n };\n\n uniform mat4 u_model_view_matrix;\n uniform mat4 u_projection_matrix;\n uniform vec3 u_translate;\n\n uniform vec2 u_mapWH;\n uniform vec2 u_scrWH;\n\n uniform bool u_is3D; \n\n out float v_opacity;\n out vec2 v_texture_coordinate;\n \n vec2 f_texCoord(){\n\n float x = mod( float(gl_VertexID), u_mesh_resolution.x ) / ( u_mesh_resolution.x - 1.0);\n float y = floor( float(gl_VertexID) / u_mesh_resolution.x ) / ( u_mesh_resolution.y - 1.0);\n return vec2(x, y);\n //return vec2( fract( float(gl_VertexID) / u_mesh_resolution.x ), floor(float(gl_VertexID) / u_mesh_resolution.x) / u_mesh_resolution.y);\n }\n\n vec3 f_onSphere(vec2 texCoord){\n float vert = (texCoord.y * u_grid_size_rad.y ) + u_grid_offset_rad.y;\n float hor = (texCoord.x * u_grid_size_rad.x ) + u_grid_offset_rad.x;\n float x = sin(vert) * cos(hor);\n float y = sin(vert) * sin(hor);\n float z = cos(vert);\n return vec3(x, y, z);\n }\n\n vec2 f_onFlat(vec2 texCoord){\n float x = (texCoord.x * u_grid_size_rad.x ) + u_grid_offset_rad.x;\n float y = (texCoord.y * u_grid_size_rad.y ) + u_grid_offset_rad.y;\n\n\n float mercX = x * POLE_BY_PI;\n float mercY = log(tan(HALF_PI - y / 2.0 )) * POLE_BY_PI;\n\n float normX = ( mercX - u_translate.x ) / u_mapWH.x;\n float normY = ( mercY - u_translate.y ) / u_mapWH.y;\n return vec2(normX, normY);\n } \n\n vec3 f_position(vec3 unit_sphere_pos, float wiggle){\n return unit_sphere_pos * (R + u_height + wiggle);\n }\n \n float f_wiggle(vec2 texCoord){\n float s_contrib = 0.6*sin(texCoord.x*2.0*PI + 3.0*u_time);\n float t_contrib = 0.8*cos(texCoord.y*4.1 + 5.0*u_time);\n return u_wiggle * s_contrib * t_contrib * sin(texCoord.y*PI*2.0);\n }\n\n void main() {\n vec2 texCoord = f_texCoord();\n if (u_is3D){\n vec3 unit_sphere_pos = f_onSphere(texCoord);\n float wiggle = f_wiggle(texCoord);\n vec3 position = f_position(unit_sphere_pos, wiggle);\n gl_Position = u_projection_matrix * u_model_view_matrix * vec4(position - u_translate, 1.0);\n } else {\n vec2 position = f_onFlat(texCoord);\n gl_Position = u_projection_matrix * vec4(\n position.x * u_scrWH.x,\n (1.0 - position.y) * u_scrWH.y,\n 0.0,\n 1.0);\n }\n v_texture_coordinate = texCoord;\n v_opacity = u_opacity;\n }\n ";
|
|
23
|
+
var fragmentShader = "#version 300 es\n precision lowp float;\n in vec2 v_texture_coordinate;\n in float v_opacity;\n uniform sampler2D u_texture;\n out vec4 outColor;\n\n\n void main() {\n outColor = texture(u_texture, v_texture_coordinate);\n outColor.a *= v_opacity;\n }";
|
|
24
|
+
var gl = this.gl;
|
|
25
|
+
var program = (0, util_1.createProgram)(gl, vertexShader, fragmentShader);
|
|
26
|
+
var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
27
|
+
gl.useProgram(program);
|
|
28
|
+
this.shellBlockBindingPoint = 0;
|
|
29
|
+
var shellBlockIndex = gl.getUniformBlockIndex(program, "ShellBlock");
|
|
30
|
+
gl.uniformBlockBinding(program, shellBlockIndex, this.shellBlockBindingPoint);
|
|
31
|
+
gl.useProgram(currentProgram);
|
|
32
|
+
return {
|
|
33
|
+
program: program,
|
|
34
|
+
u_model_view_matrix: gl.getUniformLocation(program, "u_model_view_matrix"),
|
|
35
|
+
u_projection_matrix: gl.getUniformLocation(program, "u_projection_matrix"),
|
|
36
|
+
u_translate: gl.getUniformLocation(program, "u_translate"),
|
|
37
|
+
u_is3D: gl.getUniformLocation(program, "u_is3D"),
|
|
38
|
+
u_scrWH: gl.getUniformLocation(program, "u_scrWH"),
|
|
39
|
+
u_mapWH: gl.getUniformLocation(program, "u_mapWH"),
|
|
40
|
+
u_texture: gl.getUniformLocation(program, "u_texture"),
|
|
41
|
+
u_mesh_resolution: gl.getUniformLocation(program, "u_mesh_resolution"),
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
// this method implements data part of flyweight pattern
|
|
45
|
+
Logic.prototype.getShellBlockBufferManager = function () {
|
|
46
|
+
return new ShellBlockManager(this.gl);
|
|
47
|
+
};
|
|
48
|
+
Logic.prototype.updateTime = function (time) {
|
|
49
|
+
var _a = this, gl = _a.gl, programWrapper = _a.programWrapper;
|
|
50
|
+
var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
51
|
+
gl.useProgram(programWrapper.program);
|
|
52
|
+
gl.uniform1f(this.programWrapper.u_time, time);
|
|
53
|
+
gl.useProgram(currentProgram);
|
|
54
|
+
};
|
|
55
|
+
Logic.prototype.setRotationAndTranslation = function (uProjectionMatrix, uModelViewMatrix, uTranslate, resetCurrentProgram) {
|
|
56
|
+
if (resetCurrentProgram === void 0) { resetCurrentProgram = false; }
|
|
57
|
+
var gl = this.gl;
|
|
58
|
+
var currentProgram = null;
|
|
59
|
+
if (resetCurrentProgram) {
|
|
60
|
+
currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
61
|
+
}
|
|
62
|
+
;
|
|
63
|
+
gl.useProgram(this.programWrapper.program);
|
|
64
|
+
gl.uniformMatrix4fv(this.programWrapper.u_projection_matrix, false, uProjectionMatrix);
|
|
65
|
+
gl.uniformMatrix4fv(this.programWrapper.u_model_view_matrix, false, uModelViewMatrix);
|
|
66
|
+
this._transformArray.set([uTranslate.x, uTranslate.y, uTranslate.z], 0);
|
|
67
|
+
gl.uniform3fv(this.programWrapper.u_translate, this._transformArray);
|
|
68
|
+
if (resetCurrentProgram)
|
|
69
|
+
gl.useProgram(currentProgram);
|
|
70
|
+
};
|
|
71
|
+
Logic.prototype.setGeometry = function () {
|
|
72
|
+
var _a = this, globe = _a.globe, gl = _a.gl;
|
|
73
|
+
var _b = this.programWrapper, u_is3D = _b.u_is3D, u_scrWH = _b.u_scrWH, program = _b.program;
|
|
74
|
+
var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
75
|
+
var is3D = this.globe.api_GetCurrentGeometry() === 0;
|
|
76
|
+
gl.useProgram(program);
|
|
77
|
+
if (globe.api_GetCurrentGeometry() === globe.api_GeometryTypes().FLAT) {
|
|
78
|
+
gl.uniform2f(u_scrWH, globe.api_ScrW(), globe.api_ScrH());
|
|
79
|
+
}
|
|
80
|
+
gl.uniform1i(u_is3D, is3D);
|
|
81
|
+
gl.useProgram(currentProgram);
|
|
82
|
+
};
|
|
83
|
+
Logic.prototype.resize = function () {
|
|
84
|
+
var _a = this, gl = _a.gl, globe = _a.globe;
|
|
85
|
+
if (!globe)
|
|
86
|
+
return;
|
|
87
|
+
var _b = this.programWrapper, program = _b.program, u_scrWH = _b.u_scrWH;
|
|
88
|
+
var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
89
|
+
gl.useProgram(program);
|
|
90
|
+
if (globe.api_GetCurrentGeometry() === globe.api_GeometryTypes().FLAT) {
|
|
91
|
+
gl.uniform2f(u_scrWH, globe.api_ScrW(), globe.api_ScrH());
|
|
92
|
+
}
|
|
93
|
+
gl.useProgram(currentProgram);
|
|
94
|
+
};
|
|
95
|
+
// only sets data does not draw
|
|
96
|
+
Logic.prototype.draw3D = function (uProjectionMatrix, uModelViewMatrix, uTranslate) {
|
|
97
|
+
var _a = this, gl = _a.gl, globe = _a.globe;
|
|
98
|
+
var _b = this.programWrapper, program = _b.program, u_model_view_matrix = _b.u_model_view_matrix, u_projection_matrix = _b.u_projection_matrix, u_translate = _b.u_translate;
|
|
99
|
+
gl.disable(gl.DEPTH_TEST);
|
|
100
|
+
gl.useProgram(program);
|
|
101
|
+
gl.uniformMatrix4fv(u_projection_matrix, false, uProjectionMatrix);
|
|
102
|
+
gl.uniformMatrix4fv(u_model_view_matrix, false, uModelViewMatrix);
|
|
103
|
+
// this._transformArray.set([], 0);
|
|
104
|
+
gl.uniform3f(u_translate, uTranslate.x, uTranslate.y, uTranslate.z);
|
|
105
|
+
if (globe.api_GetCurrentGeometry() === 1) {
|
|
106
|
+
var _c = globe.api_GetCurrentWorldWH(), width = _c.width, height = _c.height;
|
|
107
|
+
gl.uniform2fv(this.programWrapper.u_mapWH, [width, height]);
|
|
108
|
+
}
|
|
109
|
+
gl.enable(gl.DEPTH_TEST);
|
|
110
|
+
};
|
|
111
|
+
Logic.prototype.draw = function (texture, shellBlockDataManager, drawLines) {
|
|
112
|
+
if (drawLines === void 0) { drawLines = false; }
|
|
113
|
+
var _a = this, gl = _a.gl, programWrapper = _a.programWrapper, _vao = _a._vao, _drawCount = _a._drawCount;
|
|
114
|
+
var program = programWrapper.program, u_texture = programWrapper.u_texture;
|
|
115
|
+
gl.useProgram(program);
|
|
116
|
+
gl.bindVertexArray(_vao);
|
|
117
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
118
|
+
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
119
|
+
gl.uniform1i(u_texture, 0);
|
|
120
|
+
shellBlockDataManager.bind();
|
|
121
|
+
if (drawLines)
|
|
122
|
+
gl.drawElements(gl.LINES, _drawCount, gl.UNSIGNED_SHORT, 0);
|
|
123
|
+
gl.clearColor(0, 0, 0, 0);
|
|
124
|
+
gl.drawElements(gl.TRIANGLES, _drawCount, gl.UNSIGNED_SHORT, 0);
|
|
125
|
+
shellBlockDataManager.unbind();
|
|
126
|
+
gl.bindVertexArray(null);
|
|
127
|
+
};
|
|
128
|
+
Logic.prototype.free = function () {
|
|
129
|
+
var _a = this, gl = _a.gl, programWrapper = _a.programWrapper, _vao = _a._vao, _indexBuffer = _a._indexBuffer;
|
|
130
|
+
gl.deleteBuffer(_indexBuffer);
|
|
131
|
+
gl.deleteVertexArray(_vao);
|
|
132
|
+
gl.deleteProgram(programWrapper.program);
|
|
133
|
+
};
|
|
134
|
+
Logic.prototype.setMesh = function (_a) {
|
|
135
|
+
var xRes = _a.xRes, yRes = _a.yRes, eastWestTied = _a.eastWestTied;
|
|
136
|
+
this._xRes = xRes;
|
|
137
|
+
this._yRes = yRes;
|
|
138
|
+
var _vao = this._meshUP(xRes, yRes, eastWestTied)._vao;
|
|
139
|
+
this._vao = _vao;
|
|
140
|
+
this._setUMeshResolution(xRes, yRes);
|
|
141
|
+
};
|
|
142
|
+
Logic.prototype._setUMeshResolution = function (xRes, yRes) {
|
|
143
|
+
var _a = this, gl = _a.gl, programWrapper = _a.programWrapper;
|
|
144
|
+
var u_mesh_resolution = programWrapper.u_mesh_resolution;
|
|
145
|
+
var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
146
|
+
gl.useProgram(programWrapper.program);
|
|
147
|
+
gl.uniform2f(u_mesh_resolution, xRes, yRes);
|
|
148
|
+
gl.useProgram(currentProgram);
|
|
149
|
+
this._drawCount = 6 * ((xRes - 1) * (yRes - 1));
|
|
150
|
+
};
|
|
151
|
+
Logic.prototype._meshUP = function (xRes, yRes, eastWestTied) {
|
|
152
|
+
this._drawCount = 6 * ((xRes - 1) * (yRes - 1));
|
|
153
|
+
var indices = new Uint16Array(this._drawCount);
|
|
154
|
+
{
|
|
155
|
+
var indicesIndex = 0;
|
|
156
|
+
var index = 0;
|
|
157
|
+
for (var j = 0; j < yRes - 1; j++) {
|
|
158
|
+
for (var i = 0; i < xRes - 1; i++) {
|
|
159
|
+
var ind = index + i;
|
|
160
|
+
indices[indicesIndex++] = ind + xRes;
|
|
161
|
+
indices[indicesIndex++] = ind + 1;
|
|
162
|
+
indices[indicesIndex++] = ind;
|
|
163
|
+
indices[indicesIndex++] = ind + xRes + 1;
|
|
164
|
+
indices[indicesIndex++] = ind + 1;
|
|
165
|
+
indices[indicesIndex++] = ind + xRes;
|
|
166
|
+
}
|
|
167
|
+
index += xRes;
|
|
168
|
+
}
|
|
169
|
+
if (eastWestTied) {
|
|
170
|
+
var left = (yRes - 1);
|
|
171
|
+
var right = 0;
|
|
172
|
+
for (var i = 0; i < xRes - 1; i++) {
|
|
173
|
+
indices[indicesIndex++] = left + xRes;
|
|
174
|
+
indices[indicesIndex++] = right;
|
|
175
|
+
indices[indicesIndex++] = left;
|
|
176
|
+
indices[indicesIndex++] = right + xRes;
|
|
177
|
+
indices[indicesIndex++] = right;
|
|
178
|
+
indices[indicesIndex++] = left + xRes;
|
|
179
|
+
left += xRes;
|
|
180
|
+
right += xRes;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
var gl = this.gl;
|
|
185
|
+
var _vao = gl.createVertexArray();
|
|
186
|
+
gl.bindVertexArray(_vao);
|
|
187
|
+
var indexBuffer = gl.createBuffer();
|
|
188
|
+
this._indexBuffer = indexBuffer;
|
|
189
|
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
|
|
190
|
+
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);
|
|
191
|
+
gl.bindVertexArray(null);
|
|
192
|
+
return { _vao: _vao };
|
|
193
|
+
};
|
|
194
|
+
return Logic;
|
|
195
|
+
}());
|
|
196
|
+
exports.default = Logic;
|
|
197
|
+
var ShellBlockManager = /** @class */ (function () {
|
|
198
|
+
function ShellBlockManager(gl) {
|
|
199
|
+
this.gl = gl;
|
|
200
|
+
this.buffer = gl.createBuffer();
|
|
201
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, this.buffer);
|
|
202
|
+
gl.bufferData(gl.UNIFORM_BUFFER, 32, gl.DYNAMIC_DRAW);
|
|
203
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
204
|
+
}
|
|
205
|
+
ShellBlockManager.prototype.update = function (_a) {
|
|
206
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.gridSizeRad, gridSizeRad = _c === void 0 ? null : _c, _d = _b.gridOffsetRad, gridOffsetRad = _d === void 0 ? null : _d, _e = _b.height, height = _e === void 0 ? null : _e, _f = _b.wiggleInKM, wiggleInKM = _f === void 0 ? null : _f, _g = _b.innerTime, innerTime = _g === void 0 ? null : _g, _h = _b.opacity, opacity = _h === void 0 ? null : _h;
|
|
207
|
+
var _j = this, gl = _j.gl, buffer = _j.buffer;
|
|
208
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);
|
|
209
|
+
if (gridOffsetRad !== null) {
|
|
210
|
+
var offset = new Float32Array(gridOffsetRad);
|
|
211
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 0, offset);
|
|
212
|
+
}
|
|
213
|
+
if (gridSizeRad !== null) {
|
|
214
|
+
var size = new Float32Array(gridSizeRad);
|
|
215
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 8, size);
|
|
216
|
+
}
|
|
217
|
+
if (height !== null) {
|
|
218
|
+
var heightArray = new Float32Array([height]);
|
|
219
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 16, heightArray);
|
|
220
|
+
}
|
|
221
|
+
if (wiggleInKM !== null) {
|
|
222
|
+
var wiggleArray = new Float32Array([wiggleInKM]);
|
|
223
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 20, wiggleArray);
|
|
224
|
+
}
|
|
225
|
+
if (innerTime !== null) {
|
|
226
|
+
var innerTimeArray = new Float32Array([innerTime]);
|
|
227
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 24, innerTimeArray);
|
|
228
|
+
}
|
|
229
|
+
if (opacity !== null) {
|
|
230
|
+
if (opacity < 0 || opacity > 1) {
|
|
231
|
+
console.warn('Invalid opacity value');
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
var op = new Float32Array([opacity]);
|
|
235
|
+
gl.bufferSubData(gl.UNIFORM_BUFFER, 28, op);
|
|
236
|
+
}
|
|
237
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, null);
|
|
238
|
+
};
|
|
239
|
+
ShellBlockManager.prototype.bind = function () {
|
|
240
|
+
var _a = this, gl = _a.gl, buffer = _a.buffer;
|
|
241
|
+
gl.bindBufferBase(gl.UNIFORM_BUFFER, this.shellBlockBindingPoint, buffer);
|
|
242
|
+
};
|
|
243
|
+
ShellBlockManager.prototype.free = function () {
|
|
244
|
+
var _a = this, gl = _a.gl, buffer = _a.buffer;
|
|
245
|
+
gl.deleteBuffer(buffer);
|
|
246
|
+
};
|
|
247
|
+
ShellBlockManager.prototype.unbind = function () {
|
|
248
|
+
var gl = this.gl;
|
|
249
|
+
gl.bindBufferBase(gl.UNIFORM_BUFFER, this.shellBlockBindingPoint, null);
|
|
250
|
+
};
|
|
251
|
+
return ShellBlockManager;
|
|
252
|
+
}());
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var programcache_1 = require("../../programcache");
|
|
7
|
+
var logic_1 = __importDefault(require("./logic"));
|
|
8
|
+
var GlobeShell = /** @class */ (function () {
|
|
9
|
+
function GlobeShell(gl, globe, _a) {
|
|
10
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.minLon, minLon = _c === void 0 ? -180 : _c, _d = _b.maxLon, maxLon = _d === void 0 ? 180 : _d, _e = _b.minLat, minLat = _e === void 0 ? -90 : _e, _f = _b.maxLat, maxLat = _f === void 0 ? 90 : _f, _g = _b.height, height = _g === void 0 ? 0 : _g, _h = _b.u_opacity, u_opacity = _h === void 0 ? 1 : _h, _j = _b.wiggleInKM, wiggleInKM = _j === void 0 ? 0 : _j, _k = _b.wiggleSpeed, wiggleSpeed = _k === void 0 ? 0 : _k;
|
|
11
|
+
this.gl = gl;
|
|
12
|
+
this.globe = globe;
|
|
13
|
+
this.program = programcache_1.globeProgramCache.getProgram(globe, logic_1.default);
|
|
14
|
+
this.shellBlockManager = this.program.getShellBlockBufferManager();
|
|
15
|
+
this.update = this.shellBlockManager.update.bind(this.shellBlockManager);
|
|
16
|
+
this.innerTime = 0;
|
|
17
|
+
this.setBBox({ minLon: minLon, maxLon: maxLon, minLat: minLat, maxLat: maxLat });
|
|
18
|
+
this.setOpacity(u_opacity);
|
|
19
|
+
this.setHeight(height);
|
|
20
|
+
this.setWiggle({ wiggleSpeed: wiggleSpeed, wiggleInKM: wiggleInKM });
|
|
21
|
+
}
|
|
22
|
+
GlobeShell.prototype.setTexture = function (texture) {
|
|
23
|
+
this.texture = texture;
|
|
24
|
+
this.globe.DrawRender();
|
|
25
|
+
};
|
|
26
|
+
GlobeShell.prototype.setHeight = function (height) {
|
|
27
|
+
this.shellBlockManager.update({ height: height });
|
|
28
|
+
this.globe.DrawRender();
|
|
29
|
+
};
|
|
30
|
+
GlobeShell.prototype.setOpacity = function (opacity) {
|
|
31
|
+
this.shellBlockManager.update({ opacity: opacity });
|
|
32
|
+
this.globe.DrawRender();
|
|
33
|
+
};
|
|
34
|
+
GlobeShell.prototype.setBBox = function (_a) {
|
|
35
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.minLon, minLon = _c === void 0 ? -180 : _c, _d = _b.maxLon, maxLon = _d === void 0 ? 180 : _d, _e = _b.minLat, minLat = _e === void 0 ? -90 : _e, _f = _b.maxLat, maxLat = _f === void 0 ? 90 : _f;
|
|
36
|
+
this.bbox = { minLon: minLon, maxLon: maxLon, minLat: minLat, maxLat: maxLat };
|
|
37
|
+
// x
|
|
38
|
+
var horOffset = (minLon) * Math.PI / 180;
|
|
39
|
+
var horSize = (maxLon - minLon) * Math.PI / 180;
|
|
40
|
+
// y
|
|
41
|
+
var vertOffset = (90 - maxLat) * Math.PI / 180;
|
|
42
|
+
var vertSize = (maxLat - minLat) * Math.PI / 180;
|
|
43
|
+
var offset_rad = new Float32Array([horOffset, vertOffset]);
|
|
44
|
+
var size_rad = new Float32Array([horSize, vertSize]);
|
|
45
|
+
this.shellBlockManager.update({ gridSizeRad: size_rad, gridOffsetRad: offset_rad });
|
|
46
|
+
this.globe.DrawRender();
|
|
47
|
+
};
|
|
48
|
+
GlobeShell.prototype.setWiggle = function (_a) {
|
|
49
|
+
var _b = _a.wiggleSpeed, wiggleSpeed = _b === void 0 ? null : _b, _c = _a.wiggleInKM, wiggleInKM = _c === void 0 ? null : _c;
|
|
50
|
+
if (wiggleInKM !== null)
|
|
51
|
+
this.wiggleInKM = wiggleInKM;
|
|
52
|
+
if (wiggleSpeed !== null)
|
|
53
|
+
this.wiggleSpeed = wiggleSpeed;
|
|
54
|
+
this.shellBlockManager.update({ wiggleInKM: wiggleInKM });
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @param {*} program modelView, projection, translate, mapWH, scrWH, should be set before calling this function
|
|
59
|
+
*/
|
|
60
|
+
GlobeShell.prototype.draw = function () {
|
|
61
|
+
this.program.draw(this.texture, this.shellBlockManager);
|
|
62
|
+
if (this.wiggleInKM > 0 && this.wiggleSpeed > 0) {
|
|
63
|
+
this.innerTime += this.wiggleSpeed;
|
|
64
|
+
this.shellBlockManager.update({ innerTime: this.innerTime });
|
|
65
|
+
this.globe.DrawRender();
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
GlobeShell.prototype.free = function () {
|
|
69
|
+
programcache_1.globeProgramCache.releaseProgram(this.globe, logic_1.default);
|
|
70
|
+
this.shellBlockManager.free();
|
|
71
|
+
};
|
|
72
|
+
return GlobeShell;
|
|
73
|
+
}());
|
|
74
|
+
exports.default = GlobeShell;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var util_1 = require("../util");
|
|
4
|
+
/**
|
|
5
|
+
* Blends two float32textures with given ratio.
|
|
6
|
+
*/
|
|
7
|
+
var vertexShader = "#version 300 es\nin vec2 a_position;\nout vec2 v_texCoord;\nvoid main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = a_position * 0.5 + 0.5;\n}\n";
|
|
8
|
+
var fragmentShader = "#version 300 es\nuniform sampler2D u_texture0;\nuniform sampler2D u_texture1;\nuniform float u_ratio;\nin v_texCoord;\nout vec4 outColor;\nvoid main() {\n vec4 color0 = texture(u_texture0, v_texCoord);\n vec4 color1 = texture(u_texture1, v_texCoord);\n outColor = mix(color0, color1, u_ratio);\n}\n";
|
|
9
|
+
var BlenderProgram = /** @class */ (function () {
|
|
10
|
+
function BlenderProgram(gl) {
|
|
11
|
+
this.gl = gl;
|
|
12
|
+
this.programWrapper = this._createProgramWrapper();
|
|
13
|
+
}
|
|
14
|
+
BlenderProgram.prototype._craeteProgramWrapper = function () {
|
|
15
|
+
var gl = this.gl;
|
|
16
|
+
var program = (0, util_1.createProgram)(gl, vertexShader, fragmentShader);
|
|
17
|
+
this.vao = gl.createVertexArray();
|
|
18
|
+
gl.bindVertexArray(this.vao);
|
|
19
|
+
this._buffer = gl.createBuffer();
|
|
20
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._buffer);
|
|
21
|
+
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
|
|
22
|
+
-1, -1,
|
|
23
|
+
1, -1,
|
|
24
|
+
-1, 1,
|
|
25
|
+
-1, 1,
|
|
26
|
+
1, -1,
|
|
27
|
+
1, 1,
|
|
28
|
+
]), gl.STATIC_DRAW);
|
|
29
|
+
gl.enableVertexAttribArray(0);
|
|
30
|
+
gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
|
|
31
|
+
gl.bindVertexArray(null);
|
|
32
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
33
|
+
return { program: program, uniforms: { u_texture0: gl.getUniformLocation(program, 'u_texture0'), u_texture1: gl.getUniformLocation(program, 'u_texture1'), u_ratio: gl.getUniformLocation(program, 'u_ratio') } };
|
|
34
|
+
};
|
|
35
|
+
BlenderProgram.prototype.draw = function (ratio, texture0, texture1) {
|
|
36
|
+
var gl = this.gl;
|
|
37
|
+
gl.useProgram(this.programWrapper.program);
|
|
38
|
+
gl.bindVertexArray(this.vao);
|
|
39
|
+
gl.activeTexture(gl.TEXTURE1);
|
|
40
|
+
gl.bindTexture(gl.TEXTURE_2D, texture1);
|
|
41
|
+
gl.uniform1i(this.programWrapper.uniforms.u_texture1, 1);
|
|
42
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
43
|
+
gl.bindTexture(gl.TEXTURE_2D, texture0);
|
|
44
|
+
gl.uniform1i(this.programWrapper.uniforms.u_texture0, 0);
|
|
45
|
+
gl.uniform1f(this.programWrapper.uniforms.u_ratio, ratio);
|
|
46
|
+
gl.drawArrays(gl.TRIANGLES, 0, 6);
|
|
47
|
+
gl.bindVertexArray(null);
|
|
48
|
+
};
|
|
49
|
+
BlenderProgram.prototype.createFloat32Texture = function (width, height) {
|
|
50
|
+
var gl = this.gl;
|
|
51
|
+
var texture = gl.createTexture();
|
|
52
|
+
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
53
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.R32F, width, height, 0, gl.RED, gl.FLOAT, null);
|
|
54
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
|
55
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
|
56
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
|
57
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
58
|
+
return texture;
|
|
59
|
+
};
|
|
60
|
+
return BlenderProgram;
|
|
61
|
+
}());
|
|
62
|
+
exports.default = BlenderProgram;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var object_1 = __importDefault(require("./object"));
|
|
7
|
+
exports.default = object_1.default;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var util_1 = require("../../../util");
|
|
4
|
+
var vertexShaderSource = "#version 300 es\nprecision highp float; \nin vec2 a_position;\nout vec2 v_texCoord; \nvoid main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = a_position * 0.5 + vec2(0.5);\n}\n";
|
|
5
|
+
var fragmentShaderSource = "#version 300 es\nprecision highp float;\nuniform float opacity;\nuniform sampler2D u_texture;\nin vec2 v_texCoord;\nout vec4 outColor;\nvoid main() {\n\n vec4 color = texture(u_texture, v_texCoord);\n if (color.a <= 0.2) {\n outColor = vec4(0.0);\n return;\n }\n outColor = vec4(color.rgb, color.a * opacity);\n}\n";
|
|
6
|
+
var FadeAwayProgram = /** @class */ (function () {
|
|
7
|
+
function FadeAwayProgram(gl) {
|
|
8
|
+
this.gl = gl;
|
|
9
|
+
this.program = (0, util_1.createProgram)(gl, vertexShaderSource, fragmentShaderSource);
|
|
10
|
+
this.vao = gl.createVertexArray();
|
|
11
|
+
gl.bindVertexArray(this.vao);
|
|
12
|
+
this._buffer = gl.createBuffer();
|
|
13
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._buffer);
|
|
14
|
+
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
|
|
15
|
+
-1, -1,
|
|
16
|
+
1, -1,
|
|
17
|
+
-1, 1,
|
|
18
|
+
-1, 1,
|
|
19
|
+
1, -1,
|
|
20
|
+
1, 1,
|
|
21
|
+
]), gl.STATIC_DRAW);
|
|
22
|
+
gl.enableVertexAttribArray(0);
|
|
23
|
+
gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
|
|
24
|
+
gl.bindVertexArray(null);
|
|
25
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
26
|
+
this.uniforms = {
|
|
27
|
+
u_texture: gl.getUniformLocation(this.program, 'u_texture'),
|
|
28
|
+
opacity: gl.getUniformLocation(this.program, 'opacity')
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
FadeAwayProgram.prototype.draw = function (texture, opacity) {
|
|
32
|
+
var _a = this, gl = _a.gl, vao = _a.vao, uniforms = _a.uniforms, program = _a.program;
|
|
33
|
+
gl.useProgram(program);
|
|
34
|
+
gl.bindVertexArray(vao);
|
|
35
|
+
gl.uniform1f(uniforms.opacity, opacity);
|
|
36
|
+
gl.uniform1i(uniforms.u_texture, 0);
|
|
37
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
38
|
+
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
39
|
+
gl.drawArrays(gl.TRIANGLES, 0, 6);
|
|
40
|
+
gl.bindVertexArray(null);
|
|
41
|
+
};
|
|
42
|
+
FadeAwayProgram.prototype.free = function () {
|
|
43
|
+
var _a = this, gl = _a.gl, vao = _a.vao, _buffer = _a._buffer, program = _a.program;
|
|
44
|
+
gl.deleteVertexArray(vao);
|
|
45
|
+
gl.deleteProgram(program);
|
|
46
|
+
gl.deleteBuffer(_buffer);
|
|
47
|
+
};
|
|
48
|
+
return FadeAwayProgram;
|
|
49
|
+
}());
|
|
50
|
+
exports.default = FadeAwayProgram;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var programcache_1 = require("../../programcache");
|
|
7
|
+
var logic_1 = __importDefault(require("./logic"));
|
|
8
|
+
var FadeAway = /** @class */ (function () {
|
|
9
|
+
function FadeAway(gl) {
|
|
10
|
+
this.gl = gl;
|
|
11
|
+
this.program = programcache_1.glProgramCache.getProgram(gl, logic_1.default);
|
|
12
|
+
}
|
|
13
|
+
FadeAway.prototype.draw = function (sourceTexture, opacity) {
|
|
14
|
+
this.program.draw(sourceTexture, opacity);
|
|
15
|
+
};
|
|
16
|
+
FadeAway.prototype.free = function () {
|
|
17
|
+
programcache_1.glProgramCache.releaseProgram(logic_1.default);
|
|
18
|
+
};
|
|
19
|
+
return FadeAway;
|
|
20
|
+
}());
|
|
21
|
+
exports.default = FadeAway;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FadeAway = void 0;
|
|
7
|
+
var fadeaway_1 = __importDefault(require("./fadeaway"));
|
|
8
|
+
exports.FadeAway = fadeaway_1.default;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
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
|
+
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
|
+
var float2legendwithratio_1 = require("./float2legendwithratio");
|
|
41
|
+
Object.defineProperty(exports, "Float2LegendWithRatio", { enumerable: true, get: function () { return float2legendwithratio_1.Float2LegendWithRatio; } });
|
|
42
|
+
var wiggle_1 = require("./globeshell/wiggle");
|
|
43
|
+
Object.defineProperty(exports, "GlobeShellWiggle", { enumerable: true, get: function () { return wiggle_1.GlobeShellWiggle; } });
|
|
44
|
+
var 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
|
+
var arrowfield_1 = __importDefault(require("./arrowfield"));
|
|
48
|
+
exports.ArrowField = arrowfield_1.default;
|
|
49
|
+
var 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
|
+
var vectorfield = __importStar(require("./vectorfields"));
|
|
54
|
+
exports.vectorfield = vectorfield;
|
|
55
|
+
var helpers_1 = require("./helpers");
|
|
56
|
+
Object.defineProperty(exports, "FadeAway", { enumerable: true, get: function () { return helpers_1.FadeAway; } });
|
|
57
|
+
var rings = __importStar(require("./rings"));
|
|
58
|
+
exports.rings = rings;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|