bruce-cesium 7.2.4 → 7.2.6
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.
- package/dist/bruce-cesium.es5.js +386 -52
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +384 -50
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/internal/cesium-utils.js +32 -1
- package/dist/lib/internal/cesium-utils.js.map +1 -1
- package/dist/lib/rendering/entity-gatherer.js +170 -17
- package/dist/lib/rendering/entity-gatherer.js.map +1 -1
- package/dist/lib/rendering/menu-item-manager.js +1 -0
- package/dist/lib/rendering/menu-item-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/common/historic-utils.js +91 -24
- package/dist/lib/rendering/render-managers/common/historic-utils.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +1 -0
- package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +1 -0
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +61 -3
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/texture-frame-series-animator.js +20 -3
- package/dist/lib/rendering/texture-frame-series-animator.js.map +1 -1
- package/dist/lib/rendering/tileset-styler.js +10 -1
- package/dist/lib/rendering/tileset-styler.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/internal/cesium-utils.d.ts +9 -0
- package/dist/types/rendering/entity-gatherer.d.ts +24 -0
- package/dist/types/rendering/render-managers/common/historic-utils.d.ts +30 -5
- package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +5 -0
- package/dist/types/rendering/texture-frame-series-animator.d.ts +1 -0
- package/dist/types/rendering/tileset-styler.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { BruceApi, BruceEvent, Entity, EntityTag } from "bruce-models";
|
|
2
2
|
import * as Cesium from "cesium";
|
|
3
|
+
import { CesiumViewMonitor } from "../viewer/cesium-view-monitor";
|
|
3
4
|
export declare class EntityGatherer {
|
|
5
|
+
static readonly MIN_ORDER_QUEUE = 500;
|
|
6
|
+
static readonly REORDER_MOVE_METRES = 250;
|
|
4
7
|
private disposed;
|
|
5
8
|
private api;
|
|
6
9
|
private viewer;
|
|
@@ -13,6 +16,11 @@ export declare class EntityGatherer {
|
|
|
13
16
|
private lastDateTimeMax;
|
|
14
17
|
private lastFoundDateTimes;
|
|
15
18
|
private eIdQueue;
|
|
19
|
+
private eIdQueued;
|
|
20
|
+
private positionOf;
|
|
21
|
+
private priorityCount;
|
|
22
|
+
private lastOrderFocus;
|
|
23
|
+
private monitor;
|
|
16
24
|
private allEIds;
|
|
17
25
|
private runningTick;
|
|
18
26
|
private entityDataOverrides;
|
|
@@ -30,6 +38,22 @@ export declare class EntityGatherer {
|
|
|
30
38
|
Init(historic: boolean, expandSources: boolean): void;
|
|
31
39
|
Empty(): void;
|
|
32
40
|
ReQueueAll(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Supplies a lookup from Entity ID to world position, letting the queue resolve what the camera
|
|
43
|
+
* is nearest first. Sources that cannot answer should not call this, and are served in order.
|
|
44
|
+
*/
|
|
45
|
+
SetPositionSource(positionOf: (entityId: string) => Cesium.Cartesian3 | null): void;
|
|
46
|
+
/**
|
|
47
|
+
* Supplies the view monitor, so the order follows the ground the camera is aimed at and prefers
|
|
48
|
+
* what is on screen. Without one the ordering falls back to distance from the camera itself.
|
|
49
|
+
*/
|
|
50
|
+
SetViewMonitor(monitor: CesiumViewMonitor.Monitor): void;
|
|
51
|
+
/**
|
|
52
|
+
* Re-bands the pending queue so the nearest Entities are requested first.
|
|
53
|
+
*/
|
|
54
|
+
private orderQueueByCamera;
|
|
55
|
+
private static boundsChanged;
|
|
56
|
+
private bandIds;
|
|
33
57
|
Queue(entityIds: string[], topOfQueue?: boolean): void;
|
|
34
58
|
Dispose(): void;
|
|
35
59
|
private checkRange;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Cesium from "cesium";
|
|
2
|
-
import { BruceApi, Entity, EntityHistoricData, IDictionary } from "bruce-models";
|
|
2
|
+
import { Bounds, BruceApi, Entity, EntityHistoricData, IDictionary } from "bruce-models";
|
|
3
|
+
import { CesiumViewMonitor } from "../../../viewer/cesium-view-monitor";
|
|
3
4
|
/**
|
|
4
5
|
* How often a historic refresh is worth running, and which Entities it should ask about first.
|
|
5
6
|
*
|
|
@@ -16,17 +17,40 @@ export declare namespace HistoricFetchOrder {
|
|
|
16
17
|
* Returns how long to wait between historic refreshes for a set of this size.
|
|
17
18
|
*/
|
|
18
19
|
function IntervalFor(entityCount: number, minMs?: number, maxMs?: number): number;
|
|
20
|
+
const DEFAULT_BANDS: number[];
|
|
19
21
|
/**
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
* Where the user is actually looking, which is not the same as where the camera is.
|
|
23
|
+
*/
|
|
24
|
+
interface IViewFocus {
|
|
25
|
+
origin: Cesium.Cartesian3;
|
|
26
|
+
bounds?: Bounds.IReqBounds;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolves what to order by from the view monitor, falling back to the camera itself.
|
|
30
|
+
*/
|
|
31
|
+
function FocusFrom(params: {
|
|
32
|
+
viewer: Cesium.Viewer;
|
|
33
|
+
monitor?: CesiumViewMonitor.Monitor;
|
|
34
|
+
}): IViewFocus | null;
|
|
35
|
+
/**
|
|
36
|
+
* Returns the Entities grouped nearest first, on screen ahead of off screen.
|
|
24
37
|
*/
|
|
25
38
|
function ByCameraDistance(params: {
|
|
26
39
|
viewer: Cesium.Viewer;
|
|
27
40
|
entities: Entity.IEntity[];
|
|
41
|
+
monitor?: CesiumViewMonitor.Monitor;
|
|
28
42
|
bands?: number[];
|
|
29
43
|
}): Entity.IEntity[][];
|
|
44
|
+
/**
|
|
45
|
+
* Bands anything that can name its own world position, on the same bounds as the Entity form.
|
|
46
|
+
*/
|
|
47
|
+
function ByCameraDistanceOf<T>(params: {
|
|
48
|
+
focus: IViewFocus | null;
|
|
49
|
+
items: T[];
|
|
50
|
+
posOf: (item: T) => Cesium.Cartesian3 | null;
|
|
51
|
+
bands?: number[];
|
|
52
|
+
}): T[][];
|
|
53
|
+
function InBounds(pos: Cesium.Cartesian3, bounds: Bounds.IReqBounds): boolean;
|
|
30
54
|
}
|
|
31
55
|
/**
|
|
32
56
|
* Decides what slice of history is worth fetching for the clock as it is currently moving.
|
|
@@ -132,6 +156,7 @@ export declare class HistoricGatherer {
|
|
|
132
156
|
private disposed;
|
|
133
157
|
constructor(params: {
|
|
134
158
|
viewer: Cesium.Viewer;
|
|
159
|
+
monitor?: CesiumViewMonitor.Monitor;
|
|
135
160
|
getApi: () => BruceApi.Api;
|
|
136
161
|
getAttrKey: () => string;
|
|
137
162
|
sample?: number;
|
|
@@ -4,6 +4,7 @@ import { TilesetRenderEngine } from "../../tileset-render-engine";
|
|
|
4
4
|
import { VisualsRegister } from "../../visuals-register";
|
|
5
5
|
import { RenderManager } from "../render-manager";
|
|
6
6
|
import { TilesetArbRenderManager } from "./tileset-arb-render-manager";
|
|
7
|
+
import { CesiumViewMonitor } from "../../../viewer/cesium-view-monitor";
|
|
7
8
|
export declare namespace TilesetEntitiesRenderManager {
|
|
8
9
|
class Manager implements RenderManager.IManager, RenderManager.IHandoffCapableManager, RenderManager.IHandoffReceiver {
|
|
9
10
|
private initCounter;
|
|
@@ -32,12 +33,14 @@ export declare namespace TilesetEntitiesRenderManager {
|
|
|
32
33
|
private featurePropCache;
|
|
33
34
|
private featurePropsChecked;
|
|
34
35
|
private initQueue;
|
|
36
|
+
private monitor;
|
|
35
37
|
constructor(params: {
|
|
36
38
|
viewer: Cesium.Viewer;
|
|
37
39
|
register: VisualsRegister.Register;
|
|
38
40
|
getters: ApiGetters;
|
|
39
41
|
item: MenuItem.Item.IEntitiesTileset;
|
|
40
42
|
initQueue?: TilesetArbRenderManager.IInitQueue;
|
|
43
|
+
monitor?: CesiumViewMonitor.Monitor;
|
|
41
44
|
});
|
|
42
45
|
Init(params?: {
|
|
43
46
|
item: MenuItem.Item.IEntitiesTileset;
|
|
@@ -69,6 +72,8 @@ export declare namespace TilesetEntitiesRenderManager {
|
|
|
69
72
|
PrepareHandoff(): RenderManager.IHandoffPayload | null;
|
|
70
73
|
AdoptHandoff(payload: RenderManager.IHandoffPayload): void;
|
|
71
74
|
private queueHandoffRestyle;
|
|
75
|
+
private static readNumber;
|
|
76
|
+
private readBakedPos;
|
|
72
77
|
private mapTilesetFeature;
|
|
73
78
|
ReRender(params: {
|
|
74
79
|
entityIds?: string[];
|
|
@@ -377,6 +377,7 @@ export declare namespace TextureFrameSeriesAnimator {
|
|
|
377
377
|
private nearestUncachedFrame;
|
|
378
378
|
private pumpFetchQueue;
|
|
379
379
|
private fetchAndTint;
|
|
380
|
+
private shouldPresent;
|
|
380
381
|
protected composeTiles(tiles: ITileEntry[], idx: number, buffer: ArrayBuffer, spanStart: number): Promise<{
|
|
381
382
|
pixels: Uint8ClampedArray;
|
|
382
383
|
width: number;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BruceApi, BruceEvent, Entity, Style } from "bruce-models";
|
|
2
2
|
import * as Cesium from "cesium";
|
|
3
3
|
import { VisualsRegister } from "./visuals-register";
|
|
4
|
+
import { CesiumViewMonitor } from "../viewer/cesium-view-monitor";
|
|
4
5
|
/**
|
|
5
6
|
* Returns if the outline metadata is different.
|
|
6
7
|
* @param rego
|
|
@@ -31,6 +32,7 @@ export declare class TilesetStyler {
|
|
|
31
32
|
private historic;
|
|
32
33
|
private applyStyles;
|
|
33
34
|
private entityGatherer;
|
|
35
|
+
private monitor;
|
|
34
36
|
private reRenderState;
|
|
35
37
|
private shouldUpdateRegoStates;
|
|
36
38
|
private styledEntityIds;
|
|
@@ -54,6 +56,7 @@ export declare class TilesetStyler {
|
|
|
54
56
|
scenario?: number | string;
|
|
55
57
|
historic?: boolean;
|
|
56
58
|
applyStyles?: boolean;
|
|
59
|
+
monitor?: CesiumViewMonitor.Monitor;
|
|
57
60
|
}): void;
|
|
58
61
|
/**
|
|
59
62
|
* Updates style mapping and fallback style.
|