bruce-cesium 1.2.8 → 1.2.9

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.
@@ -1,5 +1,5 @@
1
- import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, EntityRelationType, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, EntityRelation, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Cartesian3, Entity, Primitive, Cesium3DTileFeature, Color, Cesium3DTileColorBlendMode, HeadingPitchRange, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, createOsmBuildings, Cesium3DTileStyle, Rectangle, KmlDataSource, OrthographicFrustum, JulianDate, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, CallbackProperty, Matrix4, Cesium3DTileset, IonResource, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, ColorMaterialProperty, Matrix3, EasingFunction, GeometryInstance } from 'cesium';
1
+ import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, DelayQueue, Entity as Entity$1, BatchedDataGetter, EntityRelationType, Tileset, EntityCoords, EntityFilterGetter, EntitySource, EntityRelation, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
2
+ import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, Rectangle, KmlDataSource, OrthographicFrustum, JulianDate, CallbackProperty, Matrix4, Cesium3DTileset, IonResource, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, ColorMaterialProperty, Matrix3, EasingFunction, GeometryInstance } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -1120,6 +1120,13 @@ function getZIndex(style, entity, tags) {
1120
1120
  }
1121
1121
  return EnsureNumber(zIndex);
1122
1122
  }
1123
+ function getValue(viewer, obj) {
1124
+ var _a;
1125
+ if ((_a = obj) === null || _a === void 0 ? void 0 : _a.getValue) {
1126
+ return obj.getValue(viewer.scene.lastRenderTime);
1127
+ }
1128
+ return obj;
1129
+ }
1123
1130
  function getStyle(api, entity, styleId) {
1124
1131
  return __awaiter(this, void 0, void 0, function () {
1125
1132
  var style, type;
@@ -1165,11 +1172,11 @@ function getRenderGroupId(zoomItem) {
1165
1172
  var EntityRenderEngine;
1166
1173
  (function (EntityRenderEngine) {
1167
1174
  function Render(params) {
1168
- var _a, _b;
1175
+ var _a, _b, _c, _d;
1169
1176
  return __awaiter(this, void 0, void 0, function () {
1170
- var groupRenderParams, i, entity, geometry, cEntities, models, polygons, polylines, points, i, entity, id, zoomItem, displayType, newRenderId, existingRego, oldRenderId, mParams, mEntities, i, entity, id, cEntity, pParams, pEntities, i, entity, cEntity, pParams, pEntities, i, entity, cEntity, pParams, pEntities, i, entity, cEntity;
1171
- return __generator(this, function (_c) {
1172
- switch (_c.label) {
1177
+ var groupRenderParams, i, entity, geometry, cEntities, models, multiGeometry, polygons, polylines, points, i, entity, id, zoomItem, displayType, newRenderId, existingRego, oldRenderId, mParams, mEntities, i, entity, id, cEntity, _loop_1, i, pParams, pEntities, i, entity, cEntity, pParams, pEntities, i, entity, cEntity, pParams, pEntities, i, entity, cEntity;
1178
+ return __generator(this, function (_e) {
1179
+ switch (_e.label) {
1173
1180
  case 0:
1174
1181
  groupRenderParams = {
1175
1182
  apiGetter: params.apiGetter,
@@ -1184,11 +1191,12 @@ var EntityRenderEngine;
1184
1191
  entity = params.entities[i];
1185
1192
  geometry = entity.geometry;
1186
1193
  if (((_a = geometry === null || geometry === void 0 ? void 0 : geometry.MultiGeometry) === null || _a === void 0 ? void 0 : _a.length) == 1) {
1187
- entity.geometry = __assign(__assign({}, entity.geometry), geometry.MultiGeometry[0]);
1194
+ entity.geometry = __assign(__assign(__assign({}, entity.geometry), geometry.MultiGeometry[0]), { MultiGeometry: [] });
1188
1195
  }
1189
1196
  }
1190
1197
  cEntities = {};
1191
1198
  models = [];
1199
+ multiGeometry = [];
1192
1200
  polygons = [];
1193
1201
  polylines = [];
1194
1202
  points = [];
@@ -1224,7 +1232,12 @@ var EntityRenderEngine;
1224
1232
  models.push(entity);
1225
1233
  }
1226
1234
  else if (displayType == ZoomControl.EDisplayType.Geometry) {
1227
- polygons.push(entity);
1235
+ if ((_d = (_c = entity.geometry) === null || _c === void 0 ? void 0 : _c.MultiGeometry) === null || _d === void 0 ? void 0 : _d.length) {
1236
+ multiGeometry.push(entity);
1237
+ }
1238
+ else {
1239
+ polygons.push(entity);
1240
+ }
1228
1241
  }
1229
1242
  else {
1230
1243
  points.push(entity);
@@ -1237,7 +1250,7 @@ var EntityRenderEngine;
1237
1250
  mParams = __assign(__assign({}, groupRenderParams), { entities: models });
1238
1251
  return [4 /*yield*/, Model3d.RenderGroup(mParams)];
1239
1252
  case 1:
1240
- mEntities = _c.sent();
1253
+ mEntities = _e.sent();
1241
1254
  for (i = 0; i < mParams.entities.length; i++) {
1242
1255
  entity = mParams.entities[i];
1243
1256
  id = entity.Bruce.ID;
@@ -1246,16 +1259,84 @@ var EntityRenderEngine;
1246
1259
  cEntities[id] = cEntity;
1247
1260
  }
1248
1261
  else {
1249
- polygons.push(entity);
1262
+ multiGeometry.push(entity);
1250
1263
  }
1251
1264
  }
1252
- _c.label = 2;
1265
+ _e.label = 2;
1253
1266
  case 2:
1254
- if (!(polygons.length > 0)) return [3 /*break*/, 4];
1267
+ if (!(multiGeometry.length > 0)) return [3 /*break*/, 6];
1268
+ _loop_1 = function (i) {
1269
+ var entity, pParams, zoomItem, j, subEntity, cPoly, rendered, cLines, cPoints, rootEntity, firstEntity;
1270
+ return __generator(this, function (_a) {
1271
+ switch (_a.label) {
1272
+ case 0:
1273
+ entity = multiGeometry[i];
1274
+ pParams = __assign(__assign({}, groupRenderParams), { entities: [] });
1275
+ zoomItem = pParams.zoomItems[entity.Bruce.ID];
1276
+ for (j = 0; j < entity.geometry.MultiGeometry.length; j++) {
1277
+ subEntity = __assign(__assign({}, entity), { geometry: entity.geometry.MultiGeometry[j], Bruce: __assign(__assign({}, entity.Bruce), { ID: ObjectUtils.UId() }) });
1278
+ pParams.zoomItems[subEntity.Bruce.ID] = zoomItem;
1279
+ pParams.entities.push(subEntity);
1280
+ }
1281
+ return [4 /*yield*/, Polygon.RenderGroup(pParams)];
1282
+ case 1:
1283
+ cPoly = _a.sent();
1284
+ Object.keys(cPoly).forEach(function (key) {
1285
+ if (cPoly[key]) {
1286
+ pParams.entities = pParams.entities.filter(function (e) { return e.Bruce.ID != key; });
1287
+ }
1288
+ });
1289
+ rendered = Object.values(cPoly);
1290
+ return [4 /*yield*/, Polyline.RenderGroup(pParams)];
1291
+ case 2:
1292
+ cLines = _a.sent();
1293
+ Object.keys(cLines).forEach(function (key) {
1294
+ if (cLines[key]) {
1295
+ pParams.entities = pParams.entities.filter(function (e) { return e.Bruce.ID != key; });
1296
+ }
1297
+ });
1298
+ rendered = rendered.concat(Object.values(cLines));
1299
+ return [4 /*yield*/, Point.RenderGroup(pParams)];
1300
+ case 3:
1301
+ cPoints = _a.sent();
1302
+ rendered = rendered.concat(Object.values(cPoints));
1303
+ rendered = rendered.filter(function (x) { return x != null; });
1304
+ if (rendered.length) {
1305
+ rootEntity = new Entity({});
1306
+ params.viewer.entities.add(rootEntity);
1307
+ rootEntity._siblingGraphics = [];
1308
+ rootEntity._renderGroup = getRenderGroupId(zoomItem);
1309
+ rootEntity._siblingGraphics = rootEntity._siblingGraphics.concat(rendered);
1310
+ cEntities[entity.Bruce.ID] = rootEntity;
1311
+ firstEntity = rendered[0];
1312
+ if (firstEntity) {
1313
+ rootEntity.position = getValue(params.viewer, firstEntity.position.getValue);
1314
+ }
1315
+ }
1316
+ else {
1317
+ polygons.push(entity);
1318
+ }
1319
+ return [2 /*return*/];
1320
+ }
1321
+ });
1322
+ };
1323
+ i = 0;
1324
+ _e.label = 3;
1325
+ case 3:
1326
+ if (!(i < multiGeometry.length)) return [3 /*break*/, 6];
1327
+ return [5 /*yield**/, _loop_1(i)];
1328
+ case 4:
1329
+ _e.sent();
1330
+ _e.label = 5;
1331
+ case 5:
1332
+ i++;
1333
+ return [3 /*break*/, 3];
1334
+ case 6:
1335
+ if (!(polygons.length > 0)) return [3 /*break*/, 8];
1255
1336
  pParams = __assign(__assign({}, groupRenderParams), { entities: polygons });
1256
1337
  return [4 /*yield*/, Polygon.RenderGroup(pParams)];
1257
- case 3:
1258
- pEntities = _c.sent();
1338
+ case 7:
1339
+ pEntities = _e.sent();
1259
1340
  for (i = 0; i < pParams.entities.length; i++) {
1260
1341
  entity = pParams.entities[i];
1261
1342
  cEntity = pEntities[entity.Bruce.ID];
@@ -1266,13 +1347,13 @@ var EntityRenderEngine;
1266
1347
  polylines.push(entity);
1267
1348
  }
1268
1349
  }
1269
- _c.label = 4;
1270
- case 4:
1271
- if (!(polylines.length > 0)) return [3 /*break*/, 6];
1350
+ _e.label = 8;
1351
+ case 8:
1352
+ if (!(polylines.length > 0)) return [3 /*break*/, 10];
1272
1353
  pParams = __assign(__assign({}, groupRenderParams), { entities: polylines });
1273
1354
  return [4 /*yield*/, Polyline.RenderGroup(pParams)];
1274
- case 5:
1275
- pEntities = _c.sent();
1355
+ case 9:
1356
+ pEntities = _e.sent();
1276
1357
  for (i = 0; i < pParams.entities.length; i++) {
1277
1358
  entity = pParams.entities[i];
1278
1359
  cEntity = pEntities[entity.Bruce.ID];
@@ -1283,13 +1364,13 @@ var EntityRenderEngine;
1283
1364
  points.push(entity);
1284
1365
  }
1285
1366
  }
1286
- _c.label = 6;
1287
- case 6:
1288
- if (!(points.length > 0)) return [3 /*break*/, 8];
1367
+ _e.label = 10;
1368
+ case 10:
1369
+ if (!(points.length > 0)) return [3 /*break*/, 12];
1289
1370
  pParams = __assign(__assign({}, groupRenderParams), { entities: points });
1290
1371
  return [4 /*yield*/, Point.RenderGroup(pParams)];
1291
- case 7:
1292
- pEntities = _c.sent();
1372
+ case 11:
1373
+ pEntities = _e.sent();
1293
1374
  for (i = 0; i < pParams.entities.length; i++) {
1294
1375
  entity = pParams.entities[i];
1295
1376
  cEntity = pEntities[entity.Bruce.ID];
@@ -1297,8 +1378,8 @@ var EntityRenderEngine;
1297
1378
  cEntities[entity.Bruce.ID] = cEntity;
1298
1379
  }
1299
1380
  }
1300
- _c.label = 8;
1301
- case 8: return [2 /*return*/, cEntities];
1381
+ _e.label = 12;
1382
+ case 12: return [2 /*return*/, cEntities];
1302
1383
  }
1303
1384
  });
1304
1385
  });
@@ -1793,7 +1874,7 @@ var EntityRenderEngine;
1793
1874
  function RenderGroup(params) {
1794
1875
  var _a, _b, _c, _d;
1795
1876
  return __awaiter(this, void 0, void 0, function () {
1796
- var api, cEntities, reqBody, i, entity, zoomItem, style, tagIds, tags, mStyle, group, level, catId, lodData, _loop_1, i;
1877
+ var api, cEntities, reqBody, i, entity, zoomItem, style, tagIds, tags, mStyle, group, level, catId, lodData, _loop_2, i;
1797
1878
  return __generator(this, function (_e) {
1798
1879
  switch (_e.label) {
1799
1880
  case 0:
@@ -1853,7 +1934,7 @@ var EntityRenderEngine;
1853
1934
  })];
1854
1935
  case 7:
1855
1936
  lodData = (_e.sent()).lods;
1856
- _loop_1 = function (i) {
1937
+ _loop_2 = function (i) {
1857
1938
  var entity, zoomItem, style, tagIds, tags, lod, mStyle, cEntity;
1858
1939
  return __generator(this, function (_a) {
1859
1940
  switch (_a.label) {
@@ -1902,7 +1983,7 @@ var EntityRenderEngine;
1902
1983
  _e.label = 8;
1903
1984
  case 8:
1904
1985
  if (!(i < params.entities.length)) return [3 /*break*/, 11];
1905
- return [5 /*yield**/, _loop_1(i)];
1986
+ return [5 /*yield**/, _loop_2(i)];
1906
1987
  case 9:
1907
1988
  _e.sent();
1908
1989
  _e.label = 10;