@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.
- package/build/esm/index.js +1172 -279
- package/build/esm/types/types/global.d.ts +8 -4
- package/build/esm/types/viewer/canvas.d.ts +86 -5
- package/build/esm/types/viewer/materialGenerator.d.ts +120 -0
- package/build/esm/types/viewer/tavioMesh.d.ts +15 -27
- package/build/esm/types/wasm-bindings/wasm-handlers.d.ts +37 -0
- package/build/esm/types/wasm-bindings/wasm-pkg-base-url.d.ts +6 -0
- package/build/esm/types/wasm-bindings/wasm-worker-client.d.ts +68 -11
- package/build/esm/wasm/pkg/no-thread/tavio.d.ts +35 -20
- package/build/esm/wasm/pkg/no-thread/tavio.js +354 -98
- package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm +0 -0
- package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm.d.ts +18 -11
- package/build/esm/wasm/pkg/thread/tavio.d.ts +38 -23
- package/build/esm/wasm/pkg/thread/tavio.js +398 -141
- package/build/esm/wasm/pkg/thread/tavio_bg.wasm +0 -0
- package/build/esm/wasm/pkg/thread/tavio_bg.wasm.d.ts +21 -14
- package/build/esm/wasm-worker-CEuC2YyS.js +117 -0
- package/package.json +2 -1
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
declare module '*.vert' {
|
|
2
|
-
const content:
|
|
1
|
+
declare module '*.vert?raw' {
|
|
2
|
+
const content: string;
|
|
3
3
|
export default content;
|
|
4
4
|
}
|
|
5
|
-
declare module '*.frag' {
|
|
6
|
-
const content:
|
|
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,
|
|
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
|
-
* @
|
|
424
|
+
* @param fileName - 保存ファイル名
|
|
367
425
|
*/
|
|
368
|
-
saveTavioWasm(name: string,
|
|
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,
|
|
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
|
-
*
|
|
173
|
-
* @param url -
|
|
174
|
-
* @param
|
|
175
|
-
* @param options
|
|
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
|
-
|
|
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
|
-
*
|
|
191
|
-
* @param filename -
|
|
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
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
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;
|
|
@@ -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
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
|
|
19
|
-
|
|
73
|
+
scaleMinValues: Float32Array;
|
|
74
|
+
scaleMaxValues: Float32Array;
|
|
75
|
+
alphaMinValue: number;
|
|
76
|
+
alphaMaxValue: number;
|
|
20
77
|
} | {
|
|
21
78
|
type: "decode:chunkMainHeader";
|
|
22
79
|
chunkIndex: number;
|
|
23
|
-
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
70
|
+
readonly decodeSog: (a: number, b: number, c: number) => number;
|
|
62
71
|
readonly decodeTavio: (a: number, b: number, c: number) => number;
|
|
63
|
-
readonly
|
|
64
|
-
readonly
|
|
65
|
-
readonly
|
|
66
|
-
readonly
|
|
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
|
|
77
|
-
readonly
|
|
78
|
-
readonly
|
|
79
|
-
readonly
|
|
80
|
-
readonly
|
|
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
|
}
|