@openheart/tavio-renderer 1.0.12-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/README.md +25 -0
- package/build/esm/assets/tavio-B99BKbbN.js +971 -0
- package/build/esm/assets/workerHelpers-DWTUmD6Q.js +39 -0
- package/build/esm/index.js +45732 -0
- package/build/esm/types/animation/animationController.d.ts +133 -0
- package/build/esm/types/camera/cameraCollider.d.ts +54 -0
- package/build/esm/types/camera/cameraPath.d.ts +120 -0
- package/build/esm/types/camera/cameraPathControls.d.ts +73 -0
- package/build/esm/types/camera/cameraPathManager.d.ts +67 -0
- package/build/esm/types/camera/flightControls.d.ts +76 -0
- package/build/esm/types/camera/orbitControls.d.ts +216 -0
- package/build/esm/types/camera/transferControls.d.ts +122 -0
- package/build/esm/types/editor/selector/boxSelector.d.ts +60 -0
- package/build/esm/types/editor/selector/selector.d.ts +145 -0
- package/build/esm/types/editor/selector/sphereSelector.d.ts +45 -0
- package/build/esm/types/extension/InstancedMeshEX.d.ts +101 -0
- package/build/esm/types/global.iife.d.ts +9 -0
- package/build/esm/types/loader/streamLoader.d.ts +21 -0
- package/build/esm/types/math/easing.d.ts +18 -0
- package/build/esm/types/math/interpolation.d.ts +70 -0
- package/build/esm/types/module.d.ts +5 -0
- package/build/esm/types/types/global.d.ts +32 -0
- package/build/esm/types/types/wasm.d.ts +12 -0
- package/build/esm/types/utility/console.d.ts +7 -0
- package/build/esm/types/utility/plyDecoder.d.ts +103 -0
- package/build/esm/types/utility/utility.d.ts +58 -0
- package/build/esm/types/viewer/canvas.d.ts +1293 -0
- package/build/esm/types/viewer/materialGenerator.d.ts +121 -0
- package/build/esm/types/viewer/renderView.d.ts +67 -0
- package/build/esm/types/viewer/tavioMesh.d.ts +526 -0
- package/build/esm/types/wasm-bindings/wasm-handlers.d.ts +42 -0
- package/build/esm/types/wasm-bindings/wasm-worker-client.d.ts +123 -0
- package/build/esm/types/wasm-bindings/wasm-worker.d.ts +48 -0
- package/build/esm/types/wasm-bindings/wasm.d.ts +2 -0
- package/build/esm/types/worker/tavioWorker.d.ts +63 -0
- package/build/esm/wasm/pkg/no-thread/package.json +18 -0
- package/build/esm/wasm/pkg/no-thread/tavio.d.ts +127 -0
- package/build/esm/wasm/pkg/no-thread/tavio.js +1243 -0
- package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm +0 -0
- package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm.d.ts +39 -0
- package/build/esm/wasm/pkg/thread/package.json +18 -0
- package/build/esm/wasm/pkg/thread/snippets/wasm-bindgen-rayon-38edf6e439f6d70d/src/workerHelpers.js +107 -0
- package/build/esm/wasm/pkg/thread/tavio.d.ts +150 -0
- package/build/esm/wasm/pkg/thread/tavio.js +1419 -0
- package/build/esm/wasm/pkg/thread/tavio_bg.wasm +0 -0
- package/build/esm/wasm/pkg/thread/tavio_bg.wasm.d.ts +47 -0
- package/package.json +52 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { TavioWasm } from '../types/wasm';
|
|
2
|
+
type WasmFnKeys = Exclude<keyof {
|
|
3
|
+
[K in keyof TavioWasm as TavioWasm[K] extends (...args: any[]) => any ? K : never]: unknown;
|
|
4
|
+
}, "default" | "initSync" | "main" | "IntoUnderlyingByteSource" | "IntoUnderlyingSink" | "IntoUnderlyingSource">;
|
|
5
|
+
export type WasmFnMap = {
|
|
6
|
+
[K in WasmFnKeys]: TavioWasm[K];
|
|
7
|
+
};
|
|
8
|
+
export type WasmWorkerInitRequest = {
|
|
9
|
+
kind: "init";
|
|
10
|
+
options?: {
|
|
11
|
+
useSharedArrayBuffer?: boolean;
|
|
12
|
+
threadCount?: number;
|
|
13
|
+
wasmThreadBinaryUrl?: string;
|
|
14
|
+
wasmNoThreadBinaryUrl?: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type WasmWorkerRegisterEventHandlerRequest = {
|
|
18
|
+
kind: "registerEventHandler";
|
|
19
|
+
};
|
|
20
|
+
export type WasmWorkerRequest = WasmWorkerInitRequest | WasmWorkerRegisterEventHandlerRequest | {
|
|
21
|
+
[K in WasmFnKeys]: {
|
|
22
|
+
kind: K;
|
|
23
|
+
id: number;
|
|
24
|
+
args: Parameters<WasmFnMap[K]>;
|
|
25
|
+
};
|
|
26
|
+
}[WasmFnKeys];
|
|
27
|
+
export type WasmWorkerResponse = {
|
|
28
|
+
[K in WasmFnKeys]: {
|
|
29
|
+
kind: K;
|
|
30
|
+
id: number;
|
|
31
|
+
result: ReturnType<WasmFnMap[K]>;
|
|
32
|
+
};
|
|
33
|
+
}[WasmFnKeys];
|
|
34
|
+
export type WasmWorkerInitOptions = WasmWorkerInitRequest["options"];
|
|
35
|
+
export type WasmLoadedEvent = {
|
|
36
|
+
category: "wasmLoaded";
|
|
37
|
+
};
|
|
38
|
+
export type WasmErrorEvent = {
|
|
39
|
+
category: "wasmError";
|
|
40
|
+
id: number;
|
|
41
|
+
error: Error;
|
|
42
|
+
};
|
|
43
|
+
export type WasmCallbackEvent = {
|
|
44
|
+
category: "wasmCallback";
|
|
45
|
+
data: unknown;
|
|
46
|
+
};
|
|
47
|
+
export type WasmWorkerMessage = WasmWorkerResponse | WasmLoadedEvent | WasmErrorEvent | WasmCallbackEvent;
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # sorter
|
|
3
|
+
*
|
|
4
|
+
* ## receive
|
|
5
|
+
* buffer {SharedArrayBuffer} - 3DGS の情報を含む整形済みデータ
|
|
6
|
+
* indexBuffer {SharedArrayBuffer} - 並び順のデータ
|
|
7
|
+
* orderBuffer {SharedArrayBuffer} - 深度のデータ
|
|
8
|
+
* generalBuffer {SharedArrayBuffer} - セレクターとの衝突判定、raw-alpha など、汎用バッファ
|
|
9
|
+
* shBuffer {SharedArrayBuffer} - 球面調和関数用の交流成分のデータ
|
|
10
|
+
* vertexCount {number} - 現在の頂点(splat)の個数(buffer の長さによらず、これを上限としてループを回す)
|
|
11
|
+
* properties {any} - プロパティ(position, scale, rotation, alpha, sh0)
|
|
12
|
+
* shProperty {any} - プロパティ(shN)
|
|
13
|
+
* updateTexture {boolean} - 頂点の情報が更新されたのでテクスチャを更新する、を意味するフラグ
|
|
14
|
+
* updateOrder {boolean} - 深度情報が更新されたのでソートを行う、を意味するフラグ
|
|
15
|
+
* usingSphericalHarmonics {boolean} - 交流成分を利用するかどうか
|
|
16
|
+
* collision {iCollisionTarget} - 衝突判定用のデータ構造(単体または配列)
|
|
17
|
+
*
|
|
18
|
+
* ## post
|
|
19
|
+
* updateIndex {boolean} - 並び順を更新したことを意味するフラグ
|
|
20
|
+
* depthIndex {ArrayBufferLike} - ソートしたインデックス(SharedArrayBuffer 無効時のみ)
|
|
21
|
+
* generalBuffer {ArrayBufferLike} - 同期用(SharedArrayBuffer 無効時のみ)
|
|
22
|
+
* renderViewName {string|null} - 対象のレンダービューの名前
|
|
23
|
+
* currentVertexCount {number} - 現在の頂点の個数
|
|
24
|
+
* time {number} - 並び順の更新に掛かった時間(ms)
|
|
25
|
+
* textureData {Uint32Array} - テクスチャを生成するためのデータ
|
|
26
|
+
* textureWidth {number} - テクスチャの幅
|
|
27
|
+
* textureHeight {number} - テクスチャの高さ
|
|
28
|
+
* compressed0 {Uint32Array} - 交流成分を分割して格納したデータ
|
|
29
|
+
* compressed1 {Uint32Array} - 交流成分を分割して格納したデータ
|
|
30
|
+
* compressed2 {Uint32Array} - 交流成分を分割して格納したデータ
|
|
31
|
+
* compressed3 {Uint32Array} - 交流成分を分割して格納したデータ
|
|
32
|
+
* compressedSH {number} - データ変換時、交流成分を圧縮して格納したかどうか
|
|
33
|
+
* updateCollision {boolean} - 衝突判定の更新があった
|
|
34
|
+
*
|
|
35
|
+
* SharedArrayBuffer が無効な場合、それぞれにメモリを保持しながらデータをコピーしつつ動作する
|
|
36
|
+
* SharedArrayBuffer が有効な場合はメインスレッド側と worker 側で同じメモリ領域を参照する
|
|
37
|
+
* | main (TypedArray view) | worker |
|
|
38
|
+
* | ------------------------------------------ | ---------------------|
|
|
39
|
+
* | this.gaussianData (Uint8Array) | currentBuffer |
|
|
40
|
+
* | this.gaussianOrderData (Uint16Array) | currentOrderBuffer |
|
|
41
|
+
* | this.gaussianGeneralData (Uint8Array) | currentGeneralBuffer |
|
|
42
|
+
* | this.sphericalHarmonicsData (Float32Array) | currentSHBuffer |
|
|
43
|
+
*/
|
|
44
|
+
export type tCollisionType = "sphere" | "box";
|
|
45
|
+
export interface iSphereCollision {
|
|
46
|
+
radius: number;
|
|
47
|
+
position: number[];
|
|
48
|
+
scale: number[];
|
|
49
|
+
inverse4x4: number[];
|
|
50
|
+
}
|
|
51
|
+
export interface iBoxCollision {
|
|
52
|
+
width: number;
|
|
53
|
+
height: number;
|
|
54
|
+
depth: number;
|
|
55
|
+
position: number[];
|
|
56
|
+
scale: number[];
|
|
57
|
+
inverse4x4: number[];
|
|
58
|
+
}
|
|
59
|
+
export interface iCollisionTarget {
|
|
60
|
+
type: tCollisionType;
|
|
61
|
+
target: iSphereCollision | iBoxCollision;
|
|
62
|
+
reversed?: boolean;
|
|
63
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bindings-wasm",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"collaborators": [
|
|
5
|
+
"hnd <honda@softdevice.co.jp>"
|
|
6
|
+
],
|
|
7
|
+
"version": "0.1.0",
|
|
8
|
+
"files": [
|
|
9
|
+
"tavio_bg.wasm",
|
|
10
|
+
"tavio.js",
|
|
11
|
+
"tavio.d.ts"
|
|
12
|
+
],
|
|
13
|
+
"main": "tavio.js",
|
|
14
|
+
"types": "tavio.d.ts",
|
|
15
|
+
"sideEffects": [
|
|
16
|
+
"./snippets/*"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* The `ReadableStreamType` enum.
|
|
5
|
+
*
|
|
6
|
+
* *This API requires the following crate features to be activated: `ReadableStreamType`*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export type ReadableStreamType = "bytes";
|
|
10
|
+
|
|
11
|
+
export class IntoUnderlyingByteSource {
|
|
12
|
+
private constructor();
|
|
13
|
+
free(): void;
|
|
14
|
+
[Symbol.dispose](): void;
|
|
15
|
+
cancel(): void;
|
|
16
|
+
pull(controller: ReadableByteStreamController): Promise<any>;
|
|
17
|
+
start(controller: ReadableByteStreamController): void;
|
|
18
|
+
readonly autoAllocateChunkSize: number;
|
|
19
|
+
readonly type: ReadableStreamType;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export class IntoUnderlyingSink {
|
|
23
|
+
private constructor();
|
|
24
|
+
free(): void;
|
|
25
|
+
[Symbol.dispose](): void;
|
|
26
|
+
abort(reason: any): Promise<any>;
|
|
27
|
+
close(): Promise<any>;
|
|
28
|
+
write(chunk: any): Promise<any>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class IntoUnderlyingSource {
|
|
32
|
+
private constructor();
|
|
33
|
+
free(): void;
|
|
34
|
+
[Symbol.dispose](): void;
|
|
35
|
+
cancel(): void;
|
|
36
|
+
pull(controller: ReadableStreamDefaultController): Promise<any>;
|
|
37
|
+
}
|
|
38
|
+
|
|
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, celestial_sphere: any): 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, celestial_sphere: any): 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, celestial_sphere: any): Uint8Array;
|
|
54
|
+
|
|
55
|
+
export function encodeTavio(total_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, celestial_sphere: any, encode_options: any): Uint8Array;
|
|
56
|
+
|
|
57
|
+
export function main(): void;
|
|
58
|
+
|
|
59
|
+
export function registerEventHandler(event_handler: Function): Promise<void>;
|
|
60
|
+
|
|
61
|
+
export function resolveGaussianEdits(point_count: number, gaussian_buffer: Uint8Array, sh_buffer: Float32Array | null | undefined, general_data: Uint8Array, transform_data: Uint32Array, scale_min_values: Float32Array, scale_max_values: Float32Array): any;
|
|
62
|
+
|
|
63
|
+
export function sort(depths: Uint16Array, ordering: Uint32Array, splat_count: number): number;
|
|
64
|
+
|
|
65
|
+
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
|
66
|
+
|
|
67
|
+
export interface InitOutput {
|
|
68
|
+
readonly memory: WebAssembly.Memory;
|
|
69
|
+
readonly decodePly: (a: number, b: number, c: number) => number;
|
|
70
|
+
readonly decodeSplat: (a: number, b: number, c: number) => number;
|
|
71
|
+
readonly decodeSpz: (a: number, b: number, c: number) => number;
|
|
72
|
+
readonly encodePly: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
|
|
73
|
+
readonly encodeSplat: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
|
|
74
|
+
readonly encodeSpz: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
|
|
75
|
+
readonly resolveGaussianEdits: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
|
|
76
|
+
readonly decodeSog: (a: number, b: number, c: number) => number;
|
|
77
|
+
readonly main: () => void;
|
|
78
|
+
readonly registerEventHandler: (a: number) => number;
|
|
79
|
+
readonly sort: (a: number, b: number, c: number) => number;
|
|
80
|
+
readonly decodeTavio: (a: number, b: number, c: number) => number;
|
|
81
|
+
readonly encodeTavio: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
|
|
82
|
+
readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
|
|
83
|
+
readonly intounderlyingbytesource_autoAllocateChunkSize: (a: number) => number;
|
|
84
|
+
readonly intounderlyingbytesource_cancel: (a: number) => void;
|
|
85
|
+
readonly intounderlyingbytesource_pull: (a: number, b: number) => number;
|
|
86
|
+
readonly intounderlyingbytesource_start: (a: number, b: number) => void;
|
|
87
|
+
readonly intounderlyingbytesource_type: (a: number) => number;
|
|
88
|
+
readonly __wbg_intounderlyingsource_free: (a: number, b: number) => void;
|
|
89
|
+
readonly intounderlyingsource_cancel: (a: number) => void;
|
|
90
|
+
readonly intounderlyingsource_pull: (a: number, b: number) => number;
|
|
91
|
+
readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
|
|
92
|
+
readonly intounderlyingsink_abort: (a: number, b: number) => number;
|
|
93
|
+
readonly intounderlyingsink_close: (a: number) => number;
|
|
94
|
+
readonly intounderlyingsink_write: (a: number, b: number) => number;
|
|
95
|
+
readonly __wasm_bindgen_func_elem_2882: (a: number, b: number, c: number, d: number) => void;
|
|
96
|
+
readonly __wasm_bindgen_func_elem_2884: (a: number, b: number, c: number, d: number) => void;
|
|
97
|
+
readonly __wasm_bindgen_func_elem_1109: (a: number, b: number, c: number) => void;
|
|
98
|
+
readonly __wbindgen_export: (a: number, b: number) => number;
|
|
99
|
+
readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
|
|
100
|
+
readonly __wbindgen_export3: (a: number) => void;
|
|
101
|
+
readonly __wbindgen_export4: (a: number, b: number, c: number) => void;
|
|
102
|
+
readonly __wbindgen_export5: (a: number, b: number) => void;
|
|
103
|
+
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
|
104
|
+
readonly __wbindgen_start: () => void;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Instantiates the given `module`, which can either be bytes or
|
|
111
|
+
* a precompiled `WebAssembly.Module`.
|
|
112
|
+
*
|
|
113
|
+
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
114
|
+
*
|
|
115
|
+
* @returns {InitOutput}
|
|
116
|
+
*/
|
|
117
|
+
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
121
|
+
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
122
|
+
*
|
|
123
|
+
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
124
|
+
*
|
|
125
|
+
* @returns {Promise<InitOutput>}
|
|
126
|
+
*/
|
|
127
|
+
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|