@openheart/tavio-renderer 2.2.13-without-wasm → 2.3.2-with-wasm

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.
@@ -1,9 +1,13 @@
1
- declare module '*.vert' {
2
- const content: any;
1
+ declare module '*.vert?raw' {
2
+ const content: string;
3
3
  export default content;
4
4
  }
5
- declare module '*.frag' {
6
- const content: any;
5
+ declare module '*.frag?raw' {
6
+ const content: string;
7
+ export default content;
8
+ }
9
+ declare module '*.glsl?raw' {
10
+ const content: string;
7
11
  export default content;
8
12
  }
9
13
 
@@ -14,6 +14,7 @@ import { iBoxSelectorOption } from '../editor/selector/boxSelector';
14
14
  import { Selector } from '../editor/selector/selector';
15
15
  import { TavioMesh } from './tavioMesh';
16
16
  import { iAnimationConfig } from '../animation/animationController';
17
+ import { iMaterialOption } from './materialGenerator';
17
18
  /**
18
19
  * Tavio Viewer のエラーコード
19
20
  */
@@ -95,6 +96,13 @@ export interface iViewerOption {
95
96
  enableOrbitCursor?: boolean;
96
97
  orbitCursorScale?: number;
97
98
  }
99
+ /**
100
+ * ビューアのマテリアルオプション
101
+ */
102
+ export interface iViewerMaterialOption {
103
+ materialOption: iMaterialOption | iMaterialOption[];
104
+ isDebug?: boolean;
105
+ }
98
106
  /**
99
107
  * セレクターの情報
100
108
  */
@@ -209,6 +217,32 @@ export declare class Core extends EventEmitter {
209
217
  * 対応する Controls 種別
210
218
  */
211
219
  static CONTROLS: string[];
220
+ /**
221
+ * シェーダチャンク関連(定義は MaterialGenerator.ts 内)
222
+ */
223
+ static CHUNK_TARGET: {
224
+ readonly ANY: 0;
225
+ readonly BASIC: 1;
226
+ readonly PICKING: 2;
227
+ };
228
+ static SHADER_STAGE: {
229
+ readonly VERTEX_PRECISION: 0;
230
+ readonly VERTEX_DECLARATION: 1;
231
+ readonly VERTEX_FUNCTION: 2;
232
+ readonly VERTEX_MAIN_BEGIN: 3;
233
+ readonly VERTEX_MAIN_TRANSFORM: 4;
234
+ readonly VERTEX_MAIN_SIGMA: 5;
235
+ readonly VERTEX_MAIN_OUT: 6;
236
+ readonly VERTEX_MAIN_END: 7;
237
+ readonly FRAGMENT_PRECISION: 8;
238
+ readonly FRAGMENT_DECLARATION: 9;
239
+ readonly FRAGMENT_FUNCTION: 10;
240
+ readonly FRAGMENT_MAIN_BEGIN: 11;
241
+ readonly FRAGMENT_MAIN_IN: 12;
242
+ readonly FRAGMENT_MAIN_OUT: 13;
243
+ /** Float16Array 未対応環境 */
244
+ readonly FRAGMENT_MAIN_END: 14;
245
+ };
212
246
  /**
213
247
  * @constructor
214
248
  * @param viewerOption - ビューア実装の初期化オプション
@@ -229,8 +263,14 @@ export declare class Core extends EventEmitter {
229
263
  /**
230
264
  * 各種初期化処理を行う
231
265
  * @param canvas - WebGL コンテキストを取得する対象となる canvas 要素
266
+ * @param materialOption - シェーダチャンクなどの情報を含むマテリアルオプション
232
267
  */
233
- init(canvas: HTMLCanvasElement): void;
268
+ init(canvas: HTMLCanvasElement, materialOption?: iViewerMaterialOption): void;
269
+ /**
270
+ * マテリアルをセットアップする
271
+ * @param option - シェーダチャンクなどの情報を含むマテリアルオプション
272
+ */
273
+ setupMaterial(option?: iViewerMaterialOption): void;
234
274
  /**
235
275
  * カメラコントロール・カメラコライダーをセットアップする
236
276
  */
@@ -359,13 +399,49 @@ export declare class Core extends EventEmitter {
359
399
  * @param name - このメッシュの固有名
360
400
  * @see {@link TavioMesh.prototype.loadPlyWasm}
361
401
  */
362
- loadPlyWasm(name: string, ...args: Parameters<typeof TavioMesh.prototype.loadPlyWasm>): Promise<void>;
402
+ loadPlyWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
403
+ /**
404
+ * splat 形式のリソースをロードする
405
+ * @param name - このメッシュの固有名
406
+ * @see {@link TavioMesh.prototype.loadSplatWasm}
407
+ */
408
+ loadSplatWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
409
+ /**
410
+ * spz 形式のリソースをロードする
411
+ * @param name - このメッシュの固有名
412
+ * @see {@link TavioMesh.prototype.loadSpzWasm}
413
+ */
414
+ loadSpzWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
415
+ /**
416
+ * sog 形式のリソースをロードする
417
+ * @param name - このメッシュの固有名
418
+ * @see {@link TavioMesh.prototype.loadSogWasm}
419
+ */
420
+ loadSogWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
363
421
  /**
364
- * tavio 形式のリソースをセーブする
422
+ * tavio 形式のリソースを保存する
365
423
  * @param name - このメッシュの固有名
366
- * @see {@link TavioMesh.prototype.saveTavioWasm}
424
+ * @param fileName - 保存ファイル名
367
425
  */
368
- saveTavioWasm(name: string, ...args: Parameters<typeof TavioMesh.prototype.saveTavioWasm>): Promise<void>;
426
+ saveTavioWasm(name: string, fileName: string): Promise<void>;
427
+ /**
428
+ * splat 形式のリソースを保存する
429
+ * @param name - このメッシュの固有名
430
+ * @param fileName - 保存ファイル名
431
+ */
432
+ saveSplatWasm(name: string, fileName: string): Promise<void>;
433
+ /**
434
+ * ply 形式のリソースを保存する
435
+ * @param name - このメッシュの固有名
436
+ * @param fileName - 保存ファイル名
437
+ */
438
+ savePlyWasm(name: string, fileName: string): Promise<void>;
439
+ /**
440
+ * spz 形式のリソースを保存する
441
+ * @param name - このメッシュの固有名
442
+ * @param fileName - 保存ファイル名
443
+ */
444
+ saveSpzWasm(name: string, fileName: string): Promise<void>;
369
445
  /**
370
446
  * 名前を指定してロード済み TavioMesh をシーンに追加する
371
447
  * @param name - 対象の名前
@@ -812,6 +888,11 @@ export declare class Core extends EventEmitter {
812
888
  * @param uniforms - 設定する値を定義したオブジェクト
813
889
  */
814
890
  private _setPointUniforms;
891
+ /**
892
+ * MaterialGenerator で独自に拡張した uniform 変数を更新する
893
+ * @param customUniforms - 設定・更新する uniform 変数
894
+ */
895
+ setCustomUniforms(customUniforms: any): void;
815
896
  /**
816
897
  * ガウシアンの大きさの基本係数を設定する
817
898
  * @param value - 設定する係数(0.0 to 1.0)
@@ -0,0 +1,120 @@
1
+ import { RawShaderMaterial } from 'three';
2
+ /**
3
+ * MaterialGenerator は原則として static なメソッドのみで実装しステートを持たない。
4
+ *
5
+ * ビューアの基本機能については src/shaderChunk 以下にシェーダのチャンクとなる各部品を置く。
6
+ * src/shaderChunk/common 以下にあるシェーダは 3DGS を描画するのみで色もつかない、最もシンプルな形。
7
+ * src/shaderChunk/viewer は直流成分および交流成分の計算など、ビューアの基本機能を拡張する。
8
+ * src/shaderChunk/editor はカラーグレーディングなどのエディタ用機能。
9
+ * src/shaderChunk/picking は座標をレンダリングするピッキング用のシェーダ。
10
+ *
11
+ * 独自に拡張する場合は、iMaterialOption 単体またはその配列を定義し MaterialGenerator.generate() に渡す。
12
+ * iMaterialOption.target で、ベーシックやピッキングなどのシェーダを結合する対象を(CHUNK_TARGET の論理和で)指定する。
13
+ * iMaterialOption.uniforms で拡張部分で用いる uniform 変数を定義。
14
+ * iMaterialOption.vertex / fragment でシェーダのチャンク情報を iShaderChunk 単体または配列で指定する。
15
+ *
16
+ * iShaderChunk.stage は SHADER_STAGE で定義されているシェーダ内のステージの指定。
17
+ * iShaderChunk.source はシェーダのソースコード。
18
+ *
19
+ * このファイル内で定義されているシェーダのチャンクは src/shaderChunk/common 以下にあるもののみ。
20
+ * それ以外のチャンクは canvas.ts など、ビューア実装側で付与する。
21
+ */
22
+ /**
23
+ * チャンクをどのシェーダに反映するかを表す
24
+ * これらの値は論理和を用いて組み合わせて指定できる
25
+ */
26
+ export declare const CHUNK_TARGET: {
27
+ readonly ANY: 0;
28
+ readonly BASIC: 1;
29
+ readonly PICKING: 2;
30
+ };
31
+ export type tChunkTarget = typeof CHUNK_TARGET[keyof typeof CHUNK_TARGET];
32
+ /**
33
+ * チャンクがどのステージにあたるかを表す
34
+ * 指定されたステージの末尾に処理が追加される
35
+ */
36
+ export declare const SHADER_STAGE: {
37
+ readonly VERTEX_PRECISION: 0;
38
+ readonly VERTEX_DECLARATION: 1;
39
+ readonly VERTEX_FUNCTION: 2;
40
+ readonly VERTEX_MAIN_BEGIN: 3;
41
+ readonly VERTEX_MAIN_TRANSFORM: 4;
42
+ readonly VERTEX_MAIN_SIGMA: 5;
43
+ readonly VERTEX_MAIN_OUT: 6;
44
+ readonly VERTEX_MAIN_END: 7;
45
+ readonly FRAGMENT_PRECISION: 8;
46
+ readonly FRAGMENT_DECLARATION: 9;
47
+ readonly FRAGMENT_FUNCTION: 10;
48
+ readonly FRAGMENT_MAIN_BEGIN: 11;
49
+ readonly FRAGMENT_MAIN_IN: 12;
50
+ readonly FRAGMENT_MAIN_OUT: 13;
51
+ readonly FRAGMENT_MAIN_END: 14;
52
+ };
53
+ export type tShaderStage = typeof SHADER_STAGE[keyof typeof SHADER_STAGE];
54
+ /**
55
+ * シェーダのソースコード定義
56
+ */
57
+ export interface iShaderSource {
58
+ vertex: string;
59
+ fragment: string;
60
+ }
61
+ /**
62
+ * 生成したマテリアル群
63
+ */
64
+ export interface iMaterials {
65
+ basic: RawShaderMaterial;
66
+ picking: RawShaderMaterial;
67
+ }
68
+ /**
69
+ * マテリアル生成に使われるシェーダチャンク
70
+ */
71
+ export interface iShaderChunk {
72
+ stage: tShaderStage;
73
+ source: string;
74
+ }
75
+ /**
76
+ * マテリアルを生成するためのオプション
77
+ */
78
+ export interface iMaterialOption {
79
+ target: tChunkTarget;
80
+ uniforms?: any;
81
+ vertex?: iShaderChunk | iShaderChunk[];
82
+ fragment?: iShaderChunk | iShaderChunk[];
83
+ }
84
+ /**
85
+ * 複数のシェーダチャンクを組み合わせてマテリアルを生成する
86
+ */
87
+ export declare class MaterialGenerator {
88
+ /**
89
+ * shaderChunk/common に含まれる頂点シェーダのチャンクをセットした Map オブジェクトを生成する
90
+ */
91
+ private static _createVertexMap;
92
+ /**
93
+ * shaderChunk/common に含まれるフラグメントシェーダのチャンクをセットした Map オブジェクトを生成する
94
+ */
95
+ private static _createFragmentMap;
96
+ /**
97
+ * シェーダチャンクに iMaterialOption.vertex / fragment に含まれるソースコードを結合する
98
+ * @param option - シェーダチャンクを含むマテリアルオプション
99
+ * @param vsMap - 頂点シェーダ用
100
+ * @param fsMap - フラグメントシェーダ用
101
+ * @return 各ステージに何回チャンクが結合されたかを表す配列
102
+ */
103
+ private static _mergeShaderSource;
104
+ /**
105
+ * uniform 変数用の雛形を生成する(src/shderChunk/common 以下で定義される最低限のもの)
106
+ */
107
+ private static _createUniforms;
108
+ /**
109
+ * Map オブジェクトに含まれるソースコードを結合する
110
+ * @param map - 処理の対象となる Map オブジェクト
111
+ * @param isDebug - デバッグ用にコンソールにソースコードを出力するかどうか
112
+ */
113
+ private static _createShaderSource;
114
+ /**
115
+ * マテリアルを生成する
116
+ * @param option - シェーダチャンクなどの情報を含むマテリアルオプション
117
+ * @param isDebug - デバッグ用にコンソールにソースコードを出力するかどうか
118
+ */
119
+ static generate(option?: iMaterialOption | iMaterialOption[], isDebug?: boolean): iMaterials;
120
+ }
@@ -120,7 +120,7 @@ export declare class TavioMesh extends EventEmitter {
120
120
  * @param material - メッシュの生成に使うマテリアルは上の層から指定されたものを使う
121
121
  * @param pickingMaterial - メッシュの生成に使うマテリアルは上の層から指定されたものを使う
122
122
  */
123
- constructor(index: number, camera: PerspectiveCamera, material: RawShaderMaterial, pinckingMaterial: RawShaderMaterial, viewerOption: iViewerOption);
123
+ constructor(index: number, camera: PerspectiveCamera, material: RawShaderMaterial, pickingMaterial: RawShaderMaterial, viewerOption: iViewerOption);
124
124
  /**
125
125
  * ==========================================================================
126
126
  * loader
@@ -169,38 +169,26 @@ export declare class TavioMesh extends EventEmitter {
169
169
  isEncodeEnabled?: boolean;
170
170
  }): Promise<void>;
171
171
  /**
172
- * ply 形式のリソースをロードする
173
- * @param url - 読み込む .ply ファイル
174
- * @param option - ロード・パース関連のオプション
175
- * @param options.decodeMode - デコードモード. "sync", "concurrent", "parallel" を指定
176
- * @param options.maxThreads - decodeMode が "parallel" のときに使用されるスレッド数の上限
177
- * @param options.maxDecodePoints - 最大デコード点数. これを超える点は読み込まれない
172
+ * 様々な形式のリソースをロードする
173
+ * @param url - 読み込むファイル
174
+ * @param format - ファイル形式
175
+ * @param options - ロード・パース関連のオプション
178
176
  * @param options.useSphericalHarmonics - 球面調和関数を使用
179
177
  */
180
- loadPlyWasm(url: string, options?: ({
181
- decodeMode?: "sync" | "concurrent";
182
- } | {
183
- decodeMode: "parallel";
184
- maxThreads?: number;
185
- }) & {
186
- maxDecodePoints?: number;
178
+ loadMeshWasm(url: string, format: "splat" | "ply" | "spz" | "sog", options?: {
187
179
  useSphericalHarmonics?: boolean;
188
180
  }): Promise<void>;
189
181
  /**
190
- * tavio 形式のリソースをセーブする
191
- * @param filename - 保存する .tavio ファイル名
192
- * @param option - セーブ関連のオプション
193
- * @param option.version - バージョン番号
194
- * @param option.useSphericalHarmonics - 球面調和関数を使用する
195
- * @param option.useGeneralData - 編集データを反映する
196
- * @param option.featureFlags - tavio形式のフィーチャーフラグ
182
+ * 様々な形式のリソースをセーブする
183
+ * @param filename - 保存ファイル名
197
184
  */
198
- saveTavioWasm(filename: string, options?: {
199
- version?: String;
200
- useSphericalHarmonics?: boolean;
201
- useGeneralData?: boolean;
202
- featureFlags?: number;
203
- }): Promise<void>;
185
+ saveTavioWasm(filename: string): Promise<void>;
186
+ /**
187
+ * 様々な形式のリソースをセーブする
188
+ * @param filename - 保存ファイル名
189
+ * @param format - ファイル形式
190
+ */
191
+ saveMeshWasm(filename: string, format: "splat" | "ply" | "spz" | "sog"): Promise<void>;
204
192
  /**
205
193
  * canvas 要素からガウシアンを生成してシーンに追加する
206
194
  * @param canvas - 対象となる canvas 要素
@@ -0,0 +1,37 @@
1
+ import { Euler, IUniform, Vector3 } from 'three';
2
+ import { WasmDecodeBodyEvent, WasmDecodeHeaderEvent } from './wasm-worker-client';
3
+ export declare function wasmBuildSourceProperty(event: WasmDecodeHeaderEvent, sourceIndex: number, sourceVertexOffset: number): {
4
+ ready: boolean;
5
+ index: number;
6
+ type: "tavio" | "splat" | "ply" | "spz" | "sog";
7
+ vertexCount: number;
8
+ vertexOffset: number;
9
+ featureBits: number;
10
+ containmentRadius: {
11
+ per100: any;
12
+ };
13
+ magicNumber: string;
14
+ majorVersion: number;
15
+ minorVersion: number;
16
+ transform: {
17
+ translation: Vector3;
18
+ rotation: Euler;
19
+ scale: number;
20
+ };
21
+ billboard: boolean;
22
+ };
23
+ export declare function wasmBuildSharedData(event: WasmDecodeHeaderEvent, prototype: object, gaussianCount: number, generalDataSize: number, orderDataSize: number): any;
24
+ export declare function wasmBuildWorkerUpdateMessage(event: WasmDecodeBodyEvent, uniforms: {
25
+ [uniform: string]: IUniform;
26
+ }, sourceIndex: number, usingSharedArrayBuffer: boolean): {
27
+ message: any;
28
+ transfer: ArrayBufferLike[];
29
+ };
30
+ export declare function wasmUpdateUniforms(event: WasmDecodeBodyEvent, uniforms: {
31
+ [uniform: string]: IUniform;
32
+ }, sourceIndex: number): void;
33
+ export declare function requestWorkerBuffer(worker: Worker): Promise<{
34
+ gaussianData: Uint8Array;
35
+ sphericalHarmonicsData: Float32Array;
36
+ }>;
37
+ export declare function downloadAsFile(bytes: Uint8Array, filename: string): void;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * wasm/pkg のベース URL(末尾スラッシュ付き)。
3
+ * - ライブラリ本番ビルド(build/esm/index.js): index と同階層の ./wasm/pkg/
4
+ * - Vite 開発サーバ: ソースは src/wasm-bindings 配下のためリポジトリルートの ../../wasm/pkg/
5
+ */
6
+ export declare function getWasmPkgBaseUrl(): string;
@@ -2,25 +2,82 @@ import { WasmFnMap, WasmWorkerInitOptions } from './wasm-worker';
2
2
  type AsyncWasmFnMap = {
3
3
  [K in Exclude<keyof WasmFnMap, "registerEventHandler">]: WasmFnMap[K] extends (...args: infer A) => infer R ? (...args: A) => Promise<Awaited<R>> : never;
4
4
  };
5
- type WasmEvent = {
6
- type: "decode:fileSize";
7
- fileSize: number;
8
- } | {
5
+ type HeaderByFormat = {
6
+ tavio: {
7
+ version: number[];
8
+ totalPointCount: number;
9
+ featureFlags: number;
10
+ };
11
+ splat: null;
12
+ ply: {
13
+ majorVersion: number;
14
+ minorVersion: number;
15
+ encoding: string;
16
+ comments: string[];
17
+ };
18
+ spz: {
19
+ magic: string;
20
+ version: number;
21
+ num_points: number;
22
+ sh_degree: number;
23
+ fractionalBits: number;
24
+ flags: number;
25
+ };
26
+ sog: {
27
+ version: number;
28
+ count: number;
29
+ antialias?: boolean;
30
+ };
31
+ };
32
+ export type WasmDecodeHeaderEvent = {
9
33
  type: "decode:header";
10
- data: any;
34
+ totalPointCount: number;
35
+ sharedGaussianBuffer: SharedArrayBuffer | null;
36
+ sharedShBuffer: SharedArrayBuffer | null;
37
+ } & ({
38
+ format: "tavio";
39
+ header: HeaderByFormat["tavio"];
40
+ } | {
41
+ format: "splat";
42
+ header: HeaderByFormat["splat"];
43
+ } | {
44
+ format: "ply";
45
+ header: HeaderByFormat["ply"];
11
46
  } | {
47
+ format: "spz";
48
+ header: HeaderByFormat["spz"];
49
+ } | {
50
+ format: "sog";
51
+ header: HeaderByFormat["sog"];
52
+ });
53
+ export type WasmDecodeBodyEvent = {
54
+ type: "decode:body";
55
+ pointCount: number;
56
+ gaussianBuffer: Uint8Array | null;
57
+ shBuffer?: Float32Array | null;
58
+ point: Float32Array;
59
+ color: Uint8ClampedArray;
60
+ scaleMinValues: Float32Array;
61
+ scaleMaxValues: Float32Array;
62
+ alphaMinValue: number;
63
+ alphaMaxValue: number;
64
+ };
65
+ export type WasmEvent = {
66
+ type: "decode:fileSize";
67
+ fileSize: number;
68
+ } | WasmDecodeHeaderEvent | WasmDecodeBodyEvent | {
12
69
  type: "decode:chunkMain";
13
70
  chunkIndex: number;
14
71
  pointCount: number;
15
72
  data: Uint8Array;
16
- scaleMinValues: Float32Array[];
17
- scaleMaxValues: Float32Array[];
18
- alphaMinValues: Float32Array[];
19
- alphaMaxValues: Float32Array[];
73
+ scaleMinValues: Float32Array;
74
+ scaleMaxValues: Float32Array;
75
+ alphaMinValue: number;
76
+ alphaMaxValue: number;
20
77
  } | {
21
78
  type: "decode:chunkMainHeader";
22
79
  chunkIndex: number;
23
- data: any;
80
+ chunkMainHader: any;
24
81
  } | {
25
82
  type: "decode:chunkMainSphericalHarmonics";
26
83
  chunkIndex: number;
@@ -36,7 +93,7 @@ type WasmEvent = {
36
93
  } | {
37
94
  type: "decode:color";
38
95
  chunkIndex: number;
39
- data: Uint8Array;
96
+ data: Uint8ClampedArray;
40
97
  };
41
98
  type WasmEventHandler = (e: WasmEvent) => void;
42
99
  export declare class TavioWasmWorkerClient {
@@ -8,14 +8,6 @@
8
8
 
9
9
  type ReadableStreamType = "bytes";
10
10
 
11
- interface DecodeOptions {
12
- decodeMode?: "sync" | "parallel";
13
- maxDecodePoints?: number;
14
- useSphericalHarmonics?: boolean;
15
- }
16
-
17
-
18
-
19
11
  export class IntoUnderlyingByteSource {
20
12
  private constructor();
21
13
  free(): void;
@@ -44,7 +36,23 @@ export class IntoUnderlyingSource {
44
36
  pull(controller: ReadableStreamDefaultController): Promise<any>;
45
37
  }
46
38
 
47
- export function decodeTavio(url: string, decode_options: DecodeOptions): Promise<void>;
39
+ export function decodePly(url: string, decode_options: any): Promise<void>;
40
+
41
+ export function decodeSog(url: string, decode_options: any): Promise<void>;
42
+
43
+ export function decodeSplat(url: string, decode_options: any): Promise<void>;
44
+
45
+ export function decodeSpz(url: string, decode_options: any): Promise<void>;
46
+
47
+ export function decodeTavio(url: string, decode_options: any): Promise<void>;
48
+
49
+ export function encodePly(point_count: number, gaussian_buffer: Uint8Array, sh_buffer: Float32Array | null | undefined, scale_min_values: Float32Array, scale_max_values: Float32Array, alpha_min_value: number, alpha_max_value: number): Uint8Array;
50
+
51
+ export function encodeSplat(point_count: number, gaussian_buffer: Uint8Array, scale_min_values: Float32Array, scale_max_values: Float32Array, alpha_min_value: number, alpha_max_value: number): Uint8Array;
52
+
53
+ export function encodeSpz(point_count: number, gaussian_buffer: Uint8Array, sh_buffer: Float32Array | null | undefined, scale_min_values: Float32Array, scale_max_values: Float32Array, alpha_min_value: number, alpha_max_value: number): Uint8Array;
54
+
55
+ export function encodeTavio(point_count: number, gaussian_buffer: Uint8Array, _sh_buffer: Float32Array | null | undefined, scale_min_values: Float32Array, scale_max_values: Float32Array, alpha_min_value: number, alpha_max_value: number): Uint8Array;
48
56
 
49
57
  export function main(): void;
50
58
 
@@ -56,14 +64,18 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
56
64
 
57
65
  export interface InitOutput {
58
66
  readonly memory: WebAssembly.Memory;
59
- readonly main: () => void;
67
+ readonly decodePly: (a: number, b: number, c: number) => number;
68
+ readonly encodePly: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
60
69
  readonly registerEventHandler: (a: number) => number;
61
- readonly sort: (a: number, b: number, c: number) => number;
70
+ readonly decodeSog: (a: number, b: number, c: number) => number;
62
71
  readonly decodeTavio: (a: number, b: number, c: number) => number;
63
- readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
64
- readonly intounderlyingsink_abort: (a: number, b: number) => number;
65
- readonly intounderlyingsink_close: (a: number) => number;
66
- readonly intounderlyingsink_write: (a: number, b: number) => number;
72
+ readonly encodeTavio: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
73
+ readonly decodeSplat: (a: number, b: number, c: number) => number;
74
+ readonly decodeSpz: (a: number, b: number, c: number) => number;
75
+ readonly encodeSplat: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
76
+ readonly encodeSpz: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
77
+ readonly sort: (a: number, b: number, c: number) => number;
78
+ readonly main: () => void;
67
79
  readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
68
80
  readonly intounderlyingbytesource_autoAllocateChunkSize: (a: number) => number;
69
81
  readonly intounderlyingbytesource_cancel: (a: number) => void;
@@ -73,15 +85,18 @@ export interface InitOutput {
73
85
  readonly __wbg_intounderlyingsource_free: (a: number, b: number) => void;
74
86
  readonly intounderlyingsource_cancel: (a: number) => void;
75
87
  readonly intounderlyingsource_pull: (a: number, b: number) => number;
76
- readonly __wasm_bindgen_func_elem_398: (a: number, b: number) => void;
77
- readonly __wasm_bindgen_func_elem_747: (a: number, b: number) => void;
78
- readonly __wasm_bindgen_func_elem_737: (a: number, b: number, c: number, d: number) => void;
79
- readonly __wasm_bindgen_func_elem_1574: (a: number, b: number, c: number, d: number) => void;
80
- readonly __wasm_bindgen_func_elem_407: (a: number, b: number, c: number) => void;
88
+ readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
89
+ readonly intounderlyingsink_abort: (a: number, b: number) => number;
90
+ readonly intounderlyingsink_close: (a: number) => number;
91
+ readonly intounderlyingsink_write: (a: number, b: number) => number;
92
+ readonly __wasm_bindgen_func_elem_2673: (a: number, b: number, c: number, d: number) => void;
93
+ readonly __wasm_bindgen_func_elem_2675: (a: number, b: number, c: number, d: number) => void;
94
+ readonly __wasm_bindgen_func_elem_955: (a: number, b: number, c: number) => void;
81
95
  readonly __wbindgen_export: (a: number, b: number) => number;
82
96
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
83
97
  readonly __wbindgen_export3: (a: number) => void;
84
98
  readonly __wbindgen_export4: (a: number, b: number, c: number) => void;
99
+ readonly __wbindgen_export5: (a: number, b: number) => void;
85
100
  readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
86
101
  readonly __wbindgen_start: () => void;
87
102
  }