bruce-cesium 2.1.4 → 2.1.6
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 +126 -13
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +125 -12
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/rendering/entity-render-engine.js +12 -1
- package/dist/lib/rendering/entity-render-engine.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, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, OrthographicFrustum, JulianDate, NearFarScalar, Cesium3DTileset, Matrix4, Matrix3, IonResource, CesiumInspector, ColorMaterialProperty, EasingFunction, GeometryInstance, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline } from 'cesium';
|
|
4
4
|
|
|
5
5
|
var TIME_LAG = 300;
|
|
6
6
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -2035,11 +2035,17 @@ var EntityRenderEngine;
|
|
|
2035
2035
|
}
|
|
2036
2036
|
var bColor = style.lineColor ? Calculator.GetColor(style.lineColor, entity, params.tags) : null;
|
|
2037
2037
|
var cColor = bColor ? colorToCColor(bColor) : Color.RED;
|
|
2038
|
+
if (cColor.alpha <= 0) {
|
|
2039
|
+
return null;
|
|
2040
|
+
}
|
|
2038
2041
|
var width = style.lineWidth ? Calculator.GetNumber(style.lineWidth, entity, params.tags) : null;
|
|
2039
2042
|
if (width == null) {
|
|
2040
2043
|
width = 4;
|
|
2041
2044
|
}
|
|
2042
2045
|
width = EnsureNumber(width);
|
|
2046
|
+
if (width < 0.01) {
|
|
2047
|
+
width = 0;
|
|
2048
|
+
}
|
|
2043
2049
|
if (width <= 0) {
|
|
2044
2050
|
return null;
|
|
2045
2051
|
}
|
|
@@ -2135,7 +2141,12 @@ var EntityRenderEngine;
|
|
|
2135
2141
|
width = 4;
|
|
2136
2142
|
}
|
|
2137
2143
|
width = EnsureNumber(width);
|
|
2138
|
-
if (width
|
|
2144
|
+
if (width < 0.01) {
|
|
2145
|
+
width = 0;
|
|
2146
|
+
}
|
|
2147
|
+
// If both outline and fill is not available then don't render anything.
|
|
2148
|
+
if ((width <= 0 || cLineColor.alpha <= 0) &&
|
|
2149
|
+
cFillColor.alpha <= 0) {
|
|
2139
2150
|
return null;
|
|
2140
2151
|
}
|
|
2141
2152
|
var heightRef = getHeightRef(style);
|
|
@@ -4761,6 +4772,8 @@ function correctStyle(style) {
|
|
|
4761
4772
|
}
|
|
4762
4773
|
return style;
|
|
4763
4774
|
}
|
|
4775
|
+
var VIEWER_WATCH_KEY = "bruce-viewer-watch";
|
|
4776
|
+
var WATCH_KEY = "bruce-tileset-watch";
|
|
4764
4777
|
/**
|
|
4765
4778
|
* Creates and returns a tileset instance from a given url.
|
|
4766
4779
|
* This is made to handle the difference between old and new cesium versions.
|
|
@@ -4771,15 +4784,21 @@ function correctStyle(style) {
|
|
|
4771
4784
|
*/
|
|
4772
4785
|
function createTileset(url, props) {
|
|
4773
4786
|
return __awaiter(this, void 0, void 0, function () {
|
|
4774
|
-
var C3DT;
|
|
4787
|
+
var defaultProps, C3DT;
|
|
4775
4788
|
return __generator(this, function (_a) {
|
|
4789
|
+
defaultProps = {
|
|
4790
|
+
// "Optimization option. Reduce the screen space error for tiles that are further away from the camera.".
|
|
4791
|
+
dynamicScreenSpaceError: true,
|
|
4792
|
+
// "The maximum amount of memory in MB that can be used by the tileset.".
|
|
4793
|
+
maximumMemoryUsage: 512
|
|
4794
|
+
};
|
|
4776
4795
|
C3DT = Cesium3DTileset;
|
|
4777
4796
|
if (C3DT.fromUrl) {
|
|
4778
4797
|
// New cesium is running.
|
|
4779
|
-
return [2 /*return*/, C3DT.fromUrl(url, __assign({}, props))];
|
|
4798
|
+
return [2 /*return*/, C3DT.fromUrl(url, __assign(__assign({}, defaultProps), props))];
|
|
4780
4799
|
}
|
|
4781
4800
|
// Old cesium is running.
|
|
4782
|
-
return [2 /*return*/, new C3DT(__assign({ url: url }, props))];
|
|
4801
|
+
return [2 /*return*/, new C3DT(__assign(__assign({ url: url }, defaultProps), props))];
|
|
4783
4802
|
});
|
|
4784
4803
|
});
|
|
4785
4804
|
}
|
|
@@ -4949,11 +4968,12 @@ var TilesetRenderEngine;
|
|
|
4949
4968
|
cTileset_1 = _a.sent();
|
|
4950
4969
|
params.viewer.scene.primitives.add(cTileset_1);
|
|
4951
4970
|
cTileset_1.readyPromise.then(function () {
|
|
4952
|
-
var _a, _b, _c;
|
|
4971
|
+
var _a, _b, _c, _d;
|
|
4953
4972
|
try {
|
|
4954
4973
|
if (!isAlive(params.viewer, cTileset_1)) {
|
|
4955
4974
|
return;
|
|
4956
4975
|
}
|
|
4976
|
+
(_a = GetMemoryWatcher(params.viewer)) === null || _a === void 0 ? void 0 : _a.Watch(cTileset_1);
|
|
4957
4977
|
var settings = params.tileset.settings;
|
|
4958
4978
|
ApplySettings({
|
|
4959
4979
|
cTileset: cTileset_1,
|
|
@@ -4964,9 +4984,9 @@ var TilesetRenderEngine;
|
|
|
4964
4984
|
ApplyPosition({
|
|
4965
4985
|
cTileset: cTileset_1,
|
|
4966
4986
|
position: {
|
|
4967
|
-
ucs: (
|
|
4968
|
-
location: ((
|
|
4969
|
-
transform: ((
|
|
4987
|
+
ucs: (_b = params.coords) === null || _b === void 0 ? void 0 : _b.ucs,
|
|
4988
|
+
location: ((_c = params.coords) === null || _c === void 0 ? void 0 : _c.location) == null ? settings.location : params.coords.location,
|
|
4989
|
+
transform: ((_d = params.coords) === null || _d === void 0 ? void 0 : _d.transform) == null ? settings.transform : params.coords.transform
|
|
4970
4990
|
}
|
|
4971
4991
|
});
|
|
4972
4992
|
}
|
|
@@ -4997,10 +5017,12 @@ var TilesetRenderEngine;
|
|
|
4997
5017
|
cTileset_2 = _a.sent();
|
|
4998
5018
|
params.viewer.scene.primitives.add(cTileset_2);
|
|
4999
5019
|
cTileset_2.readyPromise.then(function () {
|
|
5020
|
+
var _a;
|
|
5000
5021
|
try {
|
|
5001
5022
|
if (!isAlive(params.viewer, cTileset_2)) {
|
|
5002
5023
|
return;
|
|
5003
5024
|
}
|
|
5025
|
+
(_a = GetMemoryWatcher(params.viewer)) === null || _a === void 0 ? void 0 : _a.Watch(cTileset_2);
|
|
5004
5026
|
var settings = params.tileset.settings;
|
|
5005
5027
|
ApplySettings({
|
|
5006
5028
|
cTileset: cTileset_2,
|
|
@@ -5073,10 +5095,12 @@ var TilesetRenderEngine;
|
|
|
5073
5095
|
cTileset = _a.sent();
|
|
5074
5096
|
viewer.scene.primitives.add(cTileset);
|
|
5075
5097
|
cTileset.readyPromise.then(function () {
|
|
5098
|
+
var _a;
|
|
5076
5099
|
try {
|
|
5077
5100
|
if (!isAlive(viewer, cTileset)) {
|
|
5078
5101
|
return;
|
|
5079
5102
|
}
|
|
5103
|
+
(_a = GetMemoryWatcher(params.viewer)) === null || _a === void 0 ? void 0 : _a.Watch(cTileset);
|
|
5080
5104
|
if (tileset) {
|
|
5081
5105
|
var settings_1 = tileset.Settings;
|
|
5082
5106
|
settings_1 = __assign({}, settings_1);
|
|
@@ -5523,6 +5547,89 @@ var TilesetRenderEngine;
|
|
|
5523
5547
|
return Styler;
|
|
5524
5548
|
}());
|
|
5525
5549
|
TilesetRenderEngine.Styler = Styler;
|
|
5550
|
+
/**
|
|
5551
|
+
* The maximum memory in MB that can be used by all tilesets.
|
|
5552
|
+
* This is distributed evenly between all loaded tilesets.
|
|
5553
|
+
*/
|
|
5554
|
+
TilesetRenderEngine.MAX_TILESET_MEMORY = 1024;
|
|
5555
|
+
/**
|
|
5556
|
+
* Watches tilesets in the viewer.
|
|
5557
|
+
* This will regulate their max memory param.
|
|
5558
|
+
* As more get watched their memory will be reduced.
|
|
5559
|
+
*/
|
|
5560
|
+
var MemoryWatcher = /** @class */ (function () {
|
|
5561
|
+
function MemoryWatcher(viewer) {
|
|
5562
|
+
this.watched = [];
|
|
5563
|
+
this.viewer = viewer;
|
|
5564
|
+
}
|
|
5565
|
+
MemoryWatcher.prototype.distributeMemory = function () {
|
|
5566
|
+
this.clean();
|
|
5567
|
+
// Total 1gb as default.
|
|
5568
|
+
// We'll need to allow user to change this somehow.
|
|
5569
|
+
var maxMemory = TilesetRenderEngine.MAX_TILESET_MEMORY;
|
|
5570
|
+
// Minimum memory in MB per tileset.
|
|
5571
|
+
var minMemory = 80;
|
|
5572
|
+
var totalPerTileset = Math.max(this.watched.length ? maxMemory / this.watched.length : maxMemory, minMemory);
|
|
5573
|
+
this.watched.forEach(function (x) {
|
|
5574
|
+
x.maximumMemoryUsage = totalPerTileset;
|
|
5575
|
+
});
|
|
5576
|
+
};
|
|
5577
|
+
MemoryWatcher.prototype.destroy = function () {
|
|
5578
|
+
this.watched = [];
|
|
5579
|
+
};
|
|
5580
|
+
/**
|
|
5581
|
+
* Remove all dead tilesets.
|
|
5582
|
+
*/
|
|
5583
|
+
MemoryWatcher.prototype.clean = function () {
|
|
5584
|
+
var _this = this;
|
|
5585
|
+
// Remove all dead tilesets.
|
|
5586
|
+
this.watched = this.watched.filter(function (x) { return isAlive(_this.viewer, x); });
|
|
5587
|
+
// Check if viewer is destroyed.
|
|
5588
|
+
if (!this.viewer || this.viewer.isDestroyed()) {
|
|
5589
|
+
this.destroy();
|
|
5590
|
+
}
|
|
5591
|
+
};
|
|
5592
|
+
MemoryWatcher.prototype.Watch = function (tileset) {
|
|
5593
|
+
if (!tileset) {
|
|
5594
|
+
return;
|
|
5595
|
+
}
|
|
5596
|
+
if (!tileset[WATCH_KEY]) {
|
|
5597
|
+
tileset[WATCH_KEY] = ObjectUtils.UId();
|
|
5598
|
+
}
|
|
5599
|
+
var index = this.watched.findIndex(function (x) { return x[WATCH_KEY] === tileset[WATCH_KEY]; });
|
|
5600
|
+
if (index >= 0) {
|
|
5601
|
+
return;
|
|
5602
|
+
}
|
|
5603
|
+
this.watched.push(tileset);
|
|
5604
|
+
this.distributeMemory();
|
|
5605
|
+
};
|
|
5606
|
+
MemoryWatcher.prototype.Unwatch = function (tileset) {
|
|
5607
|
+
if (!tileset) {
|
|
5608
|
+
return;
|
|
5609
|
+
}
|
|
5610
|
+
if (!tileset[WATCH_KEY]) {
|
|
5611
|
+
tileset[WATCH_KEY] = ObjectUtils.UId();
|
|
5612
|
+
}
|
|
5613
|
+
var index = this.watched.findIndex(function (x) { return (x === null || x === void 0 ? void 0 : x[WATCH_KEY]) === tileset[WATCH_KEY]; });
|
|
5614
|
+
if (index > -1) {
|
|
5615
|
+
this.watched.splice(index, 1);
|
|
5616
|
+
}
|
|
5617
|
+
this.distributeMemory();
|
|
5618
|
+
};
|
|
5619
|
+
return MemoryWatcher;
|
|
5620
|
+
}());
|
|
5621
|
+
TilesetRenderEngine.MemoryWatcher = MemoryWatcher;
|
|
5622
|
+
function GetMemoryWatcher(viewer) {
|
|
5623
|
+
// If viewer is dead return nothing.
|
|
5624
|
+
if (!viewer || viewer.isDestroyed()) {
|
|
5625
|
+
return null;
|
|
5626
|
+
}
|
|
5627
|
+
if (!viewer[VIEWER_WATCH_KEY]) {
|
|
5628
|
+
viewer[VIEWER_WATCH_KEY] = new MemoryWatcher(viewer);
|
|
5629
|
+
}
|
|
5630
|
+
return viewer[VIEWER_WATCH_KEY];
|
|
5631
|
+
}
|
|
5632
|
+
TilesetRenderEngine.GetMemoryWatcher = GetMemoryWatcher;
|
|
5526
5633
|
})(TilesetRenderEngine || (TilesetRenderEngine = {}));
|
|
5527
5634
|
|
|
5528
5635
|
/**
|
|
@@ -5803,16 +5910,17 @@ var TilesetCadRenderManager;
|
|
|
5803
5910
|
this.doDispose();
|
|
5804
5911
|
};
|
|
5805
5912
|
Manager.prototype.doDispose = function () {
|
|
5806
|
-
var _a;
|
|
5913
|
+
var _a, _b;
|
|
5807
5914
|
if (this.cTileset) {
|
|
5808
5915
|
var viewer = this.viewer;
|
|
5809
5916
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
5810
5917
|
this.cTileset.show = false;
|
|
5811
5918
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
5919
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
5812
5920
|
}
|
|
5813
5921
|
this.cTileset = null;
|
|
5814
5922
|
}
|
|
5815
|
-
(
|
|
5923
|
+
(_b = this.styler) === null || _b === void 0 ? void 0 : _b.Dispose();
|
|
5816
5924
|
this.visualsManager.RemoveRegos({
|
|
5817
5925
|
menuItemId: this.item.id
|
|
5818
5926
|
});
|
|
@@ -6353,11 +6461,13 @@ var TilesetEntitiesRenderManager;
|
|
|
6353
6461
|
this.doDispose();
|
|
6354
6462
|
};
|
|
6355
6463
|
Manager.prototype.doDispose = function () {
|
|
6464
|
+
var _a;
|
|
6356
6465
|
if (this.cTileset) {
|
|
6357
6466
|
var viewer = this.viewer;
|
|
6358
6467
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
6359
6468
|
this.cTileset.show = false;
|
|
6360
6469
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
6470
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
6361
6471
|
}
|
|
6362
6472
|
this.cTileset = null;
|
|
6363
6473
|
}
|
|
@@ -6505,11 +6615,13 @@ var TilesetPointcloudRenderManager;
|
|
|
6505
6615
|
this.doDispose();
|
|
6506
6616
|
};
|
|
6507
6617
|
Manager.prototype.doDispose = function () {
|
|
6618
|
+
var _a;
|
|
6508
6619
|
if (this.cTileset) {
|
|
6509
6620
|
var viewer = this.viewer;
|
|
6510
6621
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
6511
6622
|
this.cTileset.show = false;
|
|
6512
6623
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
6624
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
6513
6625
|
}
|
|
6514
6626
|
this.cTileset = null;
|
|
6515
6627
|
}
|
|
@@ -6855,16 +6967,17 @@ var TilesetArbRenderManager;
|
|
|
6855
6967
|
this.doDispose();
|
|
6856
6968
|
};
|
|
6857
6969
|
Manager.prototype.doDispose = function () {
|
|
6858
|
-
var _a;
|
|
6970
|
+
var _a, _b;
|
|
6859
6971
|
if (this.cTileset) {
|
|
6860
6972
|
var viewer = this.viewer;
|
|
6861
6973
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
6862
6974
|
this.cTileset.show = false;
|
|
6863
6975
|
this.viewer.scene.primitives.remove(this.cTileset);
|
|
6976
|
+
(_a = TilesetRenderEngine.GetMemoryWatcher(viewer)) === null || _a === void 0 ? void 0 : _a.Unwatch(this.cTileset);
|
|
6864
6977
|
}
|
|
6865
6978
|
this.cTileset = null;
|
|
6866
6979
|
}
|
|
6867
|
-
(
|
|
6980
|
+
(_b = this.styler) === null || _b === void 0 ? void 0 : _b.Dispose();
|
|
6868
6981
|
this.visualsManager.RemoveRegos({
|
|
6869
6982
|
menuItemId: this.item.id
|
|
6870
6983
|
});
|