geojs 1.6.2 → 1.6.6

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 (51) hide show
  1. package/.github/workflows/main.yml +1 -1
  2. package/.nvmrc +1 -0
  3. package/CHANGELOG.md +19 -1
  4. package/README.md +14 -9
  5. package/geo.js +821 -395
  6. package/geo.lean.js +820 -394
  7. package/geo.lean.min.js +3 -3
  8. package/geo.min.js +4 -4
  9. package/package.json +8 -10
  10. package/src/annotation.js +11 -7
  11. package/src/annotationLayer.js +13 -9
  12. package/src/camera.js +5 -5
  13. package/src/canvas/pixelmapFeature.js +187 -0
  14. package/src/choroplethFeature.js +1 -1
  15. package/src/domRenderer.js +2 -1
  16. package/src/featureLayer.js +1 -1
  17. package/src/fileReader.js +2 -2
  18. package/src/imageTile.js +2 -1
  19. package/src/isolineFeature.js +1 -1
  20. package/src/layer.js +4 -2
  21. package/src/lineFeature.js +3 -3
  22. package/src/map.js +17 -15
  23. package/src/mapInteractor.js +17 -17
  24. package/src/markerFeature.js +2 -2
  25. package/src/meshFeature.js +1 -1
  26. package/src/osmLayer.js +2 -0
  27. package/src/pixelmapFeature.js +52 -228
  28. package/src/pointFeature.js +1 -1
  29. package/src/polygonFeature.js +3 -3
  30. package/src/quadFeature.js +1 -1
  31. package/src/registry.js +2 -2
  32. package/src/svg/svgRenderer.js +3 -3
  33. package/src/tileCache.js +1 -1
  34. package/src/tileLayer.js +10 -10
  35. package/src/trackFeature.js +19 -19
  36. package/src/transform.js +8 -9
  37. package/src/typedef.js +2 -0
  38. package/src/ui/sliderWidget.js +1 -1
  39. package/src/util/clustering.js +3 -3
  40. package/src/util/color.js +1 -1
  41. package/src/util/common.js +7 -7
  42. package/src/util/throttle.js +1 -1
  43. package/src/vtkjs/pointFeature.js +1 -1
  44. package/src/webgl/index.js +2 -0
  45. package/src/webgl/lookupTable2D.js +122 -0
  46. package/src/webgl/markerFeature.js +1 -1
  47. package/src/webgl/pixelmapFeature.frag +47 -0
  48. package/src/webgl/pixelmapFeature.js +172 -0
  49. package/src/webgl/pointFeature.js +1 -1
  50. package/src/webgl/quadFeature.js +32 -1
  51. package/src/webgl/webglRenderer.js +1 -0
@@ -158,7 +158,7 @@ var webgl_quadFeature = function (arg) {
158
158
  * Build this feature.
159
159
  */
160
160
  this._build = function () {
161
- var mapper, mat, prog, srctex, unicrop, unicropsource, geom, context;
161
+ var mapper, mat, prog, srctex, unicrop, unicropsource, geom, context, sampler2d;
162
162
 
163
163
  if (!m_this.position()) {
164
164
  return;
@@ -183,6 +183,10 @@ var webgl_quadFeature = function (arg) {
183
183
  prog.addUniform(new vgl.projectionUniform('projectionMatrix'));
184
184
  prog.addUniform(new vgl.floatUniform('opacity', 1.0));
185
185
  prog.addUniform(new vgl.floatUniform('zOffset', 0.0));
186
+ /* Use texture unit 0 */
187
+ sampler2d = new vgl.uniform(vgl.GL.INT, 'sampler2d');
188
+ sampler2d.set(0);
189
+ prog.addUniform(sampler2d);
186
190
  context = m_this.renderer()._glContext();
187
191
  unicrop = new vgl.uniform(context.FLOAT_VEC2, 'crop');
188
192
  unicrop.set([1.0, 1.0]);
@@ -194,6 +198,9 @@ var webgl_quadFeature = function (arg) {
194
198
  context.VERTEX_SHADER, context, vertexShaderImage));
195
199
  prog.addShader(vgl.getCachedShader(
196
200
  context.FRAGMENT_SHADER, context, fragmentShaderImage));
201
+ if (m_this._hookBuild) {
202
+ m_this._hookBuild(prog);
203
+ }
197
204
  mat.addAttribute(prog);
198
205
  mat.addAttribute(new vgl.blend());
199
206
  /* This is similar to vgl.planeSource */
@@ -355,6 +362,9 @@ var webgl_quadFeature = function (arg) {
355
362
  cropsrc = {x0: 0, y0: 0, x1: 1, y1: 1}, quadcropsrc,
356
363
  w, h, quadw, quadh;
357
364
 
365
+ if (m_this._hookRenderImageQuads) {
366
+ m_this._hookRenderImageQuads(renderState, m_quads.imgQuads);
367
+ }
358
368
  context.bindBuffer(context.ARRAY_BUFFER, m_glBuffers.imgQuadsPosition);
359
369
  $.each(m_quads.imgQuads, function (idx, quad) {
360
370
  if (!quad.image) {
@@ -450,6 +460,27 @@ var webgl_quadFeature = function (arg) {
450
460
  m_this.modified();
451
461
  };
452
462
 
463
+ /**
464
+ * Set the image or color vertex or fragment shader.
465
+ *
466
+ * @param {string} shaderType One of `image_vertex`, `image_fragment`,
467
+ * `color_vertex`, or `color_fragment`.
468
+ * @param {string} shaderCode The shader program.
469
+ * @returns {this} The class instance on success, undefined in an unknown
470
+ * shaderType was specified.
471
+ */
472
+ this.setShader = function (shaderType, shaderCode) {
473
+ switch (shaderType) {
474
+ case 'image_vertex': vertexShaderImage = shaderCode; break;
475
+ case 'image_fragment': fragmentShaderImage = shaderCode; break;
476
+ case 'color_vertex': vertexShaderColor = shaderCode; break;
477
+ case 'color_fragment': fragmentShaderColor = shaderCode; break;
478
+ default:
479
+ return;
480
+ }
481
+ return m_this;
482
+ };
483
+
453
484
  /**
454
485
  * Destroy.
455
486
  */
@@ -319,6 +319,7 @@ webglRenderer.supported = function () {
319
319
  var canvas, ctx, exts; // eslint-disable-line no-unused-vars
320
320
  try {
321
321
  canvas = document.createElement('canvas');
322
+ /** @type {WebGLRenderingContext} */
322
323
  ctx = (canvas.getContext('webgl') ||
323
324
  canvas.getContext('experimental-webgl'));
324
325
  /* getSupportExtensions will throw an exception if the context isn't