@pirireis/webglobeplugins 0.9.11 → 0.9.12

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