@pirireis/webglobeplugins 0.9.10 → 0.9.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Math/angle-calculation.js +8 -8
- package/Math/arc.js +18 -18
- package/Math/bounds/line-bbox.js +80 -78
- package/Math/constants.js +3 -3
- package/Math/juction/arc-plane.js +23 -23
- package/Math/juction/line-sphere.js +11 -11
- package/Math/juction/plane-plane.js +11 -11
- package/Math/line.js +16 -14
- package/Math/methods.js +72 -67
- package/Math/plane.js +18 -16
- package/Math/quaternion.js +49 -45
- package/Math/utils.js +2 -2
- package/Math/vec3.js +45 -42
- package/algorithms/search-binary.js +4 -4
- package/altitude-locator/draw-subset-obj.js +8 -7
- package/altitude-locator/plugin.js +113 -97
- package/arrowfield/adaptor.js +4 -3
- package/arrowfield/index.js +2 -2
- package/arrowfield/plugin.js +65 -62
- package/bearing-line/index.js +1 -1
- package/bearing-line/plugin.js +225 -200
- package/circle-line-chain/chain-list-map.js +88 -82
- package/circle-line-chain/plugin.js +154 -129
- package/circle-line-chain/util.js +1 -1
- package/compass-rose/compass-rose-padding-flat.js +126 -104
- package/compass-rose/compass-text-writer.js +70 -62
- package/compass-rose/index.js +2 -2
- package/compassrose/compassrose.js +50 -46
- package/compassrose/index.js +1 -1
- package/heatwave/index.js +2 -2
- package/heatwave/isobar/objectarraylabels.js +48 -44
- package/heatwave/isobar/plugin.js +123 -104
- package/heatwave/isobar/quadtreecontours.js +92 -76
- package/heatwave/plugins/heatwaveglobeshell.js +87 -69
- package/index.js +11 -11
- package/package.json +1 -1
- package/partialrings/buffer-manager.js +64 -32
- package/partialrings/index.js +1 -1
- package/partialrings/plugin.js +84 -48
- package/partialrings/program.js +47 -136
- package/pin/pin-object-array.js +86 -83
- package/pin/pin-point-totem.js +22 -21
- package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
- package/point-heat-map/plugin-webworker.js +45 -40
- package/point-heat-map/point-to-heat-map-flow.js +42 -40
- package/point-tracks/key-methods.js +1 -1
- package/point-tracks/plugin.js +142 -127
- package/programs/arrowfield/index.js +1 -1
- package/programs/arrowfield/logic.js +62 -170
- package/programs/arrowfield/object.js +35 -33
- package/programs/data2legend/density-to-legend.js +21 -45
- package/programs/data2legend/point-to-density-texture.js +27 -52
- package/programs/float2legendwithratio/index.js +1 -1
- package/programs/float2legendwithratio/logic.js +42 -88
- package/programs/float2legendwithratio/object.js +46 -43
- package/programs/globe-util/is-globe-moved.js +11 -10
- package/programs/globeshell/index.js +1 -1
- package/programs/globeshell/wiggle/index.js +1 -1
- package/programs/globeshell/wiggle/logic.js +98 -191
- package/programs/globeshell/wiggle/object.js +35 -33
- package/programs/helpers/blender/program.js +19 -36
- package/programs/helpers/fadeaway/index.js +1 -1
- package/programs/helpers/fadeaway/logic.js +13 -35
- package/programs/helpers/fadeaway/object.js +10 -9
- package/programs/helpers/index.js +1 -1
- package/programs/index.js +8 -8
- package/programs/line-on-globe/angled-line.js +32 -91
- package/programs/line-on-globe/circle-accurate-3d.js +32 -82
- package/programs/line-on-globe/circle-accurate-flat.js +50 -108
- package/programs/line-on-globe/circle-accurate.js +33 -103
- package/programs/line-on-globe/circle.js +32 -97
- package/programs/line-on-globe/degree-padding-around-circle-3d.js +33 -83
- package/programs/line-on-globe/lines-color-instanced-flat.js +34 -79
- package/programs/line-on-globe/linestrip.js +39 -100
- package/programs/line-on-globe/naive-accurate-flexible.js +48 -118
- package/programs/line-on-globe/to-the-surface.js +29 -58
- package/programs/line-on-globe/util.js +1 -1
- package/programs/picking/pickable-renderer.js +33 -117
- package/programs/point-on-globe/element-globe-surface-glow.js +38 -78
- package/programs/point-on-globe/element-point-glow.js +35 -103
- package/programs/point-on-globe/square-pixel-point.js +27 -76
- package/programs/programcache.js +13 -13
- package/programs/rings/distancering/circleflatprogram.js +21 -63
- package/programs/rings/distancering/circlepaddingfreeangleprogram.js +145 -156
- package/programs/rings/distancering/circlepaddysharedbuffer.js +197 -121
- package/programs/rings/distancering/index.js +4 -4
- package/programs/rings/distancering/paddyflatprogram.js +20 -73
- package/programs/rings/distancering/paddyflatprogram2d.js +22 -75
- package/programs/rings/distancering/paddyflatprogram3d.js +20 -73
- package/programs/rings/partial-ring/piece-of-pie.js +35 -137
- package/programs/totems/camerauniformblock.js +51 -64
- package/programs/totems/canvas-webglobe-info.js +40 -48
- package/programs/totems/gpu-selection-uniform-block.js +40 -44
- package/programs/totems/index.js +1 -1
- package/programs/two-d/pixel-padding-for-compass.js +29 -90
- package/programs/util.js +7 -6
- package/programs/vectorfields/index.js +1 -1
- package/programs/vectorfields/logics/drawrectangleparticles.js +29 -70
- package/programs/vectorfields/logics/index.js +3 -3
- package/programs/vectorfields/logics/pixelbased.js +35 -91
- package/programs/vectorfields/logics/ubo.js +25 -31
- package/programs/vectorfields/pingpongbuffermanager.js +34 -30
- package/rangerings/index.js +4 -4
- package/rangerings/plugin.js +252 -202
- package/rangerings/rangeringangletext.js +120 -108
- package/rangerings/ring-account.js +69 -52
- package/shaders/fragment-toy/firework.js +1 -55
- package/shaders/fragment-toy/singularity.js +1 -55
- package/timetracks/adaptors-line-strip.js +37 -26
- package/timetracks/adaptors.js +61 -47
- package/timetracks/index.js +4 -4
- package/timetracks/plugin-line-strip.js +63 -59
- package/timetracks/plugin.js +69 -65
- package/timetracks/program-line-strip.js +103 -296
- package/timetracks/program.js +113 -419
- package/timetracks/programpoint-line-strip.js +44 -97
- package/timetracks/programpoint.js +44 -90
- package/util/account/bufferoffsetmanager.js +95 -72
- package/util/account/index.js +1 -1
- package/util/account/single-attribute-buffer-management/buffer-manager.js +43 -39
- package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +94 -64
- package/util/account/single-attribute-buffer-management/index.js +3 -3
- package/util/account/single-attribute-buffer-management/object-store.js +30 -28
- package/util/account/util.js +4 -2
- package/util/algorithms/search-binary.js +4 -4
- package/util/check/get.js +5 -5
- package/util/check/typecheck.js +15 -13
- package/util/geometry/index.js +11 -9
- package/util/gl-util/buffer/attribute-loader.js +20 -8
- package/util/gl-util/buffer/index.js +1 -1
- package/util/gl-util/draw-options/methods.js +7 -7
- package/util/gl-util/uniform-block/manager.js +67 -55
- package/util/heatwavedatamanager/datamanager.js +116 -56
- package/util/heatwavedatamanager/index.js +2 -2
- package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +40 -37
- package/util/heatwavedatamanager/pointcoordsmeta.js +10 -9
- package/util/index.js +6 -6
- package/util/interpolation/timetrack/index.js +1 -1
- package/util/interpolation/timetrack/timetrack-interpolator.js +29 -27
- package/util/interpolation/timetrack/web-worker-str.js +1 -179
- package/util/interpolation/timetrack/web-worker.js +4 -4
- package/util/jshelpers/data-filler.js +7 -7
- package/util/jshelpers/timefilters.js +7 -7
- package/util/picking/fence.js +7 -7
- package/util/picking/picker-displayer.js +52 -46
- package/util/programs/draw-texture-on-canvas.js +21 -39
- package/util/programs/shapesonglobe.js +64 -104
- package/util/programs/supersampletotextures.js +39 -45
- package/util/programs/texturetoglobe.js +48 -98
- package/util/shaderfunctions/geometrytransformations.js +27 -322
- package/util/shaderfunctions/nodata.js +1 -7
- package/util/shaderfunctions/noisefunctions.js +9 -39
- package/util/surface-line-data/arcs-to-cuts.js +23 -20
- package/util/webglobe/rasteroverlay.js +37 -35
- package/util/webglobjectbuilders.js +60 -55
- package/util/webglobjectbuilders1.js +49 -48
- package/waveparticles/adaptor.js +7 -6
- package/waveparticles/index.js +2 -2
- package/waveparticles/plugin.js +84 -79
- package/wind/imagetovectorfieldandmagnitude.js +15 -15
- package/wind/index.js +4 -4
- package/wind/plugin.js +251 -453
- package/wind/vectorfieldimage.js +5 -5
- package/write-text/attached-text-writer.js +48 -46
- package/write-text/context-text.js +58 -51
- package/write-text/context-text3.js +74 -69
|
@@ -34,10 +34,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.PaddingProgramCache = void 0;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
var util_1 = require("../../../util");
|
|
38
|
+
var camerauniformblock_1 = __importStar(require("../../totems/camerauniformblock"));
|
|
39
|
+
var programcache_1 = require("../../programcache");
|
|
40
|
+
var vertexShader = "#version 300 es " +
|
|
41
41
|
util_1.shaderfunctions.PI +
|
|
42
42
|
util_1.shaderfunctions.R +
|
|
43
43
|
util_1.shaderfunctions.POLE +
|
|
@@ -48,65 +48,11 @@ const vertexShader = `#version 300 es ` +
|
|
|
48
48
|
util_1.shaderfunctions.circleLimpFromLongLatRadCenterCartesian3D +
|
|
49
49
|
util_1.shaderfunctions.circleLimpFromLongLatRadCenterMercatorCompass +
|
|
50
50
|
util_1.shaderfunctions.circleLimpFromLongLatRadCenterMercatorRealDistancePadding +
|
|
51
|
-
util_1.shaderfunctions.circleLimpFromLongLatRadCenterMercatorRealDistance +
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
in vec4 color;
|
|
57
|
-
in float flag;
|
|
58
|
-
|
|
59
|
-
uniform int compass;
|
|
60
|
-
uniform float pad_count;
|
|
61
|
-
|
|
62
|
-
uniform float opacity;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
out vec2 v_limp;
|
|
66
|
-
out vec4 v_color;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
void main() {
|
|
70
|
-
|
|
71
|
-
float alpha_padding = z_level * z_level / (pad_range/ 100.0 );
|
|
72
|
-
if( flag == 2.0 || flag == 1.0 || radius == 0.0 || alpha_padding < 0.1 || z_level < 3.0 ) return; // 1.0 is hide
|
|
73
|
-
v_color = vec4(color.rgb, color.a * alpha_padding * opacity);
|
|
74
|
-
|
|
75
|
-
gl_PointSize = 2.0;
|
|
76
|
-
|
|
77
|
-
float odd = mod(float(gl_VertexID), 2.0);
|
|
78
|
-
float index = (float(gl_VertexID)- odd ) / 2.0;
|
|
79
|
-
float angle = 3.1415926535897932384626433832795 * 2.0 * (index / pad_count );
|
|
80
|
-
float radius_ = radius - (pad_range * odd);
|
|
81
|
-
|
|
82
|
-
if ( is3D){
|
|
83
|
-
gl_Position = projection * view * vec4(
|
|
84
|
-
circleLimpFromLongLatRadCenterCartesian3D( center, radius_, angle) - translate, 1.0);
|
|
85
|
-
v_limp = vec2(0.0, 0.0);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
vec2 limp;
|
|
89
|
-
if ( compass == 1 ){
|
|
90
|
-
limp = circleLimpFromLongLatRadCenterMercatorCompass(center , radius_, angle);
|
|
91
|
-
} else {
|
|
92
|
-
// limp = circleLimpFromLongLatRadCenterMercatorRealDistancePadding(center, radius_, angle);
|
|
93
|
-
limp = circleLimpFromLongLatRadCenterMercatorRealDistance(center, radius_, angle);
|
|
94
|
-
}
|
|
95
|
-
v_limp = limp;
|
|
96
|
-
gl_Position = mercatorXYToGLPosition(limp);
|
|
97
|
-
}`;
|
|
98
|
-
const fragmentShader = `#version 300 es
|
|
99
|
-
precision highp float; ` +
|
|
100
|
-
util_1.shaderfunctions.POLE + `
|
|
101
|
-
in vec4 v_color;
|
|
102
|
-
in vec2 v_limp;
|
|
103
|
-
out vec4 outColor;
|
|
104
|
-
void main() {
|
|
105
|
-
if ( v_limp.x < -POLE || v_limp.x > POLE || v_limp.y < -POLE || v_limp.y > POLE ){ discard; }
|
|
106
|
-
outColor = v_color;
|
|
107
|
-
}`;
|
|
108
|
-
class Logic {
|
|
109
|
-
constructor(globe) {
|
|
51
|
+
util_1.shaderfunctions.circleLimpFromLongLatRadCenterMercatorRealDistance + "\n\nin vec2 center;\nin float radius;\nin float pad_range;\nin vec4 color;\nin float flag;\n\nuniform int compass;\nuniform float pad_count;\n\nuniform float opacity;\n\n\nout vec2 v_limp;\nout vec4 v_color;\n\n\nvoid main() { \n\n float alpha_padding = z_level * z_level / (pad_range/ 100.0 );\n if( flag == 2.0 || flag == 1.0 || radius == 0.0 || alpha_padding < 0.1 || z_level < 3.0 ) return; // 1.0 is hide \n v_color = vec4(color.rgb, color.a * alpha_padding * opacity);\n\n gl_PointSize = 2.0;\n\n float odd = mod(float(gl_VertexID), 2.0);\n float index = (float(gl_VertexID)- odd ) / 2.0;\n float angle = 3.1415926535897932384626433832795 * 2.0 * (index / pad_count );\n float radius_ = radius - (pad_range * odd);\n\n if ( is3D){ \n gl_Position = projection * view * vec4(\n circleLimpFromLongLatRadCenterCartesian3D( center, radius_, angle) - translate, 1.0);\n v_limp = vec2(0.0, 0.0);\n return;\n }\n vec2 limp;\n if ( compass == 1 ){\n limp = circleLimpFromLongLatRadCenterMercatorCompass(center , radius_, angle);\n } else {\n // limp = circleLimpFromLongLatRadCenterMercatorRealDistancePadding(center, radius_, angle);\n limp = circleLimpFromLongLatRadCenterMercatorRealDistance(center, radius_, angle);\n }\n v_limp = limp;\n gl_Position = mercatorXYToGLPosition(limp);\n}";
|
|
52
|
+
var fragmentShader = "#version 300 es\nprecision highp float; " +
|
|
53
|
+
util_1.shaderfunctions.POLE + "\nin vec4 v_color;\nin vec2 v_limp;\nout vec4 outColor;\nvoid main() {\n if ( v_limp.x < -POLE || v_limp.x > POLE || v_limp.y < -POLE || v_limp.y > POLE ){ discard; }\n outColor = v_color;\n}";
|
|
54
|
+
var Logic = /** @class */ (function () {
|
|
55
|
+
function Logic(globe) {
|
|
110
56
|
this.globe = globe;
|
|
111
57
|
this.gl = globe.gl;
|
|
112
58
|
this.program = (0, util_1.createProgram)(this.gl, vertexShader, fragmentShader);
|
|
@@ -118,7 +64,7 @@ class Logic {
|
|
|
118
64
|
this.gl.bindAttribLocation(this.program, 4, "flag");
|
|
119
65
|
}
|
|
120
66
|
this.cameraBlockBindingPoint = 0;
|
|
121
|
-
|
|
67
|
+
var cameraBlockIndex = this.gl.getUniformBlockIndex(this.program, "CameraUniformBlock");
|
|
122
68
|
this.gl.uniformBlockBinding(this.program, cameraBlockIndex, this.cameraBlockBindingPoint);
|
|
123
69
|
this.cameraBlockTotem = programcache_1.globeProgramCache.getProgram(globe, camerauniformblock_1.default);
|
|
124
70
|
this._padCountLocation = this.gl.getUniformLocation(this.program, "pad_count");
|
|
@@ -128,7 +74,7 @@ class Logic {
|
|
|
128
74
|
this._opacity = 1.0;
|
|
129
75
|
this._padCount = 360;
|
|
130
76
|
{
|
|
131
|
-
|
|
77
|
+
var currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
|
|
132
78
|
this.gl.useProgram(this.program);
|
|
133
79
|
this.gl.uniform1i(this._compassLocation, 1);
|
|
134
80
|
this.gl.uniform1f(this._opacityLocation, 1.0);
|
|
@@ -136,10 +82,10 @@ class Logic {
|
|
|
136
82
|
this.gl.useProgram(currentProgram);
|
|
137
83
|
}
|
|
138
84
|
}
|
|
139
|
-
draw(vao, length, opaity) {
|
|
140
|
-
}
|
|
141
|
-
draw(attrBufferManager, padCount, compass, opacity) {
|
|
142
|
-
|
|
85
|
+
Logic.prototype.draw = function (vao, length, opaity) {
|
|
86
|
+
};
|
|
87
|
+
Logic.prototype.draw = function (attrBufferManager, padCount, compass, opacity) {
|
|
88
|
+
var _a = this, gl = _a.gl, program = _a.program, _padCountLocation = _a._padCountLocation, cameraBlockBindingPoint = _a.cameraBlockBindingPoint, cameraBlockTotem = _a.cameraBlockTotem, _compassLocation = _a._compassLocation;
|
|
143
89
|
gl.useProgram(program);
|
|
144
90
|
attrBufferManager.bindPaddingVAO();
|
|
145
91
|
cameraBlockTotem.bind(cameraBlockBindingPoint);
|
|
@@ -162,13 +108,14 @@ class Logic {
|
|
|
162
108
|
gl.drawArraysInstanced(gl.LINES, 0, padCount * 2, attrBufferManager.length);
|
|
163
109
|
gl.bindVertexArray(null);
|
|
164
110
|
cameraBlockTotem.unbind(cameraBlockBindingPoint);
|
|
165
|
-
}
|
|
166
|
-
free() {
|
|
111
|
+
};
|
|
112
|
+
Logic.prototype.free = function () {
|
|
167
113
|
this.gl.deleteProgram(this.program);
|
|
168
114
|
programcache_1.globeProgramCache.releaseProgram(this.globe, camerauniformblock_1.default);
|
|
169
|
-
}
|
|
170
|
-
|
|
115
|
+
};
|
|
116
|
+
return Logic;
|
|
117
|
+
}());
|
|
171
118
|
exports.PaddingProgramCache = Object.freeze({
|
|
172
|
-
getProgram: (globe)
|
|
173
|
-
releaseProgram: (globe)
|
|
119
|
+
getProgram: function (globe) { return programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic); },
|
|
120
|
+
releaseProgram: function (globe) { programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
|
|
174
121
|
});
|
|
@@ -34,10 +34,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.PaddingProgramCache = void 0;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
var util_1 = require("../../../util");
|
|
38
|
+
var camerauniformblock_1 = __importStar(require("../../totems/camerauniformblock"));
|
|
39
|
+
var programcache_1 = require("../../programcache");
|
|
40
|
+
var vertexShader = "#version 300 es " +
|
|
41
41
|
util_1.shaderfunctions.PI +
|
|
42
42
|
util_1.shaderfunctions.R +
|
|
43
43
|
util_1.shaderfunctions.POLE +
|
|
@@ -48,65 +48,11 @@ const vertexShader = `#version 300 es ` +
|
|
|
48
48
|
util_1.shaderfunctions.circleLimpFromLongLatRadCenterCartesian3D +
|
|
49
49
|
util_1.shaderfunctions.circleLimpFromLongLatRadCenterMercatorCompass +
|
|
50
50
|
util_1.shaderfunctions.circleLimpFromLongLatRadCenterMercatorRealDistancePadding +
|
|
51
|
-
util_1.shaderfunctions.circleLimpFromLongLatRadCenterMercatorRealDistance +
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
in vec4 color;
|
|
57
|
-
in float flag;
|
|
58
|
-
|
|
59
|
-
uniform int compass;
|
|
60
|
-
uniform float pad_count;
|
|
61
|
-
|
|
62
|
-
uniform float opacity;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
out vec2 v_limp;
|
|
66
|
-
out vec4 v_color;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
void main() {
|
|
70
|
-
|
|
71
|
-
float alpha_padding = z_level * z_level / (pad_range/ 100.0 );
|
|
72
|
-
if( flag == 2.0 || flag == 1.0 || radius == 0.0 || alpha_padding < 0.1 || z_level < 3.0 ) return; // 1.0 is hide
|
|
73
|
-
v_color = vec4(color.rgb, color.a * alpha_padding * opacity);
|
|
74
|
-
|
|
75
|
-
gl_PointSize = 2.0;
|
|
76
|
-
|
|
77
|
-
float odd = mod(float(gl_VertexID), 2.0);
|
|
78
|
-
float index = (float(gl_VertexID)- odd ) / 2.0;
|
|
79
|
-
float angle = 3.1415926535897932384626433832795 * 2.0 * (index / pad_count );
|
|
80
|
-
float radius_ = radius - (pad_range * odd);
|
|
81
|
-
|
|
82
|
-
if ( is3D){
|
|
83
|
-
gl_Position = projection * view * vec4(
|
|
84
|
-
circleLimpFromLongLatRadCenterCartesian3D( center, radius_, angle) - translate, 1.0);
|
|
85
|
-
v_limp = vec2(0.0, 0.0);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
vec2 limp;
|
|
89
|
-
if ( compass == 1 ){
|
|
90
|
-
limp = circleLimpFromLongLatRadCenterMercatorCompass(center , radius_, angle);
|
|
91
|
-
} else {
|
|
92
|
-
// limp = circleLimpFromLongLatRadCenterMercatorRealDistancePadding(center, radius_, angle);
|
|
93
|
-
limp = circleLimpFromLongLatRadCenterMercatorRealDistance(center, radius_, angle);
|
|
94
|
-
}
|
|
95
|
-
v_limp = limp;
|
|
96
|
-
gl_Position = mercatorXYToGLPosition(limp);
|
|
97
|
-
}`;
|
|
98
|
-
const fragmentShader = `#version 300 es
|
|
99
|
-
precision highp float; ` +
|
|
100
|
-
util_1.shaderfunctions.POLE + `
|
|
101
|
-
in vec4 v_color;
|
|
102
|
-
in vec2 v_limp;
|
|
103
|
-
out vec4 outColor;
|
|
104
|
-
void main() {
|
|
105
|
-
if ( v_limp.x < -POLE || v_limp.x > POLE || v_limp.y < -POLE || v_limp.y > POLE ){ discard; }
|
|
106
|
-
outColor = v_color;
|
|
107
|
-
}`;
|
|
108
|
-
class Logic {
|
|
109
|
-
constructor(globe) {
|
|
51
|
+
util_1.shaderfunctions.circleLimpFromLongLatRadCenterMercatorRealDistance + "\n\nin vec2 center;\nin float radius;\nin float pad_range;\nin vec4 color;\nin float flag;\n\nuniform int compass;\nuniform float pad_count;\n\nuniform float opacity;\n\n\nout vec2 v_limp;\nout vec4 v_color;\n\n\nvoid main() { \n\n float alpha_padding = z_level * z_level / (pad_range/ 100.0 );\n if( flag == 2.0 || flag == 1.0 || radius == 0.0 || alpha_padding < 0.1 || z_level < 3.0 ) return; // 1.0 is hide \n v_color = vec4(color.rgb, color.a * alpha_padding * opacity);\n\n gl_PointSize = 2.0;\n\n float odd = mod(float(gl_VertexID), 2.0);\n float index = (float(gl_VertexID)- odd ) / 2.0;\n float angle = 3.1415926535897932384626433832795 * 2.0 * (index / pad_count );\n float radius_ = radius - (pad_range * odd);\n\n if ( is3D){ \n gl_Position = projection * view * vec4(\n circleLimpFromLongLatRadCenterCartesian3D( center, radius_, angle) - translate, 1.0);\n v_limp = vec2(0.0, 0.0);\n return;\n }\n vec2 limp;\n if ( compass == 1 ){\n limp = circleLimpFromLongLatRadCenterMercatorCompass(center , radius_, angle);\n } else {\n // limp = circleLimpFromLongLatRadCenterMercatorRealDistancePadding(center, radius_, angle);\n limp = circleLimpFromLongLatRadCenterMercatorRealDistance(center, radius_, angle);\n }\n v_limp = limp;\n gl_Position = mercatorXYToGLPosition(limp);\n}";
|
|
52
|
+
var fragmentShader = "#version 300 es\nprecision highp float; " +
|
|
53
|
+
util_1.shaderfunctions.POLE + "\nin vec4 v_color;\nin vec2 v_limp;\nout vec4 outColor;\nvoid main() {\n if ( v_limp.x < -POLE || v_limp.x > POLE || v_limp.y < -POLE || v_limp.y > POLE ){ discard; }\n outColor = v_color;\n}";
|
|
54
|
+
var Logic = /** @class */ (function () {
|
|
55
|
+
function Logic(globe) {
|
|
110
56
|
this.globe = globe;
|
|
111
57
|
this.gl = globe.gl;
|
|
112
58
|
this.program = (0, util_1.createProgram)(this.gl, vertexShader, fragmentShader);
|
|
@@ -118,7 +64,7 @@ class Logic {
|
|
|
118
64
|
this.gl.bindAttribLocation(this.program, 4, "flag");
|
|
119
65
|
}
|
|
120
66
|
this.cameraBlockBindingPoint = 0;
|
|
121
|
-
|
|
67
|
+
var cameraBlockIndex = this.gl.getUniformBlockIndex(this.program, "CameraUniformBlock");
|
|
122
68
|
this.gl.uniformBlockBinding(this.program, cameraBlockIndex, this.cameraBlockBindingPoint);
|
|
123
69
|
this.cameraBlockTotem = programcache_1.globeProgramCache.getProgram(globe, camerauniformblock_1.default);
|
|
124
70
|
this._padCountLocation = this.gl.getUniformLocation(this.program, "pad_count");
|
|
@@ -128,7 +74,7 @@ class Logic {
|
|
|
128
74
|
this._opacity = 1.0;
|
|
129
75
|
this._padCount = 360;
|
|
130
76
|
{
|
|
131
|
-
|
|
77
|
+
var currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
|
|
132
78
|
this.gl.useProgram(this.program);
|
|
133
79
|
this.gl.uniform1i(this._compassLocation, 1);
|
|
134
80
|
this.gl.uniform1f(this._opacityLocation, 1.0);
|
|
@@ -136,8 +82,8 @@ class Logic {
|
|
|
136
82
|
this.gl.useProgram(currentProgram);
|
|
137
83
|
}
|
|
138
84
|
}
|
|
139
|
-
draw(attrBufferManager, padCount, compass, opacity) {
|
|
140
|
-
|
|
85
|
+
Logic.prototype.draw = function (attrBufferManager, padCount, compass, opacity) {
|
|
86
|
+
var _a = this, gl = _a.gl, program = _a.program, _padCountLocation = _a._padCountLocation, cameraBlockBindingPoint = _a.cameraBlockBindingPoint, cameraBlockTotem = _a.cameraBlockTotem, _compassLocation = _a._compassLocation;
|
|
141
87
|
gl.useProgram(program);
|
|
142
88
|
attrBufferManager.bindPaddingVAO();
|
|
143
89
|
cameraBlockTotem.bind(cameraBlockBindingPoint);
|
|
@@ -160,13 +106,14 @@ class Logic {
|
|
|
160
106
|
gl.drawArraysInstanced(gl.LINES, 0, padCount * 2, attrBufferManager.length);
|
|
161
107
|
gl.bindVertexArray(null);
|
|
162
108
|
cameraBlockTotem.unbind(cameraBlockBindingPoint);
|
|
163
|
-
}
|
|
164
|
-
free() {
|
|
109
|
+
};
|
|
110
|
+
Logic.prototype.free = function () {
|
|
165
111
|
this.gl.deleteProgram(this.program);
|
|
166
112
|
programcache_1.globeProgramCache.releaseProgram(this.globe, camerauniformblock_1.default);
|
|
167
|
-
}
|
|
168
|
-
|
|
113
|
+
};
|
|
114
|
+
return Logic;
|
|
115
|
+
}());
|
|
169
116
|
exports.PaddingProgramCache = Object.freeze({
|
|
170
|
-
getProgram: (globe)
|
|
171
|
-
releaseProgram: (globe)
|
|
117
|
+
getProgram: function (globe) { return programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic); },
|
|
118
|
+
releaseProgram: function (globe) { programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
|
|
172
119
|
});
|
|
@@ -1,135 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PieceOfPieProgramCache = exports.Logic = exports.ITEM_SIZE = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
var util_1 = require("../../../util");
|
|
5
|
+
var totems_1 = require("../../totems");
|
|
6
|
+
var programcache_1 = require("../../programcache");
|
|
7
|
+
var geometrytransformations_1 = require("../../../util/shaderfunctions/geometrytransformations");
|
|
8
8
|
/**
|
|
9
9
|
* TODO:
|
|
10
10
|
* 1. Triangle face looks at screen. if rotation angle is positive the last vertex must be the faintest.
|
|
11
11
|
*
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
var drawModeMap = Object.freeze({
|
|
14
14
|
LINE_STRIP: 0,
|
|
15
15
|
TRIANGLE_FAN: 1,
|
|
16
16
|
});
|
|
17
17
|
//${ circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate }
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
${totems_1.CameraUniformBlockString}
|
|
21
|
-
${geometrytransformations_1.PI}
|
|
22
|
-
${geometrytransformations_1.longLatRadToMercator}
|
|
23
|
-
${geometrytransformations_1.mercatorXYToGLPosition}
|
|
24
|
-
${geometrytransformations_1.longLatRadToCartesian3D}
|
|
25
|
-
${geometrytransformations_1.circleLimpFromLongLatRadCenterCartesian3D_accurate}
|
|
26
|
-
${geometrytransformations_1.circleLimpFromLongLatRadCenterMercatorCompass_accurate}
|
|
27
|
-
${geometrytransformations_1.cartesian3DToGLPosition}
|
|
28
|
-
|
|
29
|
-
uniform float edge_count;
|
|
30
|
-
uniform int draw_mode; // %2 => 0: LINE_STRIP, 1: TRIANGLE_FAN
|
|
31
|
-
uniform float plugin_alpha_multiplier;
|
|
32
|
-
//, lat, startAngle, tailAngle, ...rgba, radius, rgbaMode
|
|
33
|
-
// in vec2 center; // long, lat in radian
|
|
34
|
-
in vec2 center2d;
|
|
35
|
-
in vec3 center3d;
|
|
36
|
-
in float start_angle2d;
|
|
37
|
-
in float tail_angle2d;
|
|
38
|
-
|
|
39
|
-
in float start_angle3d;
|
|
40
|
-
in float tail_angle3d;
|
|
41
|
-
|
|
42
|
-
in vec4 color;
|
|
43
|
-
in float radius; // in meter
|
|
44
|
-
in float color_mode; // 0.0: constant, 1.0: fading, 2.0: hide
|
|
45
|
-
// flat out int vid;
|
|
46
|
-
// flat out float v_phase;
|
|
47
|
-
out vec2 v_pos;
|
|
48
|
-
out vec4 v_color;
|
|
49
|
-
// flat out float v_angle;
|
|
50
|
-
|
|
51
|
-
void main() {
|
|
52
|
-
// vid = gl_VertexID;
|
|
53
|
-
if (color_mode == 2.0 || radius == 0.0) { return; }
|
|
54
|
-
float start_angle, tail_angle;
|
|
55
|
-
if (is3D) {
|
|
56
|
-
start_angle = start_angle3d;
|
|
57
|
-
tail_angle = tail_angle3d;
|
|
58
|
-
} else {
|
|
59
|
-
start_angle = start_angle2d;
|
|
60
|
-
tail_angle = tail_angle2d;
|
|
61
|
-
}
|
|
62
|
-
float color_mode_ = color_mode;
|
|
63
|
-
if ( draw_mode == 0 && color_mode == 1.0) {color_mode_ = 0.0;}
|
|
64
|
-
float vertexID = float(gl_VertexID);
|
|
65
|
-
float radius_ = radius;
|
|
66
|
-
float alpha = plugin_alpha_multiplier;
|
|
67
|
-
if (draw_mode == 1) { // TRIANGLE_FAN
|
|
68
|
-
if (gl_VertexID == 0) {
|
|
69
|
-
radius_ = 0.0;
|
|
70
|
-
if ( color_mode == 1.0 ) { alpha = 0.0; }
|
|
71
|
-
}
|
|
72
|
-
vertexID -= 1.0;
|
|
73
|
-
}
|
|
74
|
-
float phase = ( vertexID / (edge_count - 1.0) );
|
|
75
|
-
// v_angle = tail_angle;
|
|
76
|
-
|
|
77
|
-
if ( color_mode_ == 1.0 ) {
|
|
78
|
-
if ( tail_angle < 0.0 ) {
|
|
79
|
-
v_color = vec4( color.rgb , color.a * ( 1.0 - phase ) * alpha );
|
|
80
|
-
} else {
|
|
81
|
-
v_color = vec4( color.rgb , color.a * phase * alpha );
|
|
82
|
-
}
|
|
83
|
-
} else {
|
|
84
|
-
v_color = vec4( color.rgb , color.a * alpha );
|
|
85
|
-
}
|
|
86
|
-
if ( color_mode == 0.0 && draw_mode == 1 ) {
|
|
87
|
-
v_color.a /= 2.0;
|
|
88
|
-
}
|
|
89
|
-
float angle;
|
|
90
|
-
if ( tail_angle > 0.0 ) {
|
|
91
|
-
angle = tail_angle * (-phase + 1.0) + start_angle;
|
|
92
|
-
} else {
|
|
93
|
-
angle = tail_angle * phase + start_angle;
|
|
94
|
-
}
|
|
95
|
-
if (is3D) {
|
|
96
|
-
vec3 pos = circleLimpFromLongLatRadCenterCartesian3D_accurate(center3d, radius_, angle);
|
|
97
|
-
v_pos = vec2(0.0, 0.0);
|
|
98
|
-
gl_Position = cartesian3DToGLPosition(pos);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
vec2 pos2 = circleLimpFromLongLatRadCenterMercatorCompass_accurate(center2d, radius_, angle);
|
|
102
|
-
v_pos = pos2;
|
|
103
|
-
gl_Position = mercatorXYToGLPosition(pos2);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
gl_PointSize = 10.0;
|
|
107
|
-
}`;
|
|
108
|
-
const fragmentShaderSource = `#version 300 es` + geometrytransformations_1.POLE + geometrytransformations_1.PI + `
|
|
109
|
-
precision highp float;
|
|
110
|
-
// flat in int vid;
|
|
111
|
-
in vec4 v_color;
|
|
112
|
-
in vec2 v_pos;
|
|
113
|
-
// flat in float v_phase;
|
|
114
|
-
// in float v_angle;
|
|
115
|
-
out vec4 outColor;
|
|
116
|
-
void main() {
|
|
117
|
-
// if( vid % 2 == 0 ) { discard; }
|
|
118
|
-
// if ( mod(v_angle, PI / 36.0 ) < (PI / 72.0)) { discard; }
|
|
119
|
-
// if ( mod(v_angle * v_phase, PI / 90.0 ) < (PI / 180.0)) { discard; }
|
|
120
|
-
if ( v_pos.x < -POLE || v_pos.x > POLE || v_pos.y < -POLE || v_pos.y > POLE ) { discard; }
|
|
121
|
-
outColor = v_color;
|
|
122
|
-
}`;
|
|
18
|
+
var vertexShaderSource = "#version 300 es\n\n".concat(totems_1.CameraUniformBlockString, " \n").concat(geometrytransformations_1.PI, " \n").concat(geometrytransformations_1.longLatRadToMercator, "\n").concat(geometrytransformations_1.mercatorXYToGLPosition, "\n").concat(geometrytransformations_1.longLatRadToCartesian3D, "\n").concat(geometrytransformations_1.circleLimpFromLongLatRadCenterCartesian3D_accurate, "\n").concat(geometrytransformations_1.circleLimpFromLongLatRadCenterMercatorCompass_accurate, "\n").concat(geometrytransformations_1.cartesian3DToGLPosition, "\n\nuniform float edge_count;\nuniform int draw_mode; // %2 => 0: LINE_STRIP, 1: TRIANGLE_FAN \nuniform float plugin_alpha_multiplier;\n//, lat, startAngle, tailAngle, ...rgba, radius, rgbaMode\n// in vec2 center; // long, lat in radian\nin vec2 center2d;\nin vec3 center3d;\nin float start_angle2d; \nin float tail_angle2d;\n\nin float start_angle3d;\nin float tail_angle3d;\n\nin vec4 color;\nin float radius; // in meter\nin float color_mode; // 0.0: constant, 1.0: fading, 2.0: hide\n// flat out int vid;\n// flat out float v_phase;\nout vec2 v_pos;\nout vec4 v_color;\n// flat out float v_angle;\n\nvoid main() {\n // vid = gl_VertexID;\n if (color_mode == 2.0 || radius == 0.0) { return; }\n float start_angle, tail_angle;\n if (is3D) {\n start_angle = start_angle3d;\n tail_angle = tail_angle3d;\n } else {\n start_angle = start_angle2d;\n tail_angle = tail_angle2d;\n }\n float color_mode_ = color_mode;\n if ( draw_mode == 0 && color_mode == 1.0) {color_mode_ = 0.0;}\n float vertexID = float(gl_VertexID);\n float radius_ = radius;\n float alpha = plugin_alpha_multiplier;\n if (draw_mode == 1) { // TRIANGLE_FAN\n if (gl_VertexID == 0) { \n radius_ = 0.0; \n if ( color_mode == 1.0 ) { alpha = 0.0; }\n }\n vertexID -= 1.0;\n }\n float phase = ( vertexID / (edge_count - 1.0) );\n // v_angle = tail_angle;\n \n if ( color_mode_ == 1.0 ) {\n if ( tail_angle < 0.0 ) {\n v_color = vec4( color.rgb , color.a * ( 1.0 - phase ) * alpha );\n } else {\n v_color = vec4( color.rgb , color.a * phase * alpha );\n }\n } else {\n v_color = vec4( color.rgb , color.a * alpha );\n }\n if ( color_mode == 0.0 && draw_mode == 1 ) {\n v_color.a /= 2.0;\n }\n float angle;\n if ( tail_angle > 0.0 ) { \n angle = tail_angle * (-phase + 1.0) + start_angle;\n } else {\n angle = tail_angle * phase + start_angle;\n }\n if (is3D) {\n vec3 pos = circleLimpFromLongLatRadCenterCartesian3D_accurate(center3d, radius_, angle);\n v_pos = vec2(0.0, 0.0);\n gl_Position = cartesian3DToGLPosition(pos);\n }\n else {\n vec2 pos2 = circleLimpFromLongLatRadCenterMercatorCompass_accurate(center2d, radius_, angle);\n v_pos = pos2;\n gl_Position = mercatorXYToGLPosition(pos2);\n }\n\n gl_PointSize = 10.0;\n}");
|
|
19
|
+
var fragmentShaderSource = "#version 300 es" + geometrytransformations_1.POLE + geometrytransformations_1.PI + "\nprecision highp float;\n// flat in int vid;\nin vec4 v_color;\nin vec2 v_pos;\n// flat in float v_phase;\n// in float v_angle;\nout vec4 outColor;\nvoid main() {\n // if( vid % 2 == 0 ) { discard; }\n // if ( mod(v_angle, PI / 36.0 ) < (PI / 72.0)) { discard; }\n // if ( mod(v_angle * v_phase, PI / 90.0 ) < (PI / 180.0)) { discard; }\n if ( v_pos.x < -POLE || v_pos.x > POLE || v_pos.y < -POLE || v_pos.y > POLE ) { discard; }\n outColor = v_color;\n}";
|
|
123
20
|
exports.ITEM_SIZE = 10;
|
|
124
|
-
|
|
125
|
-
|
|
21
|
+
var Logic = /** @class */ (function () {
|
|
22
|
+
function Logic(globe) {
|
|
126
23
|
this.globe = globe;
|
|
127
24
|
this.gl = globe.gl;
|
|
128
25
|
this._lastMode = 0;
|
|
129
26
|
this._lastEdgeCount = 64;
|
|
130
27
|
this._lastAlphaMultiplier = 1.0;
|
|
131
28
|
this.program = (0, util_1.createProgram)(this.gl, vertexShaderSource, fragmentShaderSource);
|
|
132
|
-
|
|
29
|
+
var _a = this, gl = _a.gl, program = _a.program;
|
|
133
30
|
{ // set attributes locations
|
|
134
31
|
gl.bindAttribLocation(program, 0, 'center2d');
|
|
135
32
|
gl.bindAttribLocation(program, 1, 'center3d');
|
|
@@ -147,20 +44,20 @@ class Logic {
|
|
|
147
44
|
this._edgeCountLocation = gl.getUniformLocation(program, 'edge_count');
|
|
148
45
|
this._draw_modeLocation = gl.getUniformLocation(program, 'draw_mode');
|
|
149
46
|
this._plugin_alpha_multiplierLocation = gl.getUniformLocation(program, 'plugin_alpha_multiplier');
|
|
150
|
-
|
|
47
|
+
var currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
|
|
151
48
|
gl.useProgram(program);
|
|
152
49
|
gl.uniform1i(this._draw_modeLocation, this._lastMode);
|
|
153
50
|
gl.uniform1f(this._edgeCountLocation, this._lastEdgeCount);
|
|
154
51
|
gl.uniform1f(this._plugin_alpha_multiplierLocation, 1.0);
|
|
155
52
|
this.cameraBlockBindingPoint = 0;
|
|
156
53
|
this.cameraBlockTotem = programcache_1.globeProgramCache.getProgram(globe, totems_1.CameraUniformBlockTotem);
|
|
157
|
-
|
|
54
|
+
var cameraBlockIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
|
|
158
55
|
gl.uniformBlockBinding(program, cameraBlockIndex, this.cameraBlockBindingPoint);
|
|
159
56
|
gl.useProgram(currentProgram);
|
|
160
57
|
}
|
|
161
58
|
}
|
|
162
|
-
draw(length, vao, edgeCount, alphaMultiplier, drawMode) {
|
|
163
|
-
|
|
59
|
+
Logic.prototype.draw = function (length, vao, edgeCount, alphaMultiplier, drawMode) {
|
|
60
|
+
var _a = this, gl = _a.gl, program = _a.program, cameraBlockTotem = _a.cameraBlockTotem, cameraBlockBindingPoint = _a.cameraBlockBindingPoint;
|
|
164
61
|
// gl.disable(gl.DEPTH_TEST);
|
|
165
62
|
gl.useProgram(program);
|
|
166
63
|
if (drawMode !== this._lastMode) {
|
|
@@ -175,19 +72,19 @@ class Logic {
|
|
|
175
72
|
gl.uniform1f(this._plugin_alpha_multiplierLocation, alphaMultiplier);
|
|
176
73
|
this._lastAlphaMultiplier = alphaMultiplier;
|
|
177
74
|
}
|
|
178
|
-
|
|
75
|
+
var overdraw = drawModeMap[drawMode];
|
|
179
76
|
cameraBlockTotem.bind(cameraBlockBindingPoint);
|
|
180
77
|
gl.bindVertexArray(vao);
|
|
181
78
|
gl.drawArraysInstanced(gl[drawMode], 0, edgeCount + overdraw, length);
|
|
182
79
|
cameraBlockTotem.unbind(cameraBlockBindingPoint);
|
|
183
80
|
gl.bindVertexArray(null);
|
|
184
81
|
// gl.enable(gl.DEPTH_TEST);
|
|
185
|
-
}
|
|
186
|
-
free() {
|
|
82
|
+
};
|
|
83
|
+
Logic.prototype.free = function () {
|
|
187
84
|
programcache_1.noRegisterGlobeProgramCache.releaseProgram(this.globe, totems_1.CameraUniformBlockTotem);
|
|
188
85
|
this.gl.deleteProgram(this.program);
|
|
189
86
|
this.program = null;
|
|
190
|
-
}
|
|
87
|
+
};
|
|
191
88
|
/**
|
|
192
89
|
* in vec2 center; // long, lat in radian
|
|
193
90
|
in float start_angle; // the start of partial circle from bearing point
|
|
@@ -196,68 +93,68 @@ class Logic {
|
|
|
196
93
|
in float radius; // in meter
|
|
197
94
|
in float color_mode; // 0.0: constant, 1.0: fading, 2.0: hide
|
|
198
95
|
*/
|
|
199
|
-
createVAO(center2dObj, center3dObj, startAngle2DObj, tailAngle2DObj, startAngle3DObj, tailAngle3DObj, colorObj, radiusObj, colorModeObj) {
|
|
200
|
-
|
|
201
|
-
|
|
96
|
+
Logic.prototype.createVAO = function (center2dObj, center3dObj, startAngle2DObj, tailAngle2DObj, startAngle3DObj, tailAngle3DObj, colorObj, radiusObj, colorModeObj) {
|
|
97
|
+
var gl = this.gl;
|
|
98
|
+
var vao = gl.createVertexArray();
|
|
202
99
|
gl.bindVertexArray(vao);
|
|
203
100
|
{
|
|
204
|
-
|
|
101
|
+
var buffer = center2dObj.buffer, stride = center2dObj.stride, offset = center2dObj.offset;
|
|
205
102
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
206
103
|
gl.enableVertexAttribArray(0);
|
|
207
104
|
gl.vertexAttribPointer(0, 2, gl.FLOAT, false, stride, offset);
|
|
208
105
|
gl.vertexAttribDivisor(0, 1);
|
|
209
106
|
}
|
|
210
107
|
{
|
|
211
|
-
|
|
108
|
+
var buffer = center3dObj.buffer, stride = center3dObj.stride, offset = center3dObj.offset;
|
|
212
109
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
213
110
|
gl.enableVertexAttribArray(1);
|
|
214
111
|
gl.vertexAttribPointer(1, 3, gl.FLOAT, false, stride, offset);
|
|
215
112
|
gl.vertexAttribDivisor(1, 1);
|
|
216
113
|
}
|
|
217
114
|
{
|
|
218
|
-
|
|
115
|
+
var buffer = startAngle2DObj.buffer, stride = startAngle2DObj.stride, offset = startAngle2DObj.offset;
|
|
219
116
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
220
117
|
gl.enableVertexAttribArray(2);
|
|
221
118
|
gl.vertexAttribPointer(2, 1, gl.FLOAT, false, stride, offset);
|
|
222
119
|
gl.vertexAttribDivisor(2, 1);
|
|
223
120
|
}
|
|
224
121
|
{
|
|
225
|
-
|
|
122
|
+
var buffer = tailAngle2DObj.buffer, stride = tailAngle2DObj.stride, offset = tailAngle2DObj.offset;
|
|
226
123
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
227
124
|
gl.enableVertexAttribArray(3);
|
|
228
125
|
gl.vertexAttribPointer(3, 1, gl.FLOAT, false, stride, offset);
|
|
229
126
|
gl.vertexAttribDivisor(3, 1);
|
|
230
127
|
}
|
|
231
128
|
{
|
|
232
|
-
|
|
129
|
+
var buffer = startAngle3DObj.buffer, stride = startAngle3DObj.stride, offset = startAngle3DObj.offset;
|
|
233
130
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
234
131
|
gl.enableVertexAttribArray(4);
|
|
235
132
|
gl.vertexAttribPointer(4, 1, gl.FLOAT, false, stride, offset);
|
|
236
133
|
gl.vertexAttribDivisor(4, 1);
|
|
237
134
|
}
|
|
238
135
|
{
|
|
239
|
-
|
|
136
|
+
var buffer = tailAngle3DObj.buffer, stride = tailAngle3DObj.stride, offset = tailAngle3DObj.offset;
|
|
240
137
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
241
138
|
gl.enableVertexAttribArray(5);
|
|
242
139
|
gl.vertexAttribPointer(5, 1, gl.FLOAT, false, stride, offset);
|
|
243
140
|
gl.vertexAttribDivisor(5, 1);
|
|
244
141
|
}
|
|
245
142
|
{
|
|
246
|
-
|
|
143
|
+
var buffer = colorObj.buffer, stride = colorObj.stride, offset = colorObj.offset;
|
|
247
144
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
248
145
|
gl.enableVertexAttribArray(6);
|
|
249
146
|
gl.vertexAttribPointer(6, 4, gl.FLOAT, false, stride, offset);
|
|
250
147
|
gl.vertexAttribDivisor(6, 1);
|
|
251
148
|
}
|
|
252
149
|
{
|
|
253
|
-
|
|
150
|
+
var buffer = radiusObj.buffer, stride = radiusObj.stride, offset = radiusObj.offset;
|
|
254
151
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
255
152
|
gl.enableVertexAttribArray(7);
|
|
256
153
|
gl.vertexAttribPointer(7, 1, gl.FLOAT, false, stride, offset);
|
|
257
154
|
gl.vertexAttribDivisor(7, 1);
|
|
258
155
|
}
|
|
259
156
|
{
|
|
260
|
-
|
|
157
|
+
var buffer = colorModeObj.buffer, stride = colorModeObj.stride, offset = colorModeObj.offset;
|
|
261
158
|
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
262
159
|
gl.enableVertexAttribArray(8);
|
|
263
160
|
gl.vertexAttribPointer(8, 1, gl.FLOAT, false, stride, offset);
|
|
@@ -266,10 +163,11 @@ class Logic {
|
|
|
266
163
|
gl.bindVertexArray(null);
|
|
267
164
|
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
|
268
165
|
return vao;
|
|
269
|
-
}
|
|
270
|
-
|
|
166
|
+
};
|
|
167
|
+
return Logic;
|
|
168
|
+
}());
|
|
271
169
|
exports.Logic = Logic;
|
|
272
170
|
exports.PieceOfPieProgramCache = Object.freeze({
|
|
273
|
-
get: (globe)
|
|
274
|
-
release: (globe)
|
|
171
|
+
get: function (globe) { return programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic); },
|
|
172
|
+
release: function (globe) { return programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
|
|
275
173
|
});
|