@splnlss/3d-story-viewer 0.5.7 → 0.7.0

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.
@@ -0,0 +1,40 @@
1
+ export function requireFiniteNumber(value: any, field: any): any;
2
+ export function validateLongitudeLatitude(longitude: any, latitude: any, field?: string): void;
3
+ export function validateGeodeticPosition(longitude: any, latitude: any, altitude: any, field?: string): {
4
+ longitude: any;
5
+ latitude: any;
6
+ altitude: any;
7
+ };
8
+ export function validateRotation(pitch: any, yaw: any, roll: any, field?: string): {
9
+ pitch: any;
10
+ yaw: any;
11
+ roll: any;
12
+ };
13
+ export function validateTuple(value: any, field: any): any[];
14
+ export function validateScale(value: any, field?: string): any;
15
+ export function normalizeLayerOffset(offset: any, field?: string): {
16
+ lon: any;
17
+ lat: any;
18
+ alt: any;
19
+ };
20
+ export function validateEcefPosition(x: any, y: any, z: any): any[];
21
+ export function geodeticToEcefPosition(longitude: any, latitude: any, altitude: any): number[];
22
+ export function ecefToGeodeticPosition(x: any, y: any, z: any): {
23
+ lon: number;
24
+ lat: number;
25
+ alt: number;
26
+ };
27
+ export function getEnuBasis(longitude: any, latitude: any): {
28
+ east: number[];
29
+ north: number[];
30
+ up: number[];
31
+ };
32
+ export function enuToEcefDelta(translation: any, longitude: any, latitude: any): number[];
33
+ export function geodeticOffsetToEcefDelta(position: any, offset: any): [number, number, number];
34
+ export const WGS84_SEMI_MAJOR_AXIS_METERS: 6378137;
35
+ export const WGS84_INVERSE_FLATTENING: 298.257223563;
36
+ export const WGS84_FLATTENING: number;
37
+ export const WGS84_SEMI_MINOR_AXIS_METERS: number;
38
+ export const WGS84_FIRST_ECCENTRICITY_SQUARED: number;
39
+ export const MIN_ELLIPSOIDAL_HEIGHT_METERS: -12000;
40
+ export const MAX_ELLIPSOIDAL_HEIGHT_METERS: 100000;
@@ -1,4 +1,23 @@
1
1
  export type Vector3Tuple = [number, number, number];
2
+ export type LabelOptions = {
3
+ /**
4
+ * WGS84 longitude in decimal degrees.
5
+ */
6
+ lon: number;
7
+ /**
8
+ * WGS84 latitude in decimal degrees.
9
+ */
10
+ lat: number;
11
+ /**
12
+ * WGS84 ellipsoidal height in meters.
13
+ */
14
+ alt: number;
15
+ text?: string;
16
+ element?: HTMLElement;
17
+ visible?: boolean;
18
+ hovered?: boolean;
19
+ selected?: boolean;
20
+ };
2
21
  export type ViewerOptions = {
3
22
  cesiumToken?: string;
4
23
  googleMapsToken?: string;
@@ -38,6 +57,9 @@ export type TilesLayerDefinition = {
38
57
  data: {
39
58
  url: string;
40
59
  };
60
+ /**
61
+ * Offset longitude/latitude are WGS84 decimal degrees; altitude is ellipsoidal meters.
62
+ */
41
63
  options?: {
42
64
  renderOrder?: number;
43
65
  implicit?: boolean;
@@ -58,6 +80,9 @@ export type MeshLayerDefinition = {
58
80
  data: {
59
81
  url: string;
60
82
  };
83
+ /**
84
+ * Nonzero offsets require an explicit WGS84 offsetOrigin. Longitude/latitude are decimal degrees; altitude is ellipsoidal meters. The offset translates existing geometry in ECEF; it does not georeference a local model.
85
+ */
61
86
  options?: {
62
87
  renderOrder?: number;
63
88
  offset?: {
@@ -65,6 +90,11 @@ export type MeshLayerDefinition = {
65
90
  lat?: number;
66
91
  alt?: number;
67
92
  };
93
+ offsetOrigin?: {
94
+ longitude: number;
95
+ latitude: number;
96
+ altitude: number;
97
+ };
68
98
  };
69
99
  };
70
100
  export type GeojsonLayerDefinition = {
@@ -1,5 +1,5 @@
1
1
  export class GeojsonLayer extends ContentLayer {
2
- constructor(data: any, options?: {});
2
+ constructor(data: any, options?: {}, callbacks?: {});
3
3
  isGeojsonLayer: boolean;
4
4
  setTimeFrame(start: any, end: any): void;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  export class MeshLayer extends ContentLayer {
2
- constructor(url: any, options?: {});
2
+ constructor(url: any, options?: {}, callbacks?: {});
3
3
  isMeshLayer: boolean;
4
4
  mesh: any;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  export class TilesLayer extends ContentLayer {
2
- constructor(url: any, options?: {});
2
+ constructor(url: any, options?: {}, callbacks?: {});
3
3
  isTilesLayer: boolean;
4
4
  firstSet: any;
5
5
  camera: any;
@@ -50,7 +50,11 @@ declare class Viewer extends EventDispatcher {
50
50
  pointerCoords: ViewerCoords;
51
51
  pointerXYZ: any;
52
52
  keysDown: {};
53
- keysEnabled: boolean;
53
+ _keysEnabled: boolean;
54
+ /** Camera-relative translation speed in WGS84 ECEF metres/second. */
55
+ movementSpeed: number;
56
+ /** Dimensionless multiplier while BOOST is held. */
57
+ boostMultiplier: number;
54
58
  movementKeys: {
55
59
  BOOST: string[];
56
60
  FRONT: string[];
@@ -75,13 +79,24 @@ declare class Viewer extends EventDispatcher {
75
79
  sky: Sky;
76
80
  pointerRaycaster: any;
77
81
  _onPointerMove: (event: any) => void;
82
+ set keysEnabled(enabled: boolean);
83
+ get keysEnabled(): boolean;
78
84
  updateMovementState(): void;
79
- getElevation(lon: any, lat: any): {
85
+ /**
86
+ * @param {number} lon
87
+ * @param {number} lat
88
+ * @returns {{ lon: number, lat: number, alt: number }}
89
+ */
90
+ getElevation(lon: number, lat: number): {
80
91
  lon: number;
81
92
  lat: number;
82
93
  alt: number;
83
94
  };
84
- updateCoordsElevation(coords: any): any;
95
+ /**
96
+ * @param {[number, number, number?][]} coords
97
+ * @returns {[number, number, number?][]}
98
+ */
99
+ updateCoordsElevation(coords: [number, number, number?][]): [number, number, number?][];
85
100
  setBackgroundColor(color: any): void;
86
101
  appendTo(container: any): void;
87
102
  container: any;
@@ -100,12 +115,48 @@ declare class Viewer extends EventDispatcher {
100
115
  setTimeFrame(start: any, end: any): void;
101
116
  timeFrameStart: Date;
102
117
  timeFrameEnd: Date;
103
- updateLabel(id: any, params?: {}): any;
118
+ /**
119
+ * @param {string} id
120
+ * @param {{ lon: number, lat: number, alt: number, text?: string, element?: HTMLElement, visible?: boolean, hovered?: boolean, selected?: boolean }} params
121
+ * @returns {HTMLElement}
122
+ */
123
+ updateLabel(id: string, params: {
124
+ lon: number;
125
+ lat: number;
126
+ alt: number;
127
+ text?: string;
128
+ element?: HTMLElement;
129
+ visible?: boolean;
130
+ hovered?: boolean;
131
+ selected?: boolean;
132
+ }): HTMLElement;
104
133
  animate(time: any): void;
105
134
  render(): void;
106
135
  getCameraPivot(): any;
107
- alignCamera(lon: any, lat: any, alt: any, pitch?: number, yaw?: number, roll?: number, duration?: number): Promise<void>;
108
- focusCamera(lon: any, lat: any, alt: any, distance?: number, pitch?: number, duration?: number): Promise<void>;
136
+ /**
137
+ * @param {number} lon
138
+ * @param {number} lat
139
+ * @param {number} alt
140
+ * @param {number} [pitch]
141
+ * @param {number} [yaw]
142
+ * @param {number} [roll]
143
+ * @param {number} [duration]
144
+ */
145
+ alignCamera(lon: number, lat: number, alt: number, pitch?: number, yaw?: number, roll?: number, duration?: number): Promise<void>;
146
+ /**
147
+ * @param {number} lon
148
+ * @param {number} lat
149
+ * @param {number} alt
150
+ * @param {number} [distance]
151
+ * @param {number} [pitch]
152
+ * @param {number} [duration]
153
+ */
154
+ focusCamera(lon: number, lat: number, alt: number, distance?: number, pitch?: number, duration?: number): Promise<void>;
155
+ /**
156
+ * @param {number} [pitch]
157
+ * @param {number} [yaw]
158
+ * @param {number} [duration]
159
+ */
109
160
  angleCamera(pitch?: number, yaw?: number, duration?: number): Promise<void>;
110
161
  setViewMode(mode?: string): Promise<void>;
111
162
  exportScene(): void;
@@ -0,0 +1,4 @@
1
+ /** Apply camera-relative translation to a WGS84 ECEF position (metres).
2
+ * Speed is metres/second; deltaTime is seconds; boost is dimensionless.
3
+ */
4
+ export function applyKeyboardMovement(position: any, forward: any, right: any, up: any, state: any, deltaTime: any, movementSpeed: any, boostMultiplier: any): void;
@@ -1,9 +1,3 @@
1
- export function ecefToGeodeticPosition(x: any, y: any, z: any): {
2
- lon: number;
3
- lat: number;
4
- alt: number;
5
- };
6
- export function geodeticToEcefPosition(lon: any, lat: any, alt: any): number[];
7
1
  export function ecefToGeodeticRotation(x: any, y: any, z: any, quaternion: any): {
8
2
  lon: number;
9
3
  lat: number;
@@ -15,3 +9,4 @@ export function ecefToGeodeticRotation(x: any, y: any, z: any, quaternion: any):
15
9
  export function geodeticToEcefUpVector(lon: any, lat: any): any;
16
10
  export function geodeticToEcefRotation(lon: any, lat: any, pitch: any, yaw: any, roll: any): any;
17
11
  export function exportScene(root: any): void;
12
+ export { ecefToGeodeticPosition, geodeticToEcefPosition } from "../geospatial.js";
@@ -1,2 +1,15 @@
1
+ export function createArrowGeometry(data: any): {
2
+ origin: any;
3
+ meshVertexBuffer: Float32Array<any>;
4
+ };
5
+ export function createPerimeterGeometry(data: any, color: any): {
6
+ origin: any;
7
+ lineVertexBuffer: Float32Array<any>;
8
+ lineVertexRGBBuffer: Uint8Array<ArrayBuffer>;
9
+ meshVertexBuffer: Float32Array<any>;
10
+ meshVertexRGBBuffer: Uint8Array<ArrayBuffer>;
11
+ meshIndexBuffer: Uint16Array<any>;
12
+ };
13
+ export const MAX_FEATURE_EXTENT_METERS: 50000;
1
14
  declare const self: Window & typeof globalThis;
2
15
  export default self;
@@ -1,6 +1,15 @@
1
1
  export default computeElevation;
2
- declare function computeElevation(lon: any, lat: any, options: any): Promise<{
2
+ /**
3
+ * @param {number} lon WGS84 longitude in decimal degrees.
4
+ * @param {number} lat WGS84 latitude in decimal degrees.
5
+ * @param {{ apiKey?: string, maxDepth?: number }} [options]
6
+ * @returns {Promise<{ lon: number, lat: number, alt: number } | null | undefined>}
7
+ */
8
+ declare function computeElevation(lon: number, lat: number, options?: {
9
+ apiKey?: string;
10
+ maxDepth?: number;
11
+ }): Promise<{
3
12
  lon: number;
4
13
  lat: number;
5
14
  alt: number;
6
- }>;
15
+ } | null | undefined>;
@@ -1,9 +1,3 @@
1
- export function ecefToGeodeticPosition(x: any, y: any, z: any): {
2
- lon: number;
3
- lat: number;
4
- alt: number;
5
- };
6
- export function geodeticToEcefPosition(lon: any, lat: any, alt: any): number[];
7
1
  export function buildTileUrl(path: any, apiKey: any): URL;
8
2
  export function fetchTileset(url: any, apiKey: any): Promise<any>;
9
3
  export function obbToBox(obb: any): {
@@ -41,3 +35,4 @@ export namespace logColors {
41
35
  let bgWhite: string;
42
36
  }
43
37
  export let sessionKeyCache: any;
38
+ export { ecefToGeodeticPosition, geodeticToEcefPosition } from "../../src/geospatial.js";