@openheart/tavio-renderer 2.2.11-without-wasm → 2.2.13-without-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 +1085 -204
- package/build/esm/types/camera/orbitControls.d.ts +29 -5
- package/build/esm/types/utility/utility.d.ts +11 -0
- package/build/esm/types/viewer/canvas.d.ts +81 -34
- package/build/esm/types/viewer/tavioMesh.d.ts +68 -6
- package/build/esm/types/worker/tavioWorker.d.ts +2 -0
- package/build/esm/wasm/pkg/no-thread/tavio.d.ts +11 -8
- package/build/esm/wasm/pkg/no-thread/tavio.js +121 -110
- package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm +0 -0
- package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm.d.ts +11 -8
- package/build/esm/wasm/pkg/thread/tavio.d.ts +15 -11
- package/build/esm/wasm/pkg/thread/tavio.js +167 -129
- package/build/esm/wasm/pkg/thread/tavio_bg.wasm +0 -0
- package/build/esm/wasm/pkg/thread/tavio_bg.wasm.d.ts +15 -11
- package/package.json +1 -1
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import { PerspectiveCamera, Vector3 } from 'three';
|
|
1
|
+
import { PerspectiveCamera, Vector2, Vector3 } from 'three';
|
|
2
2
|
import { default as EventEmitter } from 'eventemitter3';
|
|
3
3
|
interface iOrbitState {
|
|
4
4
|
position: Vector3;
|
|
5
5
|
target: Vector3;
|
|
6
6
|
}
|
|
7
|
+
interface iThetaPhi {
|
|
8
|
+
theta: number;
|
|
9
|
+
phi: number;
|
|
10
|
+
eye?: Vector3;
|
|
11
|
+
eyeXZ?: Vector2;
|
|
12
|
+
}
|
|
7
13
|
/**
|
|
8
14
|
* カメラを中心に首振りや仰角方向の視線制御を可能とするカメラコントロール
|
|
9
15
|
* @class
|
|
@@ -30,6 +36,7 @@ export declare class OrbitControls extends EventEmitter {
|
|
|
30
36
|
enableZoom: boolean;
|
|
31
37
|
enablePan: boolean;
|
|
32
38
|
enableLimit: boolean;
|
|
39
|
+
enableZoomLimit: boolean;
|
|
33
40
|
/**
|
|
34
41
|
* 範囲を制限する処理では、東西南北のそれぞれの方向に対して制限範囲を設定できる
|
|
35
42
|
* カメラが北極方向に近づく北緯方向を上、向かって左に流れていく方向を西経方向とする
|
|
@@ -49,6 +56,8 @@ export declare class OrbitControls extends EventEmitter {
|
|
|
49
56
|
private downLimit;
|
|
50
57
|
private leftLimit;
|
|
51
58
|
private rightLimit;
|
|
59
|
+
private zoomInLimit;
|
|
60
|
+
private zoomOutLimit;
|
|
52
61
|
private isDown;
|
|
53
62
|
private overflow;
|
|
54
63
|
private upOver;
|
|
@@ -61,15 +70,16 @@ export declare class OrbitControls extends EventEmitter {
|
|
|
61
70
|
private _quatX;
|
|
62
71
|
private _quatY;
|
|
63
72
|
static EVENTS: string[];
|
|
73
|
+
/**
|
|
74
|
+
* 与えられた三次元ベクトル(要正規化)から theta と phi を計算する
|
|
75
|
+
* @param eye - 正規化されたベクトル
|
|
76
|
+
*/
|
|
77
|
+
static calcThetaPhi(eye: Vector3): iThetaPhi;
|
|
64
78
|
/**
|
|
65
79
|
* @constructor
|
|
66
80
|
* @param camera - 制御の対象となるカメラ
|
|
67
81
|
*/
|
|
68
82
|
constructor(camera: PerspectiveCamera);
|
|
69
|
-
/**
|
|
70
|
-
* 現在の視線から theta と phi を計算する
|
|
71
|
-
*/
|
|
72
|
-
private _getTP;
|
|
73
83
|
/**
|
|
74
84
|
* 大きなラジアンをクランプする
|
|
75
85
|
* @param value - 処理対象となる値
|
|
@@ -113,6 +123,10 @@ export declare class OrbitControls extends EventEmitter {
|
|
|
113
123
|
* 注視点とカメラの距離を設定する
|
|
114
124
|
*/
|
|
115
125
|
setDistance(distance: number): void;
|
|
126
|
+
/**
|
|
127
|
+
* 現在の向き(ラジアンでの緯度経度)
|
|
128
|
+
*/
|
|
129
|
+
getAngle(): iThetaPhi;
|
|
116
130
|
/**
|
|
117
131
|
* 前後移動(相対指定)
|
|
118
132
|
* @param value - 距離
|
|
@@ -172,6 +186,16 @@ export declare class OrbitControls extends EventEmitter {
|
|
|
172
186
|
* @param value - 設定する値
|
|
173
187
|
*/
|
|
174
188
|
setRightLimit(value: number): void;
|
|
189
|
+
/**
|
|
190
|
+
* ズームの最短距離
|
|
191
|
+
* @param value - 設定する値
|
|
192
|
+
*/
|
|
193
|
+
setZoomInLimit(value: number): void;
|
|
194
|
+
/**
|
|
195
|
+
* ズームの最長距離
|
|
196
|
+
* @param value - 設定する値
|
|
197
|
+
*/
|
|
198
|
+
setZoomOutLimit(value: number): void;
|
|
175
199
|
/**
|
|
176
200
|
* 状態を更新し、変更があったかどうかを真偽値で返す
|
|
177
201
|
*/
|
|
@@ -30,6 +30,17 @@ export declare function loadJson(path: string): Promise<any>;
|
|
|
30
30
|
* @param target - 対象となるビット数
|
|
31
31
|
*/
|
|
32
32
|
export declare function checkBit(value: number, target: number): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 4bit 整数を2つ受け取り、1つの 8bit 整数として返す
|
|
35
|
+
* @param high - 上位ビットに収める値
|
|
36
|
+
* @param low - 下位ビットに収める値
|
|
37
|
+
*/
|
|
38
|
+
export declare function pack4to8(high: number, low: number): number;
|
|
39
|
+
/**
|
|
40
|
+
* 1つの 8bit 整数を受け取り、4bit 整数を2つ返す
|
|
41
|
+
* @param value - 下位ビットに収める値
|
|
42
|
+
*/
|
|
43
|
+
export declare function unpack8to4(value: number): number[];
|
|
33
44
|
/**
|
|
34
45
|
* quaternion を octahedral quaternion に変換して返す
|
|
35
46
|
* @param w - クォータニオンの w 成分
|
|
@@ -59,6 +59,7 @@ interface iCameraPathOption {
|
|
|
59
59
|
interface iCameraParameter {
|
|
60
60
|
position?: number[];
|
|
61
61
|
eye?: number[];
|
|
62
|
+
target?: number[];
|
|
62
63
|
fov?: number;
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
@@ -136,6 +137,14 @@ export interface iTransform {
|
|
|
136
137
|
rotation: Euler;
|
|
137
138
|
scale: number;
|
|
138
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* ピッキングして得られた情報
|
|
142
|
+
*/
|
|
143
|
+
export interface iPickingInfo {
|
|
144
|
+
name: string;
|
|
145
|
+
index: number;
|
|
146
|
+
target: iVectorLike;
|
|
147
|
+
}
|
|
139
148
|
/**
|
|
140
149
|
* ビューア実装本体
|
|
141
150
|
*/
|
|
@@ -299,7 +308,7 @@ export declare class Core extends EventEmitter {
|
|
|
299
308
|
/**
|
|
300
309
|
* 既存の TavioMesh のインスタンスにデータを統合する
|
|
301
310
|
* @param name - このメッシュの固有名
|
|
302
|
-
* @param url - 読み込む .
|
|
311
|
+
* @param url - 読み込む .ply ファイル
|
|
303
312
|
* @param option - ロード・パース関連のオプション
|
|
304
313
|
*/
|
|
305
314
|
concatPly(name: string, url: string, option?: iLoadingOption): Promise<void>;
|
|
@@ -312,10 +321,33 @@ export declare class Core extends EventEmitter {
|
|
|
312
321
|
/**
|
|
313
322
|
* 既存の TavioMesh のインスタンスにデータを統合する
|
|
314
323
|
* @param name - このメッシュの固有名
|
|
315
|
-
* @param url - 読み込む .
|
|
316
|
-
* @param option - ロード・パース関連のオプション
|
|
324
|
+
* @param url - 読み込む .splat ファイル
|
|
317
325
|
*/
|
|
318
326
|
concatSplat(name: string, url: string): Promise<void>;
|
|
327
|
+
/**
|
|
328
|
+
* TavioMesh のインスタンスを生成し画像形式のリソースをロード、シーンに追加する
|
|
329
|
+
* @param name - このメッシュの固有名
|
|
330
|
+
* @param url - 読み込む画像ファイル
|
|
331
|
+
*/
|
|
332
|
+
loadImage(name: string, url: string): Promise<void>;
|
|
333
|
+
/**
|
|
334
|
+
* 既存の TavioMesh のインスタンスにデータを統合する
|
|
335
|
+
* @param name - このメッシュの固有名
|
|
336
|
+
* @param url - 読み込む画像ファイル
|
|
337
|
+
*/
|
|
338
|
+
concatImage(name: string, url: string): Promise<void>;
|
|
339
|
+
/**
|
|
340
|
+
* canvas 要素から TavioMesh のインスタンスを生成し、シーンに追加する
|
|
341
|
+
* @param name - このメッシュの固有名
|
|
342
|
+
* @param canvas - 処理の対象となる canvas 要素
|
|
343
|
+
*/
|
|
344
|
+
loadCanvas(name: string, canvas: HTMLCanvasElement): Promise<void>;
|
|
345
|
+
/**
|
|
346
|
+
* 既存の TavioMesh のインスタンスにデータを統合する
|
|
347
|
+
* @param name - このメッシュの固有名
|
|
348
|
+
* @param canvas - 処理の対象となる canvas 要素
|
|
349
|
+
*/
|
|
350
|
+
concatCanvas(name: string, canvas: HTMLCanvasElement): Promise<void>;
|
|
319
351
|
/**
|
|
320
352
|
* tavio 形式のリソースをロードする
|
|
321
353
|
* @param name - このメッシュの固有名
|
|
@@ -368,14 +400,14 @@ export declare class Core extends EventEmitter {
|
|
|
368
400
|
setBackgroundOpacity(opacity: number): void;
|
|
369
401
|
/**
|
|
370
402
|
* 名前を指定した TavioMesh に含まれるインスタンスを、インデックスで指定して動かす
|
|
371
|
-
* ※ここでいうインデックスとは load/concat
|
|
403
|
+
* ※ここでいうインデックスとは load/concat した順番を意味する整数値(concat していない場合常に 0)
|
|
372
404
|
* @param name - 対象の名前
|
|
373
405
|
* @param index - インデックス
|
|
374
406
|
* @param translation - 平行移動
|
|
375
407
|
* @param rotation - 回転(オイラー角)
|
|
376
408
|
* @param scale - 拡大縮小(XYZ で統一のスケール)
|
|
377
409
|
*/
|
|
378
|
-
setTransform(name: string, index: number, translation:
|
|
410
|
+
setTransform(name: string, index: number, translation: iVectorLike, rotation: iVectorLike, scale: number): void;
|
|
379
411
|
/**
|
|
380
412
|
* 名前を指定した TavioMesh に含まれるインスタンスの、指定されたインデックスの座標変換情報を返す
|
|
381
413
|
* ※ここでいうインデックスとは load/concat した順番を意味する整数値
|
|
@@ -383,6 +415,14 @@ export declare class Core extends EventEmitter {
|
|
|
383
415
|
* @param index - インデックス
|
|
384
416
|
*/
|
|
385
417
|
getTransform(name: string, index: number): iTransform;
|
|
418
|
+
/**
|
|
419
|
+
* 名前を指定した TavioMesh に含まれるインスタンスをビルボードとして扱うかどうかを設定する
|
|
420
|
+
* ※ここでいうインデックスとは load/concat した順番を意味する整数値
|
|
421
|
+
* @param name - 対象の名前
|
|
422
|
+
* @param index - インデックス
|
|
423
|
+
* @param flag - ビルボードとして扱うかどうか
|
|
424
|
+
*/
|
|
425
|
+
setBillboard(name: string, index: number, flag: boolean): void;
|
|
386
426
|
/**
|
|
387
427
|
* ==========================================================================
|
|
388
428
|
* general
|
|
@@ -436,8 +476,9 @@ export declare class Core extends EventEmitter {
|
|
|
436
476
|
* フレームバッファに 3DGS のワールド座標をレンダリングし指定されたスクリーン座標から取得する
|
|
437
477
|
* @param x - 取得する X 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標)
|
|
438
478
|
* @param y - 取得する Y 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標, Y-down)
|
|
479
|
+
* @param isDebug - デバッグモード(有効化するとピッキングバッファを可視化)
|
|
439
480
|
*/
|
|
440
|
-
getWorldPositionByScreen(x: number, y: number): Promise<
|
|
481
|
+
getWorldPositionByScreen(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo>;
|
|
441
482
|
/**
|
|
442
483
|
* 各種リソースを解放する
|
|
443
484
|
* ※このメソッドを呼び出すと、それまで利用していた canvas は再利用できなくなる
|
|
@@ -449,22 +490,28 @@ export declare class Core extends EventEmitter {
|
|
|
449
490
|
* @private
|
|
450
491
|
*/
|
|
451
492
|
private _updateViewportUniforms;
|
|
493
|
+
/**
|
|
494
|
+
* 座標を焼き込むレンダリング処理を実行しソートを実行させる
|
|
495
|
+
* @param isForce - 強制的に実行するかどうか
|
|
496
|
+
*/
|
|
497
|
+
private _renderDepthRenderTarget;
|
|
452
498
|
/**
|
|
453
499
|
* ==========================================================================
|
|
454
500
|
* camera
|
|
455
501
|
* ==========================================================================
|
|
456
502
|
*/
|
|
457
503
|
/**
|
|
458
|
-
*
|
|
504
|
+
* カメラの現在の座標と視線方向、視野角を取得する
|
|
459
505
|
*/
|
|
460
506
|
getCameraParameter(): iCameraParameter;
|
|
461
507
|
/**
|
|
462
|
-
*
|
|
508
|
+
* カメラの現在の座標と注視点、視野角を設定する
|
|
509
|
+
* ※このメソッドは設定時、その値が即座に反映される
|
|
463
510
|
* @param position - 設定する座標
|
|
464
|
-
* @param
|
|
511
|
+
* @param target - 設定する注視点
|
|
465
512
|
* @param fov - 設定する視野角
|
|
466
513
|
*/
|
|
467
|
-
setCameraParameter(position: iVectorLike,
|
|
514
|
+
setCameraParameter(position: iVectorLike | null, target?: iVectorLike | null, fov?: number | null): void;
|
|
468
515
|
/**
|
|
469
516
|
* ==========================================================================
|
|
470
517
|
* controls
|
|
@@ -489,23 +536,6 @@ export declare class Core extends EventEmitter {
|
|
|
489
536
|
* orbit controls
|
|
490
537
|
* ==========================================================================
|
|
491
538
|
*/
|
|
492
|
-
/**
|
|
493
|
-
* オービットコントロールの注視点の座標を取得する
|
|
494
|
-
* @returns 注視点の座標
|
|
495
|
-
*/
|
|
496
|
-
getOrbitTarget(): iVectorLike;
|
|
497
|
-
/**
|
|
498
|
-
* オービットコントロールの注視点と座標を設定する
|
|
499
|
-
* @param position - カメラの座標
|
|
500
|
-
* @param target - 注視点の座標
|
|
501
|
-
* setTransferPositionのみ呼び出した場合、見た目が変わらなかったため本関数を作成。
|
|
502
|
-
*/
|
|
503
|
-
setOrbitPositionAndTarget(position: iVectorLike, target: iVectorLike): void;
|
|
504
|
-
/**
|
|
505
|
-
* オービットコントロールの注視点を設定する
|
|
506
|
-
* @param target - 注視点の座標
|
|
507
|
-
*/
|
|
508
|
-
setOrbitTarget(target: iVectorLike): void;
|
|
509
539
|
/**
|
|
510
540
|
* オービットコントロールのズーム使用可否を設定する
|
|
511
541
|
* @param enable - 使用可否を意味する真偽値
|
|
@@ -521,6 +551,11 @@ export declare class Core extends EventEmitter {
|
|
|
521
551
|
* @param enable - 使用可否を意味する真偽値
|
|
522
552
|
*/
|
|
523
553
|
setOrbitEnableLimit(enable: boolean): void;
|
|
554
|
+
/**
|
|
555
|
+
* オービットコントロールのズーム範囲制限の可否を設定する
|
|
556
|
+
* @param enable - 使用可否を意味する真偽値
|
|
557
|
+
*/
|
|
558
|
+
setOrbitEnableZoomLimit(enable: boolean): void;
|
|
524
559
|
/**
|
|
525
560
|
* オービットコントロールの注視点と座標の距離を取得する
|
|
526
561
|
* @returns 注視点と座標の距離
|
|
@@ -592,6 +627,16 @@ export declare class Core extends EventEmitter {
|
|
|
592
627
|
* @param value - 設定する値
|
|
593
628
|
*/
|
|
594
629
|
setOrbitRightLimit(value: number): void;
|
|
630
|
+
/**
|
|
631
|
+
* オービットコントロールのズームの最短距離を設定する
|
|
632
|
+
* @param value - 設定する値
|
|
633
|
+
*/
|
|
634
|
+
setOrbitZoomInLimit(value: number): void;
|
|
635
|
+
/**
|
|
636
|
+
* オービットコントロールのズームの最長距離を設定する
|
|
637
|
+
* @param value - 設定する値
|
|
638
|
+
*/
|
|
639
|
+
setOrbitZoomOutLimit(value: number): void;
|
|
595
640
|
/**
|
|
596
641
|
* ==========================================================================
|
|
597
642
|
* camera path controls
|
|
@@ -707,6 +752,12 @@ export declare class Core extends EventEmitter {
|
|
|
707
752
|
* @param isForce - トランジションせず即座に強制上書きするかどうか
|
|
708
753
|
*/
|
|
709
754
|
setTransferRelativePosition(position: iVectorLike, isForce?: boolean): void;
|
|
755
|
+
/**
|
|
756
|
+
* TransferControls に fov を設定する
|
|
757
|
+
* @param fov - 設定する fov
|
|
758
|
+
* @param isForce - トランジションせず即座に強制上書きするかどうか
|
|
759
|
+
*/
|
|
760
|
+
setTransferFov(fov: number, isForce?: boolean): void;
|
|
710
761
|
/**
|
|
711
762
|
* TransferControls に、現在の位置と向きに応じて移動するよう設定する
|
|
712
763
|
* @param offset - 移動する量
|
|
@@ -734,12 +785,6 @@ export declare class Core extends EventEmitter {
|
|
|
734
785
|
* @param isForce - トランジションせず即座に強制上書きするかどうか
|
|
735
786
|
*/
|
|
736
787
|
moveTransferToBottom(scale: number, isForce?: boolean): void;
|
|
737
|
-
/**
|
|
738
|
-
* TransferControls に fov を設定する
|
|
739
|
-
* @param fov - 設定する fov
|
|
740
|
-
* @param isForce - トランジションせず即座に強制上書きするかどうか
|
|
741
|
-
*/
|
|
742
|
-
setTransferFov(fov: number, isForce?: boolean): void;
|
|
743
788
|
/**
|
|
744
789
|
* ==========================================================================
|
|
745
790
|
* camera collider
|
|
@@ -1017,12 +1062,14 @@ export declare class Core extends EventEmitter {
|
|
|
1017
1062
|
/**
|
|
1018
1063
|
* 箱の衝突判定パラメータ(Worker に渡すフォーマット)を生成する
|
|
1019
1064
|
* @param width - 一辺の幅
|
|
1065
|
+
* @param height - 一辺の高さ
|
|
1066
|
+
* @param depth - 一辺の奥行き
|
|
1020
1067
|
* @param position - ワールド空間における位置
|
|
1021
1068
|
* @param scale - ワールド空間における拡大縮小(スケール)
|
|
1022
1069
|
* @param inverseMatrix - ワールド変換の逆行列
|
|
1023
1070
|
* @param reversed - 判定の反転(球に内包されている状態を規定とし、それを反転するかどうか)
|
|
1024
1071
|
*/
|
|
1025
|
-
createCollisionBox(width: number, position: iVectorLike, scale: iVectorLike, inverseMatrix: Matrix4, reversed?: boolean): iCollisionTarget;
|
|
1072
|
+
createCollisionBox(width: number, height: number, depth: number, position: iVectorLike, scale: iVectorLike, inverseMatrix: Matrix4, reversed?: boolean): iCollisionTarget;
|
|
1026
1073
|
/**
|
|
1027
1074
|
* ==========================================================================
|
|
1028
1075
|
* selector
|
|
@@ -1,11 +1,33 @@
|
|
|
1
1
|
import { CubeTexture, DataTexture, Euler, PerspectiveCamera, Points, RawShaderMaterial, Texture, Vector3, WebGLRenderer } from 'three';
|
|
2
2
|
import { default as EventEmitter } from 'eventemitter3';
|
|
3
|
-
import { iLoadingOption, iViewerOption, iHeaderInfo, iTransform } from './canvas';
|
|
3
|
+
import { iLoadingOption, iViewerOption, iHeaderInfo, iTransform, iVectorLike } from './canvas';
|
|
4
4
|
import { iCollisionTarget } from '../worker/tavioWorker';
|
|
5
5
|
import { InstancedMeshEX } from '../extension/InstancedMeshEX';
|
|
6
|
+
/**
|
|
7
|
+
* 画素情報として扱えるオブジェクト
|
|
8
|
+
*/
|
|
9
|
+
type tImageSource = HTMLImageElement | HTMLCanvasElement;
|
|
10
|
+
/**
|
|
11
|
+
* 画像や canvas 要素をパースした結果
|
|
12
|
+
*/
|
|
13
|
+
interface iSplatSource {
|
|
14
|
+
count: number;
|
|
15
|
+
position32: Float32Array;
|
|
16
|
+
color8: Uint8ClampedArray;
|
|
17
|
+
converted: Uint8Array;
|
|
18
|
+
min: {
|
|
19
|
+
alpha: number;
|
|
20
|
+
scale: iVectorLike;
|
|
21
|
+
};
|
|
22
|
+
max: {
|
|
23
|
+
alpha: number;
|
|
24
|
+
scale: iVectorLike;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
6
27
|
export declare class TavioMesh extends EventEmitter {
|
|
7
28
|
private perspectiveCamera;
|
|
8
29
|
private worker;
|
|
30
|
+
private meshIndex;
|
|
9
31
|
private featureBits;
|
|
10
32
|
private majorVersionNumber;
|
|
11
33
|
private minorVersionNumber;
|
|
@@ -41,6 +63,7 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
41
63
|
initialized: boolean;
|
|
42
64
|
initializedPoints: boolean;
|
|
43
65
|
initializedBackground: boolean;
|
|
66
|
+
sorted: boolean;
|
|
44
67
|
private positionAttribute;
|
|
45
68
|
private indexAttribute;
|
|
46
69
|
private gaussianGeometry;
|
|
@@ -59,6 +82,7 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
59
82
|
private useWasmSort;
|
|
60
83
|
private wasmSortClient;
|
|
61
84
|
private isSorting;
|
|
85
|
+
private hasBillboard;
|
|
62
86
|
private lastViewProjectionMatrix;
|
|
63
87
|
private depthRenderTarget;
|
|
64
88
|
private depthRenderScene;
|
|
@@ -72,7 +96,9 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
72
96
|
* R は選択されているかどうかを意味し、Uint8 の各ビットがどのセレクターによるものかを意味する
|
|
73
97
|
* G は削除されているかどうかを意味し、将来的に undo/redo に対応するため削除操作のたびにインクリメントする
|
|
74
98
|
* B は tavio 形式時の生アルファを保持し、min-max で復元する前の状態のままシェーダに送る
|
|
75
|
-
* A
|
|
99
|
+
* A は何番目のメッシュなのか、を意味する整数と……
|
|
100
|
+
* 1つのメッシュに対して複数のデータを統合する際に何番目のデータであるかの整数インデックスを保持する
|
|
101
|
+
* データは 8bit のアルファチャンネル1つに対して 4bit 整数を2つパックして詰め込む
|
|
76
102
|
*/
|
|
77
103
|
/**
|
|
78
104
|
* this.gaussianTransformData についての覚書
|
|
@@ -89,11 +115,12 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
89
115
|
static EVENTS: string[];
|
|
90
116
|
/**
|
|
91
117
|
* @constructor
|
|
118
|
+
* @param index - プロジェクト全体として何番目のメッシュのインスタンスかを意味するインデックス
|
|
92
119
|
* @param camera - worker の更新のためにカメラのインスタンスが必要
|
|
93
120
|
* @param material - メッシュの生成に使うマテリアルは上の層から指定されたものを使う
|
|
94
121
|
* @param pickingMaterial - メッシュの生成に使うマテリアルは上の層から指定されたものを使う
|
|
95
122
|
*/
|
|
96
|
-
constructor(camera: PerspectiveCamera, material: RawShaderMaterial, pinckingMaterial: RawShaderMaterial, viewerOption: iViewerOption);
|
|
123
|
+
constructor(index: number, camera: PerspectiveCamera, material: RawShaderMaterial, pinckingMaterial: RawShaderMaterial, viewerOption: iViewerOption);
|
|
97
124
|
/**
|
|
98
125
|
* ==========================================================================
|
|
99
126
|
* loader
|
|
@@ -116,6 +143,11 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
116
143
|
* @param url - 読み込む .splat ファイル
|
|
117
144
|
*/
|
|
118
145
|
loadSplat(url: string): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* 画像形式のリソースをロードする
|
|
148
|
+
* @param url - 読み込む画像ファイル
|
|
149
|
+
*/
|
|
150
|
+
loadImage(url: string): Promise<void>;
|
|
119
151
|
/**
|
|
120
152
|
* tavio 形式のリソースをロードする
|
|
121
153
|
* @param url - 読み込む .tavio ファイル
|
|
@@ -169,6 +201,16 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
169
201
|
useGeneralData?: boolean;
|
|
170
202
|
featureFlags?: number;
|
|
171
203
|
}): Promise<void>;
|
|
204
|
+
/**
|
|
205
|
+
* canvas 要素からガウシアンを生成してシーンに追加する
|
|
206
|
+
* @param canvas - 対象となる canvas 要素
|
|
207
|
+
*/
|
|
208
|
+
loadCanvas(canvas: HTMLCanvasElement): Promise<void>;
|
|
209
|
+
/**
|
|
210
|
+
* 画像や canvas 要素をパースし変換する
|
|
211
|
+
* @param imageSource - 対象となる画像や canvas
|
|
212
|
+
*/
|
|
213
|
+
convertImageSource(imageSource: tImageSource): iSplatSource;
|
|
172
214
|
/**
|
|
173
215
|
* ==========================================================================
|
|
174
216
|
* getter / setter
|
|
@@ -259,13 +301,30 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
259
301
|
* @param translation - 平行移動
|
|
260
302
|
* @param rotation - 回転(オイラー角)
|
|
261
303
|
* @param scale - 拡大縮小(XYZ で統一のスケール)
|
|
304
|
+
* @param force - 同時にテクスチャの内容を強制的に書き換えるかどうか
|
|
262
305
|
*/
|
|
263
|
-
setTransform(index: number, translation: Vector3, rotation: Euler, scale: number): void;
|
|
306
|
+
setTransform(index: number, translation: Vector3, rotation: Euler, scale: number, isForce?: boolean): void;
|
|
264
307
|
/**
|
|
265
308
|
* 指定されたインデックスの座標変換情報を返す
|
|
266
309
|
* @param index - インデックス
|
|
267
310
|
*/
|
|
268
311
|
getTransform(index: number): iTransform;
|
|
312
|
+
/**
|
|
313
|
+
* インデックスを指定してビルボードの設定を行う
|
|
314
|
+
* @param index - インデックス
|
|
315
|
+
* @param flag - ビルボードとして扱うかどうか
|
|
316
|
+
*/
|
|
317
|
+
setBillboard(index: number, flag: boolean): void;
|
|
318
|
+
/**
|
|
319
|
+
* ビルボードのための transform 情報の更新を行う
|
|
320
|
+
* @param camera - カメラのワールド空間上の位置
|
|
321
|
+
*/
|
|
322
|
+
updateBillboard(camera: PerspectiveCamera): void;
|
|
323
|
+
/**
|
|
324
|
+
* インスタンスごとの transform 情報をテクスチャに適用し更新する
|
|
325
|
+
* @private
|
|
326
|
+
*/
|
|
327
|
+
private _updateTransformData;
|
|
269
328
|
/**
|
|
270
329
|
* 自身のプロパティの状態に応じて球面調和関数に関連する uniform 変数の更新を行う
|
|
271
330
|
* @private
|
|
@@ -284,9 +343,8 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
284
343
|
*/
|
|
285
344
|
/**
|
|
286
345
|
* picking 用マテリアルに uniform 変数を同期する
|
|
287
|
-
* @param div - ピッキング用フレームバッファの大きさに対する除数
|
|
288
346
|
*/
|
|
289
|
-
syncPinckingMaterial(
|
|
347
|
+
syncPinckingMaterial(): void;
|
|
290
348
|
/**
|
|
291
349
|
* ソートを実行する
|
|
292
350
|
*/
|
|
@@ -321,6 +379,10 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
321
379
|
* setup
|
|
322
380
|
* ==========================================================================
|
|
323
381
|
*/
|
|
382
|
+
/**
|
|
383
|
+
* データのロード前に各種フラグをセットアップする
|
|
384
|
+
*/
|
|
385
|
+
setupFlags(): void;
|
|
324
386
|
/**
|
|
325
387
|
* tavio 形式用の worker をセットアップする
|
|
326
388
|
*/
|
|
@@ -56,30 +56,33 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
56
56
|
|
|
57
57
|
export interface InitOutput {
|
|
58
58
|
readonly memory: WebAssembly.Memory;
|
|
59
|
-
readonly decodeTavio: (a: number, b: number, c: number) => number;
|
|
60
59
|
readonly main: () => void;
|
|
61
60
|
readonly registerEventHandler: (a: number) => number;
|
|
62
61
|
readonly sort: (a: number, b: number, c: number) => number;
|
|
62
|
+
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;
|
|
63
67
|
readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
|
|
64
68
|
readonly intounderlyingbytesource_autoAllocateChunkSize: (a: number) => number;
|
|
65
69
|
readonly intounderlyingbytesource_cancel: (a: number) => void;
|
|
66
70
|
readonly intounderlyingbytesource_pull: (a: number, b: number) => number;
|
|
67
71
|
readonly intounderlyingbytesource_start: (a: number, b: number) => void;
|
|
68
72
|
readonly intounderlyingbytesource_type: (a: number) => number;
|
|
69
|
-
readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
|
|
70
|
-
readonly intounderlyingsink_abort: (a: number, b: number) => number;
|
|
71
|
-
readonly intounderlyingsink_close: (a: number) => number;
|
|
72
|
-
readonly intounderlyingsink_write: (a: number, b: number) => number;
|
|
73
73
|
readonly __wbg_intounderlyingsource_free: (a: number, b: number) => void;
|
|
74
74
|
readonly intounderlyingsource_cancel: (a: number) => void;
|
|
75
75
|
readonly intounderlyingsource_pull: (a: number, b: number) => number;
|
|
76
|
-
readonly
|
|
77
|
-
readonly
|
|
78
|
-
readonly
|
|
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;
|
|
79
81
|
readonly __wbindgen_export: (a: number, b: number) => number;
|
|
80
82
|
readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
|
|
81
83
|
readonly __wbindgen_export3: (a: number) => void;
|
|
82
84
|
readonly __wbindgen_export4: (a: number, b: number, c: number) => void;
|
|
85
|
+
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
|
83
86
|
readonly __wbindgen_start: () => void;
|
|
84
87
|
}
|
|
85
88
|
|