bruce-cesium 2.1.4 → 2.1.5
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 +114 -12
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +113 -11
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +3 -2
- 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 +3 -2
- 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 +2 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
- package/dist/lib/rendering/tileset-render-engine.js +103 -7
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
- package/dist/types/rendering/tileset-render-engine.d.ts +29 -0
- package/package.json +1 -1
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BruceEvent, Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, DelayQueue, BatchedDataGetter, EntityRelationType, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, EntityRelation, ENVIRONMENT, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
|
|
2
2
|
import * as Cesium from 'cesium';
|
|
3
|
-
import { Cartesian2, Cartographic, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, SceneMode,
|
|
3
|
+
import { Cartesian2, Cartographic, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, SceneMode, Entity, Primitive, Cesium3DTileFeature, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, OrthographicFrustum, JulianDate, NearFarScalar, EllipsoidGeodesic, EllipsoidTerrainProvider, sampleTerrainMostDetailed, CesiumInspector, PolygonPipeline, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Cesium3DTileset, Matrix4, Matrix3, IonResource, ColorMaterialProperty, EasingFunction, GeometryInstance } from 'cesium';
|
|
4
4
|
|
|
5
5
|
var TIME_LAG = 300;
|
|
6
6
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -4761,6 +4761,8 @@ function correctStyle(style) {
|
|
|
4761
4761
|
}
|
|
4762
4762
|
return style;
|
|
4763
4763
|
}
|
|
4764
|
+
var VIEWER_WATCH_KEY = "bruce-viewer-watch";
|
|
4765
|
+
var WATCH_KEY = "bruce-tileset-watch";
|
|
4764
4766
|
/**
|
|
4765
4767
|
* Creates and returns a tileset instance from a given url.
|
|
4766
4768
|
* This is made to handle the difference between old and new cesium versions.
|
|
@@ -4771,15 +4773,21 @@ function correctStyle(style) {
|
|
|
4771
4773
|
*/
|
|
4772
4774
|
function createTileset(url, props) {
|
|
4773
4775
|
return __awaiter(this, void 0, void 0, function () {
|
|
4774
|
-
var C3DT;
|
|
4776
|
+
var defaultProps, C3DT;
|
|
4775
4777
|
return __generator(this, function (_a) {
|
|
4778
|
+
defaultProps = {
|
|
4779
|
+
// "Optimization option. Reduce the screen space error for tiles that are further away from the camera.".
|
|
4780
|
+
dynamicScreenSpaceError: true,
|
|
4781
|
+
// "The maximum amount of memory in MB that can be used by the tileset.".
|
|
4782
|
+
maximumMemoryUsage: 512
|
|
4783
|
+
};
|
|
4776
4784
|
C3DT = Cesium3DTileset;
|
|
4777
4785
|
if (C3DT.fromUrl) {
|
|
4778
4786
|
// New cesium is running.
|
|
4779
|
-
return [2 /*return*/, C3DT.fromUrl(url, __assign({}, props))];
|
|
4787
|
+
return [2 /*return*/, C3DT.fromUrl(url, __assign(__assign({}, defaultProps), props))];
|
|
4780
4788
|
}
|
|
4781
4789
|
// Old cesium is running.
|
|
4782
|
-
return [2 /*return*/, new C3DT(__assign({ url: url }, props))];
|
|
4790
|
+
return [2 /*return*/, new C3DT(__assign(__assign({ url: url }, defaultProps), props))];
|
|
4783
4791
|
});
|
|
4784
4792
|
});
|
|
4785
4793
|
}
|
|
@@ -4949,11 +4957,12 @@ var TilesetRenderEngine;
|
|
|
4949
4957
|
cTileset_1 = _a.sent();
|
|
4950
4958
|
params.viewer.scene.primitives.add(cTileset_1);
|
|
4951
4959
|
cTileset_1.readyPromise.then(function () {
|
|
4952
|
-
var _a, _b, _c;
|
|
4960
|
+
var _a, _b, _c, _d;
|
|
4953
4961
|
try {
|
|
4954
4962
|
if (!isAlive(params.viewer, cTileset_1)) {
|
|
4955
4963
|
return;
|
|
4956
4964
|
}
|
|
4965
|
+
(_a = GetMemoryWatcher(params.viewer)) === null || _a === void 0 ? void 0 : _a.Watch(cTileset_1);
|
|
4957
4966
|
var settings = params.tileset.settings;
|
|
4958
4967
|
ApplySettings({
|
|
4959
4968
|
cTileset: cTileset_1,
|
|
@@ -4964,9 +4973,9 @@ var TilesetRenderEngine;
|
|
|
4964
4973
|
ApplyPosition({
|
|
4965
4974
|
cTileset: cTileset_1,
|
|
4966
4975
|
position: {
|
|
4967
|
-
ucs: (
|
|
4968
|
-
location: ((
|
|
4969
|
-
transform: ((
|
|
4976
|
+
ucs: (_b = params.coords) === null || _b === void 0 ? void 0 : _b.ucs,
|
|
4977
|
+
location: ((_c = params.coords) === null || _c === void 0 ? void 0 : _c.location) == null ? settings.location : params.coords.location,
|
|
4978
|
+
transform: ((_d = params.coords) === null || _d === void 0 ? void 0 : _d.transform) == null ? settings.transform : params.coords.transform
|
|
4970
4979
|
}
|
|
4971
4980
|
});
|
|
4972
4981
|
}
|
|
@@ -4997,10 +5006,12 @@ var TilesetRenderEngine;
|
|
|
4997
5006
|
cTileset_2 = _a.sent();
|
|
4998
5007
|
params.viewer.scene.primitives.add(cTileset_2);
|
|
4999
5008
|
cTileset_2.readyPromise.then(function () {
|
|
5009
|
+
var _a;
|
|
5000
5010
|
try {
|
|
5001
5011
|
if (!isAlive(params.viewer, cTileset_2)) {
|
|
5002
5012
|
return;
|
|
5003
5013
|
}
|
|
5014
|
+
(_a = GetMemoryWatcher(params.viewer)) === null || _a === void 0 ? void 0 : _a.Watch(cTileset_2);
|
|
5004
5015
|
var settings = params.tileset.settings;
|
|
5005
5016
|
ApplySettings({
|
|
5006
5017
|
cTileset: cTileset_2,
|
|
@@ -5073,10 +5084,12 @@ var TilesetRenderEngine;
|
|
|
5073
5084
|
cTileset = _a.sent();
|
|
5074
5085
|
viewer.scene.primitives.add(cTileset);
|
|
5075
5086
|
cTileset.readyPromise.then(function () {
|
|
5087
|
+
var _a;
|
|
5076
5088
|
try {
|
|
5077
5089
|
if (!isAlive(viewer, cTileset)) {
|
|
5078
5090
|
return;
|
|
5079
5091
|
}
|
|
5092
|
+
(_a = GetMemoryWatcher(params.viewer)) === null || _a === void 0 ? void 0 : _a.Watch(cTileset);
|
|
5080
5093
|
if (tileset) {
|
|
5081
5094
|
var settings_1 = tileset.Settings;
|
|
5082
5095
|
settings_1 = __assign({}, settings_1);
|
|
@@ -5523,6 +5536,89 @@ var TilesetRenderEngine;
|
|
|
5523
5536
|
return Styler;
|
|
5524
5537
|
}());
|
|
5525
5538
|
TilesetRenderEngine.Styler = Styler;
|
|
5539
|
+
/**
|
|
5540
|
+
* The maximum memory in MB that can be used by all tilesets.
|
|
5541
|
+
* This is distributed evenly between all loaded tilesets.
|
|
5542
|
+
*/
|
|
5543
|
+
TilesetRenderEngine.MAX_TILESET_MEMORY = 1024;
|
|
5544
|
+
/**
|
|
5545
|
+
* Watches tilesets in the viewer.
|
|
5546
|
+
* This will regulate their max memory param.
|
|
5547
|
+
* As more get watched their memory will be reduced.
|
|
5548
|
+
*/
|
|
5549
|
+
var MemoryWatcher = /** @class */ (function () {
|
|
5550
|
+
function MemoryWatcher(viewer) {
|
|
5551
|
+
this.watched = [];
|
|
5552
|
+
this.viewer = viewer;
|
|
5553
|
+
}
|
|
5554
|
+
MemoryWatcher.prototype.distributeMemory = function () {
|
|
5555
|
+
this.clean();
|
|
5556
|
+
// Total 1gb as default.
|
|
5557
|
+
// We'll need to allow user to change this somehow.
|
|
5558
|
+
var maxMemory = TilesetRenderEngine.MAX_TILESET_MEMORY;
|
|
5559
|
+
// Minimum memory in MB per tileset.
|
|
5560
|
+
var minMemory = 80;
|
|
5561
|
+
var totalPerTileset = Math.max(this.watched.length ? maxMemory / this.watched.length : maxMemory, minMemory);
|
|
5562
|
+
this.watched.forEach(function (x) {
|
|
5563
|
+
x.maximumMemoryUsage = totalPerTileset;
|
|
5564
|
+
});
|
|
5565
|
+
};
|
|
5566
|
+
MemoryWatcher.prototype.destroy = function () {
|
|
5567
|
+
this.watched = [];
|
|
5568
|
+
};
|
|
5569
|
+
/**
|
|
5570
|
+
* Remove all dead tilesets.
|
|
5571
|
+
*/
|
|
5572
|
+
MemoryWatcher.prototype.clean = function () {
|
|
5573
|
+
var _this = this;
|
|
5574
|
+
// Remove all dead tilesets.
|
|
5575
|
+
this.watched = this.watched.filter(function (x) { return isAlive(_this.viewer, x); });
|
|
5576
|
+
// Check if viewer is destroyed.
|
|
5577
|
+
if (!this.viewer || this.viewer.isDestroyed()) {
|
|
5578
|
+
this.destroy();
|
|
5579
|
+
}
|
|
5580
|
+
};
|
|
5581
|
+
MemoryWatcher.prototype.Watch = function (tileset) {
|
|
5582
|
+
if (!tileset) {
|
|
5583
|
+
return;
|
|
5584
|
+
}
|
|
5585
|
+
if (!tileset[WATCH_KEY]) {
|
|
5586
|
+
tileset[WATCH_KEY] = ObjectUtils.UId();
|
|
5587
|
+
}
|
|
5588
|
+
var index = this.watched.findIndex(function (x) { return x[WATCH_KEY] === tileset[WATCH_KEY]; });
|
|
5589
|
+
if (index >= 0) {
|
|
5590
|
+
return;
|
|
5591
|
+
}
|
|
5592
|
+
this.watched.push(tileset);
|
|
5593
|
+
this.distributeMemory();
|
|
5594
|
+
};
|
|
5595
|
+
MemoryWatcher.prototype.Unwatch = function (tileset) {
|
|
5596
|
+
if (!tileset) {
|
|
5597
|
+
return;
|
|
5598
|
+
}
|
|
5599
|
+
if (!tileset[WATCH_KEY]) {
|
|
5600
|
+
tileset[WATCH_KEY] = ObjectUtils.UId();
|
|
5601
|
+
}
|
|
5602
|
+
var index = this.watched.findIndex(function (x) { return (x === null || x === void 0 ? void 0 : x[WATCH_KEY]) === tileset[WATCH_KEY]; });
|
|
5603
|
+
if (index > -1) {
|
|
5604
|
+
this.watched.splice(index, 1);
|
|
5605
|
+
}
|
|
5606
|
+
this.distributeMemory();
|
|
5607
|
+
};
|
|
5608
|
+
return MemoryWatcher;
|
|
5609
|
+
}());
|
|
5610
|
+
TilesetRenderEngine.MemoryWatcher = MemoryWatcher;
|
|
5611
|
+
function GetMemoryWatcher(viewer) {
|
|
5612
|
+
// If viewer is dead return nothing.
|
|
5613
|
+
if (!viewer || viewer.isDestroyed()) {
|
|
5614
|
+
return null;
|
|
5615
|
+
}
|
|
5616
|
+
if (!viewer[VIEWER_WATCH_KEY]) {
|
|
5617
|
+
viewer[VIEWER_WATCH_KEY] = new MemoryWatcher(viewer);
|
|
5618
|
+
}
|
|
5619
|
+
return viewer[VIEWER_WATCH_KEY];
|
|
5620
|
+
}
|
|
5621
|
+
TilesetRenderEngine.GetMemoryWatcher = GetMemoryWatcher;
|
|
5526
5622
|
})(TilesetRenderEngine || (TilesetRenderEngine = {}));
|
|
5527
5623
|
|
|
5528
5624
|
/**
|
|
@@ -5803,16 +5899,17 @@ var TilesetCadRenderManager;
|
|
|
5803
5899
|
this.doDispose();
|
|
5804
5900
|
};
|
|
5805
5901
|
Manager.prototype.doDispose = function () {
|
|
5806
|
-
var _a;
|
|
5902
|
+
var _a, _b;
|
|
5807
5903
|
if (this.cTileset) {
|
|
5808
5904
|
var viewer = this.viewer;
|
|
5809
5905
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
5810
5906
|
this.cTileset.show = false;
|
|
5811
5907
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
5908
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
5812
5909
|
}
|
|
5813
5910
|
this.cTileset = null;
|
|
5814
5911
|
}
|
|
5815
|
-
(
|
|
5912
|
+
(_b = this.styler) === null || _b === void 0 ? void 0 : _b.Dispose();
|
|
5816
5913
|
this.visualsManager.RemoveRegos({
|
|
5817
5914
|
menuItemId: this.item.id
|
|
5818
5915
|
});
|
|
@@ -6353,11 +6450,13 @@ var TilesetEntitiesRenderManager;
|
|
|
6353
6450
|
this.doDispose();
|
|
6354
6451
|
};
|
|
6355
6452
|
Manager.prototype.doDispose = function () {
|
|
6453
|
+
var _a;
|
|
6356
6454
|
if (this.cTileset) {
|
|
6357
6455
|
var viewer = this.viewer;
|
|
6358
6456
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
6359
6457
|
this.cTileset.show = false;
|
|
6360
6458
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
6459
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
6361
6460
|
}
|
|
6362
6461
|
this.cTileset = null;
|
|
6363
6462
|
}
|
|
@@ -6505,11 +6604,13 @@ var TilesetPointcloudRenderManager;
|
|
|
6505
6604
|
this.doDispose();
|
|
6506
6605
|
};
|
|
6507
6606
|
Manager.prototype.doDispose = function () {
|
|
6607
|
+
var _a;
|
|
6508
6608
|
if (this.cTileset) {
|
|
6509
6609
|
var viewer = this.viewer;
|
|
6510
6610
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
6511
6611
|
this.cTileset.show = false;
|
|
6512
6612
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
6613
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
6513
6614
|
}
|
|
6514
6615
|
this.cTileset = null;
|
|
6515
6616
|
}
|
|
@@ -6855,16 +6956,17 @@ var TilesetArbRenderManager;
|
|
|
6855
6956
|
this.doDispose();
|
|
6856
6957
|
};
|
|
6857
6958
|
Manager.prototype.doDispose = function () {
|
|
6858
|
-
var _a;
|
|
6959
|
+
var _a, _b;
|
|
6859
6960
|
if (this.cTileset) {
|
|
6860
6961
|
var viewer = this.viewer;
|
|
6861
6962
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
6862
6963
|
this.cTileset.show = false;
|
|
6863
6964
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
6965
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
6864
6966
|
}
|
|
6865
6967
|
this.cTileset = null;
|
|
6866
6968
|
}
|
|
6867
|
-
(
|
|
6969
|
+
(_b = this.styler) === null || _b === void 0 ? void 0 : _b.Dispose();
|
|
6868
6970
|
this.visualsManager.RemoveRegos({
|
|
6869
6971
|
menuItemId: this.item.id
|
|
6870
6972
|
});
|