@splnlss/3d-story-viewer 0.8.1 → 0.8.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.
- package/build/computeElevation.cjs +1 -1
- package/build/computeElevation.js +2 -2
- package/build/index-XZNzHig1.cjs +1 -0
- package/build/{index-DaqGSC4W.js → index-a8PLKOvo.js} +135 -46
- package/build/{main-CY1MzgxV.js → main-CEG3MR57.js} +7051 -6159
- package/build/main-DOWS9MQ7.cjs +1 -0
- package/build/{spark.module-BGYmUUum.js → spark.module-CHPihKhu.js} +2 -2
- package/build/{spark.module-Y1ABc5im.cjs → spark.module-CsQUyNT4.cjs} +1 -1
- package/build/types/src/viewer/GlobeManager.d.ts +10 -0
- package/build/types/src/viewer/WebXRSession.d.ts +77 -0
- package/build/types/src/viewer/XRAttributionPanel.d.ts +23 -0
- package/build/types/src/viewer/XRComfortOverlay.d.ts +15 -0
- package/build/types/src/viewer/XRFrameInput.d.ts +30 -0
- package/build/types/src/viewer/XRNavigationCue.d.ts +10 -0
- package/build/types/src/viewer/XRPlayerRig.d.ts +92 -0
- package/build/types/src/viewer/XRRenderBridge.d.ts +27 -0
- package/build/types/src/viewer/index.d.ts +92 -0
- package/build/types/src/viewer/updateTilesCamera.d.ts +2 -0
- package/build/viewer.cjs +1 -1
- package/build/viewer.js +3 -3
- package/package.json +1 -1
- package/build/index-D87IZDc6.cjs +0 -1
- package/build/main-DFAyOsl5.cjs +0 -1
|
@@ -4,14 +4,24 @@ export class GlobeManager extends EventDispatcher {
|
|
|
4
4
|
camera: any;
|
|
5
5
|
renderer: any;
|
|
6
6
|
tiles: TilesRenderer<import("3d-tiles-renderer").TilesRendererEventMap>;
|
|
7
|
+
destinationTileCamera: PerspectiveCamera;
|
|
8
|
+
destinationTileResolution: number;
|
|
9
|
+
destinationTileTimeout: number;
|
|
10
|
+
previousAutoDisableRendererCulling: boolean;
|
|
7
11
|
dracoLoader: any;
|
|
8
12
|
ownsDecoders: boolean;
|
|
9
13
|
decoders: any;
|
|
10
14
|
apiToken: any;
|
|
11
15
|
googleMapsToken: any;
|
|
12
16
|
initTiles(): void;
|
|
17
|
+
attachTileLoadListener(): void;
|
|
18
|
+
/** The renderer shares one cache and request scheduler between both registered cameras. */
|
|
19
|
+
setDestinationTilePrefetch(target: any): void;
|
|
20
|
+
updateDestinationTileResolution(): void;
|
|
21
|
+
clearDestinationTilePrefetch(): void;
|
|
13
22
|
update(): void;
|
|
14
23
|
dispose(): void;
|
|
15
24
|
}
|
|
16
25
|
import { EventDispatcher } from '../modules/EventDispatcher';
|
|
17
26
|
import { TilesRenderer } from '3d-tiles-renderer';
|
|
27
|
+
import { PerspectiveCamera } from 'three';
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/** @typedef {{ lodSplatCount?: number, lodRenderScale?: number }} SparkProfile */
|
|
2
|
+
/** Owns one immersive session for a Viewer, including every desktop restoration path. */
|
|
3
|
+
export class WebXRSession {
|
|
4
|
+
/** @param {import('./index.js').default} viewer @param {{ onFrame?: (input: { time: number, frame: XRFrame, pose: XRViewerPose }) => void, onStateChange?: (active: boolean) => void, showAttribution?: boolean }} [options] */
|
|
5
|
+
constructor(viewer: import("./index.js").default, options?: {
|
|
6
|
+
onFrame?: (input: {
|
|
7
|
+
time: number;
|
|
8
|
+
frame: XRFrame;
|
|
9
|
+
pose: XRViewerPose;
|
|
10
|
+
}) => void;
|
|
11
|
+
onStateChange?: (active: boolean) => void;
|
|
12
|
+
showAttribution?: boolean;
|
|
13
|
+
});
|
|
14
|
+
viewer: import("./index.js").default;
|
|
15
|
+
onFrame: (input: {
|
|
16
|
+
time: number;
|
|
17
|
+
frame: XRFrame;
|
|
18
|
+
pose: XRViewerPose;
|
|
19
|
+
}) => void;
|
|
20
|
+
onStateChange: (active: boolean) => void;
|
|
21
|
+
showAttribution: boolean;
|
|
22
|
+
session: any;
|
|
23
|
+
starting: any;
|
|
24
|
+
bridge: {
|
|
25
|
+
getHeadPose: () => import("./XRPlayerRig.js").XRHeadPose;
|
|
26
|
+
getHeadForward: () => import("three").Vector3Tuple;
|
|
27
|
+
getControllerWorldRay: (controller: any) => {
|
|
28
|
+
origin: import("three").Vector3Tuple;
|
|
29
|
+
direction: import("three").Vector3Tuple;
|
|
30
|
+
};
|
|
31
|
+
setNavigationCue: (cue: any) => void;
|
|
32
|
+
setTerrainCredits: (credits: any) => void;
|
|
33
|
+
setPlayerPose(pose: any): void;
|
|
34
|
+
setVisualBlend(blend: any): void;
|
|
35
|
+
hasUi(): boolean;
|
|
36
|
+
setNavigationLimit(reason: any): void;
|
|
37
|
+
setComfortMoving(moving: any): void;
|
|
38
|
+
setFade(opacity: any): void;
|
|
39
|
+
updateHeadPose(pose: any): void;
|
|
40
|
+
dispose(): void;
|
|
41
|
+
};
|
|
42
|
+
desktop: {
|
|
43
|
+
cameraWorld: import("three").Matrix4;
|
|
44
|
+
near: number;
|
|
45
|
+
far: number;
|
|
46
|
+
globeEnabled: boolean;
|
|
47
|
+
keysEnabled: boolean;
|
|
48
|
+
xrEnabled: boolean;
|
|
49
|
+
foveation: number;
|
|
50
|
+
referenceSpaceType: any;
|
|
51
|
+
framebufferScaleFactor: any;
|
|
52
|
+
labelRender: (scene: import("three").Scene, camera: import("three").Camera) => void;
|
|
53
|
+
ensureSparkRenderer: () => Promise<any>;
|
|
54
|
+
transitionAnimateTo: (position: any, quaternion: any, duration?: number) => Promise<any>;
|
|
55
|
+
tilesSchedulerSession: any;
|
|
56
|
+
};
|
|
57
|
+
/** @type {Map<object, SparkProfile>} */
|
|
58
|
+
sparkProfiles: Map<object, SparkProfile>;
|
|
59
|
+
disposed: boolean;
|
|
60
|
+
stopping: boolean;
|
|
61
|
+
endRequested: boolean;
|
|
62
|
+
active: boolean;
|
|
63
|
+
handleSessionEnd: () => void;
|
|
64
|
+
handleFrame: (time: any, frame: any) => void;
|
|
65
|
+
start(): any;
|
|
66
|
+
activate(requested: any): Promise<void>;
|
|
67
|
+
frame(time: any, frame: any): void;
|
|
68
|
+
applySparkProfile(spark: any): void;
|
|
69
|
+
cleanup(): void;
|
|
70
|
+
endSessionOnce(session: any): Promise<void>;
|
|
71
|
+
stop(): Promise<void>;
|
|
72
|
+
dispose(): Promise<void>;
|
|
73
|
+
}
|
|
74
|
+
export type SparkProfile = {
|
|
75
|
+
lodSplatCount?: number;
|
|
76
|
+
lodRenderScale?: number;
|
|
77
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** The renderer's current tile copyrights and the app's terrain credits. */
|
|
2
|
+
export function attributionText(tileAttributions?: any[], terrainCredits?: any[]): any[];
|
|
3
|
+
export function layoutAttributionLines(ctx: any, values: any): any;
|
|
4
|
+
/** One lightweight head-local texture is composited into both XR eye views. */
|
|
5
|
+
export class XRAttributionPanel {
|
|
6
|
+
canvas: HTMLCanvasElement;
|
|
7
|
+
context: CanvasRenderingContext2D;
|
|
8
|
+
texture: CanvasTexture<HTMLCanvasElement>;
|
|
9
|
+
mesh: Mesh<PlaneGeometry, MeshBasicMaterial, import("three").Object3DEventMap>;
|
|
10
|
+
terrainCredits: any[];
|
|
11
|
+
lastText: string;
|
|
12
|
+
lastTileCheckMs: number;
|
|
13
|
+
tileCredits: any[];
|
|
14
|
+
logos: HTMLImageElement[];
|
|
15
|
+
setTerrainCredits(credits: any): void;
|
|
16
|
+
update(headMatrix: any, tiles: any, timeMs: any): void;
|
|
17
|
+
draw(): void;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
import { CanvasTexture } from 'three';
|
|
21
|
+
import { PlaneGeometry } from 'three';
|
|
22
|
+
import { MeshBasicMaterial } from 'three';
|
|
23
|
+
import { Mesh } from 'three';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Head-local peripheral motion vignette, drawn after the scene in both eyes. */
|
|
2
|
+
export class XRComfortOverlay {
|
|
3
|
+
material: ShaderMaterial;
|
|
4
|
+
mesh: Mesh<PlaneGeometry, ShaderMaterial, import("three").Object3DEventMap>;
|
|
5
|
+
moving: boolean;
|
|
6
|
+
navigationLimit: any;
|
|
7
|
+
fade: number;
|
|
8
|
+
setNavigationLimit(reason: any): boolean;
|
|
9
|
+
setFade(opacity: any): void;
|
|
10
|
+
update(headMatrix: any): void;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
}
|
|
13
|
+
import { ShaderMaterial } from 'three';
|
|
14
|
+
import { PlaneGeometry } from 'three';
|
|
15
|
+
import { Mesh } from 'three';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copy the current WebXR input sample before the browser reuses its frame objects.
|
|
3
|
+
* Positions are local-reference-space metres; orientation is an XR quaternion.
|
|
4
|
+
* @param {XRFrame} frame
|
|
5
|
+
* @param {XRReferenceSpace | null} referenceSpace
|
|
6
|
+
*/
|
|
7
|
+
export function readXRFrameInput(frame: XRFrame, referenceSpace: XRReferenceSpace | null): {
|
|
8
|
+
head: {
|
|
9
|
+
position: number[];
|
|
10
|
+
orientation: number[];
|
|
11
|
+
};
|
|
12
|
+
controllers: {
|
|
13
|
+
handedness: XRHandedness;
|
|
14
|
+
mapping: GamepadMappingType;
|
|
15
|
+
axes: number[];
|
|
16
|
+
buttons: {
|
|
17
|
+
pressed: boolean;
|
|
18
|
+
touched: boolean;
|
|
19
|
+
value: number;
|
|
20
|
+
}[];
|
|
21
|
+
ray: {
|
|
22
|
+
position: number[];
|
|
23
|
+
orientation: number[];
|
|
24
|
+
};
|
|
25
|
+
grip: {
|
|
26
|
+
position: number[];
|
|
27
|
+
orientation: number[];
|
|
28
|
+
};
|
|
29
|
+
}[];
|
|
30
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Small, ordinary depth-tested scene geometry; never samples streamed visual layers. */
|
|
2
|
+
export class XRNavigationCue {
|
|
3
|
+
constructor(scene: any);
|
|
4
|
+
scene: any;
|
|
5
|
+
group: Group<import("three").Object3DEventMap>;
|
|
6
|
+
set(cue: any): void;
|
|
7
|
+
clearChildren(): void;
|
|
8
|
+
dispose(): void;
|
|
9
|
+
}
|
|
10
|
+
import { Group } from 'three';
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/** Keeps metre-scale tracked poses separate from double-precision WGS84 ECEF positions. */
|
|
2
|
+
export class XRPlayerRig {
|
|
3
|
+
/** @param {Matrix4} initialCameraWorld @param {XRRigidTransform} initialHeadPose */
|
|
4
|
+
constructor(initialCameraWorld: Matrix4, initialHeadPose: XRRigidTransform);
|
|
5
|
+
headLocal: Matrix4;
|
|
6
|
+
/** @type {Matrix4 | null} */
|
|
7
|
+
trackingReference: Matrix4 | null;
|
|
8
|
+
/** @type {Matrix4 | null} */
|
|
9
|
+
visualReference: Matrix4 | null;
|
|
10
|
+
/** @type {{pitchDegrees: number, rollDegrees: number} | null} */
|
|
11
|
+
visualOrientation: {
|
|
12
|
+
pitchDegrees: number;
|
|
13
|
+
rollDegrees: number;
|
|
14
|
+
} | null;
|
|
15
|
+
visualBlend: number;
|
|
16
|
+
worldFromLocal: Matrix4;
|
|
17
|
+
anchor: {
|
|
18
|
+
longitude: number;
|
|
19
|
+
latitude: number;
|
|
20
|
+
altitude: number;
|
|
21
|
+
};
|
|
22
|
+
/** @param {XRRigidTransform} pose */
|
|
23
|
+
updateHeadPose(pose: XRRigidTransform): void;
|
|
24
|
+
getWorldFromLocalMatrix(): Matrix4;
|
|
25
|
+
getWorldHeadMatrix(): Matrix4;
|
|
26
|
+
getVisualWorldFromLocalMatrix(): Matrix4;
|
|
27
|
+
getVisualWorldHeadMatrix(): Matrix4;
|
|
28
|
+
getVisualHeadForward(): import("three").Vector3Tuple;
|
|
29
|
+
poseFromWorld(world: any): {
|
|
30
|
+
worldEcef: import("three").Vector3Tuple;
|
|
31
|
+
geodetic: {
|
|
32
|
+
longitude: number;
|
|
33
|
+
latitude: number;
|
|
34
|
+
altitude: number;
|
|
35
|
+
};
|
|
36
|
+
headingDegrees: number;
|
|
37
|
+
};
|
|
38
|
+
/** @returns {XRHeadPose} WGS84 degrees, ellipsoidal altitude metres, ECEF metres, local-floor metres. */
|
|
39
|
+
getHeadPose(): XRHeadPose;
|
|
40
|
+
getNavigationFrame(): Matrix4;
|
|
41
|
+
/** Convert the copied WebXR target-ray transform to ECEF metres. */
|
|
42
|
+
getControllerWorldRay(controller: any): {
|
|
43
|
+
origin: import("three").Vector3Tuple;
|
|
44
|
+
direction: import("three").Vector3Tuple;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Places the tracked head at a WGS84 ellipsoidal position plus ENU metres.
|
|
48
|
+
* Heading is clockwise degrees from true north. Physical room-scale motion remains tracked.
|
|
49
|
+
*/
|
|
50
|
+
/** @param {XRPlayerPose} pose */
|
|
51
|
+
setPose({ anchor, east, north, up, headingDegrees, trackingReference, visualOrientation }: XRPlayerPose): void;
|
|
52
|
+
/** Fade the authored camera correction while retaining live six-degree head tracking. */
|
|
53
|
+
setVisualBlend(blend: any): void;
|
|
54
|
+
reanchor(headingDegrees: any): void;
|
|
55
|
+
}
|
|
56
|
+
export type XRHeadPose = {
|
|
57
|
+
worldEcef: [number, number, number];
|
|
58
|
+
geodetic: {
|
|
59
|
+
longitude: number;
|
|
60
|
+
latitude: number;
|
|
61
|
+
altitude: number;
|
|
62
|
+
};
|
|
63
|
+
headingDegrees: number;
|
|
64
|
+
localHeadOffset: [number, number, number];
|
|
65
|
+
localHeadOrientation: [number, number, number, number];
|
|
66
|
+
displayedOrientation: {
|
|
67
|
+
pitch: number;
|
|
68
|
+
yaw: number;
|
|
69
|
+
roll: number;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
export type XRTrackingReference = {
|
|
73
|
+
position: [number, number, number];
|
|
74
|
+
orientation: [number, number, number, number];
|
|
75
|
+
};
|
|
76
|
+
export type XRPlayerPose = {
|
|
77
|
+
anchor: {
|
|
78
|
+
longitude: number;
|
|
79
|
+
latitude: number;
|
|
80
|
+
altitude: number;
|
|
81
|
+
};
|
|
82
|
+
east?: number;
|
|
83
|
+
north?: number;
|
|
84
|
+
up?: number;
|
|
85
|
+
headingDegrees: number;
|
|
86
|
+
trackingReference?: XRTrackingReference;
|
|
87
|
+
visualOrientation?: {
|
|
88
|
+
pitchDegrees: number;
|
|
89
|
+
rollDegrees: number;
|
|
90
|
+
} | null;
|
|
91
|
+
};
|
|
92
|
+
import { Matrix4 } from 'three';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Places a metre-scale WebXR head under a double-precision ECEF anchor only
|
|
3
|
+
* while Three renders. The viewer's ordinary ECEF camera stays the scene camera.
|
|
4
|
+
* @param {import('./index.js').default} viewer
|
|
5
|
+
* @param {XRRigidTransform} initialHeadPose
|
|
6
|
+
* @param {{ showAttribution?: boolean }} [options]
|
|
7
|
+
*/
|
|
8
|
+
export function createXRRenderBridge(viewer: import("./index.js").default, initialHeadPose: XRRigidTransform, { showAttribution }?: {
|
|
9
|
+
showAttribution?: boolean;
|
|
10
|
+
}): {
|
|
11
|
+
getHeadPose: () => import("./XRPlayerRig.js").XRHeadPose;
|
|
12
|
+
getHeadForward: () => import("three").Vector3Tuple;
|
|
13
|
+
getControllerWorldRay: (controller: any) => {
|
|
14
|
+
origin: import("three").Vector3Tuple;
|
|
15
|
+
direction: import("three").Vector3Tuple;
|
|
16
|
+
};
|
|
17
|
+
setNavigationCue: (cue: any) => void;
|
|
18
|
+
setTerrainCredits: (credits: any) => void;
|
|
19
|
+
setPlayerPose(pose: any): void;
|
|
20
|
+
setVisualBlend(blend: any): void;
|
|
21
|
+
hasUi(): boolean;
|
|
22
|
+
setNavigationLimit(reason: any): void;
|
|
23
|
+
setComfortMoving(moving: any): void;
|
|
24
|
+
setFade(opacity: any): void;
|
|
25
|
+
updateHeadPose(pose: any): void;
|
|
26
|
+
dispose(): void;
|
|
27
|
+
};
|
|
@@ -24,6 +24,7 @@ declare class Viewer extends EventDispatcher {
|
|
|
24
24
|
isViewer: boolean;
|
|
25
25
|
type: string;
|
|
26
26
|
disposed: boolean;
|
|
27
|
+
xrSession: WebXRSession;
|
|
27
28
|
sparkRenderer: any;
|
|
28
29
|
transparentBackground: boolean;
|
|
29
30
|
state: StateDispatcher;
|
|
@@ -45,6 +46,7 @@ declare class Viewer extends EventDispatcher {
|
|
|
45
46
|
transitionControls: TransitionControls;
|
|
46
47
|
tileDecoders: TileDecoders;
|
|
47
48
|
globeManager: GlobeManager;
|
|
49
|
+
_onGlobeTileLoaded: () => void;
|
|
48
50
|
/** @type {ViewerCoords} */
|
|
49
51
|
cameraCoords: ViewerCoords;
|
|
50
52
|
/** @type {ViewerCoords} */
|
|
@@ -80,6 +82,80 @@ declare class Viewer extends EventDispatcher {
|
|
|
80
82
|
sky: Sky;
|
|
81
83
|
pointerRaycaster: Raycaster;
|
|
82
84
|
_onPointerMove: (event: any) => void;
|
|
85
|
+
get xrActive(): boolean;
|
|
86
|
+
/** @param {{ onFrame?: (input: { time: number, frame: XRFrame, pose: XRViewerPose }) => void, onStateChange?: (active: boolean) => void, showAttribution?: boolean }} [options] */
|
|
87
|
+
startXRSession(options?: {
|
|
88
|
+
onFrame?: (input: {
|
|
89
|
+
time: number;
|
|
90
|
+
frame: XRFrame;
|
|
91
|
+
pose: XRViewerPose;
|
|
92
|
+
}) => void;
|
|
93
|
+
onStateChange?: (active: boolean) => void;
|
|
94
|
+
showAttribution?: boolean;
|
|
95
|
+
}): any;
|
|
96
|
+
endXRSession(): Promise<void>;
|
|
97
|
+
/** @param {XRFrame} frame */
|
|
98
|
+
getXRFrameInput(frame: XRFrame): {
|
|
99
|
+
head: {
|
|
100
|
+
position: number[];
|
|
101
|
+
orientation: number[];
|
|
102
|
+
};
|
|
103
|
+
controllers: {
|
|
104
|
+
handedness: XRHandedness;
|
|
105
|
+
mapping: GamepadMappingType;
|
|
106
|
+
axes: number[];
|
|
107
|
+
buttons: {
|
|
108
|
+
pressed: boolean;
|
|
109
|
+
touched: boolean;
|
|
110
|
+
value: number;
|
|
111
|
+
}[];
|
|
112
|
+
ray: {
|
|
113
|
+
position: number[];
|
|
114
|
+
orientation: number[];
|
|
115
|
+
};
|
|
116
|
+
grip: {
|
|
117
|
+
position: number[];
|
|
118
|
+
orientation: number[];
|
|
119
|
+
};
|
|
120
|
+
}[];
|
|
121
|
+
};
|
|
122
|
+
/** @param {import('./XRPlayerRig.js').XRPlayerPose} pose */
|
|
123
|
+
setXRPlayerPose(pose: import("./XRPlayerRig.js").XRPlayerPose): void;
|
|
124
|
+
/** @param {number} blend 1 keeps the saved camera pitch, 0 restores natural tracked orientation. */
|
|
125
|
+
setXRVisualBlend(blend: number): void;
|
|
126
|
+
/** @returns {import('./XRPlayerRig.js').XRHeadPose | null} */
|
|
127
|
+
getXRHeadPose(): import("./XRPlayerRig.js").XRHeadPose | null;
|
|
128
|
+
/** @returns {number[] | null} Displayed head-forward unit vector in WGS84 ECEF axes. */
|
|
129
|
+
getXRHeadForward(): number[] | null;
|
|
130
|
+
/** @param {{ray: {position: number[], orientation: number[]} | null}} controller @returns {{origin: number[], direction: number[]} | null} */
|
|
131
|
+
getXRControllerWorldRay(controller: {
|
|
132
|
+
ray: {
|
|
133
|
+
position: number[];
|
|
134
|
+
orientation: number[];
|
|
135
|
+
} | null;
|
|
136
|
+
}): {
|
|
137
|
+
origin: number[];
|
|
138
|
+
direction: number[];
|
|
139
|
+
} | null;
|
|
140
|
+
/** @param {boolean} moving */
|
|
141
|
+
setXRComfortMoving(moving: boolean): void;
|
|
142
|
+
/** @param {'floor' | 'unknown' | 'loading' | null} reason */
|
|
143
|
+
setXRNavigationLimit(reason: "floor" | "unknown" | "loading" | null): void;
|
|
144
|
+
/** @param {{anchor: {longitude: number, latitude: number, altitude: number}, arc: readonly (readonly [number, number, number])[], marker: readonly [number, number, number] | null, state: 'valid' | 'blocked' | 'unknown'} | null} cue */
|
|
145
|
+
setXRNavigationCue(cue: {
|
|
146
|
+
anchor: {
|
|
147
|
+
longitude: number;
|
|
148
|
+
latitude: number;
|
|
149
|
+
altitude: number;
|
|
150
|
+
};
|
|
151
|
+
arc: readonly (readonly [number, number, number])[];
|
|
152
|
+
marker: readonly [number, number, number] | null;
|
|
153
|
+
state: "valid" | "blocked" | "unknown";
|
|
154
|
+
} | null): void;
|
|
155
|
+
/** @param {readonly string[]} credits Current Cesium World Terrain asset credits. */
|
|
156
|
+
setXRAttribution(credits: readonly string[]): void;
|
|
157
|
+
/** @param {number} opacity Black headset fade, 0 to 1. */
|
|
158
|
+
setXRNavigationFade(opacity: number): void;
|
|
83
159
|
set keysEnabled(enabled: boolean);
|
|
84
160
|
get keysEnabled(): boolean;
|
|
85
161
|
updateMovementState(): void;
|
|
@@ -175,6 +251,20 @@ declare class Viewer extends EventDispatcher {
|
|
|
175
251
|
* @param {number} [duration]
|
|
176
252
|
*/
|
|
177
253
|
focusCamera(lon: number, lat: number, alt: number, distance?: number, pitch?: number, duration?: number): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Temporarily load Google 3D tiles around a WGS84 destination without changing the live view.
|
|
256
|
+
* Position and altitude use degrees and WGS84 ellipsoidal metres; rotation uses degrees.
|
|
257
|
+
* @param {{longitude:number, latitude:number, altitude:number, pitch:number, yaw:number, roll:number, resolutionPixels:128|256} | null} target
|
|
258
|
+
*/
|
|
259
|
+
setDestinationTilePrefetch(target: {
|
|
260
|
+
longitude: number;
|
|
261
|
+
latitude: number;
|
|
262
|
+
altitude: number;
|
|
263
|
+
pitch: number;
|
|
264
|
+
yaw: number;
|
|
265
|
+
roll: number;
|
|
266
|
+
resolutionPixels: 128 | 256;
|
|
267
|
+
} | null): void;
|
|
178
268
|
/**
|
|
179
269
|
* @param {number} [pitch]
|
|
180
270
|
* @param {number} [yaw]
|
|
@@ -195,8 +285,10 @@ export namespace ViewerEvents {
|
|
|
195
285
|
let CONTENT_LAYER_LOAD_PROGRESS: "content-layer-load-progress";
|
|
196
286
|
let CONTENT_LAYER_READY: "content-layer-ready";
|
|
197
287
|
let CONTENT_LAYER_ERROR: "content-layer-error";
|
|
288
|
+
let GLOBE_TILE_LOADED: "globe-tile-loaded";
|
|
198
289
|
}
|
|
199
290
|
import { EventDispatcher } from '../modules/EventDispatcher';
|
|
291
|
+
import { WebXRSession } from './WebXRSession.js';
|
|
200
292
|
import { StateDispatcher } from '../modules/StateDispatcher';
|
|
201
293
|
import { WebGLRenderer } from 'three';
|
|
202
294
|
import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer.js';
|
package/build/viewer.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./main-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./main-DOWS9MQ7.cjs"),t=require("./index-XZNzHig1.cjs");exports.Viewer=e.Viewer,exports.ViewerEvents=e.ViewerEvents,exports.computeElevation=t.computeElevation;
|
package/build/viewer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { V, a } from "./main-
|
|
2
|
-
import {
|
|
1
|
+
import { V, a } from "./main-CEG3MR57.js";
|
|
2
|
+
import { by } from "./index-a8PLKOvo.js";
|
|
3
3
|
export {
|
|
4
4
|
V as Viewer,
|
|
5
5
|
a as ViewerEvents,
|
|
6
|
-
|
|
6
|
+
by as computeElevation
|
|
7
7
|
};
|