@splnlss/3d-story-viewer 0.8.2 → 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.js +1 -1
- package/build/{index-BgprA821.js → index-a8PLKOvo.js} +33 -33
- package/build/{main-BUCkukV4.js → main-CEG3MR57.js} +6325 -6178
- package/build/main-DOWS9MQ7.cjs +1 -0
- package/build/{spark.module-T7c-X7OV.js → spark.module-CHPihKhu.js} +2 -2
- package/build/{spark.module-CKmN4uMZ.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 +2 -0
- package/build/types/src/viewer/XRPlayerRig.d.ts +52 -8
- package/build/types/src/viewer/XRRenderBridge.d.ts +2 -0
- package/build/types/src/viewer/index.d.ts +22 -12
- package/build/viewer.cjs +1 -1
- package/build/viewer.js +2 -2
- package/package.json +1 -1
- package/build/main-yri0wVzb.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';
|
|
@@ -23,6 +23,7 @@ export class WebXRSession {
|
|
|
23
23
|
starting: any;
|
|
24
24
|
bridge: {
|
|
25
25
|
getHeadPose: () => import("./XRPlayerRig.js").XRHeadPose;
|
|
26
|
+
getHeadForward: () => import("three").Vector3Tuple;
|
|
26
27
|
getControllerWorldRay: (controller: any) => {
|
|
27
28
|
origin: import("three").Vector3Tuple;
|
|
28
29
|
direction: import("three").Vector3Tuple;
|
|
@@ -30,6 +31,7 @@ export class WebXRSession {
|
|
|
30
31
|
setNavigationCue: (cue: any) => void;
|
|
31
32
|
setTerrainCredits: (credits: any) => void;
|
|
32
33
|
setPlayerPose(pose: any): void;
|
|
34
|
+
setVisualBlend(blend: any): void;
|
|
33
35
|
hasUi(): boolean;
|
|
34
36
|
setNavigationLimit(reason: any): void;
|
|
35
37
|
setComfortMoving(moving: any): void;
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
/** @typedef {{worldEcef: [number, number, number], geodetic: {longitude: number, latitude: number, altitude: number}, headingDegrees: number, localHeadOffset: [number, number, number]}} XRHeadPose */
|
|
2
1
|
/** Keeps metre-scale tracked poses separate from double-precision WGS84 ECEF positions. */
|
|
3
2
|
export class XRPlayerRig {
|
|
4
3
|
/** @param {Matrix4} initialCameraWorld @param {XRRigidTransform} initialHeadPose */
|
|
5
4
|
constructor(initialCameraWorld: Matrix4, initialHeadPose: XRRigidTransform);
|
|
6
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;
|
|
7
16
|
worldFromLocal: Matrix4;
|
|
8
17
|
anchor: {
|
|
9
18
|
longitude: number;
|
|
@@ -14,6 +23,18 @@ export class XRPlayerRig {
|
|
|
14
23
|
updateHeadPose(pose: XRRigidTransform): void;
|
|
15
24
|
getWorldFromLocalMatrix(): Matrix4;
|
|
16
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
|
+
};
|
|
17
38
|
/** @returns {XRHeadPose} WGS84 degrees, ellipsoidal altitude metres, ECEF metres, local-floor metres. */
|
|
18
39
|
getHeadPose(): XRHeadPose;
|
|
19
40
|
getNavigationFrame(): Matrix4;
|
|
@@ -26,13 +47,10 @@ export class XRPlayerRig {
|
|
|
26
47
|
* Places the tracked head at a WGS84 ellipsoidal position plus ENU metres.
|
|
27
48
|
* Heading is clockwise degrees from true north. Physical room-scale motion remains tracked.
|
|
28
49
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
up?: number;
|
|
34
|
-
headingDegrees: any;
|
|
35
|
-
}): void;
|
|
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;
|
|
36
54
|
reanchor(headingDegrees: any): void;
|
|
37
55
|
}
|
|
38
56
|
export type XRHeadPose = {
|
|
@@ -44,5 +62,31 @@ export type XRHeadPose = {
|
|
|
44
62
|
};
|
|
45
63
|
headingDegrees: number;
|
|
46
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;
|
|
47
91
|
};
|
|
48
92
|
import { Matrix4 } from 'three';
|
|
@@ -9,6 +9,7 @@ export function createXRRenderBridge(viewer: import("./index.js").default, initi
|
|
|
9
9
|
showAttribution?: boolean;
|
|
10
10
|
}): {
|
|
11
11
|
getHeadPose: () => import("./XRPlayerRig.js").XRHeadPose;
|
|
12
|
+
getHeadForward: () => import("three").Vector3Tuple;
|
|
12
13
|
getControllerWorldRay: (controller: any) => {
|
|
13
14
|
origin: import("three").Vector3Tuple;
|
|
14
15
|
direction: import("three").Vector3Tuple;
|
|
@@ -16,6 +17,7 @@ export function createXRRenderBridge(viewer: import("./index.js").default, initi
|
|
|
16
17
|
setNavigationCue: (cue: any) => void;
|
|
17
18
|
setTerrainCredits: (credits: any) => void;
|
|
18
19
|
setPlayerPose(pose: any): void;
|
|
20
|
+
setVisualBlend(blend: any): void;
|
|
19
21
|
hasUi(): boolean;
|
|
20
22
|
setNavigationLimit(reason: any): void;
|
|
21
23
|
setComfortMoving(moving: any): void;
|
|
@@ -46,6 +46,7 @@ declare class Viewer extends EventDispatcher {
|
|
|
46
46
|
transitionControls: TransitionControls;
|
|
47
47
|
tileDecoders: TileDecoders;
|
|
48
48
|
globeManager: GlobeManager;
|
|
49
|
+
_onGlobeTileLoaded: () => void;
|
|
49
50
|
/** @type {ViewerCoords} */
|
|
50
51
|
cameraCoords: ViewerCoords;
|
|
51
52
|
/** @type {ViewerCoords} */
|
|
@@ -118,20 +119,14 @@ declare class Viewer extends EventDispatcher {
|
|
|
118
119
|
};
|
|
119
120
|
}[];
|
|
120
121
|
};
|
|
121
|
-
/** @param {
|
|
122
|
-
setXRPlayerPose(pose:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
latitude: number;
|
|
126
|
-
altitude: number;
|
|
127
|
-
};
|
|
128
|
-
east?: number;
|
|
129
|
-
north?: number;
|
|
130
|
-
up?: number;
|
|
131
|
-
headingDegrees: number;
|
|
132
|
-
}): void;
|
|
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;
|
|
133
126
|
/** @returns {import('./XRPlayerRig.js').XRHeadPose | null} */
|
|
134
127
|
getXRHeadPose(): import("./XRPlayerRig.js").XRHeadPose | null;
|
|
128
|
+
/** @returns {number[] | null} Displayed head-forward unit vector in WGS84 ECEF axes. */
|
|
129
|
+
getXRHeadForward(): number[] | null;
|
|
135
130
|
/** @param {{ray: {position: number[], orientation: number[]} | null}} controller @returns {{origin: number[], direction: number[]} | null} */
|
|
136
131
|
getXRControllerWorldRay(controller: {
|
|
137
132
|
ray: {
|
|
@@ -256,6 +251,20 @@ declare class Viewer extends EventDispatcher {
|
|
|
256
251
|
* @param {number} [duration]
|
|
257
252
|
*/
|
|
258
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;
|
|
259
268
|
/**
|
|
260
269
|
* @param {number} [pitch]
|
|
261
270
|
* @param {number} [yaw]
|
|
@@ -276,6 +285,7 @@ export namespace ViewerEvents {
|
|
|
276
285
|
let CONTENT_LAYER_LOAD_PROGRESS: "content-layer-load-progress";
|
|
277
286
|
let CONTENT_LAYER_READY: "content-layer-ready";
|
|
278
287
|
let CONTENT_LAYER_ERROR: "content-layer-error";
|
|
288
|
+
let GLOBE_TILE_LOADED: "globe-tile-loaded";
|
|
279
289
|
}
|
|
280
290
|
import { EventDispatcher } from '../modules/EventDispatcher';
|
|
281
291
|
import { WebXRSession } from './WebXRSession.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