@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.
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 +80 -78
  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 +16 -14
  9. package/Math/methods.js +72 -67
  10. package/Math/plane.js +18 -16
  11. package/Math/quaternion.js +49 -45
  12. package/Math/utils.js +2 -2
  13. package/Math/vec3.js +45 -42
  14. package/algorithms/search-binary.js +4 -4
  15. package/altitude-locator/draw-subset-obj.js +8 -7
  16. package/altitude-locator/plugin.js +113 -97
  17. package/arrowfield/adaptor.js +4 -3
  18. package/arrowfield/index.js +2 -2
  19. package/arrowfield/plugin.js +65 -62
  20. package/bearing-line/index.js +1 -1
  21. package/bearing-line/plugin.js +225 -200
  22. package/circle-line-chain/chain-list-map.js +88 -82
  23. package/circle-line-chain/plugin.js +154 -129
  24. package/circle-line-chain/util.js +1 -1
  25. package/compass-rose/compass-rose-padding-flat.js +126 -104
  26. package/compass-rose/compass-text-writer.js +70 -62
  27. package/compass-rose/index.js +2 -2
  28. package/compassrose/compassrose.js +50 -46
  29. package/compassrose/index.js +1 -1
  30. package/heatwave/index.js +2 -2
  31. package/heatwave/isobar/objectarraylabels.js +48 -44
  32. package/heatwave/isobar/plugin.js +123 -104
  33. package/heatwave/isobar/quadtreecontours.js +92 -76
  34. package/heatwave/plugins/heatwaveglobeshell.js +87 -69
  35. package/index.js +11 -11
  36. package/package.json +1 -1
  37. package/partialrings/buffer-manager.js +64 -32
  38. package/partialrings/index.js +1 -1
  39. package/partialrings/plugin.js +84 -48
  40. package/partialrings/program.js +47 -136
  41. package/pin/pin-object-array.js +86 -83
  42. package/pin/pin-point-totem.js +22 -21
  43. package/point-heat-map/adaptors/timetracksplugin-format-to-this.js +10 -10
  44. package/point-heat-map/plugin-webworker.js +45 -40
  45. package/point-heat-map/point-to-heat-map-flow.js +42 -40
  46. package/point-tracks/key-methods.js +1 -1
  47. package/point-tracks/plugin.js +142 -127
  48. package/programs/arrowfield/index.js +1 -1
  49. package/programs/arrowfield/logic.js +62 -170
  50. package/programs/arrowfield/object.js +35 -33
  51. package/programs/data2legend/density-to-legend.js +21 -45
  52. package/programs/data2legend/point-to-density-texture.js +27 -52
  53. package/programs/float2legendwithratio/index.js +1 -1
  54. package/programs/float2legendwithratio/logic.js +42 -88
  55. package/programs/float2legendwithratio/object.js +46 -43
  56. package/programs/globe-util/is-globe-moved.js +11 -10
  57. package/programs/globeshell/index.js +1 -1
  58. package/programs/globeshell/wiggle/index.js +1 -1
  59. package/programs/globeshell/wiggle/logic.js +98 -191
  60. package/programs/globeshell/wiggle/object.js +35 -33
  61. package/programs/helpers/blender/program.js +19 -36
  62. package/programs/helpers/fadeaway/index.js +1 -1
  63. package/programs/helpers/fadeaway/logic.js +13 -35
  64. package/programs/helpers/fadeaway/object.js +10 -9
  65. package/programs/helpers/index.js +1 -1
  66. package/programs/index.js +8 -8
  67. package/programs/line-on-globe/angled-line.js +32 -91
  68. package/programs/line-on-globe/circle-accurate-3d.js +32 -82
  69. package/programs/line-on-globe/circle-accurate-flat.js +50 -108
  70. package/programs/line-on-globe/circle-accurate.js +33 -103
  71. package/programs/line-on-globe/circle.js +32 -97
  72. package/programs/line-on-globe/degree-padding-around-circle-3d.js +33 -83
  73. package/programs/line-on-globe/lines-color-instanced-flat.js +34 -79
  74. package/programs/line-on-globe/linestrip.js +39 -100
  75. package/programs/line-on-globe/naive-accurate-flexible.js +48 -118
  76. package/programs/line-on-globe/to-the-surface.js +29 -58
  77. package/programs/line-on-globe/util.js +1 -1
  78. package/programs/picking/pickable-renderer.js +33 -117
  79. package/programs/point-on-globe/element-globe-surface-glow.js +38 -78
  80. package/programs/point-on-globe/element-point-glow.js +35 -103
  81. package/programs/point-on-globe/square-pixel-point.js +27 -76
  82. package/programs/programcache.js +13 -13
  83. package/programs/rings/distancering/circleflatprogram.js +21 -63
  84. package/programs/rings/distancering/circlepaddingfreeangleprogram.js +145 -156
  85. package/programs/rings/distancering/circlepaddysharedbuffer.js +197 -121
  86. package/programs/rings/distancering/index.js +4 -4
  87. package/programs/rings/distancering/paddyflatprogram.js +20 -73
  88. package/programs/rings/distancering/paddyflatprogram2d.js +22 -75
  89. package/programs/rings/distancering/paddyflatprogram3d.js +20 -73
  90. package/programs/rings/partial-ring/piece-of-pie.js +35 -137
  91. package/programs/totems/camerauniformblock.js +51 -64
  92. package/programs/totems/canvas-webglobe-info.js +40 -48
  93. package/programs/totems/gpu-selection-uniform-block.js +40 -44
  94. package/programs/totems/index.js +1 -1
  95. package/programs/two-d/pixel-padding-for-compass.js +29 -90
  96. package/programs/util.js +7 -6
  97. package/programs/vectorfields/index.js +1 -1
  98. package/programs/vectorfields/logics/drawrectangleparticles.js +29 -70
  99. package/programs/vectorfields/logics/index.js +3 -3
  100. package/programs/vectorfields/logics/pixelbased.js +35 -91
  101. package/programs/vectorfields/logics/ubo.js +25 -31
  102. package/programs/vectorfields/pingpongbuffermanager.js +34 -30
  103. package/rangerings/index.js +4 -4
  104. package/rangerings/plugin.js +252 -202
  105. package/rangerings/rangeringangletext.js +120 -108
  106. package/rangerings/ring-account.js +69 -52
  107. package/shaders/fragment-toy/firework.js +1 -55
  108. package/shaders/fragment-toy/singularity.js +1 -55
  109. package/timetracks/adaptors-line-strip.js +37 -26
  110. package/timetracks/adaptors.js +61 -47
  111. package/timetracks/index.js +4 -4
  112. package/timetracks/plugin-line-strip.js +63 -59
  113. package/timetracks/plugin.js +69 -65
  114. package/timetracks/program-line-strip.js +103 -296
  115. package/timetracks/program.js +113 -419
  116. package/timetracks/programpoint-line-strip.js +44 -97
  117. package/timetracks/programpoint.js +44 -90
  118. package/util/account/bufferoffsetmanager.js +95 -72
  119. package/util/account/index.js +1 -1
  120. package/util/account/single-attribute-buffer-management/buffer-manager.js +43 -39
  121. package/util/account/single-attribute-buffer-management/buffer-orchestrator.js +94 -64
  122. package/util/account/single-attribute-buffer-management/index.js +3 -3
  123. package/util/account/single-attribute-buffer-management/object-store.js +30 -28
  124. package/util/account/util.js +4 -2
  125. package/util/algorithms/search-binary.js +4 -4
  126. package/util/check/get.js +5 -5
  127. package/util/check/typecheck.js +15 -13
  128. package/util/geometry/index.js +11 -9
  129. package/util/gl-util/buffer/attribute-loader.js +20 -8
  130. package/util/gl-util/buffer/index.js +1 -1
  131. package/util/gl-util/draw-options/methods.js +7 -7
  132. package/util/gl-util/uniform-block/manager.js +67 -55
  133. package/util/heatwavedatamanager/datamanager.js +116 -56
  134. package/util/heatwavedatamanager/index.js +2 -2
  135. package/util/heatwavedatamanager/pointcoordinatesdatacalculator.js +40 -37
  136. package/util/heatwavedatamanager/pointcoordsmeta.js +10 -9
  137. package/util/index.js +6 -6
  138. package/util/interpolation/timetrack/index.js +1 -1
  139. package/util/interpolation/timetrack/timetrack-interpolator.js +29 -27
  140. package/util/interpolation/timetrack/web-worker-str.js +1 -179
  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 +52 -46
  146. package/util/programs/draw-texture-on-canvas.js +21 -39
  147. package/util/programs/shapesonglobe.js +64 -104
  148. package/util/programs/supersampletotextures.js +39 -45
  149. package/util/programs/texturetoglobe.js +48 -98
  150. package/util/shaderfunctions/geometrytransformations.js +27 -322
  151. package/util/shaderfunctions/nodata.js +1 -7
  152. package/util/shaderfunctions/noisefunctions.js +9 -39
  153. package/util/surface-line-data/arcs-to-cuts.js +23 -20
  154. package/util/webglobe/rasteroverlay.js +37 -35
  155. package/util/webglobjectbuilders.js +60 -55
  156. package/util/webglobjectbuilders1.js +49 -48
  157. package/waveparticles/adaptor.js +7 -6
  158. package/waveparticles/index.js +2 -2
  159. package/waveparticles/plugin.js +84 -79
  160. package/wind/imagetovectorfieldandmagnitude.js +15 -15
  161. package/wind/index.js +4 -4
  162. package/wind/plugin.js +251 -453
  163. package/wind/vectorfieldimage.js +5 -5
  164. package/write-text/attached-text-writer.js +48 -46
  165. package/write-text/context-text.js +58 -51
  166. 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
- 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 ` +
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
- 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) {
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
- const cameraBlockIndex = this.gl.getUniformBlockIndex(this.program, "CameraUniformBlock");
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
- const currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
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
- const { gl, program, _padCountLocation, cameraBlockBindingPoint, cameraBlockTotem, _compassLocation } = this;
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) => { return programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic); },
173
- releaseProgram: (globe) => { programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
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
- 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 ` +
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
- 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) {
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
- const cameraBlockIndex = this.gl.getUniformBlockIndex(this.program, "CameraUniformBlock");
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
- const currentProgram = this.gl.getParameter(this.gl.CURRENT_PROGRAM);
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
- const { gl, program, _padCountLocation, cameraBlockBindingPoint, cameraBlockTotem, _compassLocation } = this;
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) => { return programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic); },
171
- releaseProgram: (globe) => { programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
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
- 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");
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
- const drawModeMap = Object.freeze({
13
+ var drawModeMap = Object.freeze({
14
14
  LINE_STRIP: 0,
15
15
  TRIANGLE_FAN: 1,
16
16
  });
17
17
  //${ circleLimpFromLongLatRadCenterMercatorRealDistanceNew_accurate }
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
- }`;
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
- class Logic {
125
- constructor(globe) {
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
- const { gl, program } = this;
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
- const currentProgram = gl.getParameter(gl.CURRENT_PROGRAM);
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
- const cameraBlockIndex = gl.getUniformBlockIndex(program, "CameraUniformBlock");
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
- const { gl, program, cameraBlockTotem, cameraBlockBindingPoint } = this;
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
- const overdraw = drawModeMap[drawMode];
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
- const { gl } = this;
201
- const vao = gl.createVertexArray();
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
- const { buffer, stride, offset } = center2dObj;
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
- const { buffer, stride, offset } = center3dObj;
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
- const { buffer, stride, offset } = startAngle2DObj;
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
- const { buffer, stride, offset } = tailAngle2DObj;
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
- const { buffer, stride, offset } = startAngle3DObj;
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
- const { buffer, stride, offset } = tailAngle3DObj;
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
- const { buffer, stride, offset } = colorObj;
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
- const { buffer, stride, offset } = radiusObj;
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
- const { buffer, stride, offset } = colorModeObj;
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) => programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic),
274
- release: (globe) => programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic)
171
+ get: function (globe) { return programcache_1.noRegisterGlobeProgramCache.getProgram(globe, Logic); },
172
+ release: function (globe) { return programcache_1.noRegisterGlobeProgramCache.releaseProgram(globe, Logic); }
275
173
  });