bruce-cesium 7.0.2 → 7.0.3
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 +1370 -243
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +1368 -241
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/internal/cesium-show-gate.js +100 -0
- package/dist/lib/internal/cesium-show-gate.js.map +1 -0
- package/dist/lib/internal/cesium-utils.js +207 -1
- package/dist/lib/internal/cesium-utils.js.map +1 -1
- package/dist/lib/internal/js-utils.js +25 -1
- package/dist/lib/internal/js-utils.js.map +1 -1
- package/dist/lib/rendering/cesium-animated-in-out.js +66 -7
- package/dist/lib/rendering/cesium-animated-in-out.js.map +1 -1
- package/dist/lib/rendering/entity-render-engine-model3d.js +17 -8
- package/dist/lib/rendering/entity-render-engine-model3d.js.map +1 -1
- package/dist/lib/rendering/entity-render-engine-point.js +46 -12
- package/dist/lib/rendering/entity-render-engine-point.js.map +1 -1
- package/dist/lib/rendering/entity-render-engine-polygon.js +107 -35
- package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -1
- package/dist/lib/rendering/entity-render-engine-polyline.js +27 -8
- package/dist/lib/rendering/entity-render-engine-polyline.js.map +1 -1
- package/dist/lib/rendering/entity-render-engine.js +86 -14
- package/dist/lib/rendering/entity-render-engine.js.map +1 -1
- package/dist/lib/rendering/menu-item-manager.js +30 -2
- package/dist/lib/rendering/menu-item-manager.js.map +1 -1
- package/dist/lib/rendering/relation-render-engine.js +2 -1
- package/dist/lib/rendering/relation-render-engine.js.map +1 -1
- package/dist/lib/rendering/render-managers/common/entity-label.js +10 -2
- package/dist/lib/rendering/render-managers/common/entity-label.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +45 -3
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +26 -15
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +50 -3
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +3 -2
- package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js +3 -2
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/render-manager.js +67 -3
- package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +2 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +2 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +2 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +4 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
- package/dist/lib/rendering/texture-frame-series-animator.js +7 -0
- package/dist/lib/rendering/texture-frame-series-animator.js.map +1 -1
- package/dist/lib/rendering/tileset-render-engine.js +18 -0
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
- package/dist/lib/rendering/visual-register-culler.js +191 -97
- package/dist/lib/rendering/visual-register-culler.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js +263 -25
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/lib/utils/cesium-entity-styler.js +7 -3
- package/dist/lib/utils/cesium-entity-styler.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/internal/cesium-show-gate.d.ts +29 -0
- package/dist/types/internal/cesium-utils.d.ts +63 -0
- package/dist/types/internal/js-utils.d.ts +10 -0
- package/dist/types/rendering/cesium-animated-in-out.d.ts +5 -0
- package/dist/types/rendering/entity-render-engine-model3d.d.ts +2 -0
- package/dist/types/rendering/entity-render-engine-point.d.ts +2 -0
- package/dist/types/rendering/entity-render-engine-polygon.d.ts +2 -0
- package/dist/types/rendering/entity-render-engine-polyline.d.ts +2 -0
- package/dist/types/rendering/entity-render-engine.d.ts +17 -1
- package/dist/types/rendering/menu-item-manager.d.ts +6 -0
- package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +11 -0
- package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +12 -0
- package/dist/types/rendering/render-managers/render-manager.d.ts +33 -0
- package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +3 -0
- package/dist/types/rendering/texture-frame-series-animator.d.ts +5 -0
- package/dist/types/rendering/tileset-render-engine.d.ts +14 -0
- package/dist/types/rendering/visual-register-culler.d.ts +7 -0
- package/dist/types/rendering/visuals-register.d.ts +65 -1
- package/dist/types/utils/cesium-entity-styler.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tileset-render-engine.js","sourceRoot":"","sources":["../../../src/rendering/tileset-render-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tileset-render-engine.js","sourceRoot":"","sources":["../../../src/rendering/tileset-render-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VisualRegisterCuller = void 0;
|
|
4
4
|
const bruce_models_1 = require("bruce-models");
|
|
5
|
+
const cesium_utils_1 = require("../internal/cesium-utils");
|
|
5
6
|
const Cesium = require("cesium");
|
|
6
7
|
const entity_utils_1 = require("../utils/entity-utils");
|
|
7
8
|
const view_utils_1 = require("../utils/view-utils");
|
|
@@ -11,18 +12,58 @@ const POINT_MIN_RADIUS = 15;
|
|
|
11
12
|
// If a shape has more than this amount of points, we'll avoid checking it because it will take too long.
|
|
12
13
|
// We will put responsibility on the bookmark creator to view shapes they can see.
|
|
13
14
|
const DO_NOT_CULL_AT_LEN_POINTS = 5000;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
15
|
+
const _terrainCache = new bruce_models_1.LRUCache(20000);
|
|
16
|
+
/*
|
|
17
|
+
* Past this camera distance the terrain sample is skipped entirely (resolving a long-standing TODO here).
|
|
18
|
+
* The sphere's radius is padded by TERRAIN_SKIP_RADIUS_PAD instead, which covers any plausible unresolved ground height.
|
|
19
|
+
*/
|
|
20
|
+
const TERRAIN_SKIP_DISTANCE = 60000;
|
|
21
|
+
const TERRAIN_SKIP_RADIUS_PAD = 1500;
|
|
22
|
+
// Edge length of a coarse grid cell, and of the finer cell used where the ground turns out to be varied.
|
|
23
|
+
const TERRAIN_CELL_SIZE = 400;
|
|
24
|
+
const TERRAIN_CELL_SIZE_FINE = 50;
|
|
25
|
+
// A cell spanning more than this much height cannot be answered with a single average.
|
|
26
|
+
const TERRAIN_CELL_MAX_SPREAD = 25;
|
|
27
|
+
/**
|
|
28
|
+
* Builds the grid key for a position at a given cell size.
|
|
29
|
+
*/
|
|
30
|
+
function terrainCellKey(terrainId, pos3d, cellSize) {
|
|
31
|
+
const x = Math.floor(pos3d.x / cellSize);
|
|
32
|
+
const y = Math.floor(pos3d.y / cellSize);
|
|
33
|
+
const z = Math.floor(pos3d.z / cellSize);
|
|
34
|
+
return `${terrainId}_${cellSize}_${x}_${y}_${z}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Folds a sample into a cell, refining its estimate and noticing when the region is too varied to average.
|
|
38
|
+
*/
|
|
39
|
+
function recordTerrainSample(key, height) {
|
|
40
|
+
const existing = _terrainCache.Get(key);
|
|
41
|
+
if (!existing) {
|
|
42
|
+
const cell = {
|
|
43
|
+
offset: height,
|
|
44
|
+
count: 1,
|
|
45
|
+
min: height,
|
|
46
|
+
max: height,
|
|
47
|
+
needsDetail: false
|
|
48
|
+
};
|
|
49
|
+
_terrainCache.Set(key, cell);
|
|
50
|
+
return cell;
|
|
51
|
+
}
|
|
52
|
+
existing.count++;
|
|
53
|
+
// Running mean, so the estimate keeps improving rather than being whatever landed first.
|
|
54
|
+
existing.offset += (height - existing.offset) / existing.count;
|
|
55
|
+
existing.min = Math.min(existing.min, height);
|
|
56
|
+
existing.max = Math.max(existing.max, height);
|
|
57
|
+
if (existing.max - existing.min > TERRAIN_CELL_MAX_SPREAD) {
|
|
58
|
+
existing.needsDetail = true;
|
|
59
|
+
}
|
|
60
|
+
_terrainCache.Set(key, existing);
|
|
61
|
+
return existing;
|
|
62
|
+
}
|
|
22
63
|
/**
|
|
23
64
|
* Returns the terrain height for a given position.
|
|
24
65
|
* This will not sample most-detailed and instead the current state of the terrain.
|
|
25
|
-
*
|
|
66
|
+
* Callers past TERRAIN_SKIP_DISTANCE should not be asking at all, see shouldCullEntity.
|
|
26
67
|
* @param viewer
|
|
27
68
|
* @param pos3d
|
|
28
69
|
* @returns
|
|
@@ -39,40 +80,39 @@ const getTerrainOffset = (viewer, pos3d) => {
|
|
|
39
80
|
return 0;
|
|
40
81
|
}
|
|
41
82
|
const terrainId = terrain.tilesetId;
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const pos3d2 = new Cesium.Cartesian3(parseFloat(x), parseFloat(y), parseFloat(z));
|
|
52
|
-
const distance = Cesium.Cartesian3.distance(pos3d, pos3d2);
|
|
53
|
-
if (distance < tolerance) {
|
|
54
|
-
return offset;
|
|
55
|
-
}
|
|
83
|
+
// Always start coarse and let the region teach us where that is not good enough, rather than guessing from a scene-wide entity count.
|
|
84
|
+
// A cell that turns out to span varied ground flags itself and its lookups move to the finer grid.
|
|
85
|
+
const coarseKey = terrainCellKey(terrainId, pos3d, TERRAIN_CELL_SIZE);
|
|
86
|
+
const coarseCell = _terrainCache.Get(coarseKey);
|
|
87
|
+
const useFine = Boolean(coarseCell === null || coarseCell === void 0 ? void 0 : coarseCell.needsDetail);
|
|
88
|
+
const key = useFine ? terrainCellKey(terrainId, pos3d, TERRAIN_CELL_SIZE_FINE) : coarseKey;
|
|
89
|
+
const cell = useFine ? _terrainCache.Get(key) : coarseCell;
|
|
90
|
+
if (cell && !cell.needsDetail) {
|
|
91
|
+
return cell.offset;
|
|
56
92
|
}
|
|
57
|
-
const
|
|
58
|
-
let
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
catch (e) {
|
|
66
|
-
if (DEBUG_MODE) {
|
|
67
|
-
console.warn("Failed to get terrain height.", e);
|
|
68
|
-
}
|
|
69
|
-
// Likely out of rendered area.
|
|
70
|
-
// This means it's not our problem since the user isn't looking there :)
|
|
93
|
+
const carto = Cesium.Cartographic.fromCartesian(pos3d);
|
|
94
|
+
let height = 0;
|
|
95
|
+
try {
|
|
96
|
+
height = viewer.scene.globe.getHeight(carto);
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
if (DEBUG_MODE) {
|
|
100
|
+
console.warn("Failed to get terrain height.", e);
|
|
71
101
|
}
|
|
72
|
-
|
|
73
|
-
|
|
102
|
+
// Likely out of rendered area.
|
|
103
|
+
// This means it's not our problem since the user isn't looking there :)
|
|
74
104
|
}
|
|
75
|
-
|
|
105
|
+
if (height == null || isNaN(height)) {
|
|
106
|
+
// Terrain tile not loaded yet. Don't record it, so a later pass can sample it properly.
|
|
107
|
+
return coarseCell ? coarseCell.offset : 0;
|
|
108
|
+
}
|
|
109
|
+
// Always fold into the coarse cell as well, so its spread keeps being learned even while the finer grid is
|
|
110
|
+
// answering lookups for this region.
|
|
111
|
+
const recorded = recordTerrainSample(key, height);
|
|
112
|
+
if (useFine) {
|
|
113
|
+
recordTerrainSample(coarseKey, height);
|
|
114
|
+
}
|
|
115
|
+
return recorded.offset;
|
|
76
116
|
};
|
|
77
117
|
/**
|
|
78
118
|
* Converts given pos3d into a an absolute position.
|
|
@@ -257,6 +297,10 @@ function shouldCullEntity(viewer, cEntity) {
|
|
|
257
297
|
if (cEntity.model) {
|
|
258
298
|
const model = cEntity.model;
|
|
259
299
|
if (model._radius && !isNaN(model._radius)) {
|
|
300
|
+
// _radius is already measured from the model's origin rather than its own centre: the model3d
|
|
301
|
+
// engine folds the bounding sphere's centre offset into it (plus padding for badly-centred
|
|
302
|
+
// models), and measures it at the entity's scale. So it can be used as-is against a sphere
|
|
303
|
+
// centred on the entity position.
|
|
260
304
|
sphere.radius = Math.max(model._radius, MODEL_MIN_RADIUS);
|
|
261
305
|
}
|
|
262
306
|
else {
|
|
@@ -270,12 +314,10 @@ function shouldCullEntity(viewer, cEntity) {
|
|
|
270
314
|
let radius = getValue(viewer, cEntity.ellipse.semiMajorAxis);
|
|
271
315
|
const extrusion = getValue(viewer, cEntity.ellipse.extrudedHeight);
|
|
272
316
|
if (extrusion && !isNaN(extrusion)) {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
radius = extrusion;
|
|
278
|
-
}
|
|
317
|
+
// Expand rather than replace: measured from the base centre, the top rim of an extruded ellipse
|
|
318
|
+
// sits at sqrt(radius^2 + height^2). Taking whichever of the two is larger leaves the rim outside
|
|
319
|
+
// the sphere, and for something both wide and tall it would actually shrink it.
|
|
320
|
+
radius = radius ? Math.sqrt((radius * radius) + (extrusion * extrusion)) : extrusion;
|
|
279
321
|
}
|
|
280
322
|
if (radius && !isNaN(radius)) {
|
|
281
323
|
sphere.radius = radius;
|
|
@@ -285,12 +327,11 @@ function shouldCullEntity(viewer, cEntity) {
|
|
|
285
327
|
else if (cEntity.polygon) {
|
|
286
328
|
const extrusion = getValue(viewer, cEntity.polygon.extrudedHeight);
|
|
287
329
|
if (extrusion && !isNaN(extrusion)) {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
}
|
|
330
|
+
// Same as the ellipse above: the footprint sphere has to grow to reach the extruded top corners,
|
|
331
|
+
// at sqrt(footprint^2 + height^2) from the footprint centre.
|
|
332
|
+
sphere.radius = sphere.radius
|
|
333
|
+
? Math.sqrt((sphere.radius * sphere.radius) + (extrusion * extrusion))
|
|
334
|
+
: extrusion;
|
|
294
335
|
}
|
|
295
336
|
}
|
|
296
337
|
else if (cEntity.point || cEntity.billboard) {
|
|
@@ -312,7 +353,15 @@ function shouldCullEntity(viewer, cEntity) {
|
|
|
312
353
|
return false;
|
|
313
354
|
}
|
|
314
355
|
const adjustedSphere = boundingSphere.sphere.clone();
|
|
315
|
-
|
|
356
|
+
// Terrain only matters here because it moves the sphere onto the ground.
|
|
357
|
+
// Far enough away that a plausible ground height is a rounding error against the viewing distance, sampling it is wasted work.
|
|
358
|
+
const cameraDistance = Cesium.Cartesian3.distance(camera.position, adjustedSphere.center);
|
|
359
|
+
if (cameraDistance > TERRAIN_SKIP_DISTANCE) {
|
|
360
|
+
adjustedSphere.radius += TERRAIN_SKIP_RADIUS_PAD;
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
adjustedSphere.center = adjustPos3d(viewer, boundingSphere.heightRef, adjustedSphere.center);
|
|
364
|
+
}
|
|
316
365
|
const cullingVolume = camera.frustum.computeCullingVolume(camera.position, camera.direction, camera.up);
|
|
317
366
|
const visibility = cullingVolume.computeVisibility(adjustedSphere);
|
|
318
367
|
// Render sphere to visualize.
|
|
@@ -408,38 +457,67 @@ function isCullingIgnored(viewer, rego) {
|
|
|
408
457
|
rego.relation != null ||
|
|
409
458
|
// Explicitly being either shown or hidden.
|
|
410
459
|
rego.overrideShow != null ||
|
|
411
|
-
// Part of
|
|
412
|
-
//
|
|
413
|
-
rego.collection ||
|
|
460
|
+
// Part of a collection we did not create, eg. a geojson data source, which may have its own rules for
|
|
461
|
+
// what is in the scene. Our own per-menu-item data sources are fair game.
|
|
462
|
+
(rego.collection && !(0, cesium_utils_1.IsCCollectionOwned)(rego.collection)) ||
|
|
414
463
|
// We won't cull historic records as they may be interpolating their locations.
|
|
415
464
|
Boolean(rego.outline && rego.outline.some(x => !!x.DateTime))) {
|
|
416
465
|
return true;
|
|
417
466
|
}
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
467
|
+
return false;
|
|
468
|
+
}
|
|
469
|
+
// A tileset's bounds are padded by this fraction before testing, so panning does not immediately evict something
|
|
470
|
+
// at the edge of view and pay to re-traverse it moments later.
|
|
471
|
+
const TILESET_CULL_PADDING = 0.25;
|
|
472
|
+
/**
|
|
473
|
+
* Suppresses tilesets whose padded bounds are outside the view, and restores ones that come back.
|
|
474
|
+
*
|
|
475
|
+
* Worth doing separately from entity culling because Cesium gates a tileset's whole update on its show flag: a
|
|
476
|
+
* hidden tileset skips traversal, tile selection and request scheduling entirely, where hiding its features still
|
|
477
|
+
* does all of that and merely draws nothing. There are only ever a handful of tilesets, so this needs no batching.
|
|
478
|
+
* @param register
|
|
479
|
+
*/
|
|
480
|
+
function cullTilesets(register) {
|
|
481
|
+
var _a;
|
|
482
|
+
const viewer = register.Viewer;
|
|
483
|
+
const tilesets = register.GetTilesets();
|
|
484
|
+
if (!tilesets.length || viewer.isDestroyed() || !viewer.scene) {
|
|
485
|
+
return;
|
|
435
486
|
}
|
|
436
|
-
|
|
437
|
-
|
|
487
|
+
const camera = viewer.scene.camera;
|
|
488
|
+
const cullingVolume = camera.frustum.computeCullingVolume(camera.position, camera.direction, camera.up);
|
|
489
|
+
let changed = false;
|
|
490
|
+
for (const rego of tilesets) {
|
|
491
|
+
const tileset = rego.tileset;
|
|
492
|
+
if (!tileset || !rego.gate) {
|
|
493
|
+
continue;
|
|
494
|
+
}
|
|
495
|
+
// A destroyed tileset should not be held onto, let alone culled.
|
|
496
|
+
if ((_a = tileset.isDestroyed) === null || _a === void 0 ? void 0 : _a.call(tileset)) {
|
|
497
|
+
register.RemoveTileset(tileset);
|
|
498
|
+
continue;
|
|
499
|
+
}
|
|
500
|
+
let sphere;
|
|
501
|
+
try {
|
|
502
|
+
sphere = tileset.boundingSphere;
|
|
503
|
+
}
|
|
504
|
+
catch (e) {
|
|
505
|
+
// Not ready yet. Leave it alone rather than guessing.
|
|
506
|
+
continue;
|
|
507
|
+
}
|
|
508
|
+
if (!sphere || isNaN(sphere.radius) || sphere.radius <= 0) {
|
|
509
|
+
continue;
|
|
510
|
+
}
|
|
511
|
+
const padded = sphere.clone();
|
|
512
|
+
padded.radius = sphere.radius * (1 + TILESET_CULL_PADDING);
|
|
513
|
+
const visible = cullingVolume.computeVisibility(padded) !== Cesium.Intersect.OUTSIDE;
|
|
514
|
+
if (register.SetTilesetCulled(tileset, !visible)) {
|
|
515
|
+
changed = true;
|
|
516
|
+
}
|
|
438
517
|
}
|
|
439
|
-
|
|
440
|
-
|
|
518
|
+
if (changed) {
|
|
519
|
+
viewer.scene.requestRender();
|
|
441
520
|
}
|
|
442
|
-
return heightRef != Cesium.HeightReference.CLAMP_TO_GROUND;
|
|
443
521
|
}
|
|
444
522
|
/**
|
|
445
523
|
* Runs through all entities in the register and culls them if they are out of the viewport.
|
|
@@ -455,6 +533,7 @@ function runCullChecker(register) {
|
|
|
455
533
|
const entityIds = register.GetEntityIds();
|
|
456
534
|
// We'll use the terrain cache per culler cycle.
|
|
457
535
|
_terrainCache.Clear();
|
|
536
|
+
cullTilesets(register);
|
|
458
537
|
checkInterval = setInterval(() => {
|
|
459
538
|
var _a;
|
|
460
539
|
if (viewer.isDestroyed() || !viewer.scene) {
|
|
@@ -507,7 +586,7 @@ function runCullChecker(register) {
|
|
|
507
586
|
else {
|
|
508
587
|
delete part[VisualRegisterCuller.VISUAL_CULL_KEY];
|
|
509
588
|
if (rego.overrideShow != false &&
|
|
510
|
-
!
|
|
589
|
+
!(0, cesium_utils_1.IsCEntityInScene)(viewer, part) &&
|
|
511
590
|
!state.hidden &&
|
|
512
591
|
(!isIsolatedAny || state.isolated)) {
|
|
513
592
|
toAdd.push(part);
|
|
@@ -547,16 +626,17 @@ function removeEntities(viewer, entities) {
|
|
|
547
626
|
}
|
|
548
627
|
const removal = viewer.scene.postRender.addEventListener(() => {
|
|
549
628
|
removal();
|
|
550
|
-
for
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
629
|
+
// Batched, so Cesium raises one collectionChanged for the whole cull pass instead of one per entity.
|
|
630
|
+
(0, cesium_utils_1.WithSuspendedCCollections)(entities.map(x => (0, cesium_utils_1.GetCEntityCollection)(viewer, x)), () => {
|
|
631
|
+
for (let i = 0; i < entities.length; i++) {
|
|
632
|
+
const entity = entities[i];
|
|
633
|
+
if (entityRemoveAddState.get(entity.id) != false) {
|
|
634
|
+
continue;
|
|
635
|
+
}
|
|
636
|
+
entityRemoveAddState.delete(entity.id);
|
|
637
|
+
(0, cesium_utils_1.RemoveCEntityFromScene)(viewer, entity);
|
|
558
638
|
}
|
|
559
|
-
}
|
|
639
|
+
});
|
|
560
640
|
});
|
|
561
641
|
}
|
|
562
642
|
/**
|
|
@@ -571,16 +651,17 @@ function addEntities(viewer, entities) {
|
|
|
571
651
|
}
|
|
572
652
|
const removal = viewer.scene.postRender.addEventListener(() => {
|
|
573
653
|
removal();
|
|
574
|
-
for
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
654
|
+
// Batched, so Cesium raises one collectionChanged for the whole cull pass instead of one per entity.
|
|
655
|
+
(0, cesium_utils_1.WithSuspendedCCollections)(entities.map(x => (0, cesium_utils_1.GetCEntityCollection)(viewer, x)), () => {
|
|
656
|
+
for (let i = 0; i < entities.length; i++) {
|
|
657
|
+
const entity = entities[i];
|
|
658
|
+
if (entityRemoveAddState.get(entity.id) != true) {
|
|
659
|
+
continue;
|
|
660
|
+
}
|
|
661
|
+
entityRemoveAddState.delete(entity.id);
|
|
662
|
+
(0, cesium_utils_1.AddCEntityToScene)(viewer, entity);
|
|
582
663
|
}
|
|
583
|
-
}
|
|
664
|
+
});
|
|
584
665
|
});
|
|
585
666
|
}
|
|
586
667
|
var VisualRegisterCuller;
|
|
@@ -655,6 +736,19 @@ var VisualRegisterCuller;
|
|
|
655
736
|
};
|
|
656
737
|
}
|
|
657
738
|
VisualRegisterCuller.Monitor = Monitor;
|
|
739
|
+
/**
|
|
740
|
+
* Runs the tileset visibility pass immediately, rather than waiting for the next cull cycle.
|
|
741
|
+
* Exposed so the behaviour is directly assertable, and for a caller that needs it applied now.
|
|
742
|
+
* @param register
|
|
743
|
+
*/
|
|
744
|
+
function CullTilesets(register) {
|
|
745
|
+
cullTilesets(register);
|
|
746
|
+
}
|
|
747
|
+
VisualRegisterCuller.CullTilesets = CullTilesets;
|
|
748
|
+
function IsCullingIgnored(viewer, rego) {
|
|
749
|
+
return isCullingIgnored(viewer, rego);
|
|
750
|
+
}
|
|
751
|
+
VisualRegisterCuller.IsCullingIgnored = IsCullingIgnored;
|
|
658
752
|
function IsCulled(viewer, rego, visual) {
|
|
659
753
|
if (isCullingIgnored(viewer, rego)) {
|
|
660
754
|
return false;
|