bruce-cesium 5.7.9 → 5.8.0

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/dist/bruce-cesium.es5.js +32262 -0
  2. package/dist/bruce-cesium.es5.js.map +1 -0
  3. package/dist/bruce-cesium.umd.js +32186 -0
  4. package/dist/bruce-cesium.umd.js.map +1 -0
  5. package/dist/lib/bruce-cesium.js +76 -0
  6. package/dist/lib/bruce-cesium.js.map +1 -0
  7. package/dist/lib/internal/cesium-utils.js +109 -0
  8. package/dist/lib/internal/cesium-utils.js.map +1 -0
  9. package/dist/lib/internal/js-utils.js +22 -0
  10. package/dist/lib/internal/js-utils.js.map +1 -0
  11. package/dist/lib/internal/limited-log.js +17 -0
  12. package/dist/lib/internal/limited-log.js.map +1 -0
  13. package/dist/lib/rendering/cesium-animated-in-out.js +166 -0
  14. package/dist/lib/rendering/cesium-animated-in-out.js.map +1 -0
  15. package/dist/lib/rendering/cesium-animated-property.js +1111 -0
  16. package/dist/lib/rendering/cesium-animated-property.js.map +1 -0
  17. package/dist/lib/rendering/entity-gatherer.js +327 -0
  18. package/dist/lib/rendering/entity-gatherer.js.map +1 -0
  19. package/dist/lib/rendering/entity-render-engine-model3d.js +689 -0
  20. package/dist/lib/rendering/entity-render-engine-model3d.js.map +1 -0
  21. package/dist/lib/rendering/entity-render-engine-point.js +984 -0
  22. package/dist/lib/rendering/entity-render-engine-point.js.map +1 -0
  23. package/dist/lib/rendering/entity-render-engine-polygon.js +669 -0
  24. package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -0
  25. package/dist/lib/rendering/entity-render-engine-polyline.js +415 -0
  26. package/dist/lib/rendering/entity-render-engine-polyline.js.map +1 -0
  27. package/dist/lib/rendering/entity-render-engine.js +442 -0
  28. package/dist/lib/rendering/entity-render-engine.js.map +1 -0
  29. package/dist/lib/rendering/getters/batched-data-getter.js +91 -0
  30. package/dist/lib/rendering/getters/batched-data-getter.js.map +1 -0
  31. package/dist/lib/rendering/getters/entity-filter-getter.js +634 -0
  32. package/dist/lib/rendering/getters/entity-filter-getter.js.map +1 -0
  33. package/dist/lib/rendering/getters/entity-globe.js +172 -0
  34. package/dist/lib/rendering/getters/entity-globe.js.map +1 -0
  35. package/dist/lib/rendering/menu-item-creator.js +354 -0
  36. package/dist/lib/rendering/menu-item-creator.js.map +1 -0
  37. package/dist/lib/rendering/menu-item-manager.js +464 -0
  38. package/dist/lib/rendering/menu-item-manager.js.map +1 -0
  39. package/dist/lib/rendering/relation-render-engine.js +235 -0
  40. package/dist/lib/rendering/relation-render-engine.js.map +1 -0
  41. package/dist/lib/rendering/render-managers/common/cesium-parabola.js +368 -0
  42. package/dist/lib/rendering/render-managers/common/cesium-parabola.js.map +1 -0
  43. package/dist/lib/rendering/render-managers/common/entity-label.js +703 -0
  44. package/dist/lib/rendering/render-managers/common/entity-label.js.map +1 -0
  45. package/dist/lib/rendering/render-managers/common/point-clustering.js +826 -0
  46. package/dist/lib/rendering/render-managers/common/point-clustering.js.map +1 -0
  47. package/dist/lib/rendering/render-managers/common/shared-getters.js +187 -0
  48. package/dist/lib/rendering/render-managers/common/shared-getters.js.map +1 -0
  49. package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js +668 -0
  50. package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js.map +1 -0
  51. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js +92 -0
  52. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js.map +1 -0
  53. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +143 -0
  54. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +1 -0
  55. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +510 -0
  56. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -0
  57. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +717 -0
  58. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -0
  59. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +999 -0
  60. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -0
  61. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +186 -0
  62. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -0
  63. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js +226 -0
  64. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js.map +1 -0
  65. package/dist/lib/rendering/render-managers/other/google-search-render-manager.js +430 -0
  66. package/dist/lib/rendering/render-managers/other/google-search-render-manager.js.map +1 -0
  67. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +290 -0
  68. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +1 -0
  69. package/dist/lib/rendering/render-managers/other/relations-render-manager.js +401 -0
  70. package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +1 -0
  71. package/dist/lib/rendering/render-managers/render-manager.js +276 -0
  72. package/dist/lib/rendering/render-managers/render-manager.js.map +1 -0
  73. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +356 -0
  74. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -0
  75. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +861 -0
  76. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -0
  77. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +279 -0
  78. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -0
  79. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js +104 -0
  80. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js.map +1 -0
  81. package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js +81 -0
  82. package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js.map +1 -0
  83. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +378 -0
  84. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -0
  85. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +140 -0
  86. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -0
  87. package/dist/lib/rendering/tile-render-engine.js +1328 -0
  88. package/dist/lib/rendering/tile-render-engine.js.map +1 -0
  89. package/dist/lib/rendering/tileset-render-engine.js +588 -0
  90. package/dist/lib/rendering/tileset-render-engine.js.map +1 -0
  91. package/dist/lib/rendering/tileset-styler.js +590 -0
  92. package/dist/lib/rendering/tileset-styler.js.map +1 -0
  93. package/dist/lib/rendering/view-render-engine.js +1004 -0
  94. package/dist/lib/rendering/view-render-engine.js.map +1 -0
  95. package/dist/lib/rendering/visual-register-culler.js +676 -0
  96. package/dist/lib/rendering/visual-register-culler.js.map +1 -0
  97. package/dist/lib/rendering/visuals-register.js +1695 -0
  98. package/dist/lib/rendering/visuals-register.js.map +1 -0
  99. package/dist/lib/utils/cesium-entity-styler.js +914 -0
  100. package/dist/lib/utils/cesium-entity-styler.js.map +1 -0
  101. package/dist/lib/utils/drawing-utils.js +308 -0
  102. package/dist/lib/utils/drawing-utils.js.map +1 -0
  103. package/dist/lib/utils/entity-utils.js +1382 -0
  104. package/dist/lib/utils/entity-utils.js.map +1 -0
  105. package/dist/lib/utils/measure-utils.js +73 -0
  106. package/dist/lib/utils/measure-utils.js.map +1 -0
  107. package/dist/lib/utils/simplify-geometry.js +323 -0
  108. package/dist/lib/utils/simplify-geometry.js.map +1 -0
  109. package/dist/lib/utils/view-utils.js +392 -0
  110. package/dist/lib/utils/view-utils.js.map +1 -0
  111. package/dist/lib/viewer/cesium-view-monitor.js +393 -0
  112. package/dist/lib/viewer/cesium-view-monitor.js.map +1 -0
  113. package/dist/lib/viewer/viewer-event-tracker.js +70 -0
  114. package/dist/lib/viewer/viewer-event-tracker.js.map +1 -0
  115. package/dist/lib/viewer/viewer-utils.js +310 -0
  116. package/dist/lib/viewer/viewer-utils.js.map +1 -0
  117. package/dist/lib/widgets/common/draw-3d-polygon.js +458 -0
  118. package/dist/lib/widgets/common/draw-3d-polygon.js.map +1 -0
  119. package/dist/lib/widgets/common/draw-3d-polyline.js +415 -0
  120. package/dist/lib/widgets/common/draw-3d-polyline.js.map +1 -0
  121. package/dist/lib/widgets/common/measure-creator.js +468 -0
  122. package/dist/lib/widgets/common/measure-creator.js.map +1 -0
  123. package/dist/lib/widgets/common/walkthrough.js +336 -0
  124. package/dist/lib/widgets/common/walkthrough.js.map +1 -0
  125. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js +36 -0
  126. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js.map +1 -0
  127. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js +437 -0
  128. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js.map +1 -0
  129. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js +38 -0
  130. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js.map +1 -0
  131. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js +219 -0
  132. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js.map +1 -0
  133. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js +304 -0
  134. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js.map +1 -0
  135. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js +29 -0
  136. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js.map +1 -0
  137. package/dist/lib/widgets/widget-bookmarks.js +497 -0
  138. package/dist/lib/widgets/widget-bookmarks.js.map +1 -0
  139. package/dist/lib/widgets/widget-branding.js +165 -0
  140. package/dist/lib/widgets/widget-branding.js.map +1 -0
  141. package/dist/lib/widgets/widget-cursorbar.js +1179 -0
  142. package/dist/lib/widgets/widget-cursorbar.js.map +1 -0
  143. package/dist/lib/widgets/widget-embedded-info-view.js +201 -0
  144. package/dist/lib/widgets/widget-embedded-info-view.js.map +1 -0
  145. package/dist/lib/widgets/widget-info-view.js +681 -0
  146. package/dist/lib/widgets/widget-info-view.js.map +1 -0
  147. package/dist/lib/widgets/widget-left-panel.js +548 -0
  148. package/dist/lib/widgets/widget-left-panel.js.map +1 -0
  149. package/dist/lib/widgets/widget-nav-compass.js +469 -0
  150. package/dist/lib/widgets/widget-nav-compass.js.map +1 -0
  151. package/dist/lib/widgets/widget-view-bar.js +284 -0
  152. package/dist/lib/widgets/widget-view-bar.js.map +1 -0
  153. package/dist/lib/widgets/widget.js +66 -0
  154. package/dist/lib/widgets/widget.js.map +1 -0
  155. package/dist/types/bruce-cesium.d.ts +58 -0
  156. package/dist/types/internal/cesium-utils.d.ts +23 -0
  157. package/dist/types/internal/js-utils.d.ts +8 -0
  158. package/dist/types/internal/limited-log.d.ts +6 -0
  159. package/dist/types/rendering/cesium-animated-in-out.d.ts +12 -0
  160. package/dist/types/rendering/cesium-animated-property.d.ts +245 -0
  161. package/dist/types/rendering/entity-gatherer.d.ts +36 -0
  162. package/dist/types/rendering/entity-render-engine-model3d.d.ts +56 -0
  163. package/dist/types/rendering/entity-render-engine-point.d.ts +73 -0
  164. package/dist/types/rendering/entity-render-engine-polygon.d.ts +26 -0
  165. package/dist/types/rendering/entity-render-engine-polyline.d.ts +47 -0
  166. package/dist/types/rendering/entity-render-engine.d.ts +108 -0
  167. package/dist/types/rendering/getters/batched-data-getter.d.ts +28 -0
  168. package/dist/types/rendering/getters/entity-filter-getter.d.ts +104 -0
  169. package/dist/types/rendering/getters/entity-globe.d.ts +21 -0
  170. package/dist/types/rendering/menu-item-creator.d.ts +53 -0
  171. package/dist/types/rendering/menu-item-manager.d.ts +85 -0
  172. package/dist/types/rendering/relation-render-engine.d.ts +32 -0
  173. package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +39 -0
  174. package/dist/types/rendering/render-managers/common/entity-label.d.ts +82 -0
  175. package/dist/types/rendering/render-managers/common/point-clustering.d.ts +91 -0
  176. package/dist/types/rendering/render-managers/common/shared-getters.d.ts +41 -0
  177. package/dist/types/rendering/render-managers/data-source/data-source-static-csv-manager.d.ts +41 -0
  178. package/dist/types/rendering/render-managers/data-source/data-source-static-kml-manager.d.ts +25 -0
  179. package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +31 -0
  180. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +76 -0
  181. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +90 -0
  182. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +90 -0
  183. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +42 -0
  184. package/dist/types/rendering/render-managers/other/assembly-render-manager.d.ts +38 -0
  185. package/dist/types/rendering/render-managers/other/google-search-render-manager.d.ts +45 -0
  186. package/dist/types/rendering/render-managers/other/legacy-relations-render-manager.d.ts +60 -0
  187. package/dist/types/rendering/render-managers/other/relations-render-manager.d.ts +53 -0
  188. package/dist/types/rendering/render-managers/render-manager.d.ts +30 -0
  189. package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +37 -0
  190. package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +86 -0
  191. package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +41 -0
  192. package/dist/types/rendering/render-managers/tilesets/tileset-google-photos-render-manager.d.ts +26 -0
  193. package/dist/types/rendering/render-managers/tilesets/tileset-i3s-render-manager.d.ts +25 -0
  194. package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +48 -0
  195. package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +27 -0
  196. package/dist/types/rendering/tile-render-engine.d.ts +80 -0
  197. package/dist/types/rendering/tileset-render-engine.d.ts +99 -0
  198. package/dist/types/rendering/tileset-styler.d.ts +86 -0
  199. package/dist/types/rendering/view-render-engine.d.ts +32 -0
  200. package/dist/types/rendering/visual-register-culler.d.ts +18 -0
  201. package/dist/types/rendering/visuals-register.d.ts +351 -0
  202. package/dist/types/utils/cesium-entity-styler.d.ts +103 -0
  203. package/dist/types/utils/drawing-utils.d.ts +59 -0
  204. package/dist/types/utils/entity-utils.d.ts +133 -0
  205. package/dist/types/utils/measure-utils.d.ts +20 -0
  206. package/dist/types/utils/simplify-geometry.d.ts +19 -0
  207. package/dist/types/utils/view-utils.d.ts +101 -0
  208. package/dist/types/viewer/cesium-view-monitor.d.ts +35 -0
  209. package/dist/types/viewer/viewer-event-tracker.d.ts +47 -0
  210. package/dist/types/viewer/viewer-utils.d.ts +88 -0
  211. package/dist/types/widgets/common/draw-3d-polygon.d.ts +62 -0
  212. package/dist/types/widgets/common/draw-3d-polyline.d.ts +50 -0
  213. package/dist/types/widgets/common/measure-creator.d.ts +60 -0
  214. package/dist/types/widgets/common/walkthrough.d.ts +37 -0
  215. package/dist/types/widgets/controls-view-bar/widget-control-view-bar-fullscreen.d.ts +10 -0
  216. package/dist/types/widgets/controls-view-bar/widget-control-view-bar-search.d.ts +18 -0
  217. package/dist/types/widgets/controls-view-bar/widget-control-view-bar.d.ts +23 -0
  218. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.d.ts +11 -0
  219. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-user.d.ts +24 -0
  220. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab.d.ts +17 -0
  221. package/dist/types/widgets/widget-bookmarks.d.ts +40 -0
  222. package/dist/types/widgets/widget-branding.d.ts +15 -0
  223. package/dist/types/widgets/widget-cursorbar.d.ts +48 -0
  224. package/dist/types/widgets/widget-embedded-info-view.d.ts +13 -0
  225. package/dist/types/widgets/widget-info-view.d.ts +21 -0
  226. package/dist/types/widgets/widget-left-panel.d.ts +73 -0
  227. package/dist/types/widgets/widget-nav-compass.d.ts +27 -0
  228. package/dist/types/widgets/widget-view-bar.d.ts +37 -0
  229. package/dist/types/widgets/widget.d.ts +29 -0
  230. package/package.json +1 -1
@@ -0,0 +1,351 @@
1
+ import { ApiGetters, BruceEvent, Cartes, Entity, EntityRelation, IDictionary, MenuItem, ProjectViewBookmark } from "bruce-models";
2
+ import * as Cesium from "cesium";
3
+ /**
4
+ * Manages a registry of all Bruce visuals being rendered by menu items.
5
+ */
6
+ export declare namespace VisualsRegister {
7
+ type Visual = Cesium.Entity | Cesium.Primitive | Cesium.Cesium3DTileFeature;
8
+ interface IVisualRego {
9
+ canEdit: boolean;
10
+ entityId: string;
11
+ accountId?: string;
12
+ relation?: EntityRelation.IRelation;
13
+ entityTypeId?: string;
14
+ schema?: string;
15
+ name?: string;
16
+ sourceId?: number;
17
+ sourceEntityId?: string;
18
+ rootId?: string;
19
+ tilesetId?: string;
20
+ tilesetType?: string;
21
+ tagIds?: number[];
22
+ menuItemId: string;
23
+ menuItemType: MenuItem.EType;
24
+ visual: Visual;
25
+ priority: number;
26
+ best?: boolean;
27
+ stale?: boolean;
28
+ opacity?: number;
29
+ overrideShow?: boolean;
30
+ cdn?: boolean;
31
+ collection?: Cesium.EntityCollection;
32
+ outline?: Entity.IOutline[];
33
+ }
34
+ enum EVisualUpdateType {
35
+ Add = "ADD",
36
+ Remove = "REMOVE",
37
+ Update = "UPDATE",
38
+ DeselectAll = "DESELECT_ALL"
39
+ }
40
+ interface IVisualUpdate {
41
+ type: EVisualUpdateType;
42
+ entityId?: string;
43
+ rego?: IVisualRego;
44
+ hidden?: boolean;
45
+ isolated?: boolean;
46
+ selected?: boolean;
47
+ opacity?: number;
48
+ }
49
+ class Register {
50
+ private id;
51
+ get Id(): string;
52
+ private disposed;
53
+ get Disposed(): boolean;
54
+ private viewer;
55
+ get Viewer(): Cesium.Viewer;
56
+ private apiGetters;
57
+ get ApiGetters(): ApiGetters;
58
+ private rego;
59
+ private onUpdate;
60
+ get OnUpdate(): BruceEvent<IVisualUpdate>;
61
+ private states;
62
+ private cameraCullerDispose;
63
+ private updateQueue;
64
+ private updateQueueSettings;
65
+ private updateQueueInterval;
66
+ constructor(params: {
67
+ viewer: Cesium.Viewer;
68
+ apiGetters?: ApiGetters;
69
+ });
70
+ private queueUpdate;
71
+ private pingUpdateQueue;
72
+ /**
73
+ * Returns the applied visual state for a given Entity ID.
74
+ * This is a combination of a Menu Item specific state and a general state.
75
+ * @param params
76
+ */
77
+ GetState(params: {
78
+ entityId: string;
79
+ menuItemId?: string;
80
+ }): ProjectViewBookmark.IVisualState;
81
+ /**
82
+ * Sets the state for a given Entity.
83
+ * This can be used to perform multiple visual updates in one go.
84
+ * @param state
85
+ * @param update
86
+ */
87
+ SetState(state: ProjectViewBookmark.IVisualState, update?: boolean): boolean;
88
+ SetStates(states: IDictionary<ProjectViewBookmark.IVisualState> | ProjectViewBookmark.IVisualState[]): void;
89
+ /**
90
+ * Sets the provided settings for a given Entity's state.
91
+ * @param params
92
+ */
93
+ private setStateValues;
94
+ /**
95
+ * Returns all visual state settings.
96
+ * This is typically used for saving.
97
+ */
98
+ GetStates(params?: {
99
+ optimized?: boolean;
100
+ }): ProjectViewBookmark.IVisualState[];
101
+ /**
102
+ * Applies a set of new states to override the existing ones.
103
+ * This can be a costly operation as it will update all visuals.
104
+ * @param states
105
+ */
106
+ OverrideStates(states: ProjectViewBookmark.IVisualState[]): void;
107
+ /**
108
+ * Returns all states with the first detected Menu Item ID settings included.
109
+ * This is a utility function for returning settings for apps that don't support the newer state settings.
110
+ * @deprecated Use GetStates() or GetState().
111
+ * @returns
112
+ */
113
+ GetStatesLegacy(): IDictionary<ProjectViewBookmark.IVisualState>;
114
+ /**
115
+ * Utility to iterate over all states.
116
+ * @param callback
117
+ */
118
+ ForEachState(callback: (state: ProjectViewBookmark.IVisualState) => void): void;
119
+ RefreshMark(params: {
120
+ rego: IVisualRego;
121
+ }): void;
122
+ Dispose(): void;
123
+ ForceUpdate(params: {
124
+ entityIds: string[];
125
+ refreshColors?: boolean;
126
+ requestRender?: boolean;
127
+ }): void;
128
+ /**
129
+ * Marks given entityIds as either labelled or not labelled.
130
+ * When an entity is labelled a label will be drawn on the "best" visual for it.
131
+ * @param params
132
+ */
133
+ SetLabelled(params: {
134
+ labelled: boolean;
135
+ entityIds: string[];
136
+ menuItemId?: string;
137
+ requestRender?: boolean;
138
+ }): void;
139
+ /**
140
+ * Returns if given entity id is labelled.
141
+ * @param params
142
+ */
143
+ GetIsLabelled(params: {
144
+ entityId: string;
145
+ menuItemId?: string;
146
+ }): boolean;
147
+ /**
148
+ * Clears all labelled entities.
149
+ * @param params
150
+ */
151
+ ClearLabelled(params?: {
152
+ requestRender?: boolean;
153
+ }): void;
154
+ /**
155
+ * Returns all labelled entity ids.
156
+ * @deprecated Use GetStates() or GetState().
157
+ */
158
+ GetLabelled(): string[];
159
+ /**
160
+ * Updates the selection color.
161
+ * This will not update the selection color for already selected entities.
162
+ * @param color
163
+ */
164
+ SetSelectionColor(color: Cesium.Color): void;
165
+ /**
166
+ * Updates the highlight color.
167
+ * This will not update the highlight color for already highlighted entities.
168
+ * @param color
169
+ */
170
+ SetHighlightColor(color: Cesium.Color): void;
171
+ SetSelected(params: {
172
+ selected: boolean;
173
+ entityIds: string[];
174
+ menuItemId?: string;
175
+ refreshIfSelected?: boolean;
176
+ requestRender?: boolean;
177
+ }): void;
178
+ GetIsSelected(params: {
179
+ entityId: string;
180
+ menuItemId?: string;
181
+ }): boolean;
182
+ ClearSelected(params?: {
183
+ requestRender?: boolean;
184
+ }): void;
185
+ /**
186
+ * @deprecated Use GetStates() or GetState().
187
+ * @returns
188
+ */
189
+ GetSelected(): string[];
190
+ SetHighlighted(params: {
191
+ highlighted: boolean;
192
+ entityIds: string[];
193
+ menuItemId?: string;
194
+ refreshIfHighlighted?: boolean;
195
+ requestRender?: boolean;
196
+ }): void;
197
+ GetIsHighlighted(params: {
198
+ entityId: string;
199
+ menuItemId?: string;
200
+ }): boolean;
201
+ ClearHighlighted(params?: {
202
+ requestRender?: boolean;
203
+ }): void;
204
+ /**
205
+ * @deprecated Use GetStates() or GetState().
206
+ * @returns
207
+ */
208
+ GetHighlighted(): string[];
209
+ SetIsolated(params: {
210
+ entityIds: string[];
211
+ menuItemId?: string;
212
+ isolated: boolean;
213
+ requestRender?: boolean;
214
+ }): void;
215
+ GetIsIsolated(params: {
216
+ entityId: string;
217
+ menuItemId?: string;
218
+ }): boolean;
219
+ GetIsIsolatedAny(): boolean;
220
+ /**
221
+ * @deprecated Use GetStates() or GetState().
222
+ * @returns
223
+ */
224
+ GetIsolated(): string[];
225
+ ClearIsolated(params?: {
226
+ requestRender?: boolean;
227
+ }): void;
228
+ SetHidden(params: {
229
+ hidden: boolean;
230
+ entityIds: string[];
231
+ menuItemId?: string;
232
+ requestRender?: boolean;
233
+ }): void;
234
+ GetIsHidden(params: {
235
+ entityId: string;
236
+ menuItemId?: string;
237
+ }): boolean;
238
+ /**
239
+ * @deprecated Use GetStates() or GetState().
240
+ * @returns
241
+ */
242
+ GetHidden(): string[];
243
+ ClearHidden(params?: {
244
+ requestRender?: boolean;
245
+ }): void;
246
+ AddRego(params: {
247
+ rego: IVisualRego;
248
+ requestRender?: boolean;
249
+ removePrior?: boolean;
250
+ }): void;
251
+ /**
252
+ * Locates a visual corresponding to a given entity id.
253
+ * If no menu item id is provided, then it will pick the "best" one.
254
+ * @param params
255
+ * @returns
256
+ */
257
+ GetRego(params: {
258
+ entityId?: string;
259
+ menuItemId?: string;
260
+ relation?: EntityRelation.IRelation;
261
+ }): IVisualRego;
262
+ /**
263
+ * Returns regos matching given criteria.
264
+ * Either entityId or menuItemId must be provided.
265
+ * @param params
266
+ * @returns
267
+ */
268
+ GetRegos(params: {
269
+ entityId?: string;
270
+ menuItemId?: string;
271
+ }): IVisualRego[];
272
+ /**
273
+ * Removes regos matching given criteria.
274
+ * Either entityId or menuItemId must be provided.
275
+ * @param params
276
+ * @returns
277
+ */
278
+ RemoveRegos(params: {
279
+ entityId?: string;
280
+ menuItemId?: string;
281
+ relation?: EntityRelation.IRelation;
282
+ doUpdate?: boolean;
283
+ doRemove?: boolean;
284
+ retainTagIds?: (string | number)[];
285
+ requestRender?: boolean;
286
+ }): void;
287
+ /**
288
+ * Returns an array of drilled visuals associated with this register.
289
+ * The top array item is the first found.
290
+ * @param params
291
+ * @returns
292
+ */
293
+ GetRegosFromCursor(params: {
294
+ cursor: Cartes.ICartes2;
295
+ width?: number;
296
+ height?: number;
297
+ pickLimit?: number;
298
+ }): {
299
+ regos: IVisualRego[];
300
+ };
301
+ /**
302
+ * Returns all registered entity ids.
303
+ */
304
+ GetEntityIds(): string[];
305
+ /**
306
+ * Marks regos corresponding to given entity ids as stale.
307
+ * This will cause them to be updated on the next update cycle.
308
+ * Optionally include menu item ids to restrict the filter.
309
+ * @param params
310
+ */
311
+ MarkStale(params: {
312
+ entityIds: string[];
313
+ menuItemIds?: string[];
314
+ }): void;
315
+ private updateAllEntities;
316
+ /**
317
+ * Sets opacity for given set of entities.
318
+ * 100% opacity is treated as "use original".
319
+ * @param params
320
+ */
321
+ SetOpacity(params: {
322
+ opacity: number;
323
+ entityIds: string[];
324
+ menuItemId?: string;
325
+ requestRender?: boolean;
326
+ }): void;
327
+ /**
328
+ * Returns opacity for given entity/s.
329
+ * If multiple entities are supplied, then the average is returned.
330
+ * Unknown opacity is treated as 100% opacity.
331
+ * @param params
332
+ * @returns
333
+ */
334
+ GetOpacity(params: {
335
+ entityId?: string;
336
+ entityIds?: string[];
337
+ menuItemId?: string;
338
+ menuItemIds?: string;
339
+ }): number;
340
+ ClearOpacity(params?: {
341
+ requestRender?: boolean;
342
+ }): void;
343
+ /**
344
+ * Returns a dictionary containing entityId -> opacity values.
345
+ * Opacity 1 = 100%.
346
+ * @returns
347
+ * @deprecated Use GetStates() or GetState().
348
+ */
349
+ GetOpacityMap(): IDictionary<number>;
350
+ }
351
+ }
@@ -0,0 +1,103 @@
1
+ import * as Cesium from "cesium";
2
+ import { VisualsRegister } from "../rendering/visuals-register";
3
+ import { IDictionary } from "bruce-models";
4
+ /**
5
+ * Internal utility to help with managing Cesium Entity styling.
6
+ * Do not expose this to public as it will likely be killed and replaced with something that do animated changes.
7
+ */
8
+ export declare namespace CesiumEntityStyler {
9
+ function UpdateColorSetting(key: "select" | "highlight", color: Cesium.Color): void;
10
+ function Refresh(params: {
11
+ viewer: Cesium.Viewer;
12
+ entity: VisualsRegister.Visual;
13
+ requestRender?: boolean;
14
+ }): void;
15
+ function BakeDefaultColor(params: {
16
+ viewer: Cesium.Viewer;
17
+ entity: VisualsRegister.Visual;
18
+ override?: boolean;
19
+ refresh?: boolean;
20
+ colors?: Map<string, Cesium.Color> | IDictionary<Cesium.Color>;
21
+ }): void;
22
+ /**
23
+ * Updates the default colour of a graphic.
24
+ * This will not change the graphic's state to use it if the entity is selected/highlighted.
25
+ * @param params
26
+ * @returns
27
+ */
28
+ function SetDefaultColor(params: {
29
+ viewer: Cesium.Viewer;
30
+ entity: VisualsRegister.Visual;
31
+ color: Cesium.Color;
32
+ override?: boolean;
33
+ requestRender?: boolean;
34
+ }): void;
35
+ /**
36
+ * Updates the opacity of the graphic.
37
+ * This will multiply against the current colour's opacity before applying.
38
+ * @param params
39
+ * @returns
40
+ */
41
+ function SetOpacity(params: {
42
+ viewer: Cesium.Viewer;
43
+ entity: VisualsRegister.Visual;
44
+ opacity: number;
45
+ requestRender?: boolean;
46
+ }): void;
47
+ /**
48
+ * Returns the opacity of a graphic.
49
+ * This will return the last applied opacity. If no opacity has been applied, it will return null.
50
+ * @param params
51
+ */
52
+ function GetOpacity(params: {
53
+ entity: VisualsRegister.Visual;
54
+ }): number | null;
55
+ /**
56
+ * Clears the opacity from a graphic and refreshes it.
57
+ * Eg: if it is selected it will change the color to the selected color with the original selection opacity.
58
+ * @param params
59
+ */
60
+ function ClearOpacity(params: {
61
+ viewer: Cesium.Viewer;
62
+ entity: VisualsRegister.Visual;
63
+ requestRender?: boolean;
64
+ }): void;
65
+ /**
66
+ * Selects a graphic and refreshes it.
67
+ * @param params
68
+ */
69
+ function Select(params: {
70
+ viewer: Cesium.Viewer;
71
+ entity: VisualsRegister.Visual;
72
+ requestRender?: boolean;
73
+ }): void;
74
+ /**
75
+ * Deselects a graphic and refreshes it.
76
+ * If the graphic is highlighted, it will change the color to the highlighted color.
77
+ * @param params
78
+ */
79
+ function Deselect(params: {
80
+ viewer: Cesium.Viewer;
81
+ entity: VisualsRegister.Visual;
82
+ requestRender?: boolean;
83
+ }): void;
84
+ /**
85
+ * Highlights a graphic and refreshes it.
86
+ * If the graphic is selected, it will not change the color.
87
+ * @param params
88
+ */
89
+ function Highlight(params: {
90
+ viewer: Cesium.Viewer;
91
+ entity: VisualsRegister.Visual;
92
+ requestRender?: boolean;
93
+ }): void;
94
+ /**
95
+ * Removes the highlight from a graphic and refreshes it.
96
+ * @param params
97
+ */
98
+ function Unhighlight(params: {
99
+ viewer: Cesium.Viewer;
100
+ entity: VisualsRegister.Visual;
101
+ requestRender?: boolean;
102
+ }): void;
103
+ }
@@ -0,0 +1,59 @@
1
+ import * as Cesium from "cesium";
2
+ export declare namespace DrawingUtils {
3
+ /**
4
+ * Returns the point across a polyline at a given distance.
5
+ * If the distance exceeds the length of the line, the point will be placed at the end of the line.
6
+ * @param viewer deprecated, unused.
7
+ * @param positions
8
+ * @param distance
9
+ * @returns
10
+ */
11
+ function PointAcrossPolyline(params: {
12
+ viewer?: Cesium.Viewer;
13
+ posses: Cesium.Cartesian3[];
14
+ distance: number;
15
+ }): {
16
+ point: Cesium.Cartesian3;
17
+ };
18
+ /**
19
+ * Returns terrain height from current viewer's provider.
20
+ * On error or flat terrain, it will return 0.
21
+ * If an error occurred it will be attached to the result.
22
+ * @param pos3d
23
+ * @param viewer
24
+ * @returns
25
+ */
26
+ function GetTerrainHeight(params: {
27
+ pos3d: Cesium.Cartesian3;
28
+ viewer: Cesium.Viewer;
29
+ }): Promise<{
30
+ height: number;
31
+ error?: any;
32
+ }>;
33
+ function EnsurePosHeight(params: {
34
+ pos3d: Cesium.Cartesian3;
35
+ viewer: Cesium.Viewer;
36
+ desiredHeightRef: Cesium.HeightReference;
37
+ heightRef: Cesium.HeightReference;
38
+ }): Cesium.Cartesian3;
39
+ /**
40
+ * Returns an accurate 3d position from a given screen position.
41
+ * @param viewer
42
+ * @param cursor
43
+ * @returns
44
+ */
45
+ const GetAccuratePosition: (viewer: Cesium.Viewer, cursor: Cesium.Cartesian2, pickOnly?: boolean, ignoredPickOnly?: any[]) => any;
46
+ /**
47
+ * Smooths a given set of points.
48
+ * @param points
49
+ * @param multiplier
50
+ * @param closed: true if this is a closed shape. Eg: polygon.
51
+ * @returns
52
+ */
53
+ function SmoothPoints(points: Cesium.Cartesian3[], multiplier: number, closed: boolean): Cesium.Cartesian3[];
54
+ /**
55
+ * @param pos3d
56
+ * @param minimumHeight height relative to ground
57
+ */
58
+ function RaisePos3d(viewer: Cesium.Viewer, pos3d: Cesium.Cartesian3, minimumHeight?: number): Promise<Cesium.Cartesian3>;
59
+ }
@@ -0,0 +1,133 @@
1
+ import { BruceApi, Entity as E, Entity, Tileset } from "bruce-models";
2
+ import * as Cesium from "cesium";
3
+ import { VisualsRegister } from "../rendering/visuals-register";
4
+ import { MenuItemManager } from "../rendering/menu-item-manager";
5
+ interface IGetLocationSample {
6
+ entityId?: string;
7
+ entity?: E.IEntity;
8
+ menuItemId?: string;
9
+ tileset?: Tileset.ITileset;
10
+ tilesetId?: string;
11
+ heightRef?: Cesium.HeightReference;
12
+ returnHeightRef?: Cesium.HeightReference;
13
+ disallowRendered?: boolean;
14
+ }
15
+ interface IGetLocation {
16
+ api?: BruceApi.Api;
17
+ viewer: Cesium.Viewer;
18
+ samples: IGetLocationSample[] | IGetLocationSample;
19
+ visualRegister?: VisualsRegister.Register;
20
+ minimumAlt?: number;
21
+ paddingAlt?: number;
22
+ }
23
+ export declare namespace EntityUtils {
24
+ /**
25
+ * Returns the location for given entity or entities.
26
+ * If available it will also compute a rectangle.
27
+ * It is recommended to fly-to a rectangle if available as it will ensure the full geometry is in view.
28
+ * @param params
29
+ */
30
+ function GetLocation(params: IGetLocation): Promise<{
31
+ pos3d: Cesium.Cartesian3;
32
+ rectangle?: Cesium.Rectangle;
33
+ sphere?: Cesium.BoundingSphere;
34
+ }>;
35
+ /**
36
+ * Returns an entity's position.
37
+ * This will attempt to calculate it from multiple sources of data.
38
+ * @param params
39
+ * @deprecated use GetLocation instead.
40
+ * @returns
41
+ */
42
+ function GetPos(params: {
43
+ viewer: Cesium.Viewer;
44
+ entity: E.IEntity;
45
+ visualRegister?: VisualsRegister.Register;
46
+ returnHeightRef?: Cesium.HeightReference;
47
+ recordHeightRef?: Cesium.HeightReference;
48
+ allowRendered?: boolean;
49
+ }): Cesium.Cartesian3;
50
+ /**
51
+ * Returns the position of the entity.
52
+ * This is an async variant that checks for related assemblies.
53
+ * @param params
54
+ * @deprecated use GetLocation instead.
55
+ * @returns
56
+ */
57
+ function GetPosAsync(params: {
58
+ api?: BruceApi.Api;
59
+ viewer: Cesium.Viewer;
60
+ entityId?: string;
61
+ entity?: Entity.IEntity;
62
+ tileset?: Tileset.ITileset;
63
+ tilesetId?: string;
64
+ visualRegister?: VisualsRegister.Register;
65
+ returnHeightRef?: Cesium.HeightReference;
66
+ recordHeightRef?: Cesium.HeightReference;
67
+ }): Promise<Cesium.Cartesian3>;
68
+ /**
69
+ * Returns entity and any associated parent/sibling entities as a flat array.
70
+ * @param entity
71
+ */
72
+ function GatherEntity(params: {
73
+ entity: VisualsRegister.Visual;
74
+ editable?: boolean;
75
+ selectable?: boolean;
76
+ }): VisualsRegister.Visual[];
77
+ /**
78
+ * Looks at given entities with least amount of movement.
79
+ * @param viewer
80
+ * @param entities
81
+ */
82
+ function LookAtEntities(params: {
83
+ viewer: Cesium.Viewer;
84
+ entities: VisualsRegister.Visual[];
85
+ }): Promise<void>;
86
+ /**
87
+ * Sets opacity of given entity.
88
+ * Opacity will be multiplied by original opacity.
89
+ * Setting opacity puts original opacity into a temporary storage which can be reverted into.
90
+ * @param viewer
91
+ * @param entity
92
+ * @param opacity
93
+ */
94
+ function SetOpacity(params: {
95
+ viewer: Cesium.Viewer;
96
+ entity: VisualsRegister.Visual;
97
+ opacity: number;
98
+ requestRender?: boolean;
99
+ }): void;
100
+ /**
101
+ * Reverts opacity of given entity to original opacity.
102
+ * If opacity was not updated using "SetOpacity" then nothing will happen.
103
+ * @param viewer
104
+ * @param entity
105
+ */
106
+ function RevertOpacity(params: {
107
+ viewer: Cesium.Viewer;
108
+ entity: VisualsRegister.Visual;
109
+ requestRender?: boolean;
110
+ }): void;
111
+ /**
112
+ * Gets opacity of the entity.
113
+ * This does not count opacity that it was rendered with.
114
+ * This is the opacity that was set post-rendering.
115
+ * @param viewer
116
+ * @param entity
117
+ */
118
+ function GetOpacity(params: {
119
+ entity: VisualsRegister.Visual;
120
+ }): number;
121
+ function FlyTo(params: {
122
+ viewer: Cesium.Viewer;
123
+ entityIds: string[];
124
+ manager?: MenuItemManager.Manager;
125
+ tileset?: Cesium.Cesium3DTileset;
126
+ durationSec?: number;
127
+ isCancelled?: () => boolean;
128
+ onCompleted?: () => void;
129
+ minimumAlt?: number;
130
+ debug?: boolean;
131
+ }): Promise<boolean>;
132
+ }
133
+ export {};
@@ -0,0 +1,20 @@
1
+ import * as Cesium from "cesium";
2
+ export declare namespace MeasureUtils {
3
+ /**
4
+ * Returns the total distance in meters between an array of points.
5
+ * This distance is NOT following the terrain.
6
+ * @param posses
7
+ * @returns
8
+ */
9
+ function MeasurePolyline(params: {
10
+ posses: Cesium.Cartesian3[];
11
+ }): {
12
+ totalLength: number;
13
+ };
14
+ function MeasurePolygon(params: {
15
+ posses: Cesium.Cartesian3[];
16
+ }): {
17
+ area: number;
18
+ perimeter: number;
19
+ };
20
+ }
@@ -0,0 +1,19 @@
1
+ import { Geometry } from "bruce-models";
2
+ /**
3
+ * Util for simplifying geometry on the fly.
4
+ */
5
+ export declare namespace SimplifyGeometry {
6
+ /**
7
+ * Returns the total number of points in the geometry.
8
+ * @param geometry
9
+ * @param limit number to count up to before returning.
10
+ * @returns
11
+ */
12
+ function CountPoints(geometry: Geometry.IGeometry, limit?: number): number;
13
+ /**
14
+ * Simplifies input geometry.
15
+ * This will turn it into GeoJSON, run it through turf, then back to Bruce geometry.
16
+ * @param geometry
17
+ */
18
+ function Simplify(entityId: string, geometry: Geometry.IGeometry, tolerance: number): Geometry.IGeometry;
19
+ }