@speridlabs/visus 2.3.0 → 2.4.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.
package/dist/main.d.ts CHANGED
@@ -1,347 +1,335 @@
1
- import * as THREE from 'three';
2
-
3
- /**
4
- * Simplified bounding box class that tracks min/max points
5
- */
6
- export declare class BoundingBox {
7
- min: THREE.Vector3;
8
- max: THREE.Vector3;
9
- center: THREE.Vector3;
10
- /** Half extents (size/2) */
11
- halfExtents: THREE.Vector3;
12
- /**
13
- * Reset the bounding box to its initial state
14
- */
15
- reset(): void;
16
- /**
17
- * Expand the bounding box to include the given point
18
- * @param point Point to include in the bounding box
19
- */
20
- expandByPoint(point: THREE.Vector3): void;
21
- /**
22
- * Expand this bounding box to include another bounding box
23
- * @param box Bounding box to include
24
- */
25
- expandByBox(box: BoundingBox): void;
26
- /**
27
- * Update the center and half extents based on min/max
28
- */
29
- private updateDerived;
30
- /**
31
- * Check if this box contains a point
32
- * @param point Point to check
33
- * @returns True if the point is inside the box
34
- */
35
- containsPoint(point: THREE.Vector3): boolean;
36
- /**
37
- * Create a Three.js Box3 from this bounding box
38
- * @returns THREE.Box3 representation
39
- */
40
- toBox3(): THREE.Box3;
41
- /**
42
- * Create a clone of this bounding box
43
- * @returns New bounding box with the same values
44
- */
45
- clone(): BoundingBox;
46
- }
47
-
48
- /**
49
- * Class for loading PLY files with Gaussian Splat data
50
- */
51
- export declare class PlyLoader extends THREE.Loader {
52
- private requestId;
53
- private worker;
54
- private pendingCallbacks;
55
- constructor(manager?: THREE.LoadingManager);
56
- /**
57
- * Handles messages received from the parsing worker
58
- * @param event The message event from the worker
59
- */
60
- private onWorkerMessage;
61
- /**
62
- * Load a PLY file with Gaussian Splat data
63
- * @param url URL of the PLY file
64
- * @param onLoad Optional callback when loading is complete
65
- * @param onProgress Optional progress callback
66
- * @param onError Optional error callback
67
- */
68
- load(url: string, onLoad?: (data: SplatData) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
69
- /**
70
- * Load a PLY file asynchronously and return a Promise
71
- * @param url URL of the PLY file
72
- * @param onProgress Optional progress callback
73
- * @returns A Promise that resolves with the parsed SplatData
74
- */
75
- loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<SplatData>;
76
- /**
77
- * Parse PLY buffer data asynchronously using Web Worker
78
- * @param buffer ArrayBuffer containing PLY data
79
- * @returns Promise that resolves with parsed SplatData
80
- */
81
- private parseAsync;
82
- /**
83
- * Terminate the Web Worker and clean up resources
84
- */
85
- dispose(): void;
86
- /**
87
- * Creates the self-contained code for the parsing Web Worker
88
- * @returns A string containing the JavaScript code for the worker
89
- */
90
- private createWorkerCode;
91
- }
92
-
93
- export declare class SplatData {
94
- numSplats: number;
95
- positions: Float32Array;
96
- rotations: Float32Array;
97
- scales: Float32Array;
98
- colors: Float32Array;
99
- opacities: Float32Array;
100
- boundingBox: BoundingBox;
101
- constructor(numSplats?: number);
102
- private allocateBuffers;
103
- /**
104
- * Set data for a specific splat
105
- * @param index Splat index
106
- * @param position Position vector
107
- * @param rotation Quaternion
108
- * @param scale Scale vector (expects LOG SCALE)
109
- * @param color Color
110
- * @param opacity Opacity value
111
- */
112
- setSplat(index: number, position: THREE.Vector3, rotation: THREE.Quaternion, scale: THREE.Vector3, color: THREE.Color, opacity: number): void;
113
- /**
114
- * Get a splat's data
115
- * @param index Splat index
116
- * @returns Object containing splat data (linear scale)
117
- */
118
- getSplat(index: number): {
119
- position: THREE.Vector3;
120
- rotation: THREE.Quaternion;
121
- scale: THREE.Vector3;
122
- color: THREE.Color;
123
- opacity: number;
124
- };
125
- /**
126
- * Calculate the bounding box for all splats
127
- * NOTE: Currently it only uses positions, not the actual splat bounds
128
- */
129
- calculateBoundingBox(): BoundingBox;
130
- /**
131
- * Create a Three.js BufferGeometry from this splat data
132
- * This is for visualization/debugging purposes only, not for rendering
133
- */
134
- createDebugGeometry(): THREE.BufferGeometry;
135
- }
136
-
137
- export declare class SplatMaterial extends THREE.ShaderMaterial {
138
- constructor(options?: SplatMaterialOptions);
139
- /**
140
- * Update the viewport size
141
- * @param width Viewport width
142
- * @param height Viewport height
143
- */
144
- updateViewport(width: number, height: number): void;
145
- /**
146
- * Set transform texture A (positions)
147
- * @param texture Texture containing positions
148
- */
149
- setTransformA(texture: THREE.Texture): void;
150
- /**
151
- * Set transform texture B (rotation, scale)
152
- * @param texture Texture containing rotation and scale data
153
- */
154
- setTransformB(texture: THREE.Texture): void;
155
- /**
156
- * Set color texture
157
- * @param texture Texture containing colors
158
- */
159
- setColorTexture(texture: THREE.Texture): void;
160
- /**
161
- * Set order texture
162
- * @param texture Texture containing sort order
163
- */
164
- setOrderTexture(texture: THREE.Texture): void;
165
- /**
166
- * Set number of splats to render
167
- * @param count Number of splats
168
- */
169
- setNumSplats(count: number): void;
170
- }
171
-
172
- export declare interface SplatMaterialOptions {
173
- alphaTest?: number;
174
- alphaHash?: boolean;
175
- toneMapped?: boolean;
176
- }
177
-
178
- /**
179
- * A mesh that renders Gaussian splats
180
- * Not a real MESH, but a custom geometry with instancing
181
- */
182
- export declare class SplatMesh extends THREE.Mesh {
183
- sorter: SplatSorter;
184
- splatData: SplatData | null;
185
- options: SplatMeshOptions;
186
- textureManager: TextureManager;
187
- material: SplatMaterial;
188
- geometry: THREE.InstancedBufferGeometry;
189
- private lastCameraPositionLocal;
190
- private lastCameraDirectionLocal;
191
- private invModelMatrix;
192
- private _vpW;
193
- private _vpH;
194
- private _size;
195
- private _camPosW;
196
- private _camDirW;
197
- private _camPosL;
198
- private _camDirL;
199
- /** Number of splats combined into a single instanced draw call. */
200
- private static INSTANCE_SIZE;
201
- /**
202
- * Create a new SplatMesh for rendering Gaussian splats
203
- * @param splatData The splat data to render
204
- * @param options Rendering options
205
- */
206
- constructor(splatData: SplatData, options?: SplatMeshOptions);
207
- private onSorterUpdated;
208
- /**
209
- * Creates the instanced geometry for rendering splats.
210
- * @param totalSplats Total number of splats in the data.
211
- * @param instanceSize Number of splats per instance.
212
- * @returns InstancedBufferGeometry
213
- */
214
- private static createInstancedGeometry;
215
- /**
216
- * Create chunks data (bounding box min/max) for the sorter.
217
- * @returns Float32Array containing chunk data [minX, minY, minZ, maxX, maxY, maxZ] or null.
218
- */
219
- private createChunks;
220
- /**
221
- * Update the viewport size
222
- * @param width Viewport width
223
- * @param height Viewport height
224
- */
225
- updateViewport(width: number, height: number): void;
226
- /**
227
- * Sorts splats based on camera position and direction.
228
- * @param camera The camera to sort against.
229
- */
230
- sort(camera: THREE.Camera): void;
231
- /**
232
- * THREE.js hook called before rendering the object.
233
- * Used here to trigger sorting and update viewport.
234
- * @param renderer The renderer
235
- * @param scene The scene
236
- * @param camera The camera
237
- */
238
- onBeforeRender(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera): void;
239
- /**
240
- * Dispose of resources
241
- */
242
- dispose(): void;
243
- }
244
-
245
- export declare interface SplatMeshOptions extends SplatMaterialOptions {
246
- autoSort?: boolean;
247
- keepSplatData?: boolean;
248
- }
249
-
250
- /**
251
- * Manages sorting of splats based on camera view using a Web Worker.
252
- */
253
- export declare class SplatSorter extends THREE.EventDispatcher<{
254
- updated: SplatSortUpdateEvent;
255
- }> {
256
- private worker;
257
- private centers;
258
- private orderTexture;
259
- /** Bounding box data for optimization */
260
- private chunks;
261
- private lastCameraPosition;
262
- private lastCameraDirection;
263
- constructor();
264
- /**
265
- * Handles messages received from the sorting worker.
266
- * @param event The message event from the worker.
267
- */
268
- private onWorkerMessage;
269
- /**
270
- * Initializes the sorter with necessary data and textures.
271
- * @param orderTexture The THREE.DataTexture (R32UI) to store the sorted splat indices.
272
- * @param centers A Float32Array containing the center position (x, y, z) for each splat.
273
- * @param chunks Optional: A Float32Array containing bounding box chunk data [minX, minY, minZ, maxX, maxY, maxZ, ...] for optimization.
274
- * @param transferOwnership Optional: If true, transfers ownership of centers buffer to worker (saves memory, main thread loses access). Default: false.
275
- */
276
- init(orderTexture: THREE.DataTexture, centers: Float32Array, chunks?: Float32Array, transferOwnership?: boolean): void;
277
- /**
278
- * Applies an optional mapping to filter or reorder splats before sorting.
279
- * The sorter will only consider splats whose original indices are present in the mapping.
280
- * @param mapping A Uint32Array where each element is the *original* index of a splat to include, or null to reset mapping.
281
- */
282
- setMapping(mapping: Uint32Array | null): void;
283
- /**
284
- * Updates the camera parameters used for sorting.
285
- * @param position The camera's position in the sorter's local coordinate space.
286
- * @param direction The camera's forward direction in the sorter's local coordinate space.
287
- */
288
- setCamera(position: THREE.Vector3, direction: THREE.Vector3): void;
289
- /**
290
- * Terminates the Web Worker and cleans up resources.
291
- */
292
- dispose(): void;
293
- /**
294
- * Creates the self-contained code for the sorting Web Worker.
295
- * @returns A string containing the JavaScript code for the worker.
296
- */
297
- private createWorkerCode;
298
- }
299
-
300
- /** Event dispatched when the sort is updated */
301
- declare interface SplatSortUpdateEvent extends THREE.Event {
302
- type: 'updated';
303
- count: number;
304
- }
305
-
306
- export declare class TextureManager {
307
- textureWidth: number;
308
- textureHeight: number;
309
- transformA: THREE.DataTexture;
310
- transformB: THREE.DataTexture;
311
- colorTexture: THREE.DataTexture;
312
- orderTexture: THREE.DataTexture;
313
- /**
314
- * Create a new TextureManager for a set of splats
315
- * @param splatData The splat data to manage textures for
316
- */
317
- constructor(splatData: SplatData);
318
- /**
319
- * Create the transform A texture (positions and quaternion w component)
320
- * @param splatData The splat data
321
- * @returns DataTexture containing position data
322
- */
323
- private createTransformATexture;
324
- /**
325
- * Create the transform B texture (scale and rotation xyz)
326
- * @param splatData The splat data
327
- * @returns DataTexture containing scale and rotation data
328
- */
329
- private createTransformBTexture;
330
- /**
331
- * Create the color texture (RGB and opacity)
332
- * @param splatData The splat data
333
- * @returns DataTexture containing color data
334
- */
335
- private createColorTexture;
336
- /**
337
- * Create the order texture for sorting
338
- * @param numSplats Number of splats
339
- * @returns DataTexture for storing order indices
340
- */
341
- private createOrderTexture;
342
- dispose(): void;
343
- }
344
-
345
- export declare const VERSION = "0.3.0";
346
-
347
- export { }
1
+ import * as THREE from 'three';
2
+
3
+ /**
4
+ * Simplified bounding box class that tracks min/max points
5
+ */
6
+ export declare class BoundingBox {
7
+ min: THREE.Vector3;
8
+ max: THREE.Vector3;
9
+ center: THREE.Vector3;
10
+ /** Half extents (size/2) */
11
+ halfExtents: THREE.Vector3;
12
+ /**
13
+ * Reset the bounding box to its initial state
14
+ */
15
+ reset(): void;
16
+ /**
17
+ * Expand the bounding box to include the given point
18
+ * @param point Point to include in the bounding box
19
+ */
20
+ expandByPoint(point: THREE.Vector3): void;
21
+ /**
22
+ * Expand this bounding box to include another bounding box
23
+ * @param box Bounding box to include
24
+ */
25
+ expandByBox(box: BoundingBox): void;
26
+ /**
27
+ * Update the center and half extents based on min/max
28
+ */
29
+ private updateDerived;
30
+ /**
31
+ * Check if this box contains a point
32
+ * @param point Point to check
33
+ * @returns True if the point is inside the box
34
+ */
35
+ containsPoint(point: THREE.Vector3): boolean;
36
+ /**
37
+ * Create a Three.js Box3 from this bounding box
38
+ * @returns THREE.Box3 representation
39
+ */
40
+ toBox3(): THREE.Box3;
41
+ /**
42
+ * Create a clone of this bounding box
43
+ * @returns New bounding box with the same values
44
+ */
45
+ clone(): BoundingBox;
46
+ }
47
+
48
+ /**
49
+ * Class for loading PLY files with Gaussian Splat data
50
+ */
51
+ export declare class PlyLoader extends THREE.Loader {
52
+ private requestId;
53
+ private worker;
54
+ private pendingCallbacks;
55
+ constructor(manager?: THREE.LoadingManager);
56
+ /**
57
+ * Handles messages received from the parsing worker
58
+ * @param event The message event from the worker
59
+ */
60
+ private onWorkerMessage;
61
+ /**
62
+ * Load a PLY file with Gaussian Splat data
63
+ * @param url URL of the PLY file
64
+ * @param onLoad Optional callback when loading is complete
65
+ * @param onProgress Optional progress callback
66
+ * @param onError Optional error callback
67
+ */
68
+ load(url: string, onLoad?: (data: SplatData) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
69
+ /**
70
+ * Load a PLY file asynchronously and return a Promise
71
+ * @param url URL of the PLY file
72
+ * @param onProgress Optional progress callback
73
+ * @returns A Promise that resolves with the parsed SplatData
74
+ */
75
+ loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<SplatData>;
76
+ /**
77
+ * Parse PLY buffer data asynchronously using Web Worker
78
+ * @param buffer ArrayBuffer containing PLY data
79
+ * @returns Promise that resolves with parsed SplatData
80
+ */
81
+ private parseAsync;
82
+ /**
83
+ * Terminate the Web Worker and clean up resources
84
+ */
85
+ dispose(): void;
86
+ /**
87
+ * Creates the self-contained code for the parsing Web Worker
88
+ * @returns A string containing the JavaScript code for the worker
89
+ */
90
+ private createWorkerCode;
91
+ }
92
+
93
+ /**
94
+ * Class for loading SOGS (Self Organizing Gaussians) files
95
+ */
96
+ export declare class SogsLoader extends THREE.Loader {
97
+ /**
98
+ * Detect if a buffer is a ZIP file by checking magic bytes
99
+ * ZIP files start with signature: PK\x03\x04 (0x50 0x4B 0x03 0x04)
100
+ */
101
+ private isZipBuffer;
102
+ /**
103
+ * Load a SOGS file (meta.json + textures)
104
+ * @param url URL of the meta.json file
105
+ * @param onLoad Optional callback when loading is complete
106
+ * @param onProgress Optional progress callback
107
+ * @param onError Optional error callback
108
+ */
109
+ load(url: string, onLoad?: (data: SplatData) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
110
+ /**
111
+ * Load a SOGS file asynchronously and return a Promise
112
+ * @param url URL of the meta.json file
113
+ * @param onProgress Optional progress callback
114
+ * @returns A Promise that resolves with the parsed SplatData
115
+ */
116
+ loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<SplatData>;
117
+ private parseAsync;
118
+ private parseMetaAsync;
119
+ private parseZipAsync;
120
+ }
121
+
122
+ export declare class SplatData {
123
+ numSplats: number;
124
+ textureWidth: number;
125
+ textureHeight: number;
126
+ ranges: SplatRanges;
127
+ centers: Float32Array;
128
+ boundingBox: BoundingBox;
129
+ packedColor: Uint8Array;
130
+ packedGeometry: Uint32Array;
131
+ constructor(numSplats: number, textureWidth: number, textureHeight: number, centers: Float32Array, packedGeometry: Uint32Array, packedColor: Uint8Array, ranges: SplatRanges, boundingBox: BoundingBox);
132
+ /**
133
+ * Optional: Reconstruct a full JS object for a specific splat.
134
+ * Useful for raycasting or debugging.
135
+ */
136
+ dispose(): void;
137
+ }
138
+
139
+ export declare class SplatMaterial extends THREE.ShaderMaterial {
140
+ constructor(options?: SplatMaterialOptions);
141
+ setTexWidth(w: number): void;
142
+ /**
143
+ * Update the viewport size
144
+ * @param width Viewport width
145
+ * @param height Viewport height
146
+ */
147
+ updateViewport(width: number, height: number): void;
148
+ /**
149
+ * Set the main packed geometry texture (RGBA32UI)
150
+ */
151
+ setPackedGeometry(texture: THREE.Texture): void;
152
+ /**
153
+ * Set the packed color texture (RGBA8)
154
+ */
155
+ setPackedColor(texture: THREE.Texture): void;
156
+ /**
157
+ * Set order texture for sorting
158
+ */
159
+ setOrderTexture(texture: THREE.Texture): void;
160
+ /**
161
+ * Set the ranges needed to decompress the packed floats
162
+ */
163
+ setRanges(ranges: SplatRanges): void;
164
+ /**
165
+ * Set number of splats to render
166
+ * @param count Number of splats
167
+ */
168
+ setNumSplats(count: number): void;
169
+ }
170
+
171
+ export declare interface SplatMaterialOptions {
172
+ alphaTest?: number;
173
+ alphaHash?: boolean;
174
+ toneMapped?: boolean;
175
+ }
176
+
177
+ /**
178
+ * A mesh that renders Gaussian splats
179
+ * Not a real MESH, but a custom geometry with instancing
180
+ */
181
+ export declare class SplatMesh extends THREE.Mesh {
182
+ sorter: SplatSorter;
183
+ options: SplatMeshOptions;
184
+ splatData: SplatData | null;
185
+ textureManager: TextureManager;
186
+ material: SplatMaterial;
187
+ geometry: THREE.InstancedBufferGeometry;
188
+ private lastCameraPositionLocal;
189
+ private lastCameraDirectionLocal;
190
+ private invModelMatrix;
191
+ private _vpW;
192
+ private _vpH;
193
+ private _size;
194
+ private _camPosW;
195
+ private _camDirW;
196
+ private _camPosL;
197
+ private _camDirL;
198
+ /** Number of splats combined into a single instanced draw call. */
199
+ private static INSTANCE_SIZE;
200
+ /**
201
+ * Create a new SplatMesh for rendering Gaussian splats
202
+ * @param splatData The splat data to render
203
+ * @param options Rendering options
204
+ */
205
+ constructor(splatData: SplatData, options?: SplatMeshOptions);
206
+ private onSorterUpdated;
207
+ /**
208
+ * Creates the instanced geometry for rendering splats.
209
+ * @param totalSplats Total number of splats in the data.
210
+ * @param instanceSize Number of splats per instance.
211
+ * @returns InstancedBufferGeometry
212
+ */
213
+ private static createInstancedGeometry;
214
+ /**
215
+ * Create chunks data (bounding box min/max) for the sorter.
216
+ * @returns Float32Array containing chunk data [minX, minY, minZ, maxX, maxY, maxZ] or null.
217
+ */
218
+ private createChunks;
219
+ /**
220
+ * Update the viewport size
221
+ * @param width Viewport width
222
+ * @param height Viewport height
223
+ */
224
+ updateViewport(width: number, height: number): void;
225
+ /**
226
+ * Sorts splats based on camera position and direction.
227
+ * @param camera The camera to sort against.
228
+ */
229
+ sort(camera: THREE.Camera): void;
230
+ /**
231
+ * THREE.js hook called before rendering the object.
232
+ * Used here to trigger sorting and update viewport.
233
+ * @param renderer The renderer
234
+ * @param scene The scene
235
+ * @param camera The camera
236
+ */
237
+ onBeforeRender(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera): void;
238
+ /**
239
+ * Dispose of resources
240
+ */
241
+ dispose(): void;
242
+ }
243
+
244
+ export declare interface SplatMeshOptions extends SplatMaterialOptions {
245
+ autoSort?: boolean;
246
+ keepSplatData?: boolean;
247
+ }
248
+
249
+ declare interface SplatRanges {
250
+ sh0: {
251
+ min: THREE.Vector3;
252
+ max: THREE.Vector3;
253
+ };
254
+ means: {
255
+ min: THREE.Vector3;
256
+ max: THREE.Vector3;
257
+ };
258
+ scales: {
259
+ min: THREE.Vector3;
260
+ max: THREE.Vector3;
261
+ };
262
+ }
263
+
264
+ /**
265
+ * Manages sorting of splats based on camera view using a Web Worker.
266
+ */
267
+ export declare class SplatSorter extends THREE.EventDispatcher<{
268
+ updated: SplatSortUpdateEvent;
269
+ }> {
270
+ private worker;
271
+ private centers;
272
+ private orderTexture;
273
+ /** Bounding box data for optimization */
274
+ private chunks;
275
+ private lastCameraPosition;
276
+ private lastCameraDirection;
277
+ constructor();
278
+ /**
279
+ * Handles messages received from the sorting worker.
280
+ * @param event The message event from the worker.
281
+ */
282
+ private onWorkerMessage;
283
+ /**
284
+ * Initializes the sorter with necessary data and textures.
285
+ * @param orderTexture The THREE.DataTexture (R32UI) to store the sorted splat indices.
286
+ * @param centers A Float32Array containing the center position (x, y, z) for each splat.
287
+ * @param chunks Optional: A Float32Array containing bounding box chunk data [minX, minY, minZ, maxX, maxY, maxZ, ...] for optimization.
288
+ * @param transferOwnership Optional: If true, transfers ownership of centers buffer to worker (saves memory, main thread loses access). Default: false.
289
+ */
290
+ init(orderTexture: THREE.DataTexture, centers: Float32Array, chunks?: Float32Array, transferOwnership?: boolean): void;
291
+ /**
292
+ * Applies an optional mapping to filter or reorder splats before sorting.
293
+ * The sorter will only consider splats whose original indices are present in the mapping.
294
+ * @param mapping A Uint32Array where each element is the *original* index of a splat to include, or null to reset mapping.
295
+ */
296
+ setMapping(mapping: Uint32Array | null): void;
297
+ /**
298
+ * Updates the camera parameters used for sorting.
299
+ * @param position The camera's position in the sorter's local coordinate space.
300
+ * @param direction The camera's forward direction in the sorter's local coordinate space.
301
+ */
302
+ setCamera(position: THREE.Vector3, direction: THREE.Vector3): void;
303
+ /**
304
+ * Terminates the Web Worker and cleans up resources.
305
+ */
306
+ dispose(): void;
307
+ /**
308
+ * Creates the self-contained code for the sorting Web Worker.
309
+ * @returns A string containing the JavaScript code for the worker.
310
+ */
311
+ private createWorkerCode;
312
+ }
313
+
314
+ /** Event dispatched when the sort is updated */
315
+ declare interface SplatSortUpdateEvent extends THREE.Event {
316
+ type: 'updated';
317
+ count: number;
318
+ }
319
+
320
+ export declare class TextureManager {
321
+ packedGeometry: THREE.DataTexture;
322
+ packedColor: THREE.DataTexture;
323
+ orderTexture: THREE.DataTexture;
324
+ width: number;
325
+ height: number;
326
+ constructor(data: SplatData);
327
+ private createGeometryTexture;
328
+ private createColorTexture;
329
+ private createOrderTexture;
330
+ dispose(): void;
331
+ }
332
+
333
+ export declare const VERSION = "0.3.0";
334
+
335
+ export { }