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

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/README.md CHANGED
@@ -75,6 +75,38 @@ viewer.enableContentLayers(['default']);
75
75
  viewer.alignCamera(-105.18896, 39.93, 9000);
76
76
  ```
77
77
 
78
+ ## Gaussian Splat Layers
79
+
80
+ Gaussian splat content layers support `ply`, `sog`, `spz`, and `rad` data. Every
81
+ layer uses an explicit WGS84 anchor plus an optional local ENU transform:
82
+
83
+ ```js
84
+ viewer.defineContentLayers([
85
+ {
86
+ id: 'site-scan',
87
+ name: 'Site scan',
88
+ type: 'gaussian-splat',
89
+ labels: ['default'],
90
+ data: { url: 'https://assets.example.com/site.rad', format: 'rad' },
91
+ options: {
92
+ transform: {
93
+ anchor: { longitude: -105.1, latitude: 40.1, altitude: 1600 },
94
+ translationENU: [0, 0, 0],
95
+ rotationDegrees: [0, 0, 0],
96
+ scale: 1,
97
+ },
98
+ },
99
+ },
100
+ ]);
101
+ ```
102
+
103
+ PLY, SOG, and SPZ files stream directly and report byte progress. RAD uses
104
+ Spark's paged loader: becoming ready means its metadata is valid and LOD
105
+ streaming can begin, while detail continues to load in response to the camera.
106
+ RAD hosts must support HTTP byte ranges and cross-origin `GET`/`HEAD` requests.
107
+ Expose `Content-Length`, `Content-Range`, and `Accept-Ranges`; relative RAD
108
+ sidecar files must use the same policy.
109
+
78
110
  ## Environment Variables
79
111
 
80
112
  Viewer tokens can be passed directly in the constructor or provided through Vite environment variables:
@@ -1,4 +1,12 @@
1
1
  export type Vector3Tuple = [number, number, number];
2
+ export type ViewerOptions = {
3
+ cesiumToken?: string;
4
+ googleMapsToken?: string;
5
+ /**
6
+ * Defaults to true.
7
+ */
8
+ transparentBackground?: boolean;
9
+ };
2
10
  export type GaussianSplatLayerDefinition = {
3
11
  id: string;
4
12
  name: string;
@@ -6,7 +14,7 @@ export type GaussianSplatLayerDefinition = {
6
14
  labels: string[];
7
15
  data: {
8
16
  url: string;
9
- format: "ply" | "sog";
17
+ format: "ply" | "sog" | "spz" | "rad";
10
18
  };
11
19
  options: {
12
20
  renderOrder?: 0;
@@ -11,6 +11,8 @@ export class GaussianSplatLayer extends ContentLayer {
11
11
  visible: boolean;
12
12
  transformMatrix: any;
13
13
  load(): Promise<void>;
14
+ createPagedMesh(): SplatMesh;
15
+ createDirectMesh(attempt: any): Promise<SplatMesh>;
14
16
  disposeMesh(mesh: any): void;
15
17
  }
16
18
  import { ContentLayer } from '.';
@@ -4,8 +4,14 @@ export class TransitionControls extends EventDispatcher {
4
4
  lookAt: any;
5
5
  cameraTween: any;
6
6
  lookAtTween: any;
7
+ activeTransition: {
8
+ resolve: (value: any) => void;
9
+ toPosition: any;
10
+ toQuaternion: any;
11
+ };
7
12
  is2D: boolean;
8
13
  animateTo(position: any, quaternion: any, duration?: number): Promise<any>;
14
+ complete(transition: any): void;
9
15
  update(time: any): void;
10
16
  cancel(): void;
11
17
  cameraUpTween: any;
@@ -16,11 +16,16 @@ export type ViewerCoords = {
16
16
  * @property {number} [roll]
17
17
  */
18
18
  declare class Viewer extends EventDispatcher {
19
- constructor(container: any, options?: {});
19
+ /**
20
+ * @param {HTMLElement | null} container
21
+ * @param {import('../main.js').ViewerOptions} [options]
22
+ */
23
+ constructor(container: HTMLElement | null, options?: import("../main.js").ViewerOptions);
20
24
  isViewer: boolean;
21
25
  type: string;
22
26
  disposed: boolean;
23
27
  sparkRenderer: SparkRenderer;
28
+ transparentBackground: boolean;
24
29
  state: StateDispatcher;
25
30
  renderer: any;
26
31
  css2DRenderer: any;
@@ -102,7 +107,7 @@ declare class Viewer extends EventDispatcher {
102
107
  alignCamera(lon: any, lat: any, alt: any, pitch?: number, yaw?: number, roll?: number, duration?: number): Promise<void>;
103
108
  focusCamera(lon: any, lat: any, alt: any, distance?: number, pitch?: number, duration?: number): Promise<void>;
104
109
  angleCamera(pitch?: number, yaw?: number, duration?: number): Promise<void>;
105
- setViewMode(mode?: string): void;
110
+ setViewMode(mode?: string): Promise<void>;
106
111
  exportScene(): void;
107
112
  saveScreenshot(name?: string): void;
108
113
  dispose(): void;