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.
Files changed (84) hide show
  1. package/dist/bruce-cesium.es5.js +1475 -289
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +1473 -287
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +1 -1
  6. package/dist/lib/internal/cesium-show-gate.js +100 -0
  7. package/dist/lib/internal/cesium-show-gate.js.map +1 -0
  8. package/dist/lib/internal/cesium-utils.js +207 -1
  9. package/dist/lib/internal/cesium-utils.js.map +1 -1
  10. package/dist/lib/internal/js-utils.js +25 -1
  11. package/dist/lib/internal/js-utils.js.map +1 -1
  12. package/dist/lib/rendering/cesium-animated-in-out.js +66 -7
  13. package/dist/lib/rendering/cesium-animated-in-out.js.map +1 -1
  14. package/dist/lib/rendering/entity-render-engine-model3d.js +17 -8
  15. package/dist/lib/rendering/entity-render-engine-model3d.js.map +1 -1
  16. package/dist/lib/rendering/entity-render-engine-point.js +46 -12
  17. package/dist/lib/rendering/entity-render-engine-point.js.map +1 -1
  18. package/dist/lib/rendering/entity-render-engine-polygon.js +146 -63
  19. package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -1
  20. package/dist/lib/rendering/entity-render-engine-polyline.js +27 -8
  21. package/dist/lib/rendering/entity-render-engine-polyline.js.map +1 -1
  22. package/dist/lib/rendering/entity-render-engine.js +86 -14
  23. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  24. package/dist/lib/rendering/menu-item-manager.js +30 -2
  25. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  26. package/dist/lib/rendering/relation-render-engine.js +2 -1
  27. package/dist/lib/rendering/relation-render-engine.js.map +1 -1
  28. package/dist/lib/rendering/render-managers/common/entity-label.js +10 -2
  29. package/dist/lib/rendering/render-managers/common/entity-label.js.map +1 -1
  30. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +58 -4
  31. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +1 -1
  32. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +46 -23
  33. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
  34. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +70 -11
  35. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  36. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +13 -1
  37. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
  38. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +3 -2
  39. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +1 -1
  40. package/dist/lib/rendering/render-managers/other/relations-render-manager.js +3 -2
  41. package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +1 -1
  42. package/dist/lib/rendering/render-managers/render-manager.js +67 -3
  43. package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
  44. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +2 -0
  45. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -1
  46. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +2 -0
  47. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  48. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +2 -0
  49. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
  50. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +4 -1
  51. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
  52. package/dist/lib/rendering/texture-frame-series-animator.js +7 -0
  53. package/dist/lib/rendering/texture-frame-series-animator.js.map +1 -1
  54. package/dist/lib/rendering/tileset-render-engine.js +18 -0
  55. package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
  56. package/dist/lib/rendering/visual-register-culler.js +191 -97
  57. package/dist/lib/rendering/visual-register-culler.js.map +1 -1
  58. package/dist/lib/rendering/visuals-register.js +263 -25
  59. package/dist/lib/rendering/visuals-register.js.map +1 -1
  60. package/dist/lib/utils/cesium-entity-styler.js +7 -3
  61. package/dist/lib/utils/cesium-entity-styler.js.map +1 -1
  62. package/dist/types/bruce-cesium.d.ts +1 -1
  63. package/dist/types/internal/cesium-show-gate.d.ts +29 -0
  64. package/dist/types/internal/cesium-utils.d.ts +63 -0
  65. package/dist/types/internal/js-utils.d.ts +10 -0
  66. package/dist/types/rendering/cesium-animated-in-out.d.ts +5 -0
  67. package/dist/types/rendering/entity-render-engine-model3d.d.ts +2 -0
  68. package/dist/types/rendering/entity-render-engine-point.d.ts +2 -0
  69. package/dist/types/rendering/entity-render-engine-polygon.d.ts +2 -0
  70. package/dist/types/rendering/entity-render-engine-polyline.d.ts +2 -0
  71. package/dist/types/rendering/entity-render-engine.d.ts +17 -1
  72. package/dist/types/rendering/menu-item-manager.d.ts +6 -0
  73. package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +13 -0
  74. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +2 -0
  75. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +14 -0
  76. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +2 -0
  77. package/dist/types/rendering/render-managers/render-manager.d.ts +33 -0
  78. package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +3 -0
  79. package/dist/types/rendering/texture-frame-series-animator.d.ts +5 -0
  80. package/dist/types/rendering/tileset-render-engine.d.ts +14 -0
  81. package/dist/types/rendering/visual-register-culler.d.ts +7 -0
  82. package/dist/types/rendering/visuals-register.d.ts +65 -1
  83. package/dist/types/utils/cesium-entity-styler.d.ts +1 -0
  84. package/package.json +1 -1
@@ -14,8 +14,9 @@ const TEXTURE_FRAME_SERIES_ANIMATOR_KEY = "TextureFrameSeriesAnimator.Animator";
14
14
  var EntityRenderEnginePolygon;
15
15
  (function (EntityRenderEnginePolygon) {
16
16
  async function Render(params) {
17
- var _a, _b;
17
+ var _a, _b, _c;
18
18
  const entity = params.entity;
19
+ const style = params.style;
19
20
  const pRings = bruce_models_1.Entity.GetValue({
20
21
  entity: entity,
21
22
  path: ["Bruce", "VectorGeometry", "Polygon"]
@@ -23,7 +24,6 @@ var EntityRenderEnginePolygon;
23
24
  if (pRings == null || !Array.isArray(pRings) || pRings.length <= 0) {
24
25
  return null;
25
26
  }
26
- const style = params.style;
27
27
  const fillType = style.fillType || bruce_models_1.Style.EPolygonFillType.Color;
28
28
  const fillColorTrace = style.fillColor ? bruce_models_1.Calculator.TraceGetColor(style.fillColor, entity, params.tags) : { value: null, effective: null };
29
29
  const bFillColor = fillColorTrace.value;
@@ -31,16 +31,21 @@ var EntityRenderEnginePolygon;
31
31
  let textureDataUri = null;
32
32
  let textureTraceEffective = null;
33
33
  let frameArchive = null;
34
- if (fillType === bruce_models_1.Style.EPolygonFillType.Texture) {
35
- const resolved = await resolveTexturedFill({
36
- api: params.api,
37
- style,
38
- entity,
39
- tags: params.tags
40
- });
41
- textureDataUri = resolved.dataUri;
42
- textureTraceEffective = resolved.effective;
43
- frameArchive = resolved.frameArchive || null;
34
+ if (fillType === bruce_models_1.Style.EPolygonFillType.Texture && !params.offline) {
35
+ try {
36
+ const resolved = await resolveTexturedFill({
37
+ api: params.api,
38
+ style,
39
+ entity,
40
+ tags: params.tags
41
+ });
42
+ textureDataUri = resolved.dataUri;
43
+ textureTraceEffective = resolved.effective;
44
+ frameArchive = resolved.frameArchive || null;
45
+ }
46
+ catch (e) {
47
+ console.error(`Polygon.Render: failed to resolve textured fill for entity ${((_a = entity === null || entity === void 0 ? void 0 : entity.Bruce) === null || _a === void 0 ? void 0 : _a.ID) || "<NONE>"}:`, e);
48
+ }
44
49
  }
45
50
  const hasFill = fillType === bruce_models_1.Style.EPolygonFillType.Texture
46
51
  ? Boolean(textureDataUri || frameArchive || cFillColor.alpha > 0)
@@ -107,8 +112,8 @@ var EntityRenderEnginePolygon;
107
112
  // We'll remove all that aren't in the allowed (direct) list.
108
113
  for (let i = 0; i < parts.length - 1; i++) {
109
114
  const part = parts[i];
110
- if (part && part instanceof Cesium.Entity && params.viewer.entities.contains(part) && !cEntity._siblingGraphics.includes(part)) {
111
- params.viewer.entities.remove(part);
115
+ if (part && part instanceof Cesium.Entity && !cEntity._siblingGraphics.includes(part)) {
116
+ (0, cesium_utils_1.RemoveCEntityFromScene)(params.viewer, part);
112
117
  }
113
118
  }
114
119
  if (cEntity._parentEntity) {
@@ -118,7 +123,8 @@ var EntityRenderEnginePolygon;
118
123
  };
119
124
  const hasOutline = width > 0 && cLineColor;
120
125
  let cEntity = null;
121
- if (!params.rendered || !params.rendered.polygon) {
126
+ const isExistingGraphic = Boolean(params.rendered && params.rendered.polygon);
127
+ if (!isExistingGraphic) {
122
128
  cEntity = new Cesium.Entity({
123
129
  id: bruce_models_1.ObjectUtils.UId(15),
124
130
  polygon: {
@@ -131,7 +137,7 @@ var EntityRenderEnginePolygon;
131
137
  classificationType: classification,
132
138
  perPositionHeight: heightRef == Cesium.HeightReference.CLAMP_TO_GROUND ? false : true,
133
139
  zIndex: zIndex,
134
- distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width <= 0 || !cLineColor || units == "m" ? size : null, true)
140
+ distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width <= 0 || !cLineColor || units == "m" ? size : null, true, size)
135
141
  },
136
142
  position: entity_utils_1.EntityUtils.GetPos({
137
143
  viewer: params.viewer,
@@ -185,9 +191,38 @@ var EntityRenderEnginePolygon;
185
191
  if (oldZIndex != zIndex) {
186
192
  cEntity.polygon.zIndex = new Cesium.ConstantProperty(zIndex);
187
193
  }
188
- cEntity.polygon.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width <= 0 || !cLineColor || units == "m" ? size : null, true));
189
- cEntity.polygon.shadows = new Cesium.ConstantProperty(Cesium.ShadowMode.ENABLED);
190
- cEntity.polygon.classificationType = new Cesium.ConstantProperty(classification);
194
+ (0, cesium_utils_1.SetCPropIfChanged)({
195
+ viewer: params.viewer,
196
+ graphic: cEntity.polygon,
197
+ property: "distanceDisplayCondition",
198
+ value: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width <= 0 || !cLineColor || units == "m" ? size : null, true, size)
199
+ });
200
+ (0, cesium_utils_1.SetCPropIfChanged)({
201
+ viewer: params.viewer,
202
+ graphic: cEntity.polygon,
203
+ property: "shadows",
204
+ value: Cesium.ShadowMode.ENABLED
205
+ });
206
+ (0, cesium_utils_1.SetCPropIfChanged)({
207
+ viewer: params.viewer,
208
+ graphic: cEntity.polygon,
209
+ property: "classificationType",
210
+ value: classification
211
+ });
212
+ cEntity.show = true;
213
+ }
214
+ // Must run before any material is baked below: the Animator takes over polygon.material, so a bake
215
+ // has to know whether it is baking over a live animation or over a disposed one's restored material.
216
+ const animator = syncTextureFrameArchive(cEntity, frameArchive, params.viewer, style.textureColorMask);
217
+ if (animator) {
218
+ cesium_entity_styler_1.CesiumEntityStyler.SetDefaultTextureImage({
219
+ entity: cEntity,
220
+ image: animator.GetImageProperty(),
221
+ viewer: params.viewer,
222
+ requestRender: false
223
+ });
224
+ }
225
+ else if (isExistingGraphic) {
191
226
  // TODO: animate the texture!
192
227
  if (textureDataUri) {
193
228
  // Rebaking texture to ensure we don't revert to the wrong one later.
@@ -214,12 +249,12 @@ var EntityRenderEnginePolygon;
214
249
  entity: cEntity,
215
250
  viewer: params.viewer,
216
251
  override: true,
252
+ // Fill colour only. The outline sibling gets its own line colour baked below.
253
+ includeSiblings: false,
217
254
  requestRender: false
218
255
  });
219
256
  }
220
- cEntity.show = true;
221
257
  }
222
- syncTextureFrameArchive(cEntity, frameArchive, params.viewer, style.textureColorMask);
223
258
  if (frameArchive && params.onSeriesDiscovered) {
224
259
  const segment = frameArchiveToSeriesSegment(frameArchive, params.entity);
225
260
  if (segment) {
@@ -238,7 +273,7 @@ var EntityRenderEnginePolygon;
238
273
  }
239
274
  }
240
275
  let borderPosses = posses.map(x => x.clone ? x.clone() : { ...x });
241
- let cEntityBorder = (_b = (_a = params.rendered) === null || _a === void 0 ? void 0 : _a._siblingGraphics) === null || _b === void 0 ? void 0 : _b[0];
276
+ let cEntityBorder = (_c = (_b = params.rendered) === null || _b === void 0 ? void 0 : _b._siblingGraphics) === null || _c === void 0 ? void 0 : _c[0];
242
277
  cEntity._siblingGraphics = [];
243
278
  if (!cEntityBorder || ((!cEntityBorder.polyline && units == "px") ||
244
279
  (!cEntityBorder.corridor && units == "m"))) {
@@ -252,7 +287,7 @@ var EntityRenderEnginePolygon;
252
287
  classificationType: Cesium.ClassificationType.TERRAIN,
253
288
  arcType: Cesium.ArcType.GEODESIC,
254
289
  zIndex: zIndex,
255
- distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance)
290
+ distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, null, false, size)
256
291
  }) : null,
257
292
  corridor: units == "m" ? {
258
293
  positions: borderPosses,
@@ -264,7 +299,7 @@ var EntityRenderEnginePolygon;
264
299
  zIndex: zIndex + 1,
265
300
  cornerType: Cesium.CornerType.MITERED,
266
301
  classificationType: classification,
267
- distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width),
302
+ distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width, false, size),
268
303
  shadows: Cesium.ShadowMode.ENABLED
269
304
  } : null,
270
305
  show: true
@@ -291,11 +326,21 @@ var EntityRenderEnginePolygon;
291
326
  }
292
327
  const oldMaterial = (0, cesium_utils_1.GetCValue)(params.viewer, cEntityBorder.polyline.material);
293
328
  const newMaterial = new Cesium.ColorMaterialProperty(cLineColor);
294
- if (compareColorMaterials(params.viewer, oldMaterial, newMaterial)) {
329
+ if (!areColorMaterialsEqual(params.viewer, oldMaterial, newMaterial)) {
295
330
  cEntityBorder.polyline.material = newMaterial;
296
331
  }
297
- cEntityBorder.polyline.classificationType = new Cesium.ConstantProperty(Cesium.ClassificationType.TERRAIN);
298
- cEntityBorder.polyline.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance));
332
+ (0, cesium_utils_1.SetCPropIfChanged)({
333
+ viewer: params.viewer,
334
+ graphic: cEntityBorder.polyline,
335
+ property: "classificationType",
336
+ value: Cesium.ClassificationType.TERRAIN
337
+ });
338
+ (0, cesium_utils_1.SetCPropIfChanged)({
339
+ viewer: params.viewer,
340
+ graphic: cEntityBorder.polyline,
341
+ property: "distanceDisplayCondition",
342
+ value: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, null, false, size)
343
+ });
299
344
  cEntityBorder.corridor = undefined;
300
345
  }
301
346
  else {
@@ -321,15 +366,35 @@ var EntityRenderEnginePolygon;
321
366
  }
322
367
  const oldMaterial = (0, cesium_utils_1.GetCValue)(params.viewer, cEntityBorder.corridor.material);
323
368
  const newMaterial = new Cesium.ColorMaterialProperty(cLineColor);
324
- if (compareColorMaterials(params.viewer, oldMaterial, newMaterial)) {
369
+ if (!areColorMaterialsEqual(params.viewer, oldMaterial, newMaterial)) {
325
370
  cEntityBorder.corridor.material = newMaterial;
326
371
  }
327
- cEntityBorder.corridor.fill = new Cesium.ConstantProperty(true);
328
- cEntityBorder.corridor.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width));
372
+ (0, cesium_utils_1.SetCPropIfChanged)({
373
+ viewer: params.viewer,
374
+ graphic: cEntityBorder.corridor,
375
+ property: "fill",
376
+ value: true
377
+ });
378
+ (0, cesium_utils_1.SetCPropIfChanged)({
379
+ viewer: params.viewer,
380
+ graphic: cEntityBorder.corridor,
381
+ property: "distanceDisplayCondition",
382
+ value: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width, false, size)
383
+ });
329
384
  cEntityBorder.polyline = undefined;
330
385
  }
331
386
  cEntityBorder.show = true;
332
387
  }
388
+ // Bake the outline's own colour as its default, so a deselect/opacity refresh restores the line
389
+ // colour rather than falling back to the fill's.
390
+ cesium_entity_styler_1.CesiumEntityStyler.SetDefaultColor({
391
+ color: cLineColor,
392
+ entity: cEntityBorder,
393
+ viewer: params.viewer,
394
+ override: true,
395
+ includeSiblings: false,
396
+ requestRender: false
397
+ });
333
398
  cEntityBorder._parentEntity = cEntity;
334
399
  cEntity._siblingGraphics.push(cEntityBorder);
335
400
  for (let i = 0; i < holePosses.length; i++) {
@@ -345,7 +410,7 @@ var EntityRenderEnginePolygon;
345
410
  classificationType: Cesium.ClassificationType.TERRAIN,
346
411
  arcType: Cesium.ArcType.GEODESIC,
347
412
  zIndex: zIndex,
348
- distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance)
413
+ distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, null, false, size)
349
414
  }) : null,
350
415
  corridor: units == "m" ? {
351
416
  positions: borderPosses,
@@ -357,7 +422,7 @@ var EntityRenderEnginePolygon;
357
422
  zIndex: zIndex + 1,
358
423
  cornerType: Cesium.CornerType.MITERED,
359
424
  classificationType: classification,
360
- distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width),
425
+ distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width, false, size),
361
426
  shadows: Cesium.ShadowMode.ENABLED,
362
427
  } : null,
363
428
  show: true
@@ -379,7 +444,7 @@ var EntityRenderEnginePolygon;
379
444
  }
380
445
  EntityRenderEnginePolygon.Render = Render;
381
446
  async function RenderGroup(params) {
382
- var _a, _b, _c;
447
+ var _a, _b, _c, _d;
383
448
  const api = params.apiGetter.getApi();
384
449
  const cEntities = new Map();
385
450
  // Gathering tags in case styling needs it.
@@ -398,7 +463,7 @@ var EntityRenderEnginePolygon;
398
463
  // De-dupe the tag IDs.
399
464
  tagIds = Array.from(new Set(tagIds));
400
465
  // Request if at least one then create a quick lookup map for tags.
401
- const tags = tagIds.length > 0 ? (await bruce_models_1.EntityTag.GetListByIds({
466
+ const tags = (!params.offline && tagIds.length > 0) ? (await bruce_models_1.EntityTag.GetListByIds({
402
467
  api,
403
468
  tagIds
404
469
  })).tags : [];
@@ -410,7 +475,7 @@ var EntityRenderEnginePolygon;
410
475
  for (let i = 0; i < params.entities.length; i++) {
411
476
  const entity = params.entities[i];
412
477
  const zoomItem = params.zoomItems[entity.Bruce.ID];
413
- const style = zoomItem.StyleID != -1 ? (_a = (await getStyle(api, entity, zoomItem.StyleID))) === null || _a === void 0 ? void 0 : _a.Settings : zoomItem.Style;
478
+ const style = (!params.offline && zoomItem.StyleID != -1) ? (_a = (await getStyle(api, entity, zoomItem.StyleID))) === null || _a === void 0 ? void 0 : _a.Settings : zoomItem.Style;
414
479
  // Pass through tags that may be needed for styling.
415
480
  const tagIds = entity.Bruce["Layer.ID"];
416
481
  const tags = [];
@@ -423,23 +488,29 @@ var EntityRenderEnginePolygon;
423
488
  }
424
489
  }
425
490
  const pStyle = (_b = style === null || style === void 0 ? void 0 : style.polygonStyle) !== null && _b !== void 0 ? _b : {};
426
- const cEntity = await Render({
427
- entity: entity,
428
- style: pStyle,
429
- tags: tags,
430
- viewer: params.viewer,
431
- api,
432
- maxDistance: zoomItem.MaxZoom,
433
- minDistance: zoomItem.MinZoom,
434
- // Temporarily disabling re-using graphics for polygons as they have some bugs, and
435
- // they don't support any animation yet.
436
- // rendered: null
437
- rendered: (_c = params.rendered) === null || _c === void 0 ? void 0 : _c.get(entity.Bruce.ID),
438
- menuItemId: params.menuItemId,
439
- onSeriesDiscovered: params.onSeriesDiscovered
440
- });
491
+ let cEntity = null;
492
+ try {
493
+ cEntity = await Render({
494
+ entity: entity,
495
+ style: pStyle,
496
+ tags: tags,
497
+ viewer: params.viewer,
498
+ api,
499
+ maxDistance: zoomItem.MaxZoom,
500
+ minDistance: zoomItem.MinZoom,
501
+ // Temporarily disabling re-using graphics for polygons as they have some bugs, and
502
+ // they don't support any animation yet.
503
+ // rendered: null
504
+ rendered: (_c = params.rendered) === null || _c === void 0 ? void 0 : _c.get(entity.Bruce.ID),
505
+ menuItemId: params.menuItemId,
506
+ onSeriesDiscovered: params.onSeriesDiscovered
507
+ });
508
+ }
509
+ catch (e) {
510
+ console.error(`Polygon.RenderGroup: failed to render entity ${((_d = entity === null || entity === void 0 ? void 0 : entity.Bruce) === null || _d === void 0 ? void 0 : _d.ID) || "<NONE>"}:`, e);
511
+ }
441
512
  if (cEntity) {
442
- const name = await getName(api, entity);
513
+ const name = await getName(api, entity, params.offline);
443
514
  cEntity.name = name;
444
515
  cEntity._renderGroup = entity_render_engine_1.EntityRenderEngine.GetRenderGroupId(zoomItem);
445
516
  cEntity.styleId = zoomItem.StyleID == -1 ? -1 : (+zoomItem.StyleID || null);
@@ -461,7 +532,16 @@ var EntityRenderEnginePolygon;
461
532
  }
462
533
  EntityRenderEnginePolygon.DisposeTextureFrameSeriesAnimator = DisposeTextureFrameSeriesAnimator;
463
534
  })(EntityRenderEnginePolygon = exports.EntityRenderEnginePolygon || (exports.EntityRenderEnginePolygon = {}));
464
- async function getName(api, entity) {
535
+ async function getName(api, entity, offline) {
536
+ var _a;
537
+ const ownName = (0, js_utils_1.GetUsableEntityName)(entity);
538
+ if (ownName) {
539
+ return ownName;
540
+ }
541
+ if (offline) {
542
+ // Anything further needs a request, so offline callers take what the entity carries, placeholder or not.
543
+ return ((_a = entity === null || entity === void 0 ? void 0 : entity.Bruce) === null || _a === void 0 ? void 0 : _a.Name) || "Unnamed Entity";
544
+ }
465
545
  try {
466
546
  const typeId = entity.Bruce["EntityType.ID"];
467
547
  let type = null;
@@ -565,6 +645,7 @@ const _textureCache = new bruce_models_1.LRUCache(50);
565
645
  /**
566
646
  * Reconciles cEntity's TextureFrameSeriesAnimator.Animator (if any) against this render's resolved texture.
567
647
  * Called once cEntity is fully created/updated and definitely has a `polygon` graphics.
648
+ * Returns the animator now driving the entity, or null if this render has no frame series.
568
649
  * @param cEntity
569
650
  * @param frameArchive
570
651
  * @param viewer
@@ -573,22 +654,24 @@ const _textureCache = new bruce_models_1.LRUCache(50);
573
654
  function syncTextureFrameArchive(cEntity, frameArchive, viewer, textureColorMask) {
574
655
  const existing = cEntity[TEXTURE_FRAME_SERIES_ANIMATOR_KEY];
575
656
  if (frameArchive && existing && !existing.IsDisposed() && existing.GetArchiveUrl() === frameArchive.url) {
576
- return;
657
+ return existing;
577
658
  }
578
659
  if (existing && !existing.IsDisposed()) {
579
660
  existing.Dispose();
580
661
  cEntity[TEXTURE_FRAME_SERIES_ANIMATOR_KEY] = null;
581
662
  }
582
- if (frameArchive) {
583
- const animator = new texture_frame_series_animator_1.TextureFrameSeriesAnimator.Animator({
584
- viewer,
585
- entity: cEntity,
586
- archiveUrl: frameArchive.url,
587
- frames: frameArchive.metadata.Frames,
588
- textureColorMask
589
- });
590
- cEntity[TEXTURE_FRAME_SERIES_ANIMATOR_KEY] = animator;
663
+ if (!frameArchive) {
664
+ return null;
591
665
  }
666
+ const animator = new texture_frame_series_animator_1.TextureFrameSeriesAnimator.Animator({
667
+ viewer,
668
+ entity: cEntity,
669
+ archiveUrl: frameArchive.url,
670
+ frames: frameArchive.metadata.Frames,
671
+ textureColorMask
672
+ });
673
+ cEntity[TEXTURE_FRAME_SERIES_ANIMATOR_KEY] = animator;
674
+ return animator;
592
675
  }
593
676
  /**
594
677
  * Derives a min/max/label time-range segment from a resolved frame archive's Frames metadata,
@@ -755,7 +838,7 @@ async function buildTintedTextureDataUri(url, mask) {
755
838
  * @param b
756
839
  * @returns
757
840
  */
758
- function compareColorMaterials(viewer, a, b) {
841
+ function areColorMaterialsEqual(viewer, a, b) {
759
842
  // Same reference.
760
843
  if (a == b) {
761
844
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"entity-render-engine-polygon.js","sourceRoot":"","sources":["../../../src/rendering/entity-render-engine-polygon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-render-engine-polygon.js","sourceRoot":"","sources":["../../../src/rendering/entity-render-engine-polygon.ts"],"names":[],"mappings":"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"}