@pirireis/webglobeplugins 1.2.11 → 1.2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pirireis/webglobeplugins",
3
- "version": "1.2.11",
3
+ "version": "1.2.13",
4
4
  "main": "index.js",
5
5
  "author": "Toprak Nihat Deniz Ozturk",
6
6
  "license": "MIT",
@@ -143,7 +143,8 @@ export class DemTextureManager {
143
143
  gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
144
144
  // turn off premultiply alpha
145
145
  gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
146
- for (let i = 0; i < this.mergedData.length; i++) {
146
+ const length = Math.min(this.mergedData.length, MAXLAYERS);
147
+ for (let i = 0; i < length; i++) {
147
148
  const { mesh, bbox, coverRatio } = this.mergedData[i];
148
149
  gl.texSubImage3D(gl.TEXTURE_2D_ARRAY, 0, // mip level
149
150
  0, // xoffset
@@ -1,11 +1,13 @@
1
1
  import { DemTextureManagerCache } from "../../../../programs/totems/attachments/dem-textures-manager";
2
2
  import { RADIAN } from "../../../../Math/methods";
3
3
  export class WorkerContact {
4
+ globe;
4
5
  _masterWorker;
5
6
  _options;
6
7
  onResult;
7
8
  demTextureManager = null;
8
9
  constructor(globe, options, onResult) {
10
+ this.globe = globe;
9
11
  this._options = options;
10
12
  this.onResult = onResult;
11
13
  // Initialize the Master Worker
@@ -37,6 +39,8 @@ export class WorkerContact {
37
39
  maxY: bbox.ur.y * RADIAN,
38
40
  };
39
41
  }
42
+ const { Tilt } = this.globe.api_GetCurrentLookInfo();
43
+ fineTuneBboxZooms(bboxesData, Tilt);
40
44
  // Send BBOX updates to Master Worker
41
45
  this._masterWorker.postMessage({
42
46
  bboxes: bboxesData
@@ -74,3 +78,27 @@ export class WorkerContact {
74
78
  });
75
79
  }
76
80
  }
81
+ function fineTuneBboxZooms(bboxZooms, tilt) {
82
+ if (bboxZooms.length >= 3 && tilt > 55) {
83
+ const first = bboxZooms.shift();
84
+ bboxZooms[0].minX = Math.min(first.minX, bboxZooms[0].minX);
85
+ bboxZooms[0].minY = Math.min(first.minY, bboxZooms[0].minY);
86
+ bboxZooms[0].maxX = Math.max(first.maxX, bboxZooms[0].maxX);
87
+ bboxZooms[0].maxY = Math.max(first.maxY, bboxZooms[0].maxY);
88
+ bboxZooms[1].zoom = bboxZooms[0].zoom;
89
+ if (tilt > 65) {
90
+ bboxZooms[2].zoom = bboxZooms[0].zoom;
91
+ }
92
+ }
93
+ else if (bboxZooms.length >= 3 && bboxZooms[0].zoom > 12) {
94
+ const first = bboxZooms.shift();
95
+ bboxZooms[0].zoom = first.zoom;
96
+ bboxZooms[0].minX = Math.min(first.minX, bboxZooms[0].minX);
97
+ bboxZooms[0].minY = Math.min(first.minY, bboxZooms[0].minY);
98
+ bboxZooms[0].maxX = Math.max(first.maxX, bboxZooms[0].maxX);
99
+ bboxZooms[0].maxY = Math.max(first.maxY, bboxZooms[0].maxY);
100
+ }
101
+ while (bboxZooms.length > 6) {
102
+ bboxZooms.pop();
103
+ }
104
+ }
@@ -7,17 +7,6 @@ let _pickableState = false;
7
7
  let _arcState = false;
8
8
  let _variativeColorsOnState = false;
9
9
  let showThreshold = 0;
10
- function fineTuneBboxZooms(bboxZooms) {
11
- if (bboxZooms.length >= 3 && bboxZooms[0].zoom > 12) {
12
- const first = bboxZooms.shift();
13
- bboxZooms[0].zoom = first.zoom;
14
- bboxZooms[0].minX = Math.min(first.minX, bboxZooms[0].minX);
15
- bboxZooms[0].minY = Math.min(first.minY, bboxZooms[0].minY);
16
- bboxZooms[0].maxX = Math.max(first.maxX, bboxZooms[0].maxX);
17
- bboxZooms[0].maxY = Math.max(first.maxY, bboxZooms[0].maxY);
18
- }
19
- return bboxZooms;
20
- }
21
10
  const NO_COLOR_ALPHA = 255;
22
11
  const MAX_ALPHA_VALUE = 254;
23
12
  function clamp01(value) {
@@ -64,10 +53,9 @@ self.onmessage = (event) => {
64
53
  }
65
54
  // Update bboxes if provided
66
55
  if (bboxes) {
67
- const fineTunedBboxes = fineTuneBboxZooms(bboxes);
68
- cache.setBBOXes(fineTunedBboxes);
69
- if (fineTunedBboxes.length > 0) {
70
- showThreshold = zoomLevelShowThreshold(fineTunedBboxes[0].zoom, 0.05);
56
+ cache.setBBOXes(bboxes);
57
+ if (bboxes.length > 0) {
58
+ showThreshold = zoomLevelShowThreshold(bboxes[0].zoom, 0.05);
71
59
  }
72
60
  }
73
61
  const trianglesInView = cache.search();
@@ -228,7 +228,10 @@ export class TerrainPolygonSemiPlugin {
228
228
  setUsePickedColorState(state, target = "polygon") {
229
229
  throw new Error("use setChangeColorOnHoverState instead");
230
230
  }
231
- setOpacity(opacities) {
231
+ setOpacity() {
232
+ throw new Error("use setOpacities instead");
233
+ }
234
+ setOpacities(opacities) {
232
235
  if (opacities.common !== undefined) {
233
236
  opacityCheck(opacities.common);
234
237
  this._options.opacity = opacities.common;