bruce-cesium 0.0.2 → 0.0.4
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 +483 -329
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +453 -333
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/rendering/entity-render-engine.js.map +1 -1
- package/dist/lib/rendering/menu-item-manager.js +173 -130
- package/dist/lib/rendering/menu-item-manager.js.map +1 -1
- package/dist/lib/rendering/render-helper.js +3 -0
- package/dist/lib/rendering/render-helper.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +5 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +6 -1
- 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 +5 -1
- 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 +4 -1
- package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +5 -4
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
- package/dist/lib/rendering/tileset-render-engine.js +1 -1
- package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js +166 -139
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/lib/utils/drawing-utils.js +8 -0
- package/dist/lib/utils/drawing-utils.js.map +1 -1
- package/dist/lib/utils/entity-utils.js +33 -0
- package/dist/lib/utils/entity-utils.js.map +1 -1
- package/dist/lib/utils/measure-utils.js +6 -0
- package/dist/lib/utils/measure-utils.js.map +1 -1
- package/dist/lib/viewer/cesium-view-monitor.js +3 -0
- package/dist/lib/viewer/cesium-view-monitor.js.map +1 -1
- package/dist/lib/viewer/viewer-utils.js +10 -0
- package/dist/lib/viewer/viewer-utils.js.map +1 -1
- package/dist/types/rendering/entity-render-engine.d.ts +5 -5
- package/dist/types/rendering/menu-item-manager.d.ts +33 -8
- package/dist/types/rendering/render-helper.d.ts +7 -4
- package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +5 -1
- package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +6 -1
- package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +5 -1
- package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +4 -1
- package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +5 -1
- package/dist/types/rendering/tileset-render-engine.d.ts +2 -2
- package/dist/types/rendering/visuals-register.d.ts +38 -20
- package/dist/types/utils/drawing-utils.d.ts +8 -0
- package/dist/types/utils/entity-utils.d.ts +12 -0
- package/dist/types/utils/measure-utils.d.ts +6 -0
- package/dist/types/viewer/cesium-view-monitor.d.ts +3 -0
- package/dist/types/viewer/viewer-utils.d.ts +10 -0
- package/package.json +1 -1
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Color, HeightReference, Cartographic, Cartesian3, Entity, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Primitive, Cesium3DTileFeature, Cartesian2, HeadingPitchRange, Math as Math$1, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
|
|
2
|
+
import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, EntityFilterGetter, BatchedDataGetter, ObjectUtils, Tileset, MenuItem } from 'bruce-models';
|
|
3
3
|
|
|
4
4
|
var TIME_LAG = 300;
|
|
5
5
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -72,6 +72,9 @@ function areBoundsEqual(a, b) {
|
|
|
72
72
|
function arePosEqual(a, b) {
|
|
73
73
|
return a.latitude == b.latitude && a.longitude == b.longitude;
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Monitors and emits events when the Cesium view changes.
|
|
77
|
+
*/
|
|
75
78
|
var CesiumViewMonitor = /** @class */ (function () {
|
|
76
79
|
function CesiumViewMonitor(viewer) {
|
|
77
80
|
var _this = this;
|
|
@@ -219,6 +222,12 @@ var CesiumViewMonitor = /** @class */ (function () {
|
|
|
219
222
|
|
|
220
223
|
var ViewerUtils;
|
|
221
224
|
(function (ViewerUtils) {
|
|
225
|
+
/**
|
|
226
|
+
* Creates a Cesium viewer in a given HTML container and returns it.
|
|
227
|
+
* This will kill all widgets in the process.
|
|
228
|
+
* @param container
|
|
229
|
+
* @returns
|
|
230
|
+
*/
|
|
222
231
|
function InitViewer(container) {
|
|
223
232
|
if (container._cViewer) {
|
|
224
233
|
throw new Error("Container already has a viewer.");
|
|
@@ -252,6 +261,10 @@ var ViewerUtils;
|
|
|
252
261
|
}
|
|
253
262
|
}
|
|
254
263
|
ViewerUtils.DestroyWidget = DestroyWidget;
|
|
264
|
+
/**
|
|
265
|
+
* Hides all unnecessary elements from the Cesium viewer container.
|
|
266
|
+
* @param viewer
|
|
267
|
+
*/
|
|
255
268
|
function StyleContainer(viewer) {
|
|
256
269
|
var _a;
|
|
257
270
|
var container = viewer.container;
|
|
@@ -354,6 +367,14 @@ function __generator(thisArg, body) {
|
|
|
354
367
|
|
|
355
368
|
var DrawingUtils;
|
|
356
369
|
(function (DrawingUtils) {
|
|
370
|
+
/**
|
|
371
|
+
* Returns the point across a polyline at a given distance.
|
|
372
|
+
* If the distance exceeds the length of the line, the point will be placed at the end of the line.
|
|
373
|
+
* @param viewer
|
|
374
|
+
* @param positions
|
|
375
|
+
* @param distance
|
|
376
|
+
* @returns
|
|
377
|
+
*/
|
|
357
378
|
function PointAcrossPolyline(viewer, positions, distance) {
|
|
358
379
|
if (positions.length > 1) {
|
|
359
380
|
var currentDistance = 0;
|
|
@@ -385,6 +406,12 @@ var DrawingUtils;
|
|
|
385
406
|
|
|
386
407
|
var MeasureUtils;
|
|
387
408
|
(function (MeasureUtils) {
|
|
409
|
+
/**
|
|
410
|
+
* Returns the total distance in meters between an array of points.
|
|
411
|
+
* This distance is NOT following the terrain.
|
|
412
|
+
* @param posses
|
|
413
|
+
* @returns
|
|
414
|
+
*/
|
|
388
415
|
function MeasurePolyline(posses) {
|
|
389
416
|
if (posses.length < 2) {
|
|
390
417
|
return 0;
|
|
@@ -408,8 +435,27 @@ var MeasureUtils;
|
|
|
408
435
|
MeasureUtils.MeasurePolyline = MeasurePolyline;
|
|
409
436
|
})(MeasureUtils || (MeasureUtils = {}));
|
|
410
437
|
|
|
438
|
+
function traverseEntity(cEntity, arr) {
|
|
439
|
+
if (cEntity._parentEntity) {
|
|
440
|
+
traverseEntity(cEntity._parentEntity, arr);
|
|
441
|
+
}
|
|
442
|
+
if (cEntity._siblingGraphics) {
|
|
443
|
+
for (var i = 0; i < cEntity._siblingGraphics.length; i++) {
|
|
444
|
+
var sibling = cEntity._siblingGraphics[i];
|
|
445
|
+
traverseEntity(sibling, arr);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
arr.push(cEntity);
|
|
449
|
+
}
|
|
411
450
|
var EntityUtils;
|
|
412
451
|
(function (EntityUtils) {
|
|
452
|
+
/**
|
|
453
|
+
* Returns an entity's position.
|
|
454
|
+
* This will attempt to calculate it from multiple sources of data.
|
|
455
|
+
* @param viewer
|
|
456
|
+
* @param entity
|
|
457
|
+
* @returns
|
|
458
|
+
*/
|
|
413
459
|
function GetPos(viewer, entity) {
|
|
414
460
|
if (entity.location && Carto.ValidateCarto(entity.location)) {
|
|
415
461
|
var location_1 = entity.location;
|
|
@@ -466,6 +512,20 @@ var EntityUtils;
|
|
|
466
512
|
return null;
|
|
467
513
|
}
|
|
468
514
|
EntityUtils.GetPos = GetPos;
|
|
515
|
+
/**
|
|
516
|
+
* Returns entity and any associated parent/sibling entities as a flat array.
|
|
517
|
+
* @param entity
|
|
518
|
+
*/
|
|
519
|
+
function GatherEntity(entity) {
|
|
520
|
+
if (entity instanceof Entity) {
|
|
521
|
+
var cEntity = entity;
|
|
522
|
+
var items = [];
|
|
523
|
+
traverseEntity(cEntity, items);
|
|
524
|
+
return items;
|
|
525
|
+
}
|
|
526
|
+
return [entity];
|
|
527
|
+
}
|
|
528
|
+
EntityUtils.GatherEntity = GatherEntity;
|
|
469
529
|
})(EntityUtils || (EntityUtils = {}));
|
|
470
530
|
|
|
471
531
|
var RenderManager;
|
|
@@ -1244,6 +1304,10 @@ var EntityRenderEngine;
|
|
|
1244
1304
|
})(Model3d = EntityRenderEngine.Model3d || (EntityRenderEngine.Model3d = {}));
|
|
1245
1305
|
})(EntityRenderEngine || (EntityRenderEngine = {}));
|
|
1246
1306
|
|
|
1307
|
+
/**
|
|
1308
|
+
* Manager for rendering Bruce entities.
|
|
1309
|
+
* This will request entities based on setup menu item filter.
|
|
1310
|
+
*/
|
|
1247
1311
|
var EntitiesRenderManager;
|
|
1248
1312
|
(function (EntitiesRenderManager) {
|
|
1249
1313
|
var Manager = /** @class */ (function () {
|
|
@@ -1395,7 +1459,7 @@ var EntitiesRenderManager;
|
|
|
1395
1459
|
this.visualsManager.Add({
|
|
1396
1460
|
entityId: id,
|
|
1397
1461
|
menuItemId: this.item.id,
|
|
1398
|
-
|
|
1462
|
+
visual: cEntity,
|
|
1399
1463
|
priority: 0
|
|
1400
1464
|
});
|
|
1401
1465
|
}
|
|
@@ -1414,6 +1478,11 @@ var EntitiesRenderManager;
|
|
|
1414
1478
|
EntitiesRenderManager.Manager = Manager;
|
|
1415
1479
|
})(EntitiesRenderManager || (EntitiesRenderManager = {}));
|
|
1416
1480
|
|
|
1481
|
+
/**
|
|
1482
|
+
* Render manager for a group of pre-loaded entities.
|
|
1483
|
+
* The entities may or may not have records.
|
|
1484
|
+
* If the entities DON'T have records, it is recommended to avoid using the 3dmodel visualization as it will fail to locate LODs.
|
|
1485
|
+
*/
|
|
1417
1486
|
var EntitiesLoadedRenderManager;
|
|
1418
1487
|
(function (EntitiesLoadedRenderManager) {
|
|
1419
1488
|
var Manager = /** @class */ (function () {
|
|
@@ -1488,7 +1557,7 @@ var EntitiesLoadedRenderManager;
|
|
|
1488
1557
|
this.visualsManager.Add({
|
|
1489
1558
|
entityId: id,
|
|
1490
1559
|
menuItemId: this.item.id,
|
|
1491
|
-
|
|
1560
|
+
visual: cEntity,
|
|
1492
1561
|
priority: 0
|
|
1493
1562
|
});
|
|
1494
1563
|
}
|
|
@@ -1507,6 +1576,230 @@ var EntitiesLoadedRenderManager;
|
|
|
1507
1576
|
EntitiesLoadedRenderManager.Manager = Manager;
|
|
1508
1577
|
})(EntitiesLoadedRenderManager || (EntitiesLoadedRenderManager = {}));
|
|
1509
1578
|
|
|
1579
|
+
function removeEntity(viewer, visual) {
|
|
1580
|
+
unmarkEntity(visual);
|
|
1581
|
+
if (visual instanceof Entity) {
|
|
1582
|
+
EntityRenderEngine.Remove(viewer, visual);
|
|
1583
|
+
}
|
|
1584
|
+
else if (visual instanceof Primitive) {
|
|
1585
|
+
if (viewer.scene.primitives.contains(visual)) {
|
|
1586
|
+
viewer.scene.primitives.remove(visual);
|
|
1587
|
+
}
|
|
1588
|
+
}
|
|
1589
|
+
else if (visual instanceof Cesium3DTileFeature) {
|
|
1590
|
+
// No way to tell if changing show will crash it!
|
|
1591
|
+
try {
|
|
1592
|
+
visual.show = false;
|
|
1593
|
+
}
|
|
1594
|
+
catch (e) {
|
|
1595
|
+
console.error(e);
|
|
1596
|
+
}
|
|
1597
|
+
}
|
|
1598
|
+
}
|
|
1599
|
+
function updateCEntityShow(viewer, visual, show) {
|
|
1600
|
+
if (visual._parentEntity) {
|
|
1601
|
+
updateCEntityShow(viewer, visual._parentEntity, show);
|
|
1602
|
+
}
|
|
1603
|
+
if (visual._siblingGraphics) {
|
|
1604
|
+
for (var i = 0; i < visual._siblingGraphics.length; i++) {
|
|
1605
|
+
var sibling = visual._siblingGraphics[i];
|
|
1606
|
+
updateCEntityShow(viewer, sibling, show);
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1609
|
+
if (viewer.entities.contains(visual)) {
|
|
1610
|
+
visual.show = show;
|
|
1611
|
+
}
|
|
1612
|
+
}
|
|
1613
|
+
function updateEntityShow(viewer, visual, show) {
|
|
1614
|
+
if (visual instanceof Entity) {
|
|
1615
|
+
updateCEntityShow(viewer, visual, show);
|
|
1616
|
+
}
|
|
1617
|
+
else if (visual instanceof Primitive) {
|
|
1618
|
+
if (viewer.scene.primitives.contains(visual)) {
|
|
1619
|
+
visual.show = show;
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
else if (visual instanceof Cesium3DTileFeature) {
|
|
1623
|
+
// No way to tell if changing show will crash it!
|
|
1624
|
+
try {
|
|
1625
|
+
visual.show = show;
|
|
1626
|
+
}
|
|
1627
|
+
catch (e) {
|
|
1628
|
+
console.error(e);
|
|
1629
|
+
}
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1632
|
+
function updateEntity(viewer, entityRegos) {
|
|
1633
|
+
var highestPriority = null;
|
|
1634
|
+
for (var i = 0; i < entityRegos.length; i++) {
|
|
1635
|
+
var rego = entityRegos[i];
|
|
1636
|
+
if (highestPriority === null || rego.priority > highestPriority.priority) {
|
|
1637
|
+
highestPriority = rego;
|
|
1638
|
+
}
|
|
1639
|
+
}
|
|
1640
|
+
for (var i = 0; i < entityRegos.length; i++) {
|
|
1641
|
+
var rego = entityRegos[i];
|
|
1642
|
+
updateEntityShow(viewer, rego.visual, rego === highestPriority);
|
|
1643
|
+
}
|
|
1644
|
+
}
|
|
1645
|
+
function markEntity(register, rego, visual) {
|
|
1646
|
+
var vis = visual;
|
|
1647
|
+
vis._register = register;
|
|
1648
|
+
vis._rego = rego;
|
|
1649
|
+
if (visual instanceof Entity) {
|
|
1650
|
+
var visEnt = visual;
|
|
1651
|
+
if (visEnt._parentEntity) {
|
|
1652
|
+
markEntity(register, rego, visEnt._parentEntity);
|
|
1653
|
+
}
|
|
1654
|
+
if (visEnt._siblingGraphics) {
|
|
1655
|
+
for (var i = 0; i < visEnt._siblingGraphics.length; i++) {
|
|
1656
|
+
markEntity(register, rego, visEnt._siblingGraphics[i]);
|
|
1657
|
+
}
|
|
1658
|
+
}
|
|
1659
|
+
}
|
|
1660
|
+
}
|
|
1661
|
+
function unmarkEntity(visual) {
|
|
1662
|
+
var vis = visual;
|
|
1663
|
+
vis._register = null;
|
|
1664
|
+
if (visual instanceof Entity) {
|
|
1665
|
+
var visEnt = visual;
|
|
1666
|
+
if (visEnt._parentEntity) {
|
|
1667
|
+
unmarkEntity(visEnt._parentEntity);
|
|
1668
|
+
}
|
|
1669
|
+
if (visEnt._siblingGraphics) {
|
|
1670
|
+
for (var i = 0; i < visEnt._siblingGraphics.length; i++) {
|
|
1671
|
+
unmarkEntity(visEnt._siblingGraphics[i]);
|
|
1672
|
+
}
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1675
|
+
}
|
|
1676
|
+
/**
|
|
1677
|
+
* Manages a registry of all Bruce visuals being rendered by menu items.
|
|
1678
|
+
* If multiple stuff is registered with the same entity id, only the "best" one is left visible.
|
|
1679
|
+
*/
|
|
1680
|
+
var VisualsRegister;
|
|
1681
|
+
(function (VisualsRegister) {
|
|
1682
|
+
var Register = /** @class */ (function () {
|
|
1683
|
+
function Register(viewer) {
|
|
1684
|
+
this.id = ObjectUtils.UId();
|
|
1685
|
+
this.rego = {};
|
|
1686
|
+
this.onUpdate = null;
|
|
1687
|
+
this.viewer = viewer;
|
|
1688
|
+
}
|
|
1689
|
+
Object.defineProperty(Register.prototype, "Id", {
|
|
1690
|
+
get: function () {
|
|
1691
|
+
return this.id;
|
|
1692
|
+
},
|
|
1693
|
+
enumerable: false,
|
|
1694
|
+
configurable: true
|
|
1695
|
+
});
|
|
1696
|
+
Object.defineProperty(Register.prototype, "OnUpdate", {
|
|
1697
|
+
get: function () {
|
|
1698
|
+
return this.onUpdate;
|
|
1699
|
+
},
|
|
1700
|
+
enumerable: false,
|
|
1701
|
+
configurable: true
|
|
1702
|
+
});
|
|
1703
|
+
Register.prototype.Add = function (rego) {
|
|
1704
|
+
var _a, _b;
|
|
1705
|
+
this.Remove(rego.entityId, rego.menuItemId, false);
|
|
1706
|
+
var entityId = rego.entityId;
|
|
1707
|
+
var entityRegos = (_a = this.rego[entityId]) !== null && _a !== void 0 ? _a : [];
|
|
1708
|
+
entityRegos.push(rego);
|
|
1709
|
+
this.rego[entityId] = entityRegos;
|
|
1710
|
+
markEntity(this, rego, rego.visual);
|
|
1711
|
+
updateEntity(this.viewer, this.rego[entityId]);
|
|
1712
|
+
(_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ rego: rego, isAdding: true });
|
|
1713
|
+
};
|
|
1714
|
+
Register.prototype.GetVisuals = function (entityId, menuItemId) {
|
|
1715
|
+
var _a;
|
|
1716
|
+
var entityRegos = this.rego[entityId];
|
|
1717
|
+
if (!entityRegos) {
|
|
1718
|
+
return [];
|
|
1719
|
+
}
|
|
1720
|
+
var visuals = (_a = entityRegos.find(function (r) { return r.menuItemId === menuItemId; })) === null || _a === void 0 ? void 0 : _a.visual;
|
|
1721
|
+
return visuals !== null && visuals !== void 0 ? visuals : [];
|
|
1722
|
+
};
|
|
1723
|
+
Register.prototype.RemoveByEntityId = function (id) {
|
|
1724
|
+
var _a;
|
|
1725
|
+
var entityRegos = this.rego[id];
|
|
1726
|
+
if (!entityRegos) {
|
|
1727
|
+
return;
|
|
1728
|
+
}
|
|
1729
|
+
for (var i = 0; i < entityRegos.length; i++) {
|
|
1730
|
+
var rego = entityRegos[i];
|
|
1731
|
+
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({ rego: rego, isAdding: false });
|
|
1732
|
+
removeEntity(this.viewer, rego.visual);
|
|
1733
|
+
}
|
|
1734
|
+
this.rego[id] = [];
|
|
1735
|
+
delete this.rego[id];
|
|
1736
|
+
};
|
|
1737
|
+
Register.prototype.RemoveByMenuItemId = function (id) {
|
|
1738
|
+
var _a;
|
|
1739
|
+
for (var entityId in this.rego) {
|
|
1740
|
+
var entityRegos = this.rego[entityId];
|
|
1741
|
+
if (entityRegos) {
|
|
1742
|
+
var rego = entityRegos.find(function (r) { return r.menuItemId === id; });
|
|
1743
|
+
if (!rego) {
|
|
1744
|
+
continue;
|
|
1745
|
+
}
|
|
1746
|
+
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({ rego: rego, isAdding: false });
|
|
1747
|
+
removeEntity(this.viewer, rego.visual);
|
|
1748
|
+
var doesInclude = this.rego[entityId].find(function (r) { return r.menuItemId === id; });
|
|
1749
|
+
if (doesInclude) {
|
|
1750
|
+
this.rego[entityId] = entityRegos.filter(function (r) { return r.menuItemId !== id; });
|
|
1751
|
+
updateEntity(this.viewer, this.rego[entityId]);
|
|
1752
|
+
}
|
|
1753
|
+
}
|
|
1754
|
+
}
|
|
1755
|
+
};
|
|
1756
|
+
Register.prototype.Remove = function (entityId, menuItemId, _doUpdate) {
|
|
1757
|
+
var _a;
|
|
1758
|
+
if (_doUpdate === void 0) { _doUpdate = true; }
|
|
1759
|
+
var entityRegos = this.rego[entityId];
|
|
1760
|
+
if (!entityRegos) {
|
|
1761
|
+
return;
|
|
1762
|
+
}
|
|
1763
|
+
var rego = entityRegos.find(function (r) { return r.menuItemId === menuItemId; });
|
|
1764
|
+
if (!rego) {
|
|
1765
|
+
return;
|
|
1766
|
+
}
|
|
1767
|
+
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({ rego: rego, isAdding: false });
|
|
1768
|
+
removeEntity(this.viewer, rego.visual);
|
|
1769
|
+
this.rego[entityId] = entityRegos.filter(function (r) { return r.menuItemId !== menuItemId; });
|
|
1770
|
+
if (_doUpdate) {
|
|
1771
|
+
updateEntity(this.viewer, this.rego[entityId]);
|
|
1772
|
+
}
|
|
1773
|
+
};
|
|
1774
|
+
/**
|
|
1775
|
+
* Returns an array of drilled visuals associated with this register.
|
|
1776
|
+
* The top array item is the first found.
|
|
1777
|
+
* @param cursor
|
|
1778
|
+
* @returns
|
|
1779
|
+
*/
|
|
1780
|
+
Register.prototype.GetFromCursor = function (cursor) {
|
|
1781
|
+
var _a;
|
|
1782
|
+
var found = [];
|
|
1783
|
+
var picked = this.viewer.scene.drillPick(new Cartesian2(cursor.x, cursor.y), 5);
|
|
1784
|
+
for (var i = 0; i < picked.length; i++) {
|
|
1785
|
+
var object = picked[i];
|
|
1786
|
+
var entity = (object && object.id && object.id instanceof Entity ? object.id : object);
|
|
1787
|
+
var visual = entity;
|
|
1788
|
+
if (((_a = visual === null || visual === void 0 ? void 0 : visual._register) === null || _a === void 0 ? void 0 : _a.Id) == this.id) {
|
|
1789
|
+
found.push(visual._rego);
|
|
1790
|
+
}
|
|
1791
|
+
}
|
|
1792
|
+
return found;
|
|
1793
|
+
};
|
|
1794
|
+
return Register;
|
|
1795
|
+
}());
|
|
1796
|
+
VisualsRegister.Register = Register;
|
|
1797
|
+
})(VisualsRegister || (VisualsRegister = {}));
|
|
1798
|
+
|
|
1799
|
+
/**
|
|
1800
|
+
* Render manager for rendering an array of entity ids.
|
|
1801
|
+
* This will render them in batches to avoid overloading the viewer.
|
|
1802
|
+
*/
|
|
1510
1803
|
var EntitiesIdsRenderManager;
|
|
1511
1804
|
(function (EntitiesIdsRenderManager) {
|
|
1512
1805
|
var Manager = /** @class */ (function () {
|
|
@@ -1584,7 +1877,7 @@ var EntitiesIdsRenderManager;
|
|
|
1584
1877
|
this.visualsManager.Add({
|
|
1585
1878
|
entityId: id,
|
|
1586
1879
|
menuItemId: this.item.id,
|
|
1587
|
-
|
|
1880
|
+
visual: cEntity,
|
|
1588
1881
|
priority: 0
|
|
1589
1882
|
});
|
|
1590
1883
|
}
|
|
@@ -1603,6 +1896,9 @@ var EntitiesIdsRenderManager;
|
|
|
1603
1896
|
EntitiesIdsRenderManager.Manager = Manager;
|
|
1604
1897
|
})(EntitiesIdsRenderManager || (EntitiesIdsRenderManager = {}));
|
|
1605
1898
|
|
|
1899
|
+
/**
|
|
1900
|
+
* Manager for rendering a single Bruce entity.
|
|
1901
|
+
*/
|
|
1606
1902
|
var EntityRenderManager;
|
|
1607
1903
|
(function (EntityRenderManager) {
|
|
1608
1904
|
var Manager = /** @class */ (function () {
|
|
@@ -1676,7 +1972,7 @@ var EntityRenderManager;
|
|
|
1676
1972
|
this.visualsManager.Add({
|
|
1677
1973
|
entityId: entity.Bruce.ID,
|
|
1678
1974
|
menuItemId: this.item.id,
|
|
1679
|
-
|
|
1975
|
+
visual: cEntity,
|
|
1680
1976
|
priority: 0
|
|
1681
1977
|
});
|
|
1682
1978
|
}
|
|
@@ -2084,7 +2380,7 @@ var TilesetRenderEngine;
|
|
|
2084
2380
|
var bColor = (((_a = style.modelStyle) === null || _a === void 0 ? void 0 : _a.fillColor) ? Calculator.GetValue(style.modelStyle.fillColor, data, []) : null);
|
|
2085
2381
|
if (bColor != null) {
|
|
2086
2382
|
var cColor = colorToCColor$1(bColor);
|
|
2087
|
-
var visual = entity.
|
|
2383
|
+
var visual = entity.visual;
|
|
2088
2384
|
if (visual && visual instanceof Cesium3DTileFeature) {
|
|
2089
2385
|
visual.color = cColor;
|
|
2090
2386
|
}
|
|
@@ -2125,6 +2421,10 @@ var TilesetRenderEngine;
|
|
|
2125
2421
|
TilesetRenderEngine.CadStyler = CadStyler;
|
|
2126
2422
|
})(TilesetRenderEngine || (TilesetRenderEngine = {}));
|
|
2127
2423
|
|
|
2424
|
+
/**
|
|
2425
|
+
* Manager for rendering CAD tilesets.
|
|
2426
|
+
* CAD tilesets are referred to as "MODEL" tilesets in some other areas of Bruce code.
|
|
2427
|
+
*/
|
|
2128
2428
|
var TilesetCadRenderManager;
|
|
2129
2429
|
(function (TilesetCadRenderManager) {
|
|
2130
2430
|
var Manager = /** @class */ (function () {
|
|
@@ -2208,7 +2508,7 @@ var TilesetCadRenderManager;
|
|
|
2208
2508
|
entityTypeId: null,
|
|
2209
2509
|
menuItemId: this.item.id,
|
|
2210
2510
|
priority: 0,
|
|
2211
|
-
|
|
2511
|
+
visual: feature
|
|
2212
2512
|
};
|
|
2213
2513
|
if (version == 1) {
|
|
2214
2514
|
var pathStr = feature.getProperty("BrucePath");
|
|
@@ -2309,138 +2609,184 @@ var TilesetCadRenderManager;
|
|
|
2309
2609
|
TilesetCadRenderManager.Manager = Manager;
|
|
2310
2610
|
})(TilesetCadRenderManager || (TilesetCadRenderManager = {}));
|
|
2311
2611
|
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
case MenuItem.EType.Entities:
|
|
2334
|
-
rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2335
|
-
break;
|
|
2336
|
-
case MenuItem.EType.EntitiesLoaded:
|
|
2337
|
-
rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2338
|
-
break;
|
|
2339
|
-
case MenuItem.EType.EntitiesIds:
|
|
2340
|
-
rItem.renderManager = new EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2341
|
-
break;
|
|
2342
|
-
case MenuItem.EType.Entity:
|
|
2343
|
-
rItem.renderManager = new EntityRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2344
|
-
case MenuItem.EType.CadTileset:
|
|
2345
|
-
rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2346
|
-
break;
|
|
2347
|
-
case MenuItem.EType.Osm:
|
|
2348
|
-
// TODO;
|
|
2349
|
-
break;
|
|
2350
|
-
case MenuItem.EType.PointCloud:
|
|
2351
|
-
// TODO;
|
|
2352
|
-
break;
|
|
2353
|
-
case MenuItem.EType.EntityTileset:
|
|
2354
|
-
// TODO;
|
|
2355
|
-
break;
|
|
2356
|
-
case MenuItem.EType.Kml:
|
|
2357
|
-
// TODO;
|
|
2358
|
-
break;
|
|
2359
|
-
// Any "none" type can be ignored. These are just containers for other items.
|
|
2360
|
-
case MenuItem.EType.None:
|
|
2361
|
-
case "":
|
|
2362
|
-
case null:
|
|
2363
|
-
break;
|
|
2364
|
-
default:
|
|
2365
|
-
throw ("Menu item type is not implemented.");
|
|
2366
|
-
}
|
|
2367
|
-
if (!rItem.renderManager) return [3 /*break*/, 2];
|
|
2368
|
-
return [4 /*yield*/, rItem.renderManager.Init()];
|
|
2369
|
-
case 1:
|
|
2370
|
-
_b.sent();
|
|
2371
|
-
_b.label = 2;
|
|
2372
|
-
case 2:
|
|
2373
|
-
this.items.push(rItem);
|
|
2374
|
-
if (!item.Children) return [3 /*break*/, 6];
|
|
2375
|
-
i = 0;
|
|
2376
|
-
_b.label = 3;
|
|
2377
|
-
case 3:
|
|
2378
|
-
if (!(i < item.Children.length)) return [3 /*break*/, 6];
|
|
2379
|
-
return [4 /*yield*/, this.RenderItem(api, item.Children[i])];
|
|
2380
|
-
case 4:
|
|
2381
|
-
childId = _b.sent();
|
|
2382
|
-
rItem.childIds.push(childId);
|
|
2383
|
-
_b.label = 5;
|
|
2384
|
-
case 5:
|
|
2385
|
-
i++;
|
|
2386
|
-
return [3 /*break*/, 3];
|
|
2387
|
-
case 6: return [2 /*return*/, rItem.id];
|
|
2388
|
-
}
|
|
2389
|
-
});
|
|
2612
|
+
/**
|
|
2613
|
+
* Utility to keep track of enabled menu items within a Cesium viewer.
|
|
2614
|
+
*/
|
|
2615
|
+
var MenuItemManager;
|
|
2616
|
+
(function (MenuItemManager) {
|
|
2617
|
+
var Manager = /** @class */ (function () {
|
|
2618
|
+
function Manager(viewer, visualsRegister) {
|
|
2619
|
+
this.items = [];
|
|
2620
|
+
this.onUpdate = null;
|
|
2621
|
+
this.viewer = viewer;
|
|
2622
|
+
if (!visualsRegister) {
|
|
2623
|
+
visualsRegister = new VisualsRegister.Register(viewer);
|
|
2624
|
+
}
|
|
2625
|
+
this.visualsRegister = visualsRegister;
|
|
2626
|
+
}
|
|
2627
|
+
Object.defineProperty(Manager.prototype, "VisualsRegister", {
|
|
2628
|
+
get: function () {
|
|
2629
|
+
return this.visualsRegister;
|
|
2630
|
+
},
|
|
2631
|
+
enumerable: false,
|
|
2632
|
+
configurable: true
|
|
2390
2633
|
});
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
case 0:
|
|
2398
|
-
item = this.items.find(function (x) { return x.id === id; });
|
|
2399
|
-
if (!item) return [3 /*break*/, 5];
|
|
2400
|
-
_loop_1 = function (i) {
|
|
2401
|
-
var child;
|
|
2402
|
-
return __generator(this, function (_a) {
|
|
2403
|
-
switch (_a.label) {
|
|
2404
|
-
case 0:
|
|
2405
|
-
child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
|
|
2406
|
-
if (!child) return [3 /*break*/, 2];
|
|
2407
|
-
return [4 /*yield*/, this_1.RemoveItemById(child.id)];
|
|
2408
|
-
case 1:
|
|
2409
|
-
_a.sent();
|
|
2410
|
-
_a.label = 2;
|
|
2411
|
-
case 2: return [2 /*return*/];
|
|
2412
|
-
}
|
|
2413
|
-
});
|
|
2414
|
-
};
|
|
2415
|
-
this_1 = this;
|
|
2416
|
-
i = 0;
|
|
2417
|
-
_a.label = 1;
|
|
2418
|
-
case 1:
|
|
2419
|
-
if (!(i < item.childIds.length)) return [3 /*break*/, 4];
|
|
2420
|
-
return [5 /*yield**/, _loop_1(i)];
|
|
2421
|
-
case 2:
|
|
2422
|
-
_a.sent();
|
|
2423
|
-
_a.label = 3;
|
|
2424
|
-
case 3:
|
|
2425
|
-
i++;
|
|
2426
|
-
return [3 /*break*/, 1];
|
|
2427
|
-
case 4:
|
|
2428
|
-
try {
|
|
2429
|
-
item.renderManager.Dispose();
|
|
2430
|
-
}
|
|
2431
|
-
catch (e) {
|
|
2432
|
-
console.error(e);
|
|
2433
|
-
}
|
|
2434
|
-
this.items = this.items.filter(function (x) { return x.id !== id; });
|
|
2435
|
-
_a.label = 5;
|
|
2436
|
-
case 5: return [2 /*return*/];
|
|
2437
|
-
}
|
|
2438
|
-
});
|
|
2634
|
+
Object.defineProperty(Manager.prototype, "OnUpdate", {
|
|
2635
|
+
get: function () {
|
|
2636
|
+
return this.onUpdate;
|
|
2637
|
+
},
|
|
2638
|
+
enumerable: false,
|
|
2639
|
+
configurable: true
|
|
2439
2640
|
});
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2641
|
+
/**
|
|
2642
|
+
* Renders a given menu item and all ids children.
|
|
2643
|
+
* Will return the enabled item id.
|
|
2644
|
+
* @param api
|
|
2645
|
+
* @param item
|
|
2646
|
+
* @returns
|
|
2647
|
+
*/
|
|
2648
|
+
Manager.prototype.RenderItem = function (api, item) {
|
|
2649
|
+
var _a, _b;
|
|
2650
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2651
|
+
var rItem, i, childId;
|
|
2652
|
+
return __generator(this, function (_c) {
|
|
2653
|
+
switch (_c.label) {
|
|
2654
|
+
case 0:
|
|
2655
|
+
rItem = {
|
|
2656
|
+
id: (_a = item.id) !== null && _a !== void 0 ? _a : ObjectUtils.UId(),
|
|
2657
|
+
childIds: [],
|
|
2658
|
+
item: item,
|
|
2659
|
+
renderManager: null,
|
|
2660
|
+
type: item.Type
|
|
2661
|
+
};
|
|
2662
|
+
switch (item.Type) {
|
|
2663
|
+
case MenuItem.EType.Entities:
|
|
2664
|
+
rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2665
|
+
break;
|
|
2666
|
+
case MenuItem.EType.EntitiesLoaded:
|
|
2667
|
+
rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2668
|
+
break;
|
|
2669
|
+
case MenuItem.EType.EntitiesIds:
|
|
2670
|
+
rItem.renderManager = new EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2671
|
+
break;
|
|
2672
|
+
case MenuItem.EType.Entity:
|
|
2673
|
+
rItem.renderManager = new EntityRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2674
|
+
case MenuItem.EType.CadTileset:
|
|
2675
|
+
rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
|
|
2676
|
+
break;
|
|
2677
|
+
case MenuItem.EType.Osm:
|
|
2678
|
+
// TODO;
|
|
2679
|
+
break;
|
|
2680
|
+
case MenuItem.EType.PointCloud:
|
|
2681
|
+
// TODO;
|
|
2682
|
+
break;
|
|
2683
|
+
case MenuItem.EType.EntityTileset:
|
|
2684
|
+
// TODO;
|
|
2685
|
+
break;
|
|
2686
|
+
case MenuItem.EType.Kml:
|
|
2687
|
+
// TODO;
|
|
2688
|
+
break;
|
|
2689
|
+
// Any "none" type can be ignored. These are just containers for other items.
|
|
2690
|
+
case MenuItem.EType.None:
|
|
2691
|
+
case "":
|
|
2692
|
+
case null:
|
|
2693
|
+
break;
|
|
2694
|
+
default:
|
|
2695
|
+
throw ("Menu item type is not implemented.");
|
|
2696
|
+
}
|
|
2697
|
+
(_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
|
|
2698
|
+
if (!rItem.renderManager) return [3 /*break*/, 2];
|
|
2699
|
+
return [4 /*yield*/, rItem.renderManager.Init()];
|
|
2700
|
+
case 1:
|
|
2701
|
+
_c.sent();
|
|
2702
|
+
_c.label = 2;
|
|
2703
|
+
case 2:
|
|
2704
|
+
this.items.push(rItem);
|
|
2705
|
+
if (!item.Children) return [3 /*break*/, 6];
|
|
2706
|
+
i = 0;
|
|
2707
|
+
_c.label = 3;
|
|
2708
|
+
case 3:
|
|
2709
|
+
if (!(i < item.Children.length)) return [3 /*break*/, 6];
|
|
2710
|
+
return [4 /*yield*/, this.RenderItem(api, item.Children[i])];
|
|
2711
|
+
case 4:
|
|
2712
|
+
childId = _c.sent();
|
|
2713
|
+
rItem.childIds.push(childId);
|
|
2714
|
+
_c.label = 5;
|
|
2715
|
+
case 5:
|
|
2716
|
+
i++;
|
|
2717
|
+
return [3 /*break*/, 3];
|
|
2718
|
+
case 6: return [2 /*return*/, rItem.id];
|
|
2719
|
+
}
|
|
2720
|
+
});
|
|
2721
|
+
});
|
|
2722
|
+
};
|
|
2723
|
+
/**
|
|
2724
|
+
* Disables a menu item by ids id.
|
|
2725
|
+
* This will disable all children as well.
|
|
2726
|
+
* @param id
|
|
2727
|
+
*/
|
|
2728
|
+
Manager.prototype.RemoveItemById = function (id) {
|
|
2729
|
+
var _a;
|
|
2730
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
2731
|
+
var item, _loop_1, this_1, i;
|
|
2732
|
+
return __generator(this, function (_b) {
|
|
2733
|
+
switch (_b.label) {
|
|
2734
|
+
case 0:
|
|
2735
|
+
item = this.items.find(function (x) { return x.id === id; });
|
|
2736
|
+
if (!item) return [3 /*break*/, 5];
|
|
2737
|
+
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({ isEnabling: false, itemId: item.id });
|
|
2738
|
+
_loop_1 = function (i) {
|
|
2739
|
+
var child;
|
|
2740
|
+
return __generator(this, function (_a) {
|
|
2741
|
+
switch (_a.label) {
|
|
2742
|
+
case 0:
|
|
2743
|
+
child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
|
|
2744
|
+
if (!child) return [3 /*break*/, 2];
|
|
2745
|
+
return [4 /*yield*/, this_1.RemoveItemById(child.id)];
|
|
2746
|
+
case 1:
|
|
2747
|
+
_a.sent();
|
|
2748
|
+
_a.label = 2;
|
|
2749
|
+
case 2: return [2 /*return*/];
|
|
2750
|
+
}
|
|
2751
|
+
});
|
|
2752
|
+
};
|
|
2753
|
+
this_1 = this;
|
|
2754
|
+
i = 0;
|
|
2755
|
+
_b.label = 1;
|
|
2756
|
+
case 1:
|
|
2757
|
+
if (!(i < item.childIds.length)) return [3 /*break*/, 4];
|
|
2758
|
+
return [5 /*yield**/, _loop_1(i)];
|
|
2759
|
+
case 2:
|
|
2760
|
+
_b.sent();
|
|
2761
|
+
_b.label = 3;
|
|
2762
|
+
case 3:
|
|
2763
|
+
i++;
|
|
2764
|
+
return [3 /*break*/, 1];
|
|
2765
|
+
case 4:
|
|
2766
|
+
try {
|
|
2767
|
+
item.renderManager.Dispose();
|
|
2768
|
+
}
|
|
2769
|
+
catch (e) {
|
|
2770
|
+
console.error(e);
|
|
2771
|
+
}
|
|
2772
|
+
this.items = this.items.filter(function (x) { return x.id !== id; });
|
|
2773
|
+
_b.label = 5;
|
|
2774
|
+
case 5: return [2 /*return*/];
|
|
2775
|
+
}
|
|
2776
|
+
});
|
|
2777
|
+
});
|
|
2778
|
+
};
|
|
2779
|
+
Manager.prototype.GetEnabledItemIds = function () {
|
|
2780
|
+
return this.items.map(function (x) { return x.id; });
|
|
2781
|
+
};
|
|
2782
|
+
return Manager;
|
|
2783
|
+
}());
|
|
2784
|
+
MenuItemManager.Manager = Manager;
|
|
2785
|
+
})(MenuItemManager || (MenuItemManager = {}));
|
|
2443
2786
|
|
|
2787
|
+
/**
|
|
2788
|
+
* Utility to help generate menu items for rendering various data.
|
|
2789
|
+
*/
|
|
2444
2790
|
var RenderHelper;
|
|
2445
2791
|
(function (RenderHelper) {
|
|
2446
2792
|
function RenderEntities(manager, api, entityIds) {
|
|
@@ -2570,197 +2916,5 @@ var RenderHelper;
|
|
|
2570
2916
|
RenderHelper.RenderTileset = RenderTileset;
|
|
2571
2917
|
})(RenderHelper || (RenderHelper = {}));
|
|
2572
2918
|
|
|
2573
|
-
function removeEntity(viewer, visuals) {
|
|
2574
|
-
unmarkEntity(visuals);
|
|
2575
|
-
for (var i = 0; i < visuals.length; i++) {
|
|
2576
|
-
var visual = visuals[i];
|
|
2577
|
-
if (visual instanceof Entity) {
|
|
2578
|
-
EntityRenderEngine.Remove(viewer, visual);
|
|
2579
|
-
}
|
|
2580
|
-
else if (visual instanceof Primitive) {
|
|
2581
|
-
viewer.scene.primitives.remove(visual);
|
|
2582
|
-
}
|
|
2583
|
-
else if (visual instanceof Cesium3DTileFeature) {
|
|
2584
|
-
visual.show = false;
|
|
2585
|
-
}
|
|
2586
|
-
}
|
|
2587
|
-
}
|
|
2588
|
-
function updateCEntityShow(viewer, visual, show) {
|
|
2589
|
-
if (visual._parentEntity) {
|
|
2590
|
-
updateCEntityShow(viewer, visual._parentEntity, show);
|
|
2591
|
-
}
|
|
2592
|
-
if (visual._siblingGraphics) {
|
|
2593
|
-
for (var i = 0; i < visual._siblingGraphics.length; i++) {
|
|
2594
|
-
var sibling = visual._siblingGraphics[i];
|
|
2595
|
-
updateCEntityShow(viewer, sibling, show);
|
|
2596
|
-
}
|
|
2597
|
-
}
|
|
2598
|
-
visual.show = show;
|
|
2599
|
-
}
|
|
2600
|
-
function updateEntityShow(viewer, visual, show) {
|
|
2601
|
-
if (visual instanceof Entity) {
|
|
2602
|
-
updateCEntityShow(viewer, visual, show);
|
|
2603
|
-
}
|
|
2604
|
-
else if (visual instanceof Primitive) {
|
|
2605
|
-
visual.show = show;
|
|
2606
|
-
}
|
|
2607
|
-
else if (visual instanceof Cesium3DTileFeature) {
|
|
2608
|
-
visual.show = show;
|
|
2609
|
-
}
|
|
2610
|
-
}
|
|
2611
|
-
function updateEntity(viewer, entityRegos) {
|
|
2612
|
-
var highestPriority = null;
|
|
2613
|
-
for (var i = 0; i < entityRegos.length; i++) {
|
|
2614
|
-
var rego = entityRegos[i];
|
|
2615
|
-
if (highestPriority === null || rego.priority > highestPriority.priority) {
|
|
2616
|
-
highestPriority = rego;
|
|
2617
|
-
}
|
|
2618
|
-
}
|
|
2619
|
-
for (var i = 0; i < entityRegos.length; i++) {
|
|
2620
|
-
var rego = entityRegos[i];
|
|
2621
|
-
for (var j = 0; j < rego.visuals.length; j++) {
|
|
2622
|
-
var visual = rego.visuals[j];
|
|
2623
|
-
updateEntityShow(viewer, visual, rego === highestPriority);
|
|
2624
|
-
}
|
|
2625
|
-
}
|
|
2626
|
-
}
|
|
2627
|
-
function markEntity(register, rego, visuals) {
|
|
2628
|
-
for (var i = 0; i < visuals.length; i++) {
|
|
2629
|
-
var visual = visuals[i];
|
|
2630
|
-
var vis = visual;
|
|
2631
|
-
vis._register = register;
|
|
2632
|
-
vis._rego = rego;
|
|
2633
|
-
if (visual instanceof Entity) {
|
|
2634
|
-
var visEnt = visual;
|
|
2635
|
-
if (visEnt._parentEntity) {
|
|
2636
|
-
markEntity(register, rego, [visEnt._parentEntity]);
|
|
2637
|
-
}
|
|
2638
|
-
if (visEnt._siblingGraphics) {
|
|
2639
|
-
markEntity(register, rego, visEnt._siblingGraphics);
|
|
2640
|
-
}
|
|
2641
|
-
}
|
|
2642
|
-
}
|
|
2643
|
-
}
|
|
2644
|
-
function unmarkEntity(visuals) {
|
|
2645
|
-
for (var i = 0; i < visuals.length; i++) {
|
|
2646
|
-
var visual = visuals[i];
|
|
2647
|
-
var vis = visual;
|
|
2648
|
-
vis._register = null;
|
|
2649
|
-
if (visual instanceof Entity) {
|
|
2650
|
-
var visEnt = visual;
|
|
2651
|
-
if (visEnt._parentEntity) {
|
|
2652
|
-
unmarkEntity([visEnt._parentEntity]);
|
|
2653
|
-
}
|
|
2654
|
-
if (visEnt._siblingGraphics) {
|
|
2655
|
-
unmarkEntity(visEnt._siblingGraphics);
|
|
2656
|
-
}
|
|
2657
|
-
}
|
|
2658
|
-
}
|
|
2659
|
-
}
|
|
2660
|
-
var VisualsRegister = /** @class */ (function () {
|
|
2661
|
-
function VisualsRegister(viewer) {
|
|
2662
|
-
this.id = ObjectUtils.UId();
|
|
2663
|
-
this.rego = {};
|
|
2664
|
-
this.viewer = viewer;
|
|
2665
|
-
}
|
|
2666
|
-
Object.defineProperty(VisualsRegister.prototype, "Id", {
|
|
2667
|
-
get: function () {
|
|
2668
|
-
return this.id;
|
|
2669
|
-
},
|
|
2670
|
-
enumerable: false,
|
|
2671
|
-
configurable: true
|
|
2672
|
-
});
|
|
2673
|
-
VisualsRegister.prototype.Add = function (rego) {
|
|
2674
|
-
var _a;
|
|
2675
|
-
this.Remove(rego.entityId, rego.menuItemId, false);
|
|
2676
|
-
var entityId = rego.entityId;
|
|
2677
|
-
var entityRegos = (_a = this.rego[entityId]) !== null && _a !== void 0 ? _a : [];
|
|
2678
|
-
entityRegos.push(rego);
|
|
2679
|
-
this.rego[entityId] = entityRegos;
|
|
2680
|
-
markEntity(this, rego, rego.visuals);
|
|
2681
|
-
updateEntity(this.viewer, this.rego[entityId]);
|
|
2682
|
-
};
|
|
2683
|
-
VisualsRegister.prototype.GetVisuals = function (entityId, menuItemId) {
|
|
2684
|
-
var _a;
|
|
2685
|
-
var entityRegos = this.rego[entityId];
|
|
2686
|
-
if (!entityRegos) {
|
|
2687
|
-
return [];
|
|
2688
|
-
}
|
|
2689
|
-
var visuals = (_a = entityRegos.find(function (r) { return r.menuItemId === menuItemId; })) === null || _a === void 0 ? void 0 : _a.visuals;
|
|
2690
|
-
return visuals !== null && visuals !== void 0 ? visuals : [];
|
|
2691
|
-
};
|
|
2692
|
-
VisualsRegister.prototype.RemoveByEntityId = function (id) {
|
|
2693
|
-
var entityRegos = this.rego[id];
|
|
2694
|
-
if (!entityRegos) {
|
|
2695
|
-
return;
|
|
2696
|
-
}
|
|
2697
|
-
for (var i = 0; i < entityRegos.length; i++) {
|
|
2698
|
-
var rego = entityRegos[i];
|
|
2699
|
-
removeEntity(this.viewer, rego.visuals);
|
|
2700
|
-
}
|
|
2701
|
-
this.rego[id] = [];
|
|
2702
|
-
delete this.rego[id];
|
|
2703
|
-
};
|
|
2704
|
-
VisualsRegister.prototype.RemoveByMenuItemId = function (id) {
|
|
2705
|
-
for (var entityId in this.rego) {
|
|
2706
|
-
var entityRegos = this.rego[entityId];
|
|
2707
|
-
if (entityRegos) {
|
|
2708
|
-
var rego = entityRegos.find(function (r) { return r.menuItemId === id; });
|
|
2709
|
-
if (!rego) {
|
|
2710
|
-
continue;
|
|
2711
|
-
}
|
|
2712
|
-
removeEntity(this.viewer, rego.visuals);
|
|
2713
|
-
var doesInclude = this.rego[entityId].find(function (r) { return r.menuItemId === id; });
|
|
2714
|
-
if (doesInclude) {
|
|
2715
|
-
this.rego[entityId] = entityRegos.filter(function (r) { return r.menuItemId !== id; });
|
|
2716
|
-
updateEntity(this.viewer, this.rego[entityId]);
|
|
2717
|
-
}
|
|
2718
|
-
}
|
|
2719
|
-
}
|
|
2720
|
-
};
|
|
2721
|
-
VisualsRegister.prototype.Remove = function (entityId, menuItemId, _doUpdate) {
|
|
2722
|
-
if (_doUpdate === void 0) { _doUpdate = true; }
|
|
2723
|
-
var entityRegos = this.rego[entityId];
|
|
2724
|
-
if (!entityRegos) {
|
|
2725
|
-
return;
|
|
2726
|
-
}
|
|
2727
|
-
var rego = entityRegos.find(function (r) { return r.menuItemId === menuItemId; });
|
|
2728
|
-
if (!rego) {
|
|
2729
|
-
return;
|
|
2730
|
-
}
|
|
2731
|
-
for (var i = 0; i < rego.visuals.length; i++) {
|
|
2732
|
-
var visual = rego.visuals[i];
|
|
2733
|
-
if (visual instanceof Entity) {
|
|
2734
|
-
this.viewer.entities.remove(visual);
|
|
2735
|
-
}
|
|
2736
|
-
else if (visual instanceof Primitive) {
|
|
2737
|
-
this.viewer.scene.primitives.remove(visual);
|
|
2738
|
-
}
|
|
2739
|
-
else if (visual instanceof Cesium3DTileFeature) {
|
|
2740
|
-
visual.show = false;
|
|
2741
|
-
}
|
|
2742
|
-
}
|
|
2743
|
-
this.rego[entityId] = entityRegos.filter(function (r) { return r.menuItemId !== menuItemId; });
|
|
2744
|
-
if (_doUpdate) {
|
|
2745
|
-
updateEntity(this.viewer, this.rego[entityId]);
|
|
2746
|
-
}
|
|
2747
|
-
};
|
|
2748
|
-
VisualsRegister.prototype.GetFromCursor = function (cursor) {
|
|
2749
|
-
var _a;
|
|
2750
|
-
var found = [];
|
|
2751
|
-
var picked = this.viewer.scene.drillPick(new Cartesian2(cursor.x, cursor.y), 5);
|
|
2752
|
-
for (var i = 0; i < picked.length; i++) {
|
|
2753
|
-
var object = picked[i];
|
|
2754
|
-
var entity = (object && object.id && object.id instanceof Entity ? object.id : object);
|
|
2755
|
-
var visual = entity;
|
|
2756
|
-
if (((_a = visual === null || visual === void 0 ? void 0 : visual._register) === null || _a === void 0 ? void 0 : _a.Id) == this.id) {
|
|
2757
|
-
found.push(visual._rego);
|
|
2758
|
-
}
|
|
2759
|
-
}
|
|
2760
|
-
return found;
|
|
2761
|
-
};
|
|
2762
|
-
return VisualsRegister;
|
|
2763
|
-
}());
|
|
2764
|
-
|
|
2765
2919
|
export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager };
|
|
2766
2920
|
//# sourceMappingURL=bruce-cesium.es5.js.map
|