bruce-cesium 7.3.2 → 7.3.4

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 (41) hide show
  1. package/dist/bruce-cesium.es5.js +3730 -3106
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +3722 -3098
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +1 -1
  6. package/dist/lib/internal/code-logic-exceptions.js +77 -0
  7. package/dist/lib/internal/code-logic-exceptions.js.map +1 -0
  8. package/dist/lib/rendering/cesium-animated-property.js +210 -34
  9. package/dist/lib/rendering/cesium-animated-property.js.map +1 -1
  10. package/dist/lib/rendering/entity-render-engine-model3d.js +39 -58
  11. package/dist/lib/rendering/entity-render-engine-model3d.js.map +1 -1
  12. package/dist/lib/rendering/entity-render-engine-point.js +43 -64
  13. package/dist/lib/rendering/entity-render-engine-point.js.map +1 -1
  14. package/dist/lib/rendering/entity-render-engine-polygon.js +1 -16
  15. package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -1
  16. package/dist/lib/rendering/entity-render-engine-polyline.js +5 -18
  17. package/dist/lib/rendering/entity-render-engine-polyline.js.map +1 -1
  18. package/dist/lib/rendering/entity-render-engine.js +67 -0
  19. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  20. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +26 -15
  21. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  22. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js +265 -14
  23. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js.map +1 -1
  24. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +123 -28
  25. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  26. package/dist/lib/rendering/visual-register-culler.js +9 -120
  27. package/dist/lib/rendering/visual-register-culler.js.map +1 -1
  28. package/dist/lib/utils/drawing-utils.js +122 -0
  29. package/dist/lib/utils/drawing-utils.js.map +1 -1
  30. package/dist/lib/utils/view-utils.js +13 -0
  31. package/dist/lib/utils/view-utils.js.map +1 -1
  32. package/dist/types/bruce-cesium.d.ts +1 -1
  33. package/dist/types/internal/code-logic-exceptions.d.ts +37 -0
  34. package/dist/types/rendering/cesium-animated-property.d.ts +55 -1
  35. package/dist/types/rendering/entity-render-engine.d.ts +33 -1
  36. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +5 -0
  37. package/dist/types/rendering/render-managers/other/assembly-render-manager.d.ts +42 -0
  38. package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +42 -2
  39. package/dist/types/utils/drawing-utils.d.ts +30 -0
  40. package/dist/types/utils/view-utils.d.ts +5 -0
  41. package/package.json +2 -2
@@ -31,6 +31,13 @@ export declare namespace AssemblyRenderManager {
31
31
  private modelSpace;
32
32
  get ModelSpace(): boolean;
33
33
  private rootId;
34
+ private rootPos3d;
35
+ private rootHeading;
36
+ private children;
37
+ private trackEntity;
38
+ private viewerDateTimeChangeRemoval;
39
+ private historicGatherer;
40
+ private historicAnimation;
34
41
  constructor(params: {
35
42
  viewer: Cesium.Viewer;
36
43
  register: VisualsRegister.Register;
@@ -38,6 +45,39 @@ export declare namespace AssemblyRenderManager {
38
45
  item: MenuItem.Item.IAssembly;
39
46
  modelSpace?: boolean;
40
47
  });
48
+ /**
49
+ * Returns whether this Assembly's root moves over time.
50
+ * @param item
51
+ */
52
+ static IsHistoric(item: MenuItem.Item.IAssembly): boolean;
53
+ /**
54
+ * Returns what a record's altitude means for this item, from its style's altitude option.
55
+ * @param item
56
+ */
57
+ static GetRecordHeightRef(item: MenuItem.Item.IAssembly): Cesium.HeightReference;
58
+ private static rootFrame;
59
+ /**
60
+ * Returns where a child sits relative to its root, which is what stays true as the root moves.
61
+ * @param rootPos3d
62
+ * @param headingDegrees
63
+ * @param childPos3d
64
+ */
65
+ static ChildOffsetIn(rootPos3d: Cesium.Cartesian3, headingDegrees: number, childPos3d: Cesium.Cartesian3): Cesium.Cartesian3;
66
+ /**
67
+ * Returns where a child sits in the world, for a root at this position and heading.
68
+ * @param rootPos3d
69
+ * @param headingDegrees
70
+ * @param offset
71
+ */
72
+ static ChildPositionFrom(rootPos3d: Cesium.Cartesian3, headingDegrees: number, offset: Cesium.Cartesian3): Cesium.Cartesian3;
73
+ /**
74
+ * Moves the whole Assembly to a new root position, without refetching any of its children.
75
+ * @param params
76
+ */
77
+ ApplyRootPosition(params: {
78
+ pos3d: Cesium.Cartesian3;
79
+ heading?: number;
80
+ }): void;
41
81
  Init(): void;
42
82
  /**
43
83
  * Processes given entity IDs and renders them in the viewer.
@@ -45,6 +85,8 @@ export declare namespace AssemblyRenderManager {
45
85
  * @returns
46
86
  */
47
87
  private processEntityIds;
88
+ private viewerDateTimeSub;
89
+ private applyRootTrack;
48
90
  Dispose(): void;
49
91
  ReRender(params: {
50
92
  entityIds?: string[];
@@ -1,5 +1,6 @@
1
- import { ApiGetters, BruceEvent, Entity, MenuItem } from "bruce-models";
1
+ import { ApiGetters, BruceEvent, Entity, EntityCoords, EntityHistoricData, MenuItem } from "bruce-models";
2
2
  import * as Cesium from "cesium";
3
+ import { CesiumAnimatedProperty } from "../../cesium-animated-property";
3
4
  import { TilesetRenderEngine } from "../../tileset-render-engine";
4
5
  import { VisualsRegister } from '../../visuals-register';
5
6
  import { RenderManager } from "../render-manager";
@@ -48,9 +49,9 @@ export declare namespace TilesetCadRenderManager {
48
49
  private somethingIsolatedDateTime;
49
50
  private loadedCesiumEntities;
50
51
  private viewerDateTimeChangeRemoval;
51
- private historicPossesInitialLoaded;
52
52
  private historicAnimation;
53
53
  private historicGatherer;
54
+ private trackEntity;
54
55
  private historicPossesLoadingProm;
55
56
  private featureQueue;
56
57
  private featureQueueStates;
@@ -69,6 +70,45 @@ export declare namespace TilesetCadRenderManager {
69
70
  Init(): void;
70
71
  private onCTilesetLoad;
71
72
  get HandoffKey(): string | null;
73
+ private accountIdForRecords;
74
+ private applyRootTrack;
75
+ /**
76
+ * Returns whether this item's historic heading gets the half-turn correction.
77
+ * See CodeLogicExceptions.ASSEMBLY_HISTORIC_HEADING_FLIP.
78
+ * @param accountId whose records are being rendered
79
+ */
80
+ static FlipsHistoricHeading(accountId: string): boolean;
81
+ /**
82
+ * Returns what a record's altitude means for this item, from its style's altitude option.
83
+ * @param item
84
+ */
85
+ static GetRecordHeightRef(item: MenuItem.Item.ICadTileset): Cesium.HeightReference;
86
+ /**
87
+ * Turns the root Entity's historic records into the positions the tileset moves along.
88
+ * @param params
89
+ */
90
+ static HistoricPossesFor(params: {
91
+ viewer: Cesium.Viewer;
92
+ item: MenuItem.Item.ICadTileset;
93
+ records: EntityHistoricData.IData[];
94
+ }): CesiumAnimatedProperty.IAnimateSeriesPos[];
95
+ /**
96
+ * Returns the tileset coordinates that place it at a root Entity's own recorded position.
97
+ * @param entity
98
+ */
99
+ static CoordsFromHistoricEntity(entity: Entity.IEntity): EntityCoords.IEntityCoords;
100
+ /**
101
+ * Returns the tileset coordinates for a root at this position and attitude.
102
+ * @param params
103
+ */
104
+ static CoordsFromHistoricPos3d(params: {
105
+ rootId: string;
106
+ pos3d: Cesium.Cartesian3;
107
+ heading: number;
108
+ pitch?: number;
109
+ roll?: number;
110
+ cTileset?: TilesetRenderEngine.ITilesetExt;
111
+ }): EntityCoords.IEntityCoords;
72
112
  static GetHandoffKey(item: MenuItem.Item.ICadTileset, modelSpace?: boolean): string | null;
73
113
  PrepareHandoff(): RenderManager.IHandoffPayload | null;
74
114
  AdoptHandoff(payload: RenderManager.IHandoffPayload): void;
@@ -30,6 +30,36 @@ export declare namespace DrawingUtils {
30
30
  height: number;
31
31
  error?: any;
32
32
  }>;
33
+ const TERRAIN_CELL_SIZE = 400;
34
+ const TERRAIN_CELL_SIZE_FINE = 50;
35
+ const TERRAIN_CELL_MAX_SPREAD = 25;
36
+ /**
37
+ * Returns the terrain height under a position, from the terrain as it is currently loaded.
38
+ *
39
+ * NaN when the terrain tile has not loaded yet and nothing cached covers the area, so a caller can
40
+ * tell "no answer" from "sea level".
41
+ *
42
+ * @param params terrainId identifies the terrain the cache is keyed against.
43
+ */
44
+ function GetTerrainOffset(params: {
45
+ viewer: Cesium.Viewer;
46
+ pos3d: Cesium.Cartesian3;
47
+ terrainId: string | number | null | undefined;
48
+ }): number;
49
+ /**
50
+ * Returns where a position is actually drawn, as an absolute height.
51
+ * @param params
52
+ */
53
+ function GetDrawnPos3d(params: {
54
+ viewer: Cesium.Viewer;
55
+ heightRef: Cesium.HeightReference;
56
+ pos3d: Cesium.Cartesian3;
57
+ terrainId: string | number | null | undefined;
58
+ }): Cesium.Cartesian3 | null;
59
+ /**
60
+ * Empties the terrain height cache. For a terrain provider swap, or a test.
61
+ */
62
+ function ClearTerrainCache(): void;
33
63
  function EnsurePosHeight(params: {
34
64
  pos3d: Cesium.Cartesian3;
35
65
  viewer: Cesium.Viewer;
@@ -33,6 +33,11 @@ export declare namespace ViewUtils {
33
33
  }): {
34
34
  terrain: ProjectViewTile.IBookmarkTerrain;
35
35
  };
36
+ /**
37
+ * Returns the identity a terrain height cache should be keyed against, or null for terrain with no heights to sample.
38
+ * @param viewer
39
+ */
40
+ function GetTerrainCacheId(viewer: Cesium.Viewer): string | number | null | undefined;
36
41
  function SetTerrainWireframeStatus(params: {
37
42
  viewer: Cesium.Viewer;
38
43
  status: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-cesium",
3
- "version": "7.3.2",
3
+ "version": "7.3.4",
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.89",
86
+ "bruce-models": "^7.1.102",
87
87
  "tslib": "^2.4.1"
88
88
  }
89
89
  }