bruce-cesium 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/bruce-cesium.es5.js +335 -199
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +310 -203
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  6. package/dist/lib/rendering/menu-item-manager.js +26 -0
  7. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  8. package/dist/lib/rendering/render-helper.js +3 -0
  9. package/dist/lib/rendering/render-helper.js.map +1 -1
  10. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +5 -1
  11. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
  12. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +6 -1
  13. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
  14. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +5 -1
  15. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  16. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +4 -1
  17. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
  18. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +5 -4
  19. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  20. package/dist/lib/rendering/tileset-render-engine.js +1 -1
  21. package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
  22. package/dist/lib/rendering/visuals-register.js +166 -139
  23. package/dist/lib/rendering/visuals-register.js.map +1 -1
  24. package/dist/lib/utils/drawing-utils.js +8 -0
  25. package/dist/lib/utils/drawing-utils.js.map +1 -1
  26. package/dist/lib/utils/entity-utils.js +33 -0
  27. package/dist/lib/utils/entity-utils.js.map +1 -1
  28. package/dist/lib/utils/measure-utils.js +6 -0
  29. package/dist/lib/utils/measure-utils.js.map +1 -1
  30. package/dist/lib/viewer/cesium-view-monitor.js +3 -0
  31. package/dist/lib/viewer/cesium-view-monitor.js.map +1 -1
  32. package/dist/lib/viewer/viewer-utils.js +10 -0
  33. package/dist/lib/viewer/viewer-utils.js.map +1 -1
  34. package/dist/types/rendering/entity-render-engine.d.ts +5 -5
  35. package/dist/types/rendering/menu-item-manager.d.ts +17 -1
  36. package/dist/types/rendering/render-helper.d.ts +3 -0
  37. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +5 -1
  38. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +6 -1
  39. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +5 -1
  40. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +4 -1
  41. package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +5 -1
  42. package/dist/types/rendering/tileset-render-engine.d.ts +2 -2
  43. package/dist/types/rendering/visuals-register.d.ts +38 -20
  44. package/dist/types/utils/drawing-utils.d.ts +8 -0
  45. package/dist/types/utils/entity-utils.d.ts +12 -0
  46. package/dist/types/utils/measure-utils.d.ts +6 -0
  47. package/dist/types/viewer/cesium-view-monitor.d.ts +3 -0
  48. package/dist/types/viewer/viewer-utils.d.ts +10 -0
  49. package/package.json +1 -1
@@ -10,7 +10,7 @@ export declare namespace EntityRenderEngine {
10
10
  interface IParams {
11
11
  api: BruceApi;
12
12
  viewer: Cesium.Viewer;
13
- visualRegister: VisualsRegister;
13
+ visualRegister: VisualsRegister.Register;
14
14
  menuItemId: string;
15
15
  zoomControl: ZoomControl.IItem[];
16
16
  entities: Entity.IEntity[];
@@ -29,7 +29,7 @@ export declare namespace EntityRenderEngine {
29
29
  menuItemId: string;
30
30
  entities: Entity.IEntity[];
31
31
  zoomItems: IDictionary<ZoomControl.IItem>;
32
- visualRegister: VisualsRegister;
32
+ visualRegister: VisualsRegister.Register;
33
33
  viewer: Cesium.Viewer;
34
34
  }
35
35
  function Render(params: IParams): ICesiumEntityExt;
@@ -47,7 +47,7 @@ export declare namespace EntityRenderEngine {
47
47
  menuItemId: string;
48
48
  entities: Entity.IEntity[];
49
49
  zoomItems: IDictionary<ZoomControl.IItem>;
50
- visualRegister: VisualsRegister;
50
+ visualRegister: VisualsRegister.Register;
51
51
  viewer: Cesium.Viewer;
52
52
  }
53
53
  function Render(params: IParams): ICesiumEntityExt;
@@ -65,7 +65,7 @@ export declare namespace EntityRenderEngine {
65
65
  menuItemId: string;
66
66
  entities: Entity.IEntity[];
67
67
  zoomItems: IDictionary<ZoomControl.IItem>;
68
- visualRegister: VisualsRegister;
68
+ visualRegister: VisualsRegister.Register;
69
69
  viewer: Cesium.Viewer;
70
70
  }
71
71
  function Render(params: IParams): ICesiumEntityExt;
@@ -84,7 +84,7 @@ export declare namespace EntityRenderEngine {
84
84
  menuItemId: string;
85
85
  entities: Entity.IEntity[];
86
86
  zoomItems: IDictionary<ZoomControl.IItem>;
87
- visualRegister: VisualsRegister;
87
+ visualRegister: VisualsRegister.Register;
88
88
  viewer: Cesium.Viewer;
89
89
  }
90
90
  function Render(params: IParams): ICesiumEntityExt;
@@ -1,11 +1,27 @@
1
1
  import { BruceApi, MenuItem } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
3
  import { VisualsRegister } from "./visuals-register";
4
+ /**
5
+ * Utility to keep track of enabled menu items within a Cesium viewer.
6
+ */
4
7
  export declare class MenuItemManager {
5
8
  private viewer;
6
9
  private items;
7
10
  private visualsRegister;
8
- constructor(viewer: Cesium.Viewer, visualsRegister: VisualsRegister);
11
+ get VisualsRegister(): VisualsRegister.Register;
12
+ constructor(viewer: Cesium.Viewer, visualsRegister?: VisualsRegister.Register);
13
+ /**
14
+ * Renders a given menu item and all ids children.
15
+ * Will return the enabled item id.
16
+ * @param api
17
+ * @param item
18
+ * @returns
19
+ */
9
20
  RenderItem(api: BruceApi, item: MenuItem.IItem): Promise<string>;
21
+ /**
22
+ * Disables a menu item by ids id.
23
+ * This will disable all children as well.
24
+ * @param id
25
+ */
10
26
  RemoveItemById(id: string): Promise<void>;
11
27
  }
@@ -1,6 +1,9 @@
1
1
  import { BruceApi, Entity, MenuItem } from "bruce-models";
2
2
  import { MenuItemManager } from "./menu-item-manager";
3
3
  import * as Cesium from "cesium";
4
+ /**
5
+ * Utility to help generate menu items for rendering various data.
6
+ */
4
7
  export declare namespace RenderHelper {
5
8
  function RenderEntities(manager: MenuItemManager, api: BruceApi, entityIds: string[]): Promise<string>;
6
9
  function RenderEntityTypes(manager: MenuItemManager, api: BruceApi, typeIds: string[]): Promise<string>;
@@ -2,6 +2,10 @@ import { BruceApi, MenuItem } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
3
  import { VisualsRegister } from "../../visuals-register";
4
4
  import { RenderManager } from "../render-manager";
5
+ /**
6
+ * Render manager for rendering an array of entity ids.
7
+ * This will render them in batches to avoid overloading the viewer.
8
+ */
5
9
  export declare namespace EntitiesIdsRenderManager {
6
10
  class Manager implements RenderManager.IManager {
7
11
  private viewer;
@@ -13,7 +17,7 @@ export declare namespace EntitiesIdsRenderManager {
13
17
  get Disposed(): boolean;
14
18
  private renderedEntities;
15
19
  private visualsManager;
16
- constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister, api: BruceApi, item: MenuItem.Item.IEntityIds);
20
+ constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister.Register, api: BruceApi, item: MenuItem.Item.IEntityIds);
17
21
  Init(): Promise<void>;
18
22
  Dispose(): void;
19
23
  private onGetterUpdate;
@@ -2,6 +2,11 @@ import { BruceApi, MenuItem } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
3
  import { VisualsRegister } from "../../visuals-register";
4
4
  import { RenderManager } from "../render-manager";
5
+ /**
6
+ * Render manager for a group of pre-loaded entities.
7
+ * The entities may or may not have records.
8
+ * If the entities DON'T have records, it is recommended to avoid using the 3dmodel visualization as it will fail to locate LODs.
9
+ */
5
10
  export declare namespace EntitiesLoadedRenderManager {
6
11
  class Manager implements RenderManager.IManager {
7
12
  private viewer;
@@ -13,7 +18,7 @@ export declare namespace EntitiesLoadedRenderManager {
13
18
  get Disposed(): boolean;
14
19
  private renderedEntities;
15
20
  private visualsManager;
16
- constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister, api: BruceApi, item: MenuItem.Item.IEntitiesLoaded);
21
+ constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister.Register, api: BruceApi, item: MenuItem.Item.IEntitiesLoaded);
17
22
  Init(): Promise<void>;
18
23
  Dispose(): void;
19
24
  private onGetterUpdate;
@@ -2,6 +2,10 @@ import { BruceApi, MenuItem } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
3
  import { VisualsRegister } from "../../visuals-register";
4
4
  import { RenderManager } from "../render-manager";
5
+ /**
6
+ * Manager for rendering Bruce entities.
7
+ * This will request entities based on setup menu item filter.
8
+ */
5
9
  export declare namespace EntitiesRenderManager {
6
10
  class Manager implements RenderManager.IManager {
7
11
  private viewer;
@@ -17,7 +21,7 @@ export declare namespace EntitiesRenderManager {
17
21
  private entityCheckRemoval;
18
22
  private isRunningCheck;
19
23
  private viewMonitorRemoval;
20
- constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister, api: BruceApi, item: MenuItem.Item.IBruceEntities);
24
+ constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister.Register, api: BruceApi, item: MenuItem.Item.IBruceEntities);
21
25
  Init(): Promise<void>;
22
26
  Dispose(): void;
23
27
  private doEntityCheck;
@@ -2,6 +2,9 @@ import { BruceApi, MenuItem } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
3
  import { VisualsRegister } from "../../visuals-register";
4
4
  import { RenderManager } from "../render-manager";
5
+ /**
6
+ * Manager for rendering a single Bruce entity.
7
+ */
5
8
  export declare namespace EntityRenderManager {
6
9
  class Manager implements RenderManager.IManager {
7
10
  private viewer;
@@ -12,7 +15,7 @@ export declare namespace EntityRenderManager {
12
15
  private disposed;
13
16
  get Disposed(): boolean;
14
17
  private visualsManager;
15
- constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister, api: BruceApi, item: MenuItem.Item.IBruceEntity);
18
+ constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister.Register, api: BruceApi, item: MenuItem.Item.IBruceEntity);
16
19
  Init(): Promise<void>;
17
20
  Dispose(): void;
18
21
  private onGetterUpdate;
@@ -2,6 +2,10 @@ import { BruceApi, MenuItem } from "bruce-models";
2
2
  import { VisualsRegister } from "../../visuals-register";
3
3
  import { RenderManager } from "../render-manager";
4
4
  import * as Cesium from "cesium";
5
+ /**
6
+ * Manager for rendering CAD tilesets.
7
+ * CAD tilesets are referred to as "MODEL" tilesets in some other areas of Bruce code.
8
+ */
5
9
  export declare namespace TilesetCadRenderManager {
6
10
  class Manager implements RenderManager.IManager {
7
11
  private viewer;
@@ -12,7 +16,7 @@ export declare namespace TilesetCadRenderManager {
12
16
  private visualsManager;
13
17
  private cTileset;
14
18
  private styler;
15
- constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister, api: BruceApi, item: MenuItem.Item.ICadTileset);
19
+ constructor(viewer: Cesium.Viewer, visualsManager: VisualsRegister.Register, api: BruceApi, item: MenuItem.Item.ICadTileset);
16
20
  Init(): Promise<void>;
17
21
  private onCTilesetLoad;
18
22
  private mapCTile;
@@ -1,6 +1,6 @@
1
1
  import { BruceApi, Tileset } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
- import { IVisualRego } from "./visuals-register";
3
+ import { VisualsRegister } from "./visuals-register";
4
4
  export declare namespace TilesetRenderEngine {
5
5
  interface IParams {
6
6
  api: BruceApi;
@@ -26,7 +26,7 @@ export declare namespace TilesetRenderEngine {
26
26
  private recordCheckQueue;
27
27
  private queueCheckInterval;
28
28
  constructor(api: BruceApi, cTileset: Cesium.Cesium3DTileset, fallbackStyleId: number, styleMapping: any[]);
29
- QueueEntities(entities: IVisualRego[]): void;
29
+ QueueEntities(entities: VisualsRegister.IVisualRego[]): void;
30
30
  private processQueue;
31
31
  private getEntitiesForQueue;
32
32
  Dispose(): void;
@@ -1,24 +1,42 @@
1
- import { Cartes } from "bruce-models";
1
+ import { BruceEvent, Cartes } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
3
  declare type Visual = Cesium.Entity | Cesium.Primitive | Cesium.Cesium3DTileFeature;
4
- export interface IVisualRego {
5
- entityId: string;
6
- entityTypeId?: string;
7
- menuItemId: string;
8
- visuals: Visual[];
9
- priority: number;
10
- }
11
- export declare class VisualsRegister {
12
- private id;
13
- get Id(): string;
14
- private viewer;
15
- private rego;
16
- constructor(viewer: Cesium.Viewer);
17
- Add(rego: IVisualRego): void;
18
- GetVisuals(entityId: string, menuItemId: string): Visual[];
19
- RemoveByEntityId(id: string): void;
20
- RemoveByMenuItemId(id: string): void;
21
- Remove(entityId: string, menuItemId: string, _doUpdate?: boolean): void;
22
- GetFromCursor(cursor: Cartes.ICartes2): IVisualRego[];
4
+ /**
5
+ * Manages a registry of all Bruce visuals being rendered by menu items.
6
+ * If multiple stuff is registered with the same entity id, only the "best" one is left visible.
7
+ */
8
+ export declare namespace VisualsRegister {
9
+ interface IVisualRego {
10
+ entityId: string;
11
+ entityTypeId?: string;
12
+ menuItemId: string;
13
+ visual: Visual;
14
+ priority: number;
15
+ }
16
+ interface IVisualUpdate {
17
+ rego: IVisualRego;
18
+ isAdding: boolean;
19
+ }
20
+ class Register {
21
+ private id;
22
+ get Id(): string;
23
+ private viewer;
24
+ private rego;
25
+ private onUpdate;
26
+ get OnUpdate(): BruceEvent<IVisualUpdate>;
27
+ constructor(viewer: Cesium.Viewer);
28
+ Add(rego: IVisualRego): void;
29
+ GetVisuals(entityId: string, menuItemId: string): Visual[];
30
+ RemoveByEntityId(id: string): void;
31
+ RemoveByMenuItemId(id: string): void;
32
+ Remove(entityId: string, menuItemId: string, _doUpdate?: boolean): void;
33
+ /**
34
+ * Returns an array of drilled visuals associated with this register.
35
+ * The top array item is the first found.
36
+ * @param cursor
37
+ * @returns
38
+ */
39
+ GetFromCursor(cursor: Cartes.ICartes2): IVisualRego[];
40
+ }
23
41
  }
24
42
  export {};
@@ -1,4 +1,12 @@
1
1
  import * as Cesium from "cesium";
2
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
7
+ * @param positions
8
+ * @param distance
9
+ * @returns
10
+ */
3
11
  function PointAcrossPolyline(viewer: Cesium.Viewer, positions: Cesium.Cartesian3[], distance: number): Cesium.Cartesian3;
4
12
  }
@@ -1,5 +1,17 @@
1
1
  import { Entity as E } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
3
  export declare namespace EntityUtils {
4
+ /**
5
+ * Returns an entity's position.
6
+ * This will attempt to calculate it from multiple sources of data.
7
+ * @param viewer
8
+ * @param entity
9
+ * @returns
10
+ */
4
11
  function GetPos(viewer: Cesium.Viewer, entity: E.IEntity): Cesium.Cartesian3;
12
+ /**
13
+ * Returns entity and any associated parent/sibling entities as a flat array.
14
+ * @param entity
15
+ */
16
+ function GatherEntity(entity: Cesium.Entity): Cesium.Entity[];
5
17
  }
@@ -1,4 +1,10 @@
1
1
  import * as Cesium from "cesium";
2
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
+ */
3
9
  function MeasurePolyline(posses: Cesium.Cartesian3[]): number;
4
10
  }
@@ -1,5 +1,8 @@
1
1
  import { Bounds, BruceEvent, Carto, ViewMonitor } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
+ /**
4
+ * Monitors and emits events when the Cesium view changes.
5
+ */
3
6
  export declare class CesiumViewMonitor implements ViewMonitor.IMonitor {
4
7
  private viewer;
5
8
  private pendingTimeout;
@@ -7,9 +7,19 @@ export declare namespace ViewerUtils {
7
7
  interface IViewContainer extends HTMLElement {
8
8
  _cViewer?: Cesium.Viewer;
9
9
  }
10
+ /**
11
+ * Creates a Cesium viewer in a given HTML container and returns it.
12
+ * This will kill all widgets in the process.
13
+ * @param container
14
+ * @returns
15
+ */
10
16
  function InitViewer(container: HTMLElement): Cesium.Viewer;
11
17
  function GetViewerFromContainer(container: HTMLElement): Cesium.Viewer;
12
18
  function DestroyWidget(widget: IWidget): void;
19
+ /**
20
+ * Hides all unnecessary elements from the Cesium viewer container.
21
+ * @param viewer
22
+ */
13
23
  function StyleContainer(viewer: Cesium.Viewer): void;
14
24
  }
15
25
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-cesium",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/bruce-cesium.umd.js",