@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,121 @@
|
|
|
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
|
+
defines?: any;
|
|
82
|
+
vertex?: iShaderChunk | iShaderChunk[];
|
|
83
|
+
fragment?: iShaderChunk | iShaderChunk[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 複数のシェーダチャンクを組み合わせてマテリアルを生成する
|
|
87
|
+
*/
|
|
88
|
+
export declare class MaterialGenerator {
|
|
89
|
+
/**
|
|
90
|
+
* shaderChunk/common に含まれる頂点シェーダのチャンクをセットした Map オブジェクトを生成する
|
|
91
|
+
*/
|
|
92
|
+
private static _createVertexMap;
|
|
93
|
+
/**
|
|
94
|
+
* shaderChunk/common に含まれるフラグメントシェーダのチャンクをセットした Map オブジェクトを生成する
|
|
95
|
+
*/
|
|
96
|
+
private static _createFragmentMap;
|
|
97
|
+
/**
|
|
98
|
+
* シェーダチャンクに iMaterialOption.vertex / fragment に含まれるソースコードを結合する
|
|
99
|
+
* @param option - シェーダチャンクを含むマテリアルオプション
|
|
100
|
+
* @param vsMap - 頂点シェーダ用
|
|
101
|
+
* @param fsMap - フラグメントシェーダ用
|
|
102
|
+
* @return 各ステージに何回チャンクが結合されたかを表す配列
|
|
103
|
+
*/
|
|
104
|
+
private static _mergeShaderSource;
|
|
105
|
+
/**
|
|
106
|
+
* uniform 変数用の雛形を生成する(src/shderChunk/common 以下で定義される最低限のもの)
|
|
107
|
+
*/
|
|
108
|
+
private static _createUniforms;
|
|
109
|
+
/**
|
|
110
|
+
* Map オブジェクトに含まれるソースコードを結合する
|
|
111
|
+
* @param map - 処理の対象となる Map オブジェクト
|
|
112
|
+
* @param isDebug - デバッグ用にコンソールにソースコードを出力するかどうか
|
|
113
|
+
*/
|
|
114
|
+
private static _createShaderSource;
|
|
115
|
+
/**
|
|
116
|
+
* マテリアルを生成する
|
|
117
|
+
* @param option - シェーダチャンクなどの情報を含むマテリアルオプション
|
|
118
|
+
* @param isDebug - デバッグ用にコンソールにソースコードを出力するかどうか
|
|
119
|
+
*/
|
|
120
|
+
static generate(option?: iMaterialOption | iMaterialOption[], isDebug?: boolean): iMaterials;
|
|
121
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Group, PerspectiveCamera, Quaternion, Scene, Vector3 } from 'three';
|
|
2
|
+
import { tControlInstance, tControlsType } from './canvas';
|
|
3
|
+
import { CameraCollider } from '../camera/cameraCollider';
|
|
4
|
+
import { TransferControls } from '../camera/transferControls';
|
|
5
|
+
import { CameraPathManager } from '../camera/cameraPathManager';
|
|
6
|
+
/**
|
|
7
|
+
* レンダービューはビューポートの設定値、シーングラフとカメラ、カメラコントロールなどを包含する
|
|
8
|
+
* canvas.ts 内でレンダリングを行う際などに参照され、マルチビューを実現するために実装された
|
|
9
|
+
* name プロパティに Symbol が指定されている場合、それは既定のレンダービューで初期化時に自動生成される
|
|
10
|
+
* TavioMesh(の名前)が add メソッドによって追加されている場合、対象のレンダービュー上で描画される
|
|
11
|
+
* 追加された TavioMesh は children プロパティに格納され、描画時に動的にシーングラフに追加される
|
|
12
|
+
*/
|
|
13
|
+
export declare class RenderView {
|
|
14
|
+
readonly name: string | Symbol;
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
children: string[];
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
scene: Scene;
|
|
22
|
+
pickingScene: Scene;
|
|
23
|
+
gaussianGroup: Group;
|
|
24
|
+
meshGroup: Group;
|
|
25
|
+
interfaceGroup: Group;
|
|
26
|
+
perspectiveCamera: PerspectiveCamera;
|
|
27
|
+
controlsMap: Map<string, tControlInstance>;
|
|
28
|
+
enableControlsMap: Map<string, boolean>;
|
|
29
|
+
currentControlsType: tControlsType;
|
|
30
|
+
transferControls: TransferControls;
|
|
31
|
+
cameraCollider: CameraCollider;
|
|
32
|
+
cameraPathCollisionRadius: number;
|
|
33
|
+
cameraPathManager: CameraPathManager;
|
|
34
|
+
previousPosition: Vector3;
|
|
35
|
+
previousRotation: Quaternion;
|
|
36
|
+
previousFov: number;
|
|
37
|
+
orbitCursor: Group;
|
|
38
|
+
orbitCursorEnabled: boolean;
|
|
39
|
+
previousOrbitTarget: Vector3;
|
|
40
|
+
/**
|
|
41
|
+
* @param name - レンダービューの名前
|
|
42
|
+
*/
|
|
43
|
+
constructor(name: string | Symbol);
|
|
44
|
+
/**
|
|
45
|
+
* レンダービューに該当する名前の TavioMesh が含まれるかどうかを返す
|
|
46
|
+
* @param meshName - 対象となる TavioMesh の名前
|
|
47
|
+
*/
|
|
48
|
+
has(meshName: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* レンダービューに TavioMesh を追加する
|
|
51
|
+
* @param meshName - 対象となる TavioMesh の名前
|
|
52
|
+
*/
|
|
53
|
+
add(meshName: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* レンダービューから TavioMesh を削除する
|
|
56
|
+
* @param meshName - 対象となる TavioMesh の名前
|
|
57
|
+
*/
|
|
58
|
+
remove(meshName: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* レンダービューからすべての TavioMesh を削除する
|
|
61
|
+
*/
|
|
62
|
+
removeAll(): void;
|
|
63
|
+
/**
|
|
64
|
+
* 解放処理
|
|
65
|
+
*/
|
|
66
|
+
dispose(): void;
|
|
67
|
+
}
|