bruce-cesium 7.0.1 → 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 +1475 -289
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +1473 -287
- 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 +146 -63
- 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 +58 -4
- 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 +46 -23
- 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 +70 -11
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +13 -1
- package/dist/lib/rendering/render-managers/entities/entity-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 +13 -0
- package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +2 -0
- package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +14 -0
- package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +2 -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
|
@@ -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;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual-register-culler.js","sourceRoot":"","sources":["../../../src/rendering/visual-register-culler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visual-register-culler.js","sourceRoot":"","sources":["../../../src/rendering/visual-register-culler.ts"],"names":[],"mappings":"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"}
|