@pirireis/webglobeplugins 0.9.11 → 0.9.13

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