bruce-cesium 7.6.2 → 7.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/bruce-cesium.es5.js +508 -46
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +501 -43
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +2 -1
  6. package/dist/lib/bruce-cesium.js.map +1 -1
  7. package/dist/lib/rendering/menu-item-creator.js +44 -23
  8. package/dist/lib/rendering/menu-item-creator.js.map +1 -1
  9. package/dist/lib/rendering/menu-item-manager.js +116 -7
  10. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  11. package/dist/lib/rendering/menu-item-styles.js +151 -0
  12. package/dist/lib/rendering/menu-item-styles.js.map +1 -0
  13. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +10 -0
  14. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +1 -1
  15. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +10 -0
  16. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
  17. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +10 -0
  18. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
  19. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +48 -0
  20. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  21. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +10 -0
  22. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
  23. package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
  24. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +17 -0
  25. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -1
  26. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +15 -0
  27. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  28. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +15 -0
  29. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
  30. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-menu-items.js +64 -12
  31. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-menu-items.js.map +1 -1
  32. package/dist/types/bruce-cesium.d.ts +2 -1
  33. package/dist/types/rendering/menu-item-manager.d.ts +25 -0
  34. package/dist/types/rendering/menu-item-styles.d.ts +30 -0
  35. package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +5 -1
  36. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +5 -1
  37. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +5 -1
  38. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +8 -1
  39. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +5 -1
  40. package/dist/types/rendering/render-managers/render-manager.d.ts +10 -1
  41. package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +5 -1
  42. package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +5 -1
  43. package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +5 -1
  44. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-menu-items.d.ts +1 -0
  45. package/package.json +2 -2
@@ -11,6 +11,7 @@ export * from "./rendering/texture-frame-series-animator";
11
11
  export * from "./rendering/texture-value-labels";
12
12
  export * from "./rendering/menu-item-creator";
13
13
  export * from "./rendering/menu-item-manager";
14
+ export * from "./rendering/menu-item-styles";
14
15
  export * from "./rendering/render-managers/common/cesium-parabola";
15
16
  export * from "./rendering/render-managers/common/entity-label";
16
17
  export * from "./rendering/render-managers/common/entity-label-group";
@@ -70,7 +71,7 @@ export * from "./widgets/widget-info-view";
70
71
  export * from "./widgets/widget-left-panel";
71
72
  export * from "./widgets/widget-nav-compass";
72
73
  export * from "./widgets/widget-view-bar";
73
- export declare const VERSION = "7.6.2";
74
+ export declare const VERSION = "7.6.3";
74
75
  /**
75
76
  * Updates the environment instance used by bruce-cesium to one specified.
76
77
  * This can be used to ensure that the instance a parent is referencing is shared between bruce-cesium, bruce-models, and the parent app.
@@ -30,6 +30,7 @@ export declare namespace MenuItemManager {
30
30
  get Viewer(): Cesium.Viewer;
31
31
  private items;
32
32
  private pendingHandoffPool;
33
+ private authoredAlternations;
33
34
  private visualsRegister;
34
35
  get VisualsRegister(): VisualsRegister.Register;
35
36
  private onUpdate;
@@ -79,6 +80,7 @@ export declare namespace MenuItemManager {
79
80
  item: MenuItem.IItem;
80
81
  modelSpace?: boolean;
81
82
  recursive?: boolean;
83
+ preferredIds?: string[];
82
84
  getters?: ApiGetters;
83
85
  apiGetter?: BruceApi.IGetter;
84
86
  }): string;
@@ -92,7 +94,25 @@ export declare namespace MenuItemManager {
92
94
  recursive?: boolean;
93
95
  allowHandoff?: boolean;
94
96
  }): void;
97
+ /**
98
+ * Replaces enabled menu items with another, which reuses their graphics where both draw the same data.
99
+ */
100
+ SwapItem(params: {
101
+ fromIds: string[];
102
+ item: MenuItem.IItem;
103
+ modelSpace?: boolean;
104
+ }): string;
105
+ /**
106
+ * Restyles an enabled menu item in place with another of its own styles, returning false when it cannot.
107
+ */
108
+ SetItemStyle(params: {
109
+ menuItemId: string;
110
+ styleId: number | string;
111
+ }): boolean;
112
+ private pickRadioChild;
113
+ private renderInPlaceOf;
95
114
  private isHandoffCapable;
115
+ private isStyleSwapCapable;
96
116
  private computeHandoffKey;
97
117
  private tryClaimHandoffPayload;
98
118
  /**
@@ -102,6 +122,11 @@ export declare namespace MenuItemManager {
102
122
  */
103
123
  private transferSeriesSegments;
104
124
  FlushPendingHandoffs(): void;
125
+ private disposePooled;
126
+ /**
127
+ * Returns the tags and attenuation the item's view authored, before any bookmark wrote over them.
128
+ */
129
+ GetAuthoredAlternation(item: MenuItem.IItem): MenuItem.IItem;
105
130
  GetEnabledItemIds(): string[];
106
131
  GetEnabledItem(id: string): IRenderedItem;
107
132
  /**
@@ -0,0 +1,30 @@
1
+ import { MenuItem } from "bruce-models";
2
+ /**
3
+ * Reads and picks between a menu item's ordered styles, writing the pick to the single field renderers read.
4
+ */
5
+ export declare namespace MenuItemStyles {
6
+ /**
7
+ * Returns the ordered styles a user can swap between for the item, or an empty array when it offers no choice.
8
+ */
9
+ function GetStyleIds(item: MenuItem.IItem): (number | string)[];
10
+ /**
11
+ * Returns the style the item currently renders with, from styleId or its one non-hidden zoom row.
12
+ */
13
+ function GetStyleId(item: MenuItem.IItem): number | string | undefined;
14
+ /**
15
+ * Returns a copy of the item rendering with the given style, or null when that style is not one of its options.
16
+ */
17
+ function WithStyleId(item: MenuItem.IItem, styleId: number | string): MenuItem.IItem | null;
18
+ /**
19
+ * Returns the item on the first of its styles unless it already uses one, or the same object when it has none.
20
+ */
21
+ function Resolve(item: MenuItem.IItem): MenuItem.IItem;
22
+ /**
23
+ * Returns a copy on the style a bookmark alternation picked, or the item itself when that is not an option.
24
+ */
25
+ function ApplyAlternation(item: MenuItem.IItem, alternation: MenuItem.IItem): MenuItem.IItem;
26
+ /**
27
+ * Returns true when the two items differ by nothing but which of their styles is picked.
28
+ */
29
+ function IsStyleChangeOnly(from: MenuItem.IItem, to: MenuItem.IItem): boolean;
30
+ }
@@ -5,7 +5,7 @@ import { RenderManager } from "../render-manager";
5
5
  import { CesiumViewMonitor } from "../../../viewer/cesium-view-monitor";
6
6
  import { EntitySimulation } from "../common/entity-simulation";
7
7
  export declare namespace DataLabRenderManager {
8
- class Manager implements RenderManager.IManager, RenderManager.IHandoffCapableManager, RenderManager.IHandoffReceiver {
8
+ class Manager implements RenderManager.IManager, RenderManager.IHandoffCapableManager, RenderManager.IHandoffReceiver, RenderManager.IStyleSwapCapable {
9
9
  private viewer;
10
10
  private item;
11
11
  private apiGetter;
@@ -61,6 +61,10 @@ export declare namespace DataLabRenderManager {
61
61
  zoomControl?: ZoomControl.IItem[];
62
62
  queueRerender?: boolean;
63
63
  }): void;
64
+ /**
65
+ * Switches to another of the item's own styles, restyling what is drawn without re-creating it.
66
+ */
67
+ SwapStyle(item: MenuItem.Item.IDataLab): void;
64
68
  private doEntityCheck;
65
69
  private distributeForRender;
66
70
  private deduplicateEntities;
@@ -10,7 +10,7 @@ import { EntitySimulation } from "../common/entity-simulation";
10
10
  * This will render them in batches to avoid overloading the viewer.
11
11
  */
12
12
  export declare namespace EntitiesIdsRenderManager {
13
- class Manager implements RenderManager.IManager {
13
+ class Manager implements RenderManager.IManager, RenderManager.IStyleSwapCapable {
14
14
  private viewer;
15
15
  private apiGetter;
16
16
  private monitor;
@@ -58,6 +58,10 @@ export declare namespace EntitiesIdsRenderManager {
58
58
  zoomControl?: ZoomControl.IItem[];
59
59
  queueRerender?: boolean;
60
60
  }): void;
61
+ /**
62
+ * Switches to another of the item's own styles, restyling what is drawn without re-creating it.
63
+ */
64
+ SwapStyle(item: MenuItem.Item.IEntityIds): void;
61
65
  private getHistoricLane;
62
66
  private onGetterUpdate;
63
67
  private renderEntities;
@@ -10,7 +10,7 @@ import { EntitySimulation } from "../common/entity-simulation";
10
10
  * If the entities DON'T have records, it is recommended to avoid using the 3dmodel visualization as it will fail to locate LODs.
11
11
  */
12
12
  export declare namespace EntitiesLoadedRenderManager {
13
- class Manager implements RenderManager.IManager {
13
+ class Manager implements RenderManager.IManager, RenderManager.IStyleSwapCapable {
14
14
  private viewer;
15
15
  private apiGetter;
16
16
  private item;
@@ -73,6 +73,10 @@ export declare namespace EntitiesLoadedRenderManager {
73
73
  zoomControl?: ZoomControl.IItem[];
74
74
  queueRerender?: boolean;
75
75
  }): void;
76
+ /**
77
+ * Switches to another of the item's own styles, restyling what is drawn without re-creating it.
78
+ */
79
+ SwapStyle(item: MenuItem.Item.IEntitiesLoaded): void;
76
80
  private doEntityCheck;
77
81
  private onGetterUpdate;
78
82
  /**
@@ -11,7 +11,7 @@ import { RenderManager } from "../render-manager";
11
11
  * This will request entities based on setup menu item filter.
12
12
  */
13
13
  export declare namespace EntitiesRenderManager {
14
- class Manager implements RenderManager.IManager, RenderManager.IHandoffCapableManager, RenderManager.IHandoffReceiver {
14
+ class Manager implements RenderManager.IManager, RenderManager.IHandoffCapableManager, RenderManager.IHandoffReceiver, RenderManager.IStyleSwapCapable {
15
15
  private viewer;
16
16
  private apiGetter;
17
17
  private sharedGetters;
@@ -43,6 +43,8 @@ export declare namespace EntitiesRenderManager {
43
43
  private useGeojson;
44
44
  private zoomControl;
45
45
  private scenario;
46
+ private drawnKey;
47
+ private drawnSettings;
46
48
  private renderPriority;
47
49
  private allowedTypeIDs;
48
50
  constructor(params: {
@@ -58,6 +60,7 @@ export declare namespace EntitiesRenderManager {
58
60
  Init(params?: {
59
61
  item: MenuItem.Item.IEntities;
60
62
  }): void;
63
+ private getDrawnSettingsSignature;
61
64
  private applyItemSettings;
62
65
  /**
63
66
  * Updates allowedTypeIDs values based in incoming data.
@@ -83,6 +86,10 @@ export declare namespace EntitiesRenderManager {
83
86
  zoomControl?: ZoomControl.IItem[];
84
87
  queueRerender?: boolean;
85
88
  }): void;
89
+ /**
90
+ * Switches to another of the item's own styles, restyling what is drawn without re-creating it.
91
+ */
92
+ SwapStyle(item: MenuItem.Item.IEntities): void;
86
93
  /**
87
94
  * Narrows a camera-driven check to the entities whose zoom band could actually have changed.
88
95
  * @param ids
@@ -8,7 +8,7 @@ import { EntitySimulation } from "../common/entity-simulation";
8
8
  * Manager for rendering a single Bruce entity.
9
9
  */
10
10
  export declare namespace EntityRenderManager {
11
- class Manager implements RenderManager.IManager {
11
+ class Manager implements RenderManager.IManager, RenderManager.IStyleSwapCapable {
12
12
  private viewer;
13
13
  private apiGetter;
14
14
  private item;
@@ -41,6 +41,10 @@ export declare namespace EntityRenderManager {
41
41
  zoomControl?: ZoomControl.IItem[];
42
42
  queueRerender?: boolean;
43
43
  }): void;
44
+ /**
45
+ * Switches to another of the item's own styles, restyling what is drawn without re-creating it.
46
+ */
47
+ SwapStyle(item: MenuItem.Item.IEntity): void;
44
48
  private renderEntityChain;
45
49
  private renderEntity;
46
50
  private doRenderEntity;
@@ -1,4 +1,4 @@
1
- import { Entity, ZoomControl } from "bruce-models";
1
+ import { Entity, MenuItem, ZoomControl } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
3
  export declare namespace RenderManager {
4
4
  interface IManager {
@@ -50,6 +50,15 @@ export declare namespace RenderManager {
50
50
  */
51
51
  AdoptHandoff(payload: IHandoffPayload): void;
52
52
  }
53
+ /**
54
+ * Opt-in capability for a manager that can switch to another of its menu item's own styles in place.
55
+ */
56
+ interface IStyleSwapCapable extends IManager {
57
+ /**
58
+ * Takes over an item that differs from the current one only by its picked style (see MenuItemStyles).
59
+ */
60
+ SwapStyle(item: MenuItem.IItem): void;
61
+ }
53
62
  /**
54
63
  * What a zoom-item resolution measured, so a later pass can tell whether the answer could have changed
55
64
  * without redoing it. See IBandCheck on a rendered graphic.
@@ -27,7 +27,7 @@ export declare namespace TilesetArbRenderManager {
27
27
  XGridsLCC = "XGridsLCC",
28
28
  Unknown = "Unknown"
29
29
  }
30
- class Manager implements RenderManager.IManager {
30
+ class Manager implements RenderManager.IManager, RenderManager.IStyleSwapCapable {
31
31
  private viewer;
32
32
  private simulation;
33
33
  private getters;
@@ -82,6 +82,10 @@ export declare namespace TilesetArbRenderManager {
82
82
  private processFeatureQueueBatch;
83
83
  private evaluateFeatureProps;
84
84
  private onCTilesetLoad;
85
+ /**
86
+ * Switches to another of the item's own styles, restyling the loaded tileset without reloading it.
87
+ */
88
+ SwapStyle(item: MenuItem.Item.IArbTileset): void;
85
89
  Dispose(): void;
86
90
  private doDispose;
87
91
  ReRender(params: {
@@ -18,7 +18,7 @@ interface IModelTreeNode {
18
18
  * CAD tilesets are referred to as "MODEL" tilesets in some other areas of Bruce code.
19
19
  */
20
20
  export declare namespace TilesetCadRenderManager {
21
- class Manager implements RenderManager.IManager, RenderManager.IHandoffCapableManager, RenderManager.IHandoffReceiver {
21
+ class Manager implements RenderManager.IManager, RenderManager.IHandoffCapableManager, RenderManager.IHandoffReceiver, RenderManager.IStyleSwapCapable {
22
22
  private viewer;
23
23
  private simulation;
24
24
  private simulationRemoval;
@@ -195,6 +195,10 @@ export declare namespace TilesetCadRenderManager {
195
195
  * @returns Map of entityId to array of child nodes.
196
196
  */
197
197
  getChildNodesBatch(entityIds: string[]): Map<string, IModelTreeNode[]>;
198
+ /**
199
+ * Switches to another of the item's own styles, restyling the loaded tileset without reloading it.
200
+ */
201
+ SwapStyle(item: MenuItem.Item.ICadTileset): void;
198
202
  Dispose(): void;
199
203
  private doDispose;
200
204
  ReRender(params: {
@@ -7,7 +7,7 @@ import { TilesetArbRenderManager } from "./tileset-arb-render-manager";
7
7
  import { CesiumViewMonitor } from "../../../viewer/cesium-view-monitor";
8
8
  import { EntitySimulation } from "../common/entity-simulation";
9
9
  export declare namespace TilesetEntitiesRenderManager {
10
- class Manager implements RenderManager.IManager, RenderManager.IHandoffCapableManager, RenderManager.IHandoffReceiver {
10
+ class Manager implements RenderManager.IManager, RenderManager.IHandoffCapableManager, RenderManager.IHandoffReceiver, RenderManager.IStyleSwapCapable {
11
11
  private initCounter;
12
12
  private viewer;
13
13
  private simulation;
@@ -67,6 +67,10 @@ export declare namespace TilesetEntitiesRenderManager {
67
67
  */
68
68
  private processFeatureQueueBatch;
69
69
  private evaluateFeatureProps;
70
+ /**
71
+ * Switches to another of the item's own styles, restyling the loaded tileset without reloading it.
72
+ */
73
+ SwapStyle(item: MenuItem.Item.IEntitiesTileset): void;
70
74
  Dispose(): void;
71
75
  private doDispose;
72
76
  private onCTilesetLoad;
@@ -67,6 +67,7 @@ export declare class WidgetLeftPanelTabMenuItems extends WidgetLeftPanelTab.ATab
67
67
  private _resolveState;
68
68
  private _updateCounts;
69
69
  private _toggleItem;
70
+ private _getEnabledIdsUnder;
70
71
  private _disableItem;
71
72
  private _selectItemEntities;
72
73
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-cesium",
3
- "version": "7.6.2",
3
+ "version": "7.6.3",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/bruce-cesium.umd.js",
@@ -83,7 +83,7 @@
83
83
  "typescript": "^5.0.4"
84
84
  },
85
85
  "dependencies": {
86
- "bruce-models": "^7.1.122",
86
+ "bruce-models": "^7.1.123",
87
87
  "tslib": "^2.4.1"
88
88
  }
89
89
  }