bruce-cesium 4.4.4 → 4.4.7

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 (38) hide show
  1. package/dist/bruce-cesium.es5.js +4510 -3712
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +4485 -3699
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +5 -1
  6. package/dist/lib/bruce-cesium.js.map +1 -1
  7. package/dist/lib/internal/cesium-utils.js +92 -5
  8. package/dist/lib/internal/cesium-utils.js.map +1 -1
  9. package/dist/lib/rendering/cesium-animated-property.js +149 -0
  10. package/dist/lib/rendering/cesium-animated-property.js.map +1 -1
  11. package/dist/lib/rendering/entity-render-engine-model3d.js +809 -0
  12. package/dist/lib/rendering/entity-render-engine-model3d.js.map +1 -0
  13. package/dist/lib/rendering/entity-render-engine-point.js +995 -0
  14. package/dist/lib/rendering/entity-render-engine-point.js.map +1 -0
  15. package/dist/lib/rendering/entity-render-engine-polygon.js +756 -0
  16. package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -0
  17. package/dist/lib/rendering/entity-render-engine-polyline.js +516 -0
  18. package/dist/lib/rendering/entity-render-engine-polyline.js.map +1 -0
  19. package/dist/lib/rendering/entity-render-engine.js +62 -2420
  20. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  21. package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js.map +1 -1
  22. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +15 -0
  23. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  24. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +18 -0
  25. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -1
  26. package/dist/lib/utils/view-utils.js +2 -2
  27. package/dist/lib/utils/view-utils.js.map +1 -1
  28. package/dist/lib/widgets/common/draw-3d-polyline.js +0 -8
  29. package/dist/lib/widgets/common/draw-3d-polyline.js.map +1 -1
  30. package/dist/types/bruce-cesium.d.ts +5 -1
  31. package/dist/types/internal/cesium-utils.d.ts +22 -2
  32. package/dist/types/rendering/cesium-animated-property.d.ts +21 -0
  33. package/dist/types/rendering/entity-render-engine-model3d.d.ts +56 -0
  34. package/dist/types/rendering/entity-render-engine-point.d.ts +73 -0
  35. package/dist/types/rendering/entity-render-engine-polygon.d.ts +26 -0
  36. package/dist/types/rendering/entity-render-engine-polyline.d.ts +48 -0
  37. package/dist/types/rendering/entity-render-engine.d.ts +31 -98
  38. package/package.json +2 -2
@@ -0,0 +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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"}
@@ -0,0 +1,516 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.smoothenPoints = exports.EntityRenderEnginePolyline = void 0;
40
+ var bruce_models_1 = require("bruce-models");
41
+ var Cesium = require("cesium");
42
+ var entity_render_engine_1 = require("./entity-render-engine");
43
+ var entity_utils_1 = require("../utils/entity-utils");
44
+ var js_utils_1 = require("../internal/js-utils");
45
+ var cesium_utils_1 = require("../internal/cesium-utils");
46
+ var cesium_entity_styler_1 = require("../utils/cesium-entity-styler");
47
+ /**
48
+ * Handles polyline rendering.
49
+ */
50
+ var EntityRenderEnginePolyline;
51
+ (function (EntityRenderEnginePolyline) {
52
+ /**
53
+ * Renders a single polyline Entity.
54
+ * This takes an optional prior Cesium Entity to update rather than create from scratch.
55
+ * @param params
56
+ * @returns
57
+ */
58
+ function Render(params) {
59
+ var entity = params.entity;
60
+ var lineString = bruce_models_1.Entity.GetValue({
61
+ entity: entity,
62
+ path: ["Bruce", "VectorGeometry", "LineString"]
63
+ });
64
+ var points = lineString && typeof lineString == "string" ? bruce_models_1.Geometry.ParsePoints(lineString) : [];
65
+ if (!points || points.length < 2) {
66
+ return null;
67
+ }
68
+ var isValid = true;
69
+ for (var i = 0; i < points.length; i++) {
70
+ if (!bruce_models_1.Carto.ValidateCarto(points[i])) {
71
+ isValid = false;
72
+ break;
73
+ }
74
+ }
75
+ if (!isValid) {
76
+ return null;
77
+ }
78
+ var style = params.style;
79
+ var heightRef = getHeightRef(style);
80
+ var posses = points.map(function (x) { return Cesium.Cartesian3.fromDegrees((0, js_utils_1.EnsureNumber)(x.longitude), (0, js_utils_1.EnsureNumber)(x.latitude), (0, js_utils_1.EnsureNumber)(x.altitude)); });
81
+ posses = (0, cesium_utils_1.CullDuplicateCPosses)(posses);
82
+ // 5 points should be enough to tell most bad data.
83
+ var CHECK_POINTS = 5;
84
+ var MIN_LEN = 0.001;
85
+ var MAX_LEN = 4500000;
86
+ var totalLength = 0;
87
+ for (var i = 0; i < posses.length; i++) {
88
+ if (i > CHECK_POINTS) {
89
+ break;
90
+ }
91
+ var pos1 = posses[i];
92
+ var pos2 = posses[i + 1];
93
+ if (pos1 && pos2) {
94
+ totalLength += Cesium.Cartesian3.distance(pos1, pos2);
95
+ }
96
+ }
97
+ if (totalLength < MIN_LEN || totalLength > MAX_LEN) {
98
+ return null;
99
+ }
100
+ // Smoothening the line.
101
+ // Warning: we don't have a way to indicate that this is not the original set of points yet.
102
+ // This means editing tools in our apps will bake these in on save.
103
+ if (style.smoothen && style.smoothen > 2) {
104
+ var smoothed = smoothenPoints(posses, style.smoothen, false);
105
+ if (smoothed.find(function (x) { return !bruce_models_1.Cartes.ValidateCartes3(x); })) {
106
+ console.error("Polyline.Render: Smoothening failed. Invalid Cartesian3 found. Defaulting to original points.");
107
+ }
108
+ else {
109
+ posses = smoothed;
110
+ }
111
+ }
112
+ var bColor = style.lineColor ? bruce_models_1.Calculator.GetColor(style.lineColor, entity, params.tags) : null;
113
+ var cColor = bColor ? (0, cesium_utils_1.ColorToCColor)(bColor) : Cesium.Color.fromCssColorString("rgba(255, 193, 7, 0.8)");
114
+ if (cColor.alpha <= 0) {
115
+ return null;
116
+ }
117
+ var width = style.lineWidth ? bruce_models_1.Calculator.GetNumber(style.lineWidth, entity, params.tags) : null;
118
+ if (width == null) {
119
+ width = 2;
120
+ }
121
+ width = (0, js_utils_1.EnsureNumber)(width);
122
+ if (width < 0.01) {
123
+ width = 0;
124
+ }
125
+ if (width <= 0) {
126
+ return null;
127
+ }
128
+ var units = style.lineWidthUnits;
129
+ // Px for backward compatibility. Meters are less prone to crashes.
130
+ if (units != "px" && units != "m") {
131
+ units = "px";
132
+ }
133
+ var classification = Cesium.ClassificationType.TERRAIN;
134
+ if (style.drapeOver == "ALL") {
135
+ classification = Cesium.ClassificationType.BOTH;
136
+ }
137
+ var cEntity = null;
138
+ if (!params.rendered || ((!params.rendered.polyline && units == "px") ||
139
+ (!params.rendered.corridor && units == "m"))) {
140
+ cEntity = new Cesium.Entity({
141
+ id: bruce_models_1.ObjectUtils.UId(10),
142
+ polyline: units == "px" ? {
143
+ positions: posses,
144
+ material: cColor,
145
+ width: width,
146
+ classificationType: classification,
147
+ arcType: Cesium.ArcType.GEODESIC,
148
+ zIndex: getZIndex(style, entity, params.tags),
149
+ clampToGround: heightRef == Cesium.HeightReference.CLAMP_TO_GROUND,
150
+ distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance)
151
+ } : null,
152
+ corridor: units == "m" ? {
153
+ positions: posses,
154
+ material: cColor,
155
+ width: width,
156
+ classificationType: classification,
157
+ heightReference: heightRef,
158
+ zIndex: getZIndex(style, entity, params.tags),
159
+ distanceDisplayCondition: entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width),
160
+ cornerType: Cesium.CornerType.MITERED,
161
+ shadows: Cesium.ShadowMode.ENABLED,
162
+ fill: true
163
+ } : null,
164
+ position: entity_utils_1.EntityUtils.GetPos({
165
+ viewer: params.viewer,
166
+ entity: entity,
167
+ recordHeightRef: heightRef,
168
+ returnHeightRef: heightRef,
169
+ allowRendered: false
170
+ }),
171
+ show: true
172
+ });
173
+ }
174
+ else {
175
+ // Gather entity in case previous version had sibling graphics we no longer need.
176
+ var parts = entity_utils_1.EntityUtils.GatherEntity({
177
+ entity: cEntity,
178
+ });
179
+ if (parts.length > 1) {
180
+ // Kill all expect last part. Last one is the primary entity.
181
+ for (var i = 0; i < parts.length - 1; i++) {
182
+ var part = parts[i];
183
+ if (part && part instanceof Cesium.Entity && params.viewer.entities.contains(part)) {
184
+ params.viewer.entities.remove(part);
185
+ }
186
+ }
187
+ cEntity._siblingGraphics = [];
188
+ if (cEntity._parentEntity) {
189
+ console.warn("Polyline.Render: Parent entity was not null. This should not happen.");
190
+ }
191
+ }
192
+ cEntity = params.rendered;
193
+ if (units == "px") {
194
+ var oldPosses = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.polyline.positions);
195
+ if (!(0, cesium_utils_1.CompareCPosses)(posses, oldPosses)) {
196
+ cEntity.polyline.positions = new Cesium.ConstantProperty(posses);
197
+ }
198
+ var oldWidth = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.polyline.width);
199
+ if (oldWidth != width) {
200
+ cEntity.polyline.width = new Cesium.ConstantProperty(width);
201
+ }
202
+ var oldClassification = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.polyline.classificationType);
203
+ if (oldClassification != classification) {
204
+ cEntity.polyline.classificationType = new Cesium.ConstantProperty(classification);
205
+ }
206
+ var oldZIndex = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.polyline.zIndex);
207
+ if (oldZIndex != getZIndex(style, entity, params.tags)) {
208
+ cEntity.polyline.zIndex = new Cesium.ConstantProperty(getZIndex(style, entity, params.tags));
209
+ }
210
+ var oldClampToGround = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.polyline.clampToGround);
211
+ var newClampToGround = heightRef == Cesium.HeightReference.CLAMP_TO_GROUND;
212
+ if (oldClampToGround != newClampToGround) {
213
+ cEntity.polyline.clampToGround = new Cesium.ConstantProperty(newClampToGround);
214
+ }
215
+ cEntity.polyline.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance));
216
+ cEntity.corridor = undefined;
217
+ }
218
+ else {
219
+ var oldPosses = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.corridor.positions);
220
+ if (!(0, cesium_utils_1.CompareCPosses)(posses, oldPosses)) {
221
+ cEntity.corridor.positions = new Cesium.ConstantProperty(posses);
222
+ }
223
+ var oldWidth = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.corridor.width);
224
+ if (oldWidth != width) {
225
+ cEntity.corridor.width = new Cesium.ConstantProperty(width);
226
+ }
227
+ var oldClassification = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.corridor.classificationType);
228
+ if (oldClassification != classification) {
229
+ cEntity.corridor.classificationType = new Cesium.ConstantProperty(classification);
230
+ }
231
+ var oldHeightRef = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.corridor.heightReference);
232
+ if (oldHeightRef != heightRef) {
233
+ cEntity.corridor.heightReference = new Cesium.ConstantProperty(heightRef);
234
+ }
235
+ var oldZIndex = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.corridor.zIndex);
236
+ if (oldZIndex != getZIndex(style, entity, params.tags)) {
237
+ cEntity.corridor.zIndex = new Cesium.ConstantProperty(getZIndex(style, entity, params.tags));
238
+ }
239
+ cEntity.corridor.distanceDisplayCondition = new Cesium.ConstantProperty(entity_render_engine_1.EntityRenderEngine.GetDisplayCondition(params.minDistance, params.maxDistance, width));
240
+ cEntity.polyline = undefined;
241
+ }
242
+ // We'll use "SetDefaultColor" to updating the internal reference and to allow for an animation.
243
+ // WARNING: polyline does not support animation (yet?).
244
+ cesium_entity_styler_1.CesiumEntityStyler.SetDefaultColor({
245
+ color: cColor,
246
+ entity: cEntity,
247
+ viewer: params.viewer,
248
+ override: true,
249
+ requestRender: false
250
+ });
251
+ var oldPos = (0, cesium_utils_1.GetCValue)(params.viewer, cEntity.position);
252
+ var newPos = entity_utils_1.EntityUtils.GetPos({
253
+ viewer: params.viewer,
254
+ entity: entity,
255
+ recordHeightRef: heightRef,
256
+ returnHeightRef: heightRef,
257
+ allowRendered: false
258
+ });
259
+ if (newPos && (!oldPos || !bruce_models_1.Cartes.IsEqualCartes3(oldPos, newPos))) {
260
+ cEntity.position = new Cesium.ConstantPositionProperty(newPos);
261
+ }
262
+ cEntity.show = true;
263
+ }
264
+ return cEntity;
265
+ }
266
+ EntityRenderEnginePolyline.Render = Render;
267
+ /**
268
+ * Renders a group of polyline Entities.
269
+ * This will take an optional set of prior rendered Cesium Entities to update rather than create from scratch.
270
+ * @param params
271
+ * @returns
272
+ */
273
+ function RenderGroup(params) {
274
+ var _a, _b, _c;
275
+ return __awaiter(this, void 0, void 0, function () {
276
+ var api, cEntities, i, entity, zoomItem, style, _d, tagIds, tags, lStyle, cEntity, name_1;
277
+ return __generator(this, function (_e) {
278
+ switch (_e.label) {
279
+ case 0:
280
+ api = params.apiGetter.getApi();
281
+ cEntities = new Map();
282
+ i = 0;
283
+ _e.label = 1;
284
+ case 1:
285
+ if (!(i < params.entities.length)) return [3 /*break*/, 9];
286
+ entity = params.entities[i];
287
+ zoomItem = params.zoomItems[entity.Bruce.ID];
288
+ if (!(zoomItem.StyleID != -1)) return [3 /*break*/, 3];
289
+ return [4 /*yield*/, getStyle(api, entity, zoomItem.StyleID)];
290
+ case 2:
291
+ _d = (_a = (_e.sent())) === null || _a === void 0 ? void 0 : _a.Settings;
292
+ return [3 /*break*/, 4];
293
+ case 3:
294
+ _d = zoomItem.Style;
295
+ _e.label = 4;
296
+ case 4:
297
+ style = _d;
298
+ tagIds = entity.Bruce["Layer.ID"];
299
+ tags = [];
300
+ if (!(tagIds && tagIds.length > 0)) return [3 /*break*/, 6];
301
+ return [4 /*yield*/, bruce_models_1.EntityTag.GetListByIds({
302
+ api: api,
303
+ tagIds: tagIds
304
+ })];
305
+ case 5:
306
+ tags = (_e.sent()).tags;
307
+ _e.label = 6;
308
+ case 6:
309
+ lStyle = (_b = style === null || style === void 0 ? void 0 : style.polylineStyle) !== null && _b !== void 0 ? _b : {};
310
+ cEntity = Render({
311
+ entity: entity,
312
+ style: lStyle,
313
+ tags: tags,
314
+ viewer: params.viewer,
315
+ maxDistance: zoomItem.MaxZoom,
316
+ minDistance: zoomItem.MinZoom,
317
+ rendered: (_c = params.rendered) === null || _c === void 0 ? void 0 : _c.get(entity.Bruce.ID)
318
+ });
319
+ if (!cEntity) return [3 /*break*/, 8];
320
+ return [4 /*yield*/, getName(api, entity)];
321
+ case 7:
322
+ name_1 = _e.sent();
323
+ cEntity.name = name_1;
324
+ cEntity._renderGroup = entity_render_engine_1.EntityRenderEngine.GetRenderGroupId(zoomItem);
325
+ cEntities.set(entity.Bruce.ID, cEntity);
326
+ _e.label = 8;
327
+ case 8:
328
+ i++;
329
+ return [3 /*break*/, 1];
330
+ case 9: return [2 /*return*/, cEntities];
331
+ }
332
+ });
333
+ });
334
+ }
335
+ EntityRenderEnginePolyline.RenderGroup = RenderGroup;
336
+ })(EntityRenderEnginePolyline = exports.EntityRenderEnginePolyline || (exports.EntityRenderEnginePolyline = {}));
337
+ function getName(api, entity) {
338
+ return __awaiter(this, void 0, void 0, function () {
339
+ var typeId, type, name_2, e_1, hideError, error, code;
340
+ return __generator(this, function (_a) {
341
+ switch (_a.label) {
342
+ case 0:
343
+ _a.trys.push([0, 3, , 4]);
344
+ typeId = entity.Bruce["EntityType.ID"];
345
+ type = null;
346
+ if (!typeId) return [3 /*break*/, 2];
347
+ return [4 /*yield*/, bruce_models_1.EntityType.Get({
348
+ api: api,
349
+ entityTypeId: typeId
350
+ })];
351
+ case 1:
352
+ type = (_a.sent()).entityType;
353
+ _a.label = 2;
354
+ case 2:
355
+ if (type) {
356
+ name_2 = bruce_models_1.Entity.CalculateName({
357
+ entity: entity,
358
+ type: type,
359
+ defaultToId: false
360
+ });
361
+ return [2 /*return*/, name_2 ? name_2 : "Unnamed Entity"];
362
+ }
363
+ return [3 /*break*/, 4];
364
+ case 3:
365
+ e_1 = _a.sent();
366
+ hideError = false;
367
+ // TODO: we need a util for extracting code + message rather than writing all this every time.
368
+ if (e_1 && typeof e_1 == "object" && e_1.ERROR) {
369
+ error = e_1.ERROR;
370
+ code = error && typeof error == "object" ? error.Code : "";
371
+ // Avoiding logging a common error.
372
+ // This happens when rendering entities that don't have records.
373
+ hideError = String(code).toLowerCase() == "notfound";
374
+ }
375
+ if (!hideError) {
376
+ console.error(e_1);
377
+ }
378
+ return [3 /*break*/, 4];
379
+ case 4: return [2 /*return*/, "Unknown entity"];
380
+ }
381
+ });
382
+ });
383
+ }
384
+ function getStyle(api, entity, styleId) {
385
+ return __awaiter(this, void 0, void 0, function () {
386
+ var style, e_2, typeId, type, e_3, hideError, error, code;
387
+ return __generator(this, function (_a) {
388
+ switch (_a.label) {
389
+ case 0:
390
+ style = null;
391
+ if (!styleId) return [3 /*break*/, 4];
392
+ _a.label = 1;
393
+ case 1:
394
+ _a.trys.push([1, 3, , 4]);
395
+ return [4 /*yield*/, bruce_models_1.Style.Get({
396
+ api: api,
397
+ styleId: styleId
398
+ })];
399
+ case 2:
400
+ style = (_a.sent()).style;
401
+ return [3 /*break*/, 4];
402
+ case 3:
403
+ e_2 = _a.sent();
404
+ console.error(e_2);
405
+ return [3 /*break*/, 4];
406
+ case 4:
407
+ if (!!style) return [3 /*break*/, 9];
408
+ typeId = entity.Bruce["EntityType.ID"];
409
+ if (!typeId) return [3 /*break*/, 9];
410
+ return [4 /*yield*/, bruce_models_1.EntityType.Get({
411
+ api: api,
412
+ entityTypeId: typeId
413
+ })];
414
+ case 5:
415
+ type = (_a.sent()).entityType;
416
+ if (!type["DisplaySetting.ID"]) return [3 /*break*/, 9];
417
+ _a.label = 6;
418
+ case 6:
419
+ _a.trys.push([6, 8, , 9]);
420
+ return [4 /*yield*/, bruce_models_1.Style.Get({
421
+ api: api,
422
+ styleId: type["DisplaySetting.ID"]
423
+ })];
424
+ case 7:
425
+ style = (_a.sent()).style;
426
+ return [3 /*break*/, 9];
427
+ case 8:
428
+ e_3 = _a.sent();
429
+ hideError = false;
430
+ // TODO: we need a util for extracting code + message rather than writing all this every time.
431
+ if (e_3 && typeof e_3 == "object" && e_3.ERROR) {
432
+ error = e_3.ERROR;
433
+ code = error && typeof error == "object" ? error.Code : "";
434
+ // Avoiding logging a common error.
435
+ // This happens when rendering entities that don't have records.
436
+ hideError = String(code).toLowerCase() == "notfound";
437
+ }
438
+ if (!hideError) {
439
+ console.error(e_3);
440
+ }
441
+ return [3 /*break*/, 9];
442
+ case 9: return [2 /*return*/, style];
443
+ }
444
+ });
445
+ });
446
+ }
447
+ function getZIndex(style, entity, tags) {
448
+ var zIndex = (style === null || style === void 0 ? void 0 : style.zIndex) ? +bruce_models_1.Calculator.GetNumber(style === null || style === void 0 ? void 0 : style.zIndex, entity, tags) : 0;
449
+ if (zIndex == null) {
450
+ zIndex = 0;
451
+ }
452
+ return (0, js_utils_1.EnsureNumber)(zIndex);
453
+ }
454
+ function getHeightRef(style, defaultStyle) {
455
+ var _a;
456
+ var heightRef = defaultStyle == null ? Cesium.HeightReference.CLAMP_TO_GROUND : defaultStyle;
457
+ var altOptionId = (_a = style === null || style === void 0 ? void 0 : style.altitudeOption) === null || _a === void 0 ? void 0 : _a.id;
458
+ if (altOptionId == 0) {
459
+ heightRef = Cesium.HeightReference.CLAMP_TO_GROUND;
460
+ }
461
+ else if (altOptionId == 1) {
462
+ heightRef = Cesium.HeightReference.NONE;
463
+ }
464
+ else if (altOptionId == 2) {
465
+ heightRef = Cesium.HeightReference.RELATIVE_TO_GROUND;
466
+ }
467
+ return heightRef;
468
+ }
469
+ function smoothenPoints(points, multiplier, closed) {
470
+ if (points.length < 4 || multiplier < 2) {
471
+ return points;
472
+ }
473
+ if (!closed) {
474
+ points.unshift(Cesium.Cartesian3.subtract(points[0], points[1], new Cesium.Cartesian3()));
475
+ points.push(Cesium.Cartesian3.subtract(points[points.length - 1], points[points.length - 2], new Cesium.Cartesian3()));
476
+ }
477
+ else {
478
+ points.unshift(points[points.length - 1]);
479
+ points.unshift(points[points.length - 2]);
480
+ points.push(points[2]);
481
+ }
482
+ var splinePoints = [];
483
+ var _loop_1 = function (i) {
484
+ var _a = [0, 1, 2, 3].map(function (n) { return points[i + n]; }), P0 = _a[0], P1 = _a[1], P2 = _a[2], P3 = _a[3];
485
+ for (var j = 0; j <= multiplier; j++) {
486
+ splinePoints.push(catmullRom(P0, P1, P2, P3, j / multiplier));
487
+ }
488
+ };
489
+ for (var i = 0; i < points.length - 3; i++) {
490
+ _loop_1(i);
491
+ }
492
+ return splinePoints;
493
+ }
494
+ exports.smoothenPoints = smoothenPoints;
495
+ function catmullRom(p0, p1, p2, p3, t) {
496
+ var t0 = 0;
497
+ var t1 = getT(t0, 0.5, p0, p1);
498
+ var t2 = getT(t1, 0.5, p1, p2);
499
+ var t3 = getT(t2, 0.5, p2, p3);
500
+ t = Cesium.Math.lerp(t1, t2, t);
501
+ var _a = [function (l, r) { return Cesium.Cartesian3.add(l, r, new Cesium.Cartesian3()); }, function (l, r) { return Cesium.Cartesian3.multiplyByScalar(l, r, new Cesium.Cartesian3()); }], add = _a[0], mul = _a[1];
502
+ var A1 = add(mul(p0, (t1 - t) / (t1 - t0)), mul(p1, (t - t0) / (t1 - t0)));
503
+ var A2 = add(mul(p1, (t2 - t) / (t2 - t1)), mul(p2, (t - t1) / (t2 - t1)));
504
+ var A3 = add(mul(p2, (t3 - t) / (t3 - t2)), mul(p3, (t - t2) / (t3 - t2)));
505
+ var B1 = add(mul(A1, (t2 - t) / (t2 - t0)), mul(A2, (t - t0) / (t2 - t0)));
506
+ var B2 = add(mul(A2, (t3 - t) / (t3 - t1)), mul(A3, (t - t1) / (t3 - t1)));
507
+ var C = add(mul(B1, (t2 - t) / (t2 - t1)), mul(B2, (t - t1) / (t2 - t1)));
508
+ return C;
509
+ }
510
+ function getT(t, alpha, p0, p1) {
511
+ var d = Cesium.Cartesian3.subtract(p1, p0, new Cesium.Cartesian3());
512
+ var a = Cesium.Cartesian3.dot(d, d);
513
+ var b = Math.pow(a, alpha * 0.5);
514
+ return b + t;
515
+ }
516
+ //# sourceMappingURL=entity-render-engine-polyline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-render-engine-polyline.js","sourceRoot":"","sources":["../../../src/rendering/entity-render-engine-polyline.ts"],"names":[],"mappings":"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"}