bruce-cesium 7.3.8 → 7.4.0
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/dist/bruce-cesium.es5.js +2911 -626
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +2910 -623
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +8 -2
- package/dist/lib/bruce-cesium.js.map +1 -1
- package/dist/lib/rendering/entity-gatherer.js +249 -16
- package/dist/lib/rendering/entity-gatherer.js.map +1 -1
- package/dist/lib/rendering/render-managers/common/entity-label-group.js +482 -0
- package/dist/lib/rendering/render-managers/common/entity-label-group.js.map +1 -0
- package/dist/lib/rendering/render-managers/common/entity-label.js +1213 -155
- package/dist/lib/rendering/render-managers/common/entity-label.js.map +1 -1
- package/dist/lib/rendering/render-managers/common/historic-utils.js +64 -7
- package/dist/lib/rendering/render-managers/common/historic-utils.js.map +1 -1
- package/dist/lib/rendering/render-managers/common/point-clustering-core.js +85 -0
- package/dist/lib/rendering/render-managers/common/point-clustering-core.js.map +1 -0
- package/dist/lib/rendering/render-managers/common/point-clustering.js +566 -419
- package/dist/lib/rendering/render-managers/common/point-clustering.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +2 -2
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js +273 -24
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +4 -1
- package/dist/types/rendering/entity-gatherer.d.ts +27 -4
- package/dist/types/rendering/render-managers/common/entity-label-group.d.ts +104 -0
- package/dist/types/rendering/render-managers/common/entity-label.d.ts +138 -1
- package/dist/types/rendering/render-managers/common/historic-utils.d.ts +12 -4
- package/dist/types/rendering/render-managers/common/point-clustering-core.d.ts +17 -0
- package/dist/types/rendering/render-managers/common/point-clustering.d.ts +37 -72
- package/dist/types/rendering/visuals-register.d.ts +43 -2
- package/package.json +1 -1
package/dist/lib/bruce-cesium.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.getENVIRONMENT = exports.setENVIRONMENT = exports.VERSION = void 0;
|
|
17
|
+
exports.getENVIRONMENT = exports.setENVIRONMENT = exports.VERSION = exports.PointClusterSize = exports.PointClustering = exports.ClusterItems = void 0;
|
|
18
18
|
const bruce_models_1 = require("bruce-models");
|
|
19
19
|
__exportStar(require("./rendering/cesium-animated-in-out"), exports);
|
|
20
20
|
__exportStar(require("./rendering/displaced-surface-primitive"), exports);
|
|
@@ -30,6 +30,12 @@ __exportStar(require("./rendering/menu-item-creator"), exports);
|
|
|
30
30
|
__exportStar(require("./rendering/menu-item-manager"), exports);
|
|
31
31
|
__exportStar(require("./rendering/render-managers/common/cesium-parabola"), exports);
|
|
32
32
|
__exportStar(require("./rendering/render-managers/common/entity-label"), exports);
|
|
33
|
+
__exportStar(require("./rendering/render-managers/common/entity-label-group"), exports);
|
|
34
|
+
var point_clustering_core_1 = require("./rendering/render-managers/common/point-clustering-core");
|
|
35
|
+
Object.defineProperty(exports, "ClusterItems", { enumerable: true, get: function () { return point_clustering_core_1.ClusterItems; } });
|
|
36
|
+
var point_clustering_1 = require("./rendering/render-managers/common/point-clustering");
|
|
37
|
+
Object.defineProperty(exports, "PointClustering", { enumerable: true, get: function () { return point_clustering_1.PointClustering; } });
|
|
38
|
+
Object.defineProperty(exports, "PointClusterSize", { enumerable: true, get: function () { return point_clustering_1.PointClusterSize; } });
|
|
33
39
|
__exportStar(require("./rendering/render-managers/common/live-cursor"), exports);
|
|
34
40
|
__exportStar(require("./rendering/render-managers/common/shared-getters"), exports);
|
|
35
41
|
__exportStar(require("./rendering/render-managers/data-source/data-source-static-kml-manager"), exports);
|
|
@@ -83,7 +89,7 @@ __exportStar(require("./widgets/widget-info-view"), exports);
|
|
|
83
89
|
__exportStar(require("./widgets/widget-left-panel"), exports);
|
|
84
90
|
__exportStar(require("./widgets/widget-nav-compass"), exports);
|
|
85
91
|
__exportStar(require("./widgets/widget-view-bar"), exports);
|
|
86
|
-
exports.VERSION = "7.
|
|
92
|
+
exports.VERSION = "7.4.0";
|
|
87
93
|
/**
|
|
88
94
|
* Updates the environment instance used by bruce-cesium to one specified.
|
|
89
95
|
* This can be used to ensure that the instance a parent is referencing is shared between bruce-cesium, bruce-models, and the parent app.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bruce-cesium.js","sourceRoot":"","sources":["../../src/bruce-cesium.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAE3C,qEAAmD;AACnD,0EAAwD;AACxD,uEAAqD;AACrD,mEAAiD;AACjD,2EAAyD;AACzD,yEAAuD;AACvD,2EAAyD;AACzD,4EAA0D;AAC1D,4EAA0D;AAC1D,mEAAiD;AACjD,gEAA8C;AAC9C,gEAA8C;AAC9C,qFAAmE;AACnE,kFAAgE;AAChE,iFAA+D;AAC/D,oFAAkE;AAClE,yGAAuF;AACvF,uGAAqF;AACrF,mGAAiF;AACjF,sGAAoF;AACpF,+FAA6E;AAC7E,6FAA2E;AAC3E,4FAA0E;AAC1E,iGAA+E;AAC/E,6FAA2E;AAC3E,6EAA2D;AAC3D,kGAAgF;AAChF,kGAAgF;AAChF,uGAAqF;AACrF,4GAA0F;AAC1F,kGAAgF;AAChF,yGAAuF;AACvF,iEAA+C;AAC/C,oEAAkD;AAClD,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,mEAAiD;AACjD,+DAA6C;AAC7C,wDAAsC;AACtC,uDAAqC;AACrC,wDAAsC;AACtC,sDAAoC;AACpC,qDAAmC;AACnC,+DAA6C;AAC7C,4DAA0C;AAC1C,gEAA8C;AAC9C,wDAAsC;AACtC,mEAAiD;AACjD,oEAAkD;AAClD,mEAAiD;AACjD,+DAA6C;AAC7C,sFAAoE;AACpE,6FAA2E;AAC3E,kFAAgE;AAChE,4FAA0E;AAC1E,4FAA0E;AAC1E,6FAA2E;AAC3E,mDAAiC;AACjC,6DAA2C;AAC3C,4DAA0C;AAC1C,6DAA2C;AAC3C,sEAAoD;AACpD,6DAA2C;AAC3C,8DAA4C;AAC5C,+DAA6C;AAC7C,4DAA0C;AAE7B,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,MAAW,EAAE,EAAE;IAC1C,0BAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,GAAG,EAAE;IAC/B,OAAO,0BAAW,CAAC;AACvB,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B"}
|
|
1
|
+
{"version":3,"file":"bruce-cesium.js","sourceRoot":"","sources":["../../src/bruce-cesium.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAE3C,qEAAmD;AACnD,0EAAwD;AACxD,uEAAqD;AACrD,mEAAiD;AACjD,2EAAyD;AACzD,yEAAuD;AACvD,2EAAyD;AACzD,4EAA0D;AAC1D,4EAA0D;AAC1D,mEAAiD;AACjD,gEAA8C;AAC9C,gEAA8C;AAC9C,qFAAmE;AACnE,kFAAgE;AAChE,wFAAsE;AACtE,kGAAwF;AAA/E,qHAAA,YAAY,OAAA;AACrB,wFAAyK;AAAhK,mHAAA,eAAe,OAAA;AAAE,oHAAA,gBAAgB,OAAA;AAC1C,iFAA+D;AAC/D,oFAAkE;AAClE,yGAAuF;AACvF,uGAAqF;AACrF,mGAAiF;AACjF,sGAAoF;AACpF,+FAA6E;AAC7E,6FAA2E;AAC3E,4FAA0E;AAC1E,iGAA+E;AAC/E,6FAA2E;AAC3E,6EAA2D;AAC3D,kGAAgF;AAChF,kGAAgF;AAChF,uGAAqF;AACrF,4GAA0F;AAC1F,kGAAgF;AAChF,yGAAuF;AACvF,iEAA+C;AAC/C,oEAAkD;AAClD,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,mEAAiD;AACjD,+DAA6C;AAC7C,wDAAsC;AACtC,uDAAqC;AACrC,wDAAsC;AACtC,sDAAoC;AACpC,qDAAmC;AACnC,+DAA6C;AAC7C,4DAA0C;AAC1C,gEAA8C;AAC9C,wDAAsC;AACtC,mEAAiD;AACjD,oEAAkD;AAClD,mEAAiD;AACjD,+DAA6C;AAC7C,sFAAoE;AACpE,6FAA2E;AAC3E,kFAAgE;AAChE,4FAA0E;AAC1E,4FAA0E;AAC1E,6FAA2E;AAC3E,mDAAiC;AACjC,6DAA2C;AAC3C,4DAA0C;AAC1C,6DAA2C;AAC3C,sEAAoD;AACpD,6DAA2C;AAC3C,8DAA4C;AAC5C,+DAA6C;AAC7C,4DAA0C;AAE7B,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,MAAW,EAAE,EAAE;IAC1C,0BAAW,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,GAAG,EAAE;IAC/B,OAAO,0BAAW,CAAC;AACvB,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B"}
|
|
@@ -4,6 +4,7 @@ exports.EntityGatherer = void 0;
|
|
|
4
4
|
const bruce_models_1 = require("bruce-models");
|
|
5
5
|
const Cesium = require("cesium");
|
|
6
6
|
const historic_utils_1 = require("./render-managers/common/historic-utils");
|
|
7
|
+
const cesium_utils_1 = require("../internal/cesium-utils");
|
|
7
8
|
class EntityGatherer {
|
|
8
9
|
get OnQueueProgress() {
|
|
9
10
|
if (!this._onQueueProgress) {
|
|
@@ -41,6 +42,19 @@ class EntityGatherer {
|
|
|
41
42
|
// All IDs that have ever been queued.
|
|
42
43
|
// When nothing is in queue, we'll re-request the existing IDs based on timeline changes.
|
|
43
44
|
this.allEIds = new Set();
|
|
45
|
+
// IDs a historic read has actually answered with a record, rather than falling back to a stub.
|
|
46
|
+
// A refresh serves these before the ones that have never produced anything.
|
|
47
|
+
this.everFound = new Set();
|
|
48
|
+
// Every known Entity bucketed by the ground cell its position falls in, so a refresh can ask
|
|
49
|
+
// what the view reaches instead of walking the whole set. Built as IDs arrive.
|
|
50
|
+
this.cells = new Map();
|
|
51
|
+
// IDs the position source could not place yet. They are always refreshed.
|
|
52
|
+
this.unplaced = new Set();
|
|
53
|
+
// The IDs the last decision found inside the view, so a camera move can queue the difference
|
|
54
|
+
// rather than re-requesting everything it already asked about.
|
|
55
|
+
this.lastInView = new Set();
|
|
56
|
+
// Unsubscribes the view monitor listener that queues what the camera has moved onto.
|
|
57
|
+
this.monitorRemoval = null;
|
|
44
58
|
// Indicates a tick is active.
|
|
45
59
|
// When true, we won't bother calling onTick again.
|
|
46
60
|
this.runningTick = false;
|
|
@@ -91,6 +105,16 @@ class EntityGatherer {
|
|
|
91
105
|
}
|
|
92
106
|
this.historic = historic;
|
|
93
107
|
this.expandSources = expandSources;
|
|
108
|
+
if (this.historic) {
|
|
109
|
+
// Anything already known was taken in before the index was being built, so it is filed
|
|
110
|
+
// a bounded number at a time from here rather than in one pass now.
|
|
111
|
+
for (const entityId of this.allEIds) {
|
|
112
|
+
this.unplaced.add(entityId);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
this.clearIndex();
|
|
117
|
+
}
|
|
94
118
|
if (this.historic) {
|
|
95
119
|
// 4 ticks per second.
|
|
96
120
|
// The fastest data we are working with is 5 times per second.
|
|
@@ -142,6 +166,8 @@ class EntityGatherer {
|
|
|
142
166
|
this.lastOrderFocus = null;
|
|
143
167
|
this.allEIds.clear();
|
|
144
168
|
this.lastFoundDateTimes.clear();
|
|
169
|
+
this.everFound.clear();
|
|
170
|
+
this.clearIndex();
|
|
145
171
|
this.lastDateTime = null;
|
|
146
172
|
}
|
|
147
173
|
ReQueueAll() {
|
|
@@ -152,22 +178,193 @@ class EntityGatherer {
|
|
|
152
178
|
this.eIdQueued = new Set(this.eIdQueue);
|
|
153
179
|
this.priorityCount = 0;
|
|
154
180
|
this.lastOrderFocus = null;
|
|
181
|
+
this.clearIndex();
|
|
155
182
|
}
|
|
156
183
|
/**
|
|
157
|
-
* Supplies a lookup from Entity ID to world position, letting the queue resolve what the camera
|
|
158
|
-
*
|
|
184
|
+
* Supplies a lookup from Entity ID to world position, letting the queue resolve what the camera is nearest first.
|
|
185
|
+
* Sources that cannot answer should not call this, and are served in order.
|
|
159
186
|
*/
|
|
160
187
|
SetPositionSource(positionOf) {
|
|
161
188
|
this.positionOf = positionOf;
|
|
162
189
|
this.lastOrderFocus = null;
|
|
190
|
+
this.cells.clear();
|
|
191
|
+
this.lastInView.clear();
|
|
192
|
+
for (const entityId of this.allEIds) {
|
|
193
|
+
this.unplaced.add(entityId);
|
|
194
|
+
}
|
|
163
195
|
}
|
|
164
196
|
/**
|
|
165
|
-
* Supplies the view monitor, so the order follows the ground the camera is aimed at and prefers
|
|
166
|
-
*
|
|
197
|
+
* Supplies the view monitor, so the order follows the ground the camera is aimed at and prefers what is on screen.
|
|
198
|
+
* Without one the ordering falls back to distance from the camera itself.
|
|
167
199
|
*/
|
|
168
200
|
SetViewMonitor(monitor) {
|
|
201
|
+
var _a;
|
|
202
|
+
(_a = this.monitorRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
203
|
+
this.monitorRemoval = null;
|
|
169
204
|
this.monitor = monitor;
|
|
170
205
|
this.lastOrderFocus = null;
|
|
206
|
+
if (!monitor) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
this.monitorRemoval = monitor.Updated().Subscribe(() => {
|
|
210
|
+
this.admitNewlyInView();
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/*
|
|
214
|
+
* Queues whatever the camera has moved onto since the last decision.
|
|
215
|
+
*/
|
|
216
|
+
admitNewlyInView() {
|
|
217
|
+
if (this.disposed || !this.historic) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const inView = this.decideInView();
|
|
221
|
+
if (!inView) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
const admit = [];
|
|
225
|
+
for (const entityId of inView) {
|
|
226
|
+
if (!this.lastInView.has(entityId)) {
|
|
227
|
+
admit.push(entityId);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
this.lastInView = new Set(inView);
|
|
231
|
+
if (admit.length) {
|
|
232
|
+
this.Queue(admit);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/*
|
|
236
|
+
* Returns the IDs a refresh should ask about, or null when the view cannot say and the answer has to be everything.
|
|
237
|
+
*/
|
|
238
|
+
decideInView() {
|
|
239
|
+
if (!this.historic || !this.positionOf || !this.monitor) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
const area = this.refreshArea();
|
|
243
|
+
if (!area) {
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
const inView = [];
|
|
247
|
+
for (const key of this.candidateCellKeys(area)) {
|
|
248
|
+
const cell = this.cells.get(key);
|
|
249
|
+
if (!cell) {
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
for (let i = 0; i < cell.ids.length; i++) {
|
|
253
|
+
if (historic_utils_1.HistoricFetchOrder.InDegreeBounds(cell.lats[i], cell.lons[i], area)) {
|
|
254
|
+
inView.push(cell.ids[i]);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// Anything the source cannot place yet is asked about rather than quietly dropped.
|
|
259
|
+
for (const entityId of this.unplaced) {
|
|
260
|
+
inView.push(entityId);
|
|
261
|
+
}
|
|
262
|
+
return inView;
|
|
263
|
+
}
|
|
264
|
+
/*
|
|
265
|
+
* Returns the cell keys a rectangle can reach.
|
|
266
|
+
*/
|
|
267
|
+
candidateCellKeys(area) {
|
|
268
|
+
const size = EntityGatherer.CELL_DEGREES;
|
|
269
|
+
const southCell = Math.floor(area.south / size);
|
|
270
|
+
const northCell = Math.floor(area.north / size);
|
|
271
|
+
const spans = (area.west > area.east ? [
|
|
272
|
+
{
|
|
273
|
+
from: Math.floor(area.west / size),
|
|
274
|
+
to: Math.floor(180 / size)
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
from: Math.floor(-180 / size),
|
|
278
|
+
to: Math.floor(area.east / size)
|
|
279
|
+
}
|
|
280
|
+
] :
|
|
281
|
+
[{
|
|
282
|
+
from: Math.floor(area.west / size),
|
|
283
|
+
to: Math.floor(area.east / size)
|
|
284
|
+
}]);
|
|
285
|
+
let width = 0;
|
|
286
|
+
for (const span of spans) {
|
|
287
|
+
width += (span.to - span.from) + 1;
|
|
288
|
+
}
|
|
289
|
+
const wanted = ((northCell - southCell) + 1) * width;
|
|
290
|
+
if (!(wanted > 0) || wanted > this.cells.size) {
|
|
291
|
+
return Array.from(this.cells.keys());
|
|
292
|
+
}
|
|
293
|
+
const keys = [];
|
|
294
|
+
for (let lat = southCell; lat <= northCell; lat++) {
|
|
295
|
+
for (const span of spans) {
|
|
296
|
+
for (let lon = span.from; lon <= span.to; lon++) {
|
|
297
|
+
keys.push(lat + ":" + lon);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return keys;
|
|
302
|
+
}
|
|
303
|
+
/*
|
|
304
|
+
* Files an Entity in the cell its position falls in.
|
|
305
|
+
*/
|
|
306
|
+
place(entityId) {
|
|
307
|
+
const degrees = this.degreesOf(entityId);
|
|
308
|
+
if (!degrees) {
|
|
309
|
+
this.unplaced.add(entityId);
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
const size = EntityGatherer.CELL_DEGREES;
|
|
313
|
+
const key = Math.floor(degrees.lat / size) + ":" + Math.floor(degrees.lon / size);
|
|
314
|
+
let cell = this.cells.get(key);
|
|
315
|
+
if (!cell) {
|
|
316
|
+
cell = { ids: [], lats: [], lons: [] };
|
|
317
|
+
this.cells.set(key, cell);
|
|
318
|
+
}
|
|
319
|
+
cell.ids.push(entityId);
|
|
320
|
+
cell.lats.push(degrees.lat);
|
|
321
|
+
cell.lons.push(degrees.lon);
|
|
322
|
+
this.unplaced.delete(entityId);
|
|
323
|
+
}
|
|
324
|
+
/*
|
|
325
|
+
* Retries a bounded number of the Entities the source could not place before, so a late baked
|
|
326
|
+
* position joins the index without any one tick paying for all of them.
|
|
327
|
+
*/
|
|
328
|
+
placeStragglers() {
|
|
329
|
+
if (!this.unplaced.size || !this.positionOf) {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
let budget = EntityGatherer.PLACE_BATCH;
|
|
333
|
+
for (const entityId of this.unplaced) {
|
|
334
|
+
if (budget-- <= 0) {
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
this.place(entityId);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
clearIndex() {
|
|
341
|
+
this.cells.clear();
|
|
342
|
+
this.unplaced.clear();
|
|
343
|
+
this.lastInView.clear();
|
|
344
|
+
}
|
|
345
|
+
/*
|
|
346
|
+
* Returns where an Entity sits in degrees, or null when the source cannot place it.
|
|
347
|
+
*/
|
|
348
|
+
degreesOf(entityId) {
|
|
349
|
+
let pos = null;
|
|
350
|
+
try {
|
|
351
|
+
pos = this.positionOf ? this.positionOf(entityId) : null;
|
|
352
|
+
}
|
|
353
|
+
catch {
|
|
354
|
+
pos = null;
|
|
355
|
+
}
|
|
356
|
+
return pos ? (0, cesium_utils_1.CartesianToDegrees)(pos) : null;
|
|
357
|
+
}
|
|
358
|
+
/*
|
|
359
|
+
* Returns the visible rectangle plus the margin a refresh still reaches into,
|
|
360
|
+
* or null when the view cannot say, which is what leaves every Entity in.
|
|
361
|
+
*/
|
|
362
|
+
refreshArea() {
|
|
363
|
+
const focus = historic_utils_1.HistoricFetchOrder.FocusFrom({ viewer: this.viewer, monitor: this.monitor });
|
|
364
|
+
if (!(focus === null || focus === void 0 ? void 0 : focus.bounds)) {
|
|
365
|
+
return null;
|
|
366
|
+
}
|
|
367
|
+
return historic_utils_1.HistoricFetchOrder.GrowBounds(focus.bounds, historic_utils_1.HistoricFetchOrder.RefreshMarginFor(focus.bounds));
|
|
171
368
|
}
|
|
172
369
|
/**
|
|
173
370
|
* Re-bands the pending queue so the nearest Entities are requested first.
|
|
@@ -180,8 +377,6 @@ class EntityGatherer {
|
|
|
180
377
|
if (!focus) {
|
|
181
378
|
return;
|
|
182
379
|
}
|
|
183
|
-
// Re-banding on every batch would cost a full pass per request for no change in the answer.
|
|
184
|
-
// Measured on the focus, so panning across the ground counts even when the eye barely moves.
|
|
185
380
|
if (this.lastOrderFocus && !EntityGatherer.boundsChanged(this.lastOrderFocus, focus) &&
|
|
186
381
|
Cesium.Cartesian3.distance(this.lastOrderFocus.origin, focus.origin) < EntityGatherer.REORDER_MOVE_METRES) {
|
|
187
382
|
return;
|
|
@@ -228,26 +423,47 @@ class EntityGatherer {
|
|
|
228
423
|
});
|
|
229
424
|
const ordered = [];
|
|
230
425
|
for (const band of banded) {
|
|
426
|
+
// Within a band, the ones a read has answered for go first.
|
|
427
|
+
// A building that has never produced a record is the one least likely to start now, so it waits.
|
|
428
|
+
const withData = [];
|
|
429
|
+
const withoutData = [];
|
|
231
430
|
for (const entityId of band) {
|
|
431
|
+
(this.everFound.has(entityId) ? withData : withoutData).push(entityId);
|
|
432
|
+
}
|
|
433
|
+
for (const entityId of withData) {
|
|
434
|
+
ordered.push(entityId);
|
|
435
|
+
}
|
|
436
|
+
for (const entityId of withoutData) {
|
|
232
437
|
ordered.push(entityId);
|
|
233
438
|
}
|
|
234
439
|
}
|
|
235
440
|
return ordered;
|
|
236
441
|
}
|
|
442
|
+
/*
|
|
443
|
+
* Takes an ID into the known set, filing it in the index the first time it is seen.
|
|
444
|
+
*/
|
|
445
|
+
remember(entityId) {
|
|
446
|
+
if (this.allEIds.has(entityId)) {
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
this.allEIds.add(entityId);
|
|
450
|
+
// Only a historic refresh reads the index, so nothing else pays to build it.
|
|
451
|
+
if (this.historic) {
|
|
452
|
+
this.place(entityId);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
237
455
|
Queue(entityIds, topOfQueue = false) {
|
|
238
456
|
if (this.disposed || !(entityIds === null || entityIds === void 0 ? void 0 : entityIds.length)) {
|
|
239
457
|
return;
|
|
240
458
|
}
|
|
241
459
|
let changes = 0;
|
|
242
460
|
if (topOfQueue) {
|
|
243
|
-
// Walked back to front so a repeated ID keeps the position of its last occurrence, then
|
|
244
|
-
// laid down in that order, which is where inserting one at a time leaves them.
|
|
245
461
|
const toFront = [];
|
|
246
462
|
const promoting = new Set();
|
|
247
463
|
let anyAlreadyQueued = false;
|
|
248
464
|
for (let i = entityIds.length - 1; i >= 0; i--) {
|
|
249
465
|
const eId = entityIds[i];
|
|
250
|
-
this.
|
|
466
|
+
this.remember(eId);
|
|
251
467
|
if (promoting.has(eId)) {
|
|
252
468
|
continue;
|
|
253
469
|
}
|
|
@@ -283,7 +499,7 @@ class EntityGatherer {
|
|
|
283
499
|
else {
|
|
284
500
|
for (let i = 0; i < entityIds.length; i++) {
|
|
285
501
|
const eId = entityIds[i];
|
|
286
|
-
this.
|
|
502
|
+
this.remember(eId);
|
|
287
503
|
if (this.eIdQueued.has(eId)) {
|
|
288
504
|
continue;
|
|
289
505
|
}
|
|
@@ -298,19 +514,22 @@ class EntityGatherer {
|
|
|
298
514
|
this.onTick(false);
|
|
299
515
|
}
|
|
300
516
|
Dispose() {
|
|
517
|
+
var _a;
|
|
301
518
|
if (this.disposed) {
|
|
302
519
|
return;
|
|
303
520
|
}
|
|
304
521
|
this.disposed = true;
|
|
522
|
+
(_a = this.monitorRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
523
|
+
this.monitorRemoval = null;
|
|
305
524
|
this.hDisposals.forEach((d) => d());
|
|
306
525
|
this.hDisposals = [];
|
|
307
|
-
// A tick still awaiting a response resumes after this, and anything left here would have it
|
|
308
|
-
// ask for the whole set again on the way out.
|
|
309
526
|
this.eIdQueue = [];
|
|
310
527
|
this.eIdQueued.clear();
|
|
311
528
|
this.priorityCount = 0;
|
|
312
529
|
this.allEIds.clear();
|
|
313
530
|
this.lastFoundDateTimes.clear();
|
|
531
|
+
this.everFound.clear();
|
|
532
|
+
this.clearIndex();
|
|
314
533
|
this.entityDataOverrides.clear();
|
|
315
534
|
}
|
|
316
535
|
checkRange(force) {
|
|
@@ -334,6 +553,7 @@ class EntityGatherer {
|
|
|
334
553
|
this.lastDateTime = rTime;
|
|
335
554
|
(async () => {
|
|
336
555
|
this.runningTick = true;
|
|
556
|
+
this.placeStragglers();
|
|
337
557
|
let rerun = false;
|
|
338
558
|
try {
|
|
339
559
|
const handleResponse = async (requestedBatch, entities) => {
|
|
@@ -346,6 +566,13 @@ class EntityGatherer {
|
|
|
346
566
|
foundById.set(entityId, entity);
|
|
347
567
|
}
|
|
348
568
|
}
|
|
569
|
+
if (this.historic) {
|
|
570
|
+
for (const entityId of requestedBatch || []) {
|
|
571
|
+
if (foundById.has(entityId)) {
|
|
572
|
+
this.everFound.add(entityId);
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
}
|
|
349
576
|
for (const entityId of requestedBatch || []) {
|
|
350
577
|
const override = this.entityDataOverrides.get(entityId);
|
|
351
578
|
if (override) {
|
|
@@ -474,15 +701,16 @@ class EntityGatherer {
|
|
|
474
701
|
this._onQueueProgress.Trigger(100);
|
|
475
702
|
}
|
|
476
703
|
}
|
|
477
|
-
// Now run through
|
|
704
|
+
// Now run through the IDs we've seen that the view still reaches, and request them.
|
|
478
705
|
// We'll skip those that we just requested.
|
|
479
|
-
|
|
706
|
+
const inView = this.decideInView();
|
|
707
|
+
this.lastInView = inView ? new Set(inView) : new Set();
|
|
708
|
+
let allEIds = inView || Array.from(this.allEIds);
|
|
480
709
|
if (requestedIds.size) {
|
|
481
710
|
allEIds = allEIds.filter((eId) => !requestedIds.has(eId));
|
|
482
711
|
}
|
|
483
712
|
if (allEIds.length) {
|
|
484
|
-
//
|
|
485
|
-
// first here even more than in the queue above.
|
|
713
|
+
// The near ones are resolved first out of whatever the view still reaches.
|
|
486
714
|
allEIds = this.bandIds(allEIds);
|
|
487
715
|
while (allEIds.length && !this.disposed && !this.eIdQueue.length) {
|
|
488
716
|
if (this.historic && this.lastDateTime !== rTime) {
|
|
@@ -521,6 +749,11 @@ class EntityGatherer {
|
|
|
521
749
|
}
|
|
522
750
|
// Below this the whole queue clears in one or two requests, so ordering it buys nothing.
|
|
523
751
|
EntityGatherer.MIN_ORDER_QUEUE = 500;
|
|
752
|
+
// Side of the ground cells Entities are bucketed into, in degrees.
|
|
753
|
+
// About a kilometre, so a view covers a handful of them rather than hundreds.
|
|
754
|
+
EntityGatherer.CELL_DEGREES = 0.01;
|
|
755
|
+
// How many Entities one tick will try to place in the index.
|
|
756
|
+
EntityGatherer.PLACE_BATCH = 20000;
|
|
524
757
|
// How far the point being looked at has to move before the queue is worth re-banding, in metres.
|
|
525
758
|
// Under the nearest band's width, so a move that could change what is nearest still triggers one.
|
|
526
759
|
EntityGatherer.REORDER_MOVE_METRES = 250;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-gatherer.js","sourceRoot":"","sources":["../../../src/rendering/entity-gatherer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity-gatherer.js","sourceRoot":"","sources":["../../../src/rendering/entity-gatherer.ts"],"names":[],"mappings":"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"}
|