bruce-cesium 5.7.7 → 5.7.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.
Files changed (230) hide show
  1. package/package.json +2 -2
  2. package/dist/bruce-cesium.es5.js +0 -32263
  3. package/dist/bruce-cesium.es5.js.map +0 -1
  4. package/dist/bruce-cesium.umd.js +0 -32187
  5. package/dist/bruce-cesium.umd.js.map +0 -1
  6. package/dist/lib/bruce-cesium.js +0 -76
  7. package/dist/lib/bruce-cesium.js.map +0 -1
  8. package/dist/lib/internal/cesium-utils.js +0 -109
  9. package/dist/lib/internal/cesium-utils.js.map +0 -1
  10. package/dist/lib/internal/js-utils.js +0 -22
  11. package/dist/lib/internal/js-utils.js.map +0 -1
  12. package/dist/lib/internal/limited-log.js +0 -17
  13. package/dist/lib/internal/limited-log.js.map +0 -1
  14. package/dist/lib/rendering/cesium-animated-in-out.js +0 -166
  15. package/dist/lib/rendering/cesium-animated-in-out.js.map +0 -1
  16. package/dist/lib/rendering/cesium-animated-property.js +0 -1111
  17. package/dist/lib/rendering/cesium-animated-property.js.map +0 -1
  18. package/dist/lib/rendering/entity-gatherer.js +0 -327
  19. package/dist/lib/rendering/entity-gatherer.js.map +0 -1
  20. package/dist/lib/rendering/entity-render-engine-model3d.js +0 -689
  21. package/dist/lib/rendering/entity-render-engine-model3d.js.map +0 -1
  22. package/dist/lib/rendering/entity-render-engine-point.js +0 -984
  23. package/dist/lib/rendering/entity-render-engine-point.js.map +0 -1
  24. package/dist/lib/rendering/entity-render-engine-polygon.js +0 -669
  25. package/dist/lib/rendering/entity-render-engine-polygon.js.map +0 -1
  26. package/dist/lib/rendering/entity-render-engine-polyline.js +0 -415
  27. package/dist/lib/rendering/entity-render-engine-polyline.js.map +0 -1
  28. package/dist/lib/rendering/entity-render-engine.js +0 -442
  29. package/dist/lib/rendering/entity-render-engine.js.map +0 -1
  30. package/dist/lib/rendering/getters/batched-data-getter.js +0 -91
  31. package/dist/lib/rendering/getters/batched-data-getter.js.map +0 -1
  32. package/dist/lib/rendering/getters/entity-filter-getter.js +0 -634
  33. package/dist/lib/rendering/getters/entity-filter-getter.js.map +0 -1
  34. package/dist/lib/rendering/getters/entity-globe.js +0 -172
  35. package/dist/lib/rendering/getters/entity-globe.js.map +0 -1
  36. package/dist/lib/rendering/menu-item-creator.js +0 -354
  37. package/dist/lib/rendering/menu-item-creator.js.map +0 -1
  38. package/dist/lib/rendering/menu-item-manager.js +0 -464
  39. package/dist/lib/rendering/menu-item-manager.js.map +0 -1
  40. package/dist/lib/rendering/relation-render-engine.js +0 -235
  41. package/dist/lib/rendering/relation-render-engine.js.map +0 -1
  42. package/dist/lib/rendering/render-managers/common/cesium-parabola.js +0 -368
  43. package/dist/lib/rendering/render-managers/common/cesium-parabola.js.map +0 -1
  44. package/dist/lib/rendering/render-managers/common/entity-label.js +0 -703
  45. package/dist/lib/rendering/render-managers/common/entity-label.js.map +0 -1
  46. package/dist/lib/rendering/render-managers/common/point-clustering.js +0 -826
  47. package/dist/lib/rendering/render-managers/common/point-clustering.js.map +0 -1
  48. package/dist/lib/rendering/render-managers/common/shared-getters.js +0 -187
  49. package/dist/lib/rendering/render-managers/common/shared-getters.js.map +0 -1
  50. package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js +0 -668
  51. package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js.map +0 -1
  52. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js +0 -92
  53. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js.map +0 -1
  54. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +0 -143
  55. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +0 -1
  56. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +0 -510
  57. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +0 -1
  58. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +0 -717
  59. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +0 -1
  60. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +0 -999
  61. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +0 -1
  62. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +0 -186
  63. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +0 -1
  64. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js +0 -226
  65. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js.map +0 -1
  66. package/dist/lib/rendering/render-managers/other/google-search-render-manager.js +0 -430
  67. package/dist/lib/rendering/render-managers/other/google-search-render-manager.js.map +0 -1
  68. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +0 -290
  69. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +0 -1
  70. package/dist/lib/rendering/render-managers/other/relations-render-manager.js +0 -401
  71. package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +0 -1
  72. package/dist/lib/rendering/render-managers/render-manager.js +0 -276
  73. package/dist/lib/rendering/render-managers/render-manager.js.map +0 -1
  74. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +0 -356
  75. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +0 -1
  76. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +0 -861
  77. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +0 -1
  78. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +0 -279
  79. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +0 -1
  80. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js +0 -104
  81. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js.map +0 -1
  82. package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js +0 -81
  83. package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js.map +0 -1
  84. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +0 -378
  85. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +0 -1
  86. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +0 -140
  87. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +0 -1
  88. package/dist/lib/rendering/tile-render-engine.js +0 -1328
  89. package/dist/lib/rendering/tile-render-engine.js.map +0 -1
  90. package/dist/lib/rendering/tileset-render-engine.js +0 -588
  91. package/dist/lib/rendering/tileset-render-engine.js.map +0 -1
  92. package/dist/lib/rendering/tileset-styler.js +0 -590
  93. package/dist/lib/rendering/tileset-styler.js.map +0 -1
  94. package/dist/lib/rendering/view-render-engine.js +0 -1004
  95. package/dist/lib/rendering/view-render-engine.js.map +0 -1
  96. package/dist/lib/rendering/visual-register-culler.js +0 -676
  97. package/dist/lib/rendering/visual-register-culler.js.map +0 -1
  98. package/dist/lib/rendering/visuals-register.js +0 -1695
  99. package/dist/lib/rendering/visuals-register.js.map +0 -1
  100. package/dist/lib/utils/cesium-entity-styler.js +0 -915
  101. package/dist/lib/utils/cesium-entity-styler.js.map +0 -1
  102. package/dist/lib/utils/drawing-utils.js +0 -308
  103. package/dist/lib/utils/drawing-utils.js.map +0 -1
  104. package/dist/lib/utils/entity-utils.js +0 -1382
  105. package/dist/lib/utils/entity-utils.js.map +0 -1
  106. package/dist/lib/utils/measure-utils.js +0 -73
  107. package/dist/lib/utils/measure-utils.js.map +0 -1
  108. package/dist/lib/utils/simplify-geometry.js +0 -323
  109. package/dist/lib/utils/simplify-geometry.js.map +0 -1
  110. package/dist/lib/utils/view-utils.js +0 -392
  111. package/dist/lib/utils/view-utils.js.map +0 -1
  112. package/dist/lib/viewer/cesium-view-monitor.js +0 -393
  113. package/dist/lib/viewer/cesium-view-monitor.js.map +0 -1
  114. package/dist/lib/viewer/viewer-event-tracker.js +0 -70
  115. package/dist/lib/viewer/viewer-event-tracker.js.map +0 -1
  116. package/dist/lib/viewer/viewer-utils.js +0 -310
  117. package/dist/lib/viewer/viewer-utils.js.map +0 -1
  118. package/dist/lib/widgets/common/draw-3d-polygon.js +0 -458
  119. package/dist/lib/widgets/common/draw-3d-polygon.js.map +0 -1
  120. package/dist/lib/widgets/common/draw-3d-polyline.js +0 -415
  121. package/dist/lib/widgets/common/draw-3d-polyline.js.map +0 -1
  122. package/dist/lib/widgets/common/measure-creator.js +0 -468
  123. package/dist/lib/widgets/common/measure-creator.js.map +0 -1
  124. package/dist/lib/widgets/common/walkthrough.js +0 -336
  125. package/dist/lib/widgets/common/walkthrough.js.map +0 -1
  126. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js +0 -36
  127. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js.map +0 -1
  128. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js +0 -437
  129. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js.map +0 -1
  130. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js +0 -38
  131. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js.map +0 -1
  132. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js +0 -219
  133. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js.map +0 -1
  134. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js +0 -304
  135. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js.map +0 -1
  136. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js +0 -29
  137. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js.map +0 -1
  138. package/dist/lib/widgets/widget-bookmarks.js +0 -497
  139. package/dist/lib/widgets/widget-bookmarks.js.map +0 -1
  140. package/dist/lib/widgets/widget-branding.js +0 -165
  141. package/dist/lib/widgets/widget-branding.js.map +0 -1
  142. package/dist/lib/widgets/widget-cursorbar.js +0 -1179
  143. package/dist/lib/widgets/widget-cursorbar.js.map +0 -1
  144. package/dist/lib/widgets/widget-embedded-info-view.js +0 -201
  145. package/dist/lib/widgets/widget-embedded-info-view.js.map +0 -1
  146. package/dist/lib/widgets/widget-info-view.js +0 -681
  147. package/dist/lib/widgets/widget-info-view.js.map +0 -1
  148. package/dist/lib/widgets/widget-left-panel.js +0 -548
  149. package/dist/lib/widgets/widget-left-panel.js.map +0 -1
  150. package/dist/lib/widgets/widget-nav-compass.js +0 -469
  151. package/dist/lib/widgets/widget-nav-compass.js.map +0 -1
  152. package/dist/lib/widgets/widget-view-bar.js +0 -284
  153. package/dist/lib/widgets/widget-view-bar.js.map +0 -1
  154. package/dist/lib/widgets/widget.js +0 -66
  155. package/dist/lib/widgets/widget.js.map +0 -1
  156. package/dist/types/bruce-cesium.d.ts +0 -58
  157. package/dist/types/internal/cesium-utils.d.ts +0 -23
  158. package/dist/types/internal/js-utils.d.ts +0 -8
  159. package/dist/types/internal/limited-log.d.ts +0 -6
  160. package/dist/types/rendering/cesium-animated-in-out.d.ts +0 -12
  161. package/dist/types/rendering/cesium-animated-property.d.ts +0 -245
  162. package/dist/types/rendering/entity-gatherer.d.ts +0 -36
  163. package/dist/types/rendering/entity-render-engine-model3d.d.ts +0 -56
  164. package/dist/types/rendering/entity-render-engine-point.d.ts +0 -73
  165. package/dist/types/rendering/entity-render-engine-polygon.d.ts +0 -26
  166. package/dist/types/rendering/entity-render-engine-polyline.d.ts +0 -47
  167. package/dist/types/rendering/entity-render-engine.d.ts +0 -108
  168. package/dist/types/rendering/getters/batched-data-getter.d.ts +0 -28
  169. package/dist/types/rendering/getters/entity-filter-getter.d.ts +0 -104
  170. package/dist/types/rendering/getters/entity-globe.d.ts +0 -21
  171. package/dist/types/rendering/menu-item-creator.d.ts +0 -53
  172. package/dist/types/rendering/menu-item-manager.d.ts +0 -85
  173. package/dist/types/rendering/relation-render-engine.d.ts +0 -32
  174. package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +0 -39
  175. package/dist/types/rendering/render-managers/common/entity-label.d.ts +0 -82
  176. package/dist/types/rendering/render-managers/common/point-clustering.d.ts +0 -91
  177. package/dist/types/rendering/render-managers/common/shared-getters.d.ts +0 -41
  178. package/dist/types/rendering/render-managers/data-source/data-source-static-csv-manager.d.ts +0 -41
  179. package/dist/types/rendering/render-managers/data-source/data-source-static-kml-manager.d.ts +0 -25
  180. package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +0 -31
  181. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +0 -76
  182. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +0 -90
  183. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +0 -90
  184. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +0 -42
  185. package/dist/types/rendering/render-managers/other/assembly-render-manager.d.ts +0 -38
  186. package/dist/types/rendering/render-managers/other/google-search-render-manager.d.ts +0 -45
  187. package/dist/types/rendering/render-managers/other/legacy-relations-render-manager.d.ts +0 -60
  188. package/dist/types/rendering/render-managers/other/relations-render-manager.d.ts +0 -53
  189. package/dist/types/rendering/render-managers/render-manager.d.ts +0 -30
  190. package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +0 -37
  191. package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +0 -86
  192. package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +0 -41
  193. package/dist/types/rendering/render-managers/tilesets/tileset-google-photos-render-manager.d.ts +0 -26
  194. package/dist/types/rendering/render-managers/tilesets/tileset-i3s-render-manager.d.ts +0 -25
  195. package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +0 -48
  196. package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +0 -27
  197. package/dist/types/rendering/tile-render-engine.d.ts +0 -80
  198. package/dist/types/rendering/tileset-render-engine.d.ts +0 -99
  199. package/dist/types/rendering/tileset-styler.d.ts +0 -86
  200. package/dist/types/rendering/view-render-engine.d.ts +0 -32
  201. package/dist/types/rendering/visual-register-culler.d.ts +0 -18
  202. package/dist/types/rendering/visuals-register.d.ts +0 -351
  203. package/dist/types/utils/cesium-entity-styler.d.ts +0 -103
  204. package/dist/types/utils/drawing-utils.d.ts +0 -59
  205. package/dist/types/utils/entity-utils.d.ts +0 -133
  206. package/dist/types/utils/measure-utils.d.ts +0 -20
  207. package/dist/types/utils/simplify-geometry.d.ts +0 -19
  208. package/dist/types/utils/view-utils.d.ts +0 -101
  209. package/dist/types/viewer/cesium-view-monitor.d.ts +0 -35
  210. package/dist/types/viewer/viewer-event-tracker.d.ts +0 -47
  211. package/dist/types/viewer/viewer-utils.d.ts +0 -88
  212. package/dist/types/widgets/common/draw-3d-polygon.d.ts +0 -62
  213. package/dist/types/widgets/common/draw-3d-polyline.d.ts +0 -50
  214. package/dist/types/widgets/common/measure-creator.d.ts +0 -60
  215. package/dist/types/widgets/common/walkthrough.d.ts +0 -37
  216. package/dist/types/widgets/controls-view-bar/widget-control-view-bar-fullscreen.d.ts +0 -10
  217. package/dist/types/widgets/controls-view-bar/widget-control-view-bar-search.d.ts +0 -18
  218. package/dist/types/widgets/controls-view-bar/widget-control-view-bar.d.ts +0 -23
  219. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.d.ts +0 -11
  220. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-user.d.ts +0 -24
  221. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab.d.ts +0 -17
  222. package/dist/types/widgets/widget-bookmarks.d.ts +0 -40
  223. package/dist/types/widgets/widget-branding.d.ts +0 -15
  224. package/dist/types/widgets/widget-cursorbar.d.ts +0 -48
  225. package/dist/types/widgets/widget-embedded-info-view.d.ts +0 -13
  226. package/dist/types/widgets/widget-info-view.d.ts +0 -21
  227. package/dist/types/widgets/widget-left-panel.d.ts +0 -73
  228. package/dist/types/widgets/widget-nav-compass.d.ts +0 -27
  229. package/dist/types/widgets/widget-view-bar.d.ts +0 -37
  230. package/dist/types/widgets/widget.d.ts +0 -29
@@ -1,634 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntityFilterGetter = void 0;
4
- const bruce_models_1 = require("bruce-models");
5
- const entity_globe_1 = require("./entity-globe");
6
- const Cesium = require("cesium");
7
- const shared_getters_1 = require("../render-managers/common/shared-getters");
8
- const MAX_AREA_IN_DEGREES = 90;
9
- const MAX_RETRY_ATTEMPTS = 1;
10
- const RETRY_DELAY_INCREMENT = 500;
11
- const REQUEST_PAGE_DELAY = 50;
12
- class regMenuItemGetter {
13
- constructor(typeId, tagIds, minHeight, maxHeight) {
14
- this.TypeId = typeId;
15
- this.TagIds = tagIds;
16
- this.MinHeight = minHeight;
17
- this.MaxHeight = maxHeight;
18
- }
19
- }
20
- async function delay(milliseconds) {
21
- return new Promise((res) => {
22
- setTimeout(() => {
23
- res();
24
- }, milliseconds);
25
- });
26
- }
27
- /**
28
- * This is a batched entity getter.
29
- * It will scan for entity records in a view-area and emit them in batches.
30
- * It will restart scanning if the camera moves.
31
- */
32
- var EntityFilterGetter;
33
- (function (EntityFilterGetter) {
34
- let EStatus;
35
- (function (EStatus) {
36
- EStatus["Scanning"] = "SCANNING";
37
- EStatus["Loading"] = "LOADING";
38
- })(EStatus = EntityFilterGetter.EStatus || (EntityFilterGetter.EStatus = {}));
39
- class Getter {
40
- get OnUpdate() {
41
- if (!this.onUpdate) {
42
- this.onUpdate = new bruce_models_1.BruceEvent();
43
- }
44
- return this.onUpdate;
45
- }
46
- get OnStateUpdate() {
47
- if (!this.onStateUpdate) {
48
- this.onStateUpdate = new bruce_models_1.BruceEvent();
49
- }
50
- return this.onStateUpdate;
51
- }
52
- get OnScanUpdate() {
53
- if (!this.onScanUpdate) {
54
- this.onScanUpdate = new bruce_models_1.BruceEvent();
55
- }
56
- return this.onScanUpdate;
57
- }
58
- get isLooping() {
59
- return this.looping > 0;
60
- }
61
- constructor(params) {
62
- this.onUpdate = null;
63
- this.LastStateUpdates = {};
64
- this.onStateUpdate = null;
65
- this.onScanUpdate = null;
66
- this.viewPortChangeRemoval = null;
67
- this.viewPortDelayQueue = null;
68
- this.viewerDateTimeChangeRemoval = null;
69
- this.cells = null;
70
- this.registeredItems = {};
71
- this.getterLoopId = 0;
72
- this.getterLoopAbortControllers = {};
73
- this.looping = 0;
74
- this.tagIds = null;
75
- this.minHeight = 0;
76
- this.maxHeight = 100000;
77
- this.viewRect = null;
78
- this.viewCenter = null;
79
- this.scenario = 0;
80
- this.historicRefreshAbortController = null;
81
- // Entity IDs found for the latest integrity.
82
- // We use this for refreshing historic data without having to repeat geographic queries.
83
- this.gatheredIntegrity = null;
84
- this.gatheredEntityIds = [];
85
- const { api, viewer, viewPort, typeIds, schemaId, batchSize, attrFilter, historicAttrKey, historicInterpolation, historic, viaCdn, scenario } = params;
86
- this.api = api;
87
- this.typeIds = typeIds;
88
- this.schemaId = schemaId;
89
- this.historic = Boolean(historic);
90
- this.historicAttrKey = historicAttrKey;
91
- this.historicInterpolation = Boolean(historicInterpolation);
92
- this.viaCdn = Boolean(viaCdn);
93
- this.batchSize = isNaN(batchSize) ? 300 : batchSize;
94
- this.viewPort = viewPort;
95
- this.attrFilter = attrFilter;
96
- this.viewer = viewer;
97
- this.scenario = scenario ? scenario : 0;
98
- this.updateBounds();
99
- }
100
- /**
101
- * Returns id that represents the combined menu item parameters.
102
- * If integrity changes while a request is running, the request will not emit a response.
103
- * @returns
104
- */
105
- getIntegrityId() {
106
- let integrity = this.tagIds == null ? "" : this.tagIds.join();
107
- if (this.historicAttrKey) {
108
- integrity += "isHistoric";
109
- integrity += this.historicAttrKey;
110
- }
111
- else if (this.historic) {
112
- integrity += "isHistoric";
113
- }
114
- if (this.scenario) {
115
- integrity += this.scenario;
116
- }
117
- if (this.typeIds) {
118
- integrity += this.typeIds.join();
119
- }
120
- return integrity;
121
- }
122
- viewAreaSub() {
123
- this.viewAreaDispose();
124
- // We'll avoid restarting the scanner too often.
125
- this.viewPortDelayQueue = new bruce_models_1.DelayQueue(() => {
126
- this.updateBounds();
127
- this.startGetterLoop();
128
- }, 2000);
129
- this.viewPortChangeRemoval = this.viewPort.Updated().Subscribe(() => {
130
- var _a;
131
- (_a = this.viewPortDelayQueue) === null || _a === void 0 ? void 0 : _a.Call();
132
- });
133
- }
134
- viewAreaDispose() {
135
- var _a, _b;
136
- (_a = this.viewPortChangeRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
137
- this.viewPortChangeRemoval = null;
138
- (_b = this.viewPortDelayQueue) === null || _b === void 0 ? void 0 : _b.Dispose();
139
- this.viewPortDelayQueue = null;
140
- }
141
- /**
142
- * Monitors the Cesium viewer and updates the historic data filter values.
143
- * If there is no historic attr set, this will do nothing.
144
- */
145
- viewerDateTimeSub() {
146
- if ((!this.historicAttrKey && !this.historic) || this.viewerDateTimeChangeRemoval) {
147
- return;
148
- }
149
- // This is multiplied by the speed of animation to figure
150
- // out how many animation "ticks" before we allow an update.
151
- let INTERVAL_WHILE_ANIMATING = 2.5 * 1000;
152
- let INTERVAL_WHILE_NOT_ANIMATING = 1000;
153
- if (this.historicInterpolation) {
154
- INTERVAL_WHILE_ANIMATING = 6 * 1000;
155
- INTERVAL_WHILE_NOT_ANIMATING = 3.5 * 1000;
156
- }
157
- let lastUpdateTime = null;
158
- let delayQueue = new bruce_models_1.DelayQueue(() => {
159
- try {
160
- // If the timeline is animating then we'll wait longer to update.
161
- if (this.viewer.clock.shouldAnimate && lastUpdateTime) {
162
- if (Math.abs(new Date().getTime() - lastUpdateTime) < INTERVAL_WHILE_ANIMATING) {
163
- return;
164
- }
165
- }
166
- const current = this.historicAttrDateTime;
167
- this.updateHistoricDateTime();
168
- if (current != this.historicAttrDateTime) {
169
- this.emitHistoricData();
170
- }
171
- }
172
- catch (e) {
173
- console.error(e);
174
- }
175
- }, INTERVAL_WHILE_NOT_ANIMATING);
176
- let postUpdateRemoval = this.viewer.scene.postUpdate.addEventListener(() => {
177
- if (delayQueue) {
178
- delayQueue.Call();
179
- }
180
- });
181
- this.viewerDateTimeChangeRemoval = () => {
182
- delayQueue === null || delayQueue === void 0 ? void 0 : delayQueue.Dispose();
183
- postUpdateRemoval === null || postUpdateRemoval === void 0 ? void 0 : postUpdateRemoval();
184
- delayQueue = null;
185
- postUpdateRemoval = null;
186
- };
187
- }
188
- updateHistoricDateTime() {
189
- if (!this.historicAttrKey && !this.historic) {
190
- this.historicAttrDateTime = null;
191
- return;
192
- }
193
- const isChanged = (before, after) => {
194
- if (before && !after) {
195
- return true;
196
- }
197
- if (!before && after) {
198
- return true;
199
- }
200
- // Change must be at least 0.1 seconds.
201
- return Math.abs(before.getTime() - after.getTime()) > 100;
202
- };
203
- const oldDateTime = this.historicAttrDateTime ? new Date(this.historicAttrDateTime) : null;
204
- const newDateTime = Cesium.JulianDate.toDate(this.viewer.clock.currentTime);
205
- if (isChanged(oldDateTime, newDateTime)) {
206
- this.historicAttrDateTime = newDateTime.toISOString();
207
- }
208
- }
209
- viewerDateTimeDispose() {
210
- var _a;
211
- (_a = this.viewerDateTimeChangeRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
212
- this.viewerDateTimeChangeRemoval = null;
213
- }
214
- GetMenuItems() {
215
- return Object.keys(this.registeredItems);
216
- }
217
- IncludeMenuItem(menuItemId, typeId, layerIds, minHeight, maxHeight) {
218
- this.registeredItems[menuItemId] = new regMenuItemGetter(typeId, layerIds, minHeight, maxHeight);
219
- this.updateState();
220
- }
221
- ExcludeMenuItem(menuItemId) {
222
- this.registeredItems[menuItemId] = null;
223
- delete this.registeredItems[menuItemId];
224
- this.updateState(true);
225
- }
226
- updateBounds() {
227
- const viewRect = this.viewPort.GetBounds();
228
- const poi = this.viewPort.GetTarget();
229
- if (viewRect && poi) {
230
- if (Math.abs(viewRect.west - viewRect.east) > MAX_AREA_IN_DEGREES) {
231
- return;
232
- }
233
- if (Math.abs(viewRect.south - viewRect.north) > MAX_AREA_IN_DEGREES) {
234
- return;
235
- }
236
- this.viewRect = viewRect;
237
- this.viewCenter = poi;
238
- }
239
- }
240
- updateState(onlyIfLooping = false) {
241
- const tagIds = [];
242
- const typeIds = [];
243
- const menuItemIds = this.GetMenuItems();
244
- let minHeight = null;
245
- let maxHeight = null;
246
- for (let i = 0; i < menuItemIds.length; i++) {
247
- const menuItem = this.registeredItems[menuItemIds[i]];
248
- if (menuItem) {
249
- if (maxHeight == null || maxHeight < menuItem.MaxHeight) {
250
- maxHeight = menuItem.MaxHeight;
251
- }
252
- if (minHeight == null || minHeight > menuItem.MinHeight) {
253
- minHeight = menuItem.MinHeight;
254
- }
255
- const itemLayerIds = menuItem.TagIds;
256
- if (itemLayerIds) {
257
- for (let j = 0; j < itemLayerIds.length; j++) {
258
- const itemLayerId = itemLayerIds[j];
259
- if (!tagIds.includes(itemLayerId)) {
260
- tagIds.push(itemLayerId);
261
- }
262
- }
263
- }
264
- const itemTypeId = menuItem.TypeId;
265
- if (itemTypeId) {
266
- if (!typeIds.includes(itemTypeId)) {
267
- typeIds.push(itemTypeId);
268
- }
269
- }
270
- }
271
- }
272
- if (menuItemIds.length > 0 && (!onlyIfLooping || this.isLooping)) {
273
- // Reset cells so none are marked as fetched.
274
- this.cells = new entity_globe_1.EntityGlobe.Grid();
275
- this.tagIds = tagIds;
276
- this.typeIds = typeIds;
277
- this.minHeight = minHeight;
278
- this.maxHeight = maxHeight;
279
- this.updateBounds();
280
- this.updateHistoricDateTime();
281
- this.startGetterLoop();
282
- this.viewAreaSub();
283
- this.viewerDateTimeSub();
284
- }
285
- else {
286
- this.getterLoopId += 1;
287
- this.viewAreaDispose();
288
- this.viewerDateTimeDispose();
289
- }
290
- }
291
- postStatus(status) {
292
- var _a;
293
- this.LastStateUpdates[status.msg] = status;
294
- (_a = this.onStateUpdate) === null || _a === void 0 ? void 0 : _a.Trigger(status);
295
- }
296
- startGetterLoop() {
297
- // Increase id so that existing loops stop.
298
- this.getterLoopId += 1;
299
- const loopId = this.getterLoopId;
300
- const loopIntegrity = this.getIntegrityId();
301
- // Abort any existing loops that don't match the current loop.
302
- // We tried using integrity, however we want to interrupt when user moves camera quickly.
303
- // So it's better to use the loop ID.
304
- const abortId = String(loopId);
305
- {
306
- const newAbortControllers = {};
307
- for (const key in this.getterLoopAbortControllers) {
308
- this.getterLoopAbortControllers[key].abort();
309
- }
310
- this.getterLoopAbortControllers = newAbortControllers;
311
- }
312
- const abortController = this.getterLoopAbortControllers[abortId] = new AbortController();
313
- this.looping += 1;
314
- (async () => {
315
- var _a, _b, _c, _d, _e, _f, _g, _h;
316
- // Larger initial delay for the first loops because terrain is likely loading in.
317
- // We also delay because if we enable 50 Menu Items at the same time, common requests we be made if we wait a bit.
318
- // Eg: same entity type will be grouped into the same filter getter instance.
319
- await delay(loopId <= 3 ? 800 : 300);
320
- const MIN_HEIGHT = this.minHeight;
321
- const MAX_HEIGHT = this.maxHeight;
322
- const PAGE_SIZE = this.batchSize;
323
- let retryAttempts = MAX_RETRY_ATTEMPTS;
324
- let retryDelay = 0;
325
- let prevFirstId = "";
326
- let prevLastId = "";
327
- let prevTicks = 0;
328
- while ((!this.viewCenter || !this.viewRect) && this.getterLoopId == loopId) {
329
- await delay(RETRY_DELAY_INCREMENT);
330
- }
331
- if (this.getterLoopId != loopId) {
332
- return;
333
- }
334
- const alt = this.viewRect.alt;
335
- if (alt > MAX_HEIGHT || (alt < MIN_HEIGHT && MIN_HEIGHT > 0)) {
336
- return;
337
- }
338
- const cells = this.cells.GetCellsForView(this.viewCenter, this.viewRect);
339
- (_a = this.onScanUpdate) === null || _a === void 0 ? void 0 : _a.Trigger(cells);
340
- let curCellIndex = cells.length > 0 ? 0 : null;
341
- let postedScanning = false;
342
- let postedLoading = false;
343
- let total = 0;
344
- while (retryAttempts > 0 && curCellIndex != null) {
345
- if (retryDelay > 0) {
346
- await delay(retryDelay);
347
- }
348
- if (this.getterLoopId != loopId) {
349
- break;
350
- }
351
- if (!postedScanning) {
352
- this.postStatus({ msg: EStatus.Scanning, revoking: false });
353
- postedScanning = true;
354
- }
355
- const curCell = cells[curCellIndex];
356
- if (curCell.IsFetched()) {
357
- curCell.Fetching = false;
358
- curCellIndex += 1;
359
- if (cells[curCellIndex]) {
360
- cells[curCellIndex].Fetching = true;
361
- }
362
- else {
363
- curCellIndex = null;
364
- }
365
- (_b = this.onScanUpdate) === null || _b === void 0 ? void 0 : _b.Trigger(cells);
366
- continue;
367
- }
368
- try {
369
- let response = {
370
- entities: [],
371
- nextPage: false,
372
- nextPageUrl: null
373
- };
374
- await shared_getters_1.SharedGetters.Queue.Run("Loading Entities from Menu Item that loads Entity Type: " + this.typeIds, async () => {
375
- var _a;
376
- if (abortController.signal.aborted || !((_a = this.GetMenuItems()) === null || _a === void 0 ? void 0 : _a.length)) {
377
- return;
378
- }
379
- // API gave us a URL to use.
380
- if (curCell.FetchURL) {
381
- const tmpResponse = await this.api.get(curCell.FetchURL, {
382
- abortSignal: abortController.signal,
383
- noCache: true
384
- });
385
- // Same mapping as bruce-models doing Entity.GetList.
386
- response = {
387
- entities: tmpResponse.Items ? tmpResponse.Items : [],
388
- nextPage: tmpResponse.NextPage,
389
- nextPageUrl: tmpResponse.NextPageURL,
390
- sources: tmpResponse.Source,
391
- entityTypeSources: tmpResponse["EntityType.Source"]
392
- };
393
- }
394
- else {
395
- response = await bruce_models_1.Entity.GetList({
396
- api: this.api,
397
- scenario: this.scenario,
398
- historicKey: this.historicAttrKey,
399
- historicPoint: (this.historicAttrKey || this.historic) ? this.historicAttrDateTime : null,
400
- schemaId: this.schemaId,
401
- filter: {
402
- pageSize: PAGE_SIZE,
403
- pageIndex: curCell.FetchPageIndex,
404
- entityTypeId: this.typeIds,
405
- layerIds: this.tagIds,
406
- // Any tag specified will be allowed.
407
- layerIdsOperator: "in",
408
- bounds: curCell.GetBounds(),
409
- sortOrder: bruce_models_1.Api.ESortOrder.Asc,
410
- entityTypeConditions: this.attrFilter
411
- },
412
- viaCdn: this.viaCdn,
413
- migrated: true,
414
- // If we're taking 2+ minutes to make a query, it's a dud.
415
- // This is a timeout imposed on our DB and not external sources.
416
- // Honestly could lower down to 30 seconds, but we'll keep it high for now.
417
- maxSearchTimeSec: 60 * 2,
418
- req: {
419
- // If we are passing in an abort, we MUST pass in noCache.
420
- // Otherwise we will cache an aborted request.
421
- noCache: true,
422
- abortSignal: abortController.signal
423
- }
424
- });
425
- }
426
- });
427
- const entities = response.entities;
428
- const integrity = this.getIntegrityId();
429
- if (loopIntegrity == integrity && entities) {
430
- (_c = this.onUpdate) === null || _c === void 0 ? void 0 : _c.Trigger({
431
- entities: entities,
432
- sources: response.sources,
433
- entityTypeSources: response.entityTypeSources
434
- });
435
- }
436
- if (this.gatheredIntegrity != integrity) {
437
- this.gatheredIntegrity = integrity;
438
- this.gatheredEntityIds = [];
439
- }
440
- // Add to the integrity list for any new IDs found.
441
- // This lets us keep track of all IDs we've found within the same integrity for historic data.
442
- if (this.historicAttrKey || this.historic) {
443
- for (let i = 0; i < entities.length; i++) {
444
- const entity = entities[i];
445
- if (!this.gatheredEntityIds.includes(entity.Bruce.ID)) {
446
- this.gatheredEntityIds.push(entity.Bruce.ID);
447
- }
448
- }
449
- }
450
- if (this.getterLoopId != loopId) {
451
- break;
452
- }
453
- if (entities.length) {
454
- total += entities.length;
455
- }
456
- if (!postedLoading) {
457
- this.postStatus({ msg: EStatus.Loading, revoking: false });
458
- postedLoading = true;
459
- }
460
- // Only mark as fetched when ALL pages are done.
461
- // Known issue where external sources may return less than page size.
462
- // Right now we're making it as fetched as we're siding with the majority use-case.
463
- if (
464
- // API explicity says no more pages.
465
- response.nextPage === false ||
466
- // API didn't explicity say anything so we guess based on size of response.
467
- (response.nextPage == null &&
468
- (entities.length <= 0 || entities.length < PAGE_SIZE))) {
469
- curCell.Fetched = true;
470
- curCell.Fetching = false;
471
- (_d = this.onScanUpdate) === null || _d === void 0 ? void 0 : _d.Trigger(cells);
472
- continue;
473
- }
474
- // Checking to make sure it's not just the same batch over and over again.
475
- if (entities.length > 0) {
476
- const first = (_f = (_e = entities[0]) === null || _e === void 0 ? void 0 : _e.Bruce) === null || _f === void 0 ? void 0 : _f.ID;
477
- const last = (_h = (_g = entities[entities.length - 1]) === null || _g === void 0 ? void 0 : _g.Bruce) === null || _h === void 0 ? void 0 : _h.ID;
478
- if (prevFirstId == first && prevLastId == last) {
479
- prevTicks += 1;
480
- if (prevTicks > 3) {
481
- break;
482
- }
483
- }
484
- else {
485
- prevFirstId = first;
486
- prevLastId = last;
487
- prevTicks = 0;
488
- }
489
- }
490
- // Using URL if specified.
491
- // If not then we'll just manually paginate.
492
- curCell.FetchURL = response.nextPageUrl;
493
- curCell.FetchPageIndex++;
494
- // Request passed so let's assume it was server hiccup and refresh counts.
495
- retryAttempts = MAX_RETRY_ATTEMPTS;
496
- retryDelay = 0;
497
- }
498
- catch (e) {
499
- // Ignore abort errors.
500
- if (e && typeof e === "object" && e.name == "AbortError") {
501
- // console.debug("Aborted entity-filter-getter request.");
502
- break;
503
- }
504
- console.error(e);
505
- if (this.getterLoopId != loopId) {
506
- break;
507
- }
508
- // Request failed so let's add a delay and try again soon.
509
- retryDelay += RETRY_DELAY_INCREMENT;
510
- retryAttempts -= 1;
511
- }
512
- await delay(REQUEST_PAGE_DELAY);
513
- }
514
- if (postedLoading) {
515
- this.postStatus({ msg: EStatus.Loading, revoking: true });
516
- }
517
- if (postedScanning) {
518
- this.postStatus({ msg: EStatus.Scanning, revoking: true });
519
- }
520
- })().then(() => {
521
- this.looping -= 1;
522
- }).catch(() => {
523
- this.looping -= 1;
524
- });
525
- }
526
- /**
527
- * Gets the historic state of found Entities for the current date times and emits them.
528
- * Since geometry searches are tied to the base Entity, we don't have to re-scan the viewport.
529
- */
530
- emitHistoricData() {
531
- if (!this.GetMenuItems().length) {
532
- return;
533
- }
534
- let integrity = this.getIntegrityId();
535
- // Gathered ID does't match current one.
536
- if (this.gatheredIntegrity != integrity) {
537
- return;
538
- }
539
- const historicAttrDateTime = this.historicAttrDateTime;
540
- const SCAN_BATCH_SIZE = 1000;
541
- if (this.historicRefreshAbortController) {
542
- this.historicRefreshAbortController.abort();
543
- this.historicRefreshAbortController = null;
544
- }
545
- (async () => {
546
- var _a;
547
- let pageIndex = 0;
548
- try {
549
- // Loop through all IDs we've found and get their historic records.
550
- for (let i = 0; i < this.gatheredEntityIds.length; i += SCAN_BATCH_SIZE) {
551
- let batch = this.gatheredEntityIds.slice(i, i + SCAN_BATCH_SIZE);
552
- if (!batch.length) {
553
- break;
554
- }
555
- // Controller we can use to abort the request when a new loop starts.
556
- const controller = this.historicRefreshAbortController = new AbortController();
557
- let entities = [];
558
- let sources = [];
559
- let entityTypeSources = [];
560
- await shared_getters_1.SharedGetters.Queue.Run("Refreshing historic data in Menu Item that loads Entity Type: " + this.typeIds, async () => {
561
- var _a;
562
- if (controller.signal.aborted || !((_a = this.GetMenuItems()) === null || _a === void 0 ? void 0 : _a.length)) {
563
- return;
564
- }
565
- const data = await bruce_models_1.Entity.GetList({
566
- api: this.api,
567
- scenario: this.scenario,
568
- historicKey: this.historicAttrKey,
569
- historicPoint: historicAttrDateTime,
570
- schemaId: this.schemaId,
571
- filter: {
572
- pageSize: batch.length,
573
- pageIndex: 0,
574
- entityTypeId: this.typeIds,
575
- layerIds: this.tagIds,
576
- layerIdsOperator: "in",
577
- sortOrder: bruce_models_1.Api.ESortOrder.Asc,
578
- entityTypeConditions: {
579
- "ID": {
580
- "in": batch
581
- }
582
- },
583
- },
584
- viaCdn: this.viaCdn,
585
- migrated: true,
586
- // If we're taking 5+ minutes to make a query, it's a dud.
587
- // This is a timeout imposed on our DB and not external sources.
588
- // Honestly could lower down to 30 seconds, but we'll keep it high for now.
589
- maxSearchTimeSec: 60 * 5,
590
- req: {
591
- // If we are passing in an abort, we MUST pass in noCache.
592
- // Otherwise we will cache an aborted request.
593
- noCache: true,
594
- abortSignal: controller.signal
595
- }
596
- });
597
- entities = data.entities;
598
- sources = data.sources;
599
- entityTypeSources = data.entityTypeSources;
600
- });
601
- // Date changed.
602
- if (this.historicAttrDateTime != historicAttrDateTime) {
603
- break;
604
- }
605
- // Integrity changed.
606
- if (this.gatheredIntegrity != integrity) {
607
- break;
608
- }
609
- // No Menu Items.
610
- if (!this.GetMenuItems().length) {
611
- break;
612
- }
613
- (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({
614
- entities: entities,
615
- sources: sources,
616
- entityTypeSources: entityTypeSources
617
- });
618
- pageIndex += 1;
619
- }
620
- }
621
- catch (e) {
622
- // Ignore abort errors.
623
- if (e && typeof e === "object" && e.name == "AbortError") {
624
- // console.debug("Aborted entity-filter-getter historic refresh request.");
625
- return;
626
- }
627
- console.error(e);
628
- }
629
- })();
630
- }
631
- }
632
- EntityFilterGetter.Getter = Getter;
633
- })(EntityFilterGetter = exports.EntityFilterGetter || (exports.EntityFilterGetter = {}));
634
- //# sourceMappingURL=entity-filter-getter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-filter-getter.js","sourceRoot":"","sources":["../../../../src/rendering/getters/entity-filter-getter.ts"],"names":[],"mappings":"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"}