@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.
Files changed (47) hide show
  1. package/README.md +25 -0
  2. package/build/esm/assets/tavio-B99BKbbN.js +971 -0
  3. package/build/esm/assets/workerHelpers-DWTUmD6Q.js +39 -0
  4. package/build/esm/index.js +45732 -0
  5. package/build/esm/types/animation/animationController.d.ts +133 -0
  6. package/build/esm/types/camera/cameraCollider.d.ts +54 -0
  7. package/build/esm/types/camera/cameraPath.d.ts +120 -0
  8. package/build/esm/types/camera/cameraPathControls.d.ts +73 -0
  9. package/build/esm/types/camera/cameraPathManager.d.ts +67 -0
  10. package/build/esm/types/camera/flightControls.d.ts +76 -0
  11. package/build/esm/types/camera/orbitControls.d.ts +216 -0
  12. package/build/esm/types/camera/transferControls.d.ts +122 -0
  13. package/build/esm/types/editor/selector/boxSelector.d.ts +60 -0
  14. package/build/esm/types/editor/selector/selector.d.ts +145 -0
  15. package/build/esm/types/editor/selector/sphereSelector.d.ts +45 -0
  16. package/build/esm/types/extension/InstancedMeshEX.d.ts +101 -0
  17. package/build/esm/types/global.iife.d.ts +9 -0
  18. package/build/esm/types/loader/streamLoader.d.ts +21 -0
  19. package/build/esm/types/math/easing.d.ts +18 -0
  20. package/build/esm/types/math/interpolation.d.ts +70 -0
  21. package/build/esm/types/module.d.ts +5 -0
  22. package/build/esm/types/types/global.d.ts +32 -0
  23. package/build/esm/types/types/wasm.d.ts +12 -0
  24. package/build/esm/types/utility/console.d.ts +7 -0
  25. package/build/esm/types/utility/plyDecoder.d.ts +103 -0
  26. package/build/esm/types/utility/utility.d.ts +58 -0
  27. package/build/esm/types/viewer/canvas.d.ts +1293 -0
  28. package/build/esm/types/viewer/materialGenerator.d.ts +121 -0
  29. package/build/esm/types/viewer/renderView.d.ts +67 -0
  30. package/build/esm/types/viewer/tavioMesh.d.ts +526 -0
  31. package/build/esm/types/wasm-bindings/wasm-handlers.d.ts +42 -0
  32. package/build/esm/types/wasm-bindings/wasm-worker-client.d.ts +123 -0
  33. package/build/esm/types/wasm-bindings/wasm-worker.d.ts +48 -0
  34. package/build/esm/types/wasm-bindings/wasm.d.ts +2 -0
  35. package/build/esm/types/worker/tavioWorker.d.ts +63 -0
  36. package/build/esm/wasm/pkg/no-thread/package.json +18 -0
  37. package/build/esm/wasm/pkg/no-thread/tavio.d.ts +127 -0
  38. package/build/esm/wasm/pkg/no-thread/tavio.js +1243 -0
  39. package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm +0 -0
  40. package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm.d.ts +39 -0
  41. package/build/esm/wasm/pkg/thread/package.json +18 -0
  42. package/build/esm/wasm/pkg/thread/snippets/wasm-bindgen-rayon-38edf6e439f6d70d/src/workerHelpers.js +107 -0
  43. package/build/esm/wasm/pkg/thread/tavio.d.ts +150 -0
  44. package/build/esm/wasm/pkg/thread/tavio.js +1419 -0
  45. package/build/esm/wasm/pkg/thread/tavio_bg.wasm +0 -0
  46. package/build/esm/wasm/pkg/thread/tavio_bg.wasm.d.ts +47 -0
  47. package/package.json +52 -0
@@ -0,0 +1,1293 @@
1
+ import { Euler, Matrix4, RawShaderMaterial, Vector3, WebGLRenderTarget, WebGLRenderer, PMREMGenerator } from 'three';
2
+ import { default as EventEmitter } from 'eventemitter3';
3
+ import { iCollisionTarget } from '../worker/tavioWorker';
4
+ import { CameraPath } from '../camera/cameraPath';
5
+ import { CameraPathControls } from '../camera/cameraPathControls';
6
+ import { FlightControls, iLatitudeLongitude } from '../camera/flightControls';
7
+ import { OrbitControls } from '../camera/orbitControls';
8
+ import { ConsoleOutput } from '../utility/console';
9
+ import { iSphereSelectorOption } from '../editor/selector/sphereSelector';
10
+ import { iBoxSelectorOption } from '../editor/selector/boxSelector';
11
+ import { Selector } from '../editor/selector/selector';
12
+ import { TavioMesh } from './tavioMesh';
13
+ import { iAnimationConfig } from '../animation/animationController';
14
+ import { iMaterialOption } from './materialGenerator';
15
+ import { RenderView } from './renderView';
16
+ /**
17
+ * Tavio Viewer のエラーコード
18
+ */
19
+ export declare const TavioErrorCode: {
20
+ /** Float16Array 未対応環境 */
21
+ readonly FLOAT16_NOT_SUPPORTED: "E001";
22
+ };
23
+ /**
24
+ * Tavio Viewer のカスタムエラークラス
25
+ */
26
+ export declare class TavioError extends Error {
27
+ /** エラーコード */
28
+ code: string;
29
+ constructor(code: string, message: string);
30
+ }
31
+ /**
32
+ * カメラコントロールの種類
33
+ */
34
+ export type tControlsType = "orbit" | "path" | "flight";
35
+ /**
36
+ * カメラコントロールの型チェック用定義
37
+ */
38
+ export type tControlInstance = OrbitControls | CameraPathControls | FlightControls;
39
+ /**
40
+ * Vector3 と同様に外部データを扱うための型定義
41
+ */
42
+ export interface iVectorLike {
43
+ x: number;
44
+ y: number;
45
+ z: number;
46
+ }
47
+ /**
48
+ * カメラパスコントロールのオプション
49
+ */
50
+ export interface iCameraPathOption {
51
+ attenuation?: number;
52
+ scaleX?: number;
53
+ scaleY?: number;
54
+ }
55
+ /**
56
+ * 汎用カメラパラメータ
57
+ */
58
+ interface iCameraParameter {
59
+ position?: number[];
60
+ eye?: number[];
61
+ target?: number[];
62
+ fov?: number;
63
+ }
64
+ /**
65
+ * ビューアオプション
66
+ */
67
+ export interface iViewerOption {
68
+ usingSharedArrayBuffer?: boolean;
69
+ controlsType?: tControlsType;
70
+ gaussianScale?: number;
71
+ minimumScale?: number;
72
+ distanceEffectPoint?: number;
73
+ distanceEffectPointNear?: number;
74
+ distanceEffectBase?: number;
75
+ distanceEffectRange?: number;
76
+ distanceColorEffect?: number;
77
+ distanceColorEffectNear?: number;
78
+ effectSonar?: number;
79
+ effectSonarRange?: number;
80
+ worldOrigin?: iVectorLike;
81
+ opacityPoints?: number;
82
+ opacityAdditive?: number;
83
+ opacityMultiplier?: number;
84
+ colorTemperature?: number;
85
+ colorTint?: number;
86
+ colorContrast?: number;
87
+ colorHSV?: iVectorLike;
88
+ colorRGB?: iVectorLike;
89
+ colorBlur?: number;
90
+ colorSharpness?: number;
91
+ backgroundOpacity?: number;
92
+ disableBackground?: boolean;
93
+ consoleOutput?: boolean;
94
+ enableOrbitCursor?: boolean;
95
+ orbitCursorScale?: number;
96
+ }
97
+ /**
98
+ * ビューアのマテリアルオプション
99
+ */
100
+ export interface iViewerMaterialOption {
101
+ materialOption: iMaterialOption | iMaterialOption[];
102
+ isDebug?: boolean;
103
+ }
104
+ /**
105
+ * セレクターの情報
106
+ */
107
+ interface iSelectorInfo {
108
+ name: string;
109
+ visible: boolean;
110
+ position?: iVectorLike;
111
+ rotation?: iVectorLike;
112
+ scale?: iVectorLike;
113
+ }
114
+ /**
115
+ * ファイルのロードオプション
116
+ */
117
+ export interface iLoadingOption {
118
+ useSphericalHarmonics?: boolean;
119
+ autoInsert?: boolean;
120
+ autoBackground?: boolean;
121
+ }
122
+ /**
123
+ * ファイル内に含まれる 3DGS の原点からの距離と割合
124
+ */
125
+ export interface iDistanceInfo {
126
+ per50?: number;
127
+ per70?: number;
128
+ per90?: number;
129
+ per100: number;
130
+ }
131
+ /**
132
+ * ファイル内のヘッダ及び頂点情報
133
+ */
134
+ export interface iHeaderInfo {
135
+ majorVersionNumber: number;
136
+ minorVersionNumber: number;
137
+ featureBits: any;
138
+ distance: iDistanceInfo;
139
+ }
140
+ /**
141
+ * ファイルに対する座標変換情報
142
+ */
143
+ export interface iTransform {
144
+ translation: Vector3;
145
+ rotation: Euler;
146
+ scale: number;
147
+ }
148
+ /**
149
+ * ピッキングして得られた情報
150
+ */
151
+ export interface iPickingInfo {
152
+ name: string;
153
+ index: number;
154
+ target: iVectorLike;
155
+ }
156
+ /**
157
+ * ビューア実装本体
158
+ */
159
+ export declare class Core extends EventEmitter {
160
+ canvas: HTMLCanvasElement;
161
+ gl: WebGL2RenderingContext;
162
+ uniforms: any;
163
+ viewerOption: iViewerOption;
164
+ defaultRenderViewSymbol: Symbol;
165
+ renderViewMap: Map<Symbol | string, RenderView>;
166
+ currentRenderViewName: Symbol | string;
167
+ currentRenderView: RenderView;
168
+ meshMap: Map<string, TavioMesh>;
169
+ selectorMap: Map<string, Selector>;
170
+ cameraColliderEnabled: boolean;
171
+ reversedCollision: boolean;
172
+ maxDistance: number;
173
+ isInteractive: boolean;
174
+ isRendering: boolean;
175
+ startRendering: number;
176
+ isLoading: boolean;
177
+ renderer: WebGLRenderer;
178
+ pmremGenerator: PMREMGenerator;
179
+ gaussianMaterial: RawShaderMaterial;
180
+ gaussianPickingMaterial: RawShaderMaterial;
181
+ pickingRenderTarget: WebGLRenderTarget;
182
+ parameters: any;
183
+ console: ConsoleOutput;
184
+ private animationController;
185
+ private pathAnimationLocked;
186
+ /**
187
+ * インスタンスが発火するイベント
188
+ * ※実際には TavioMesh が発火するイベントをリレーする
189
+ */
190
+ static EVENTS: string[];
191
+ /**
192
+ * 対応する Controls 種別
193
+ */
194
+ static CONTROLS: string[];
195
+ /**
196
+ * シェーダチャンク関連(定義は MaterialGenerator.ts 内)
197
+ */
198
+ static CHUNK_TARGET: {
199
+ readonly ANY: 0;
200
+ readonly BASIC: 1;
201
+ readonly PICKING: 2;
202
+ };
203
+ static SHADER_STAGE: {
204
+ readonly VERTEX_PRECISION: 0;
205
+ readonly VERTEX_DECLARATION: 1;
206
+ readonly VERTEX_FUNCTION: 2;
207
+ readonly VERTEX_MAIN_BEGIN: 3;
208
+ readonly VERTEX_MAIN_TRANSFORM: 4;
209
+ readonly VERTEX_MAIN_SIGMA: 5;
210
+ readonly VERTEX_MAIN_OUT: 6;
211
+ readonly VERTEX_MAIN_END: 7;
212
+ readonly FRAGMENT_PRECISION: 8;
213
+ readonly FRAGMENT_DECLARATION: 9;
214
+ readonly FRAGMENT_FUNCTION: 10;
215
+ readonly FRAGMENT_MAIN_BEGIN: 11;
216
+ readonly FRAGMENT_MAIN_IN: 12;
217
+ readonly FRAGMENT_MAIN_OUT: 13;
218
+ readonly FRAGMENT_MAIN_END: 14;
219
+ };
220
+ /**
221
+ * @constructor
222
+ * @param viewerOption - ビューア実装の初期化オプション
223
+ * @throws Float16Array 未対応環境ではエラーをスローする
224
+ */
225
+ constructor(viewerOption?: iViewerOption);
226
+ /**
227
+ * ==========================================================================
228
+ * setup
229
+ * ==========================================================================
230
+ */
231
+ /**
232
+ * コンストラクタ内のセットアップ
233
+ * ※一度 dispose した場合、コンストラクタを再度実行することはできないのでこのメソッドで復帰させる
234
+ * @param viewerOption - ビューア実装の初期化オプション
235
+ */
236
+ setupOnConstructor(viewerOption?: iViewerOption): void;
237
+ /**
238
+ * 各種初期化処理を行う
239
+ * @param canvas - WebGL コンテキストを取得する対象となる canvas 要素
240
+ * @param materialOption - シェーダチャンクなどの情報を含むマテリアルオプション
241
+ */
242
+ init(canvas: HTMLCanvasElement, materialOption?: iViewerMaterialOption): void;
243
+ /**
244
+ * レンダービューをセットアップする
245
+ */
246
+ setupRenderView(): void;
247
+ /**
248
+ * カメラコントロール・カメラコライダーをセットアップする
249
+ * @param renderView - セットアップの対象となるレンダービュー
250
+ */
251
+ setupControls(renderView: RenderView): void;
252
+ /**
253
+ * OrbitControls をセットアップする
254
+ * @param renderView - セットアップの対象となるレンダービュー
255
+ */
256
+ setupOrbitControls(renderView: RenderView): void;
257
+ /**
258
+ * CameraPathControls をセットアップする
259
+ * @param renderView - セットアップの対象となるレンダービュー
260
+ */
261
+ setupCameraPathControls(renderView: RenderView): void;
262
+ /**
263
+ * FlightControls をセットアップする
264
+ * @param renderView - セットアップの対象となるレンダービュー
265
+ */
266
+ setupFlightControls(renderView: RenderView): void;
267
+ /**
268
+ * TransferControls をセットアップする
269
+ * @param renderView - セットアップの対象となるレンダービュー
270
+ */
271
+ setupTransferControls(renderView: RenderView): void;
272
+ /**
273
+ * CameraCollider をセットアップする
274
+ * @param renderView - セットアップの対象となるレンダービュー
275
+ */
276
+ setupCameraCollider(renderView: RenderView): void;
277
+ /**
278
+ * マテリアルをセットアップする
279
+ * @param option - シェーダチャンクなどの情報を含むマテリアルオプション
280
+ */
281
+ setupMaterial(option?: iViewerMaterialOption): void;
282
+ /**
283
+ * セレクターをセットアップする
284
+ */
285
+ setupSelector(): void;
286
+ /**
287
+ * イベントのセットアップ
288
+ */
289
+ setupEvent(): void;
290
+ /**
291
+ * デバッグ用インターフェースのセットアップ
292
+ */
293
+ setupPane(): void;
294
+ /**
295
+ * ==========================================================================
296
+ * TavioMesh / loader
297
+ * ==========================================================================
298
+ */
299
+ /**
300
+ * TavioMesh を生成しロード前の共通処理を行う
301
+ * @private
302
+ * @param name - このメッシュの固有名
303
+ * @param option - ロード・パース関連のオプション
304
+ */
305
+ private _beforeLoadMesh;
306
+ /**
307
+ * TavioMesh のロード後の共通処理を行う
308
+ * @private
309
+ * @param name - 設定する名前
310
+ * @param option - ロード・パース関連のオプション
311
+ */
312
+ private _afterLoadMesh;
313
+ /**
314
+ * TavioMesh のインスタンスを生成し tavio 形式のリソースをロード、シーンに追加する
315
+ * @param name - このメッシュの固有名
316
+ * @param url - 読み込む .tavio ファイル
317
+ * @param option - ロード・パース関連のオプション
318
+ */
319
+ loadTavio(name: string, url: string, option?: iLoadingOption): Promise<void>;
320
+ /**
321
+ * 既存の TavioMesh のインスタンスにデータを統合する
322
+ * @param name - このメッシュの固有名
323
+ * @param url - 読み込む .tavio ファイル
324
+ * @param option - ロード・パース関連のオプション
325
+ */
326
+ concatTavio(name: string, url: string, option?: iLoadingOption): Promise<void>;
327
+ /**
328
+ * TavioMesh のインスタンスを生成し ply 形式のリソースをロード、シーンに追加する
329
+ * @param name - このメッシュの固有名
330
+ * @param url - 読み込む .ply ファイル
331
+ * @param option - ロード・パース関連のオプション
332
+ */
333
+ loadPly(name: string, url: string, option?: iLoadingOption): Promise<void>;
334
+ /**
335
+ * 既存の TavioMesh のインスタンスにデータを統合する
336
+ * @param name - このメッシュの固有名
337
+ * @param url - 読み込む .ply ファイル
338
+ * @param option - ロード・パース関連のオプション
339
+ */
340
+ concatPly(name: string, url: string, option?: iLoadingOption): Promise<void>;
341
+ /**
342
+ * TavioMesh のインスタンスを生成し splat 形式のリソースをロード、シーンに追加する
343
+ * @param name - このメッシュの固有名
344
+ * @param url - 読み込む .splat ファイル
345
+ * @param option - ロード・パース関連のオプション
346
+ */
347
+ loadSplat(name: string, url: string, option?: iLoadingOption): Promise<void>;
348
+ /**
349
+ * 既存の TavioMesh のインスタンスにデータを統合する
350
+ * @param name - このメッシュの固有名
351
+ * @param url - 読み込む .splat ファイル
352
+ * @param option - ロード・パース関連のオプション
353
+ */
354
+ concatSplat(name: string, url: string, option?: iLoadingOption): Promise<void>;
355
+ /**
356
+ * TavioMesh のインスタンスを生成し画像形式のリソースをロード、シーンに追加する
357
+ * @param name - このメッシュの固有名
358
+ * @param url - 読み込む画像ファイル
359
+ * @param option - ロード・パース関連のオプション
360
+ */
361
+ loadImage(name: string, url: string, option?: iLoadingOption): Promise<void>;
362
+ /**
363
+ * 既存の TavioMesh のインスタンスにデータを統合する
364
+ * @param name - このメッシュの固有名
365
+ * @param url - 読み込む画像ファイル
366
+ * @param option - ロード・パース関連のオプション
367
+ */
368
+ concatImage(name: string, url: string, option?: iLoadingOption): Promise<void>;
369
+ /**
370
+ * canvas 要素から TavioMesh のインスタンスを生成し、シーンに追加する
371
+ * @param name - このメッシュの固有名
372
+ * @param canvas - 処理の対象となる canvas 要素
373
+ * @param option - ロード・パース関連のオプション
374
+ */
375
+ loadCanvas(name: string, canvas: HTMLCanvasElement, option?: iLoadingOption): Promise<void>;
376
+ /**
377
+ * 既存の TavioMesh のインスタンスにデータを統合する
378
+ * @param name - このメッシュの固有名
379
+ * @param canvas - 処理の対象となる canvas 要素
380
+ * @param option - ロード・パース関連のオプション
381
+ */
382
+ concatCanvas(name: string, canvas: HTMLCanvasElement, option?: iLoadingOption): Promise<void>;
383
+ /**
384
+ * tavio 形式のリソースをロードする
385
+ * @param name - このメッシュの固有名
386
+ * @see {@link TavioMesh.prototype.loadTavioWasm}
387
+ */
388
+ loadTavioWasm(name: string, ...args: Parameters<typeof TavioMesh.prototype.loadTavioWasm>): Promise<void>;
389
+ /**
390
+ * ply 形式のリソースをロードする
391
+ * @param name - このメッシュの固有名
392
+ * @see {@link TavioMesh.prototype.loadPlyWasm}
393
+ */
394
+ loadPlyWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
395
+ /**
396
+ * splat 形式のリソースをロードする
397
+ * @param name - このメッシュの固有名
398
+ * @see {@link TavioMesh.prototype.loadSplatWasm}
399
+ */
400
+ loadSplatWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
401
+ /**
402
+ * spz 形式のリソースをロードする
403
+ * @param name - このメッシュの固有名
404
+ * @see {@link TavioMesh.prototype.loadSpzWasm}
405
+ */
406
+ loadSpzWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
407
+ /**
408
+ * sog 形式のリソースをロードする
409
+ * @param name - このメッシュの固有名
410
+ * @see {@link TavioMesh.prototype.loadSogWasm}
411
+ */
412
+ loadSogWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
413
+ /**
414
+ * tavio 形式のリソースを保存する
415
+ * @param name - このメッシュの固有名
416
+ * @param fileName - 保存ファイル名
417
+ * @param options.exportSphericalHarmonics - 球面調和関数の交流成分をエンコードする [default: true]
418
+ * @param options.exportCelestialSphere - 天体球の画像をエンコードする [default: true]
419
+ * @param options.sphericalHarmonicsSampleRate - 球面調和関数の交流成分の計算のサンプル率 [default: 0.1]
420
+ * @param options.celestialSphereDistanceRatio - 天体球の画像に使用する点の距離の比率 [default: 0.99]
421
+ */
422
+ saveTavioWasm(name: string, fileName: string, options?: Parameters<typeof TavioMesh.prototype.saveTavioWasm>[1]): Promise<void>;
423
+ /**
424
+ * splat 形式のリソースを保存する
425
+ * @param name - このメッシュの固有名
426
+ * @param fileName - 保存ファイル名
427
+ */
428
+ saveSplatWasm(name: string, fileName: string): Promise<void>;
429
+ /**
430
+ * ply 形式のリソースを保存する
431
+ * @param name - このメッシュの固有名
432
+ * @param fileName - 保存ファイル名
433
+ */
434
+ savePlyWasm(name: string, fileName: string): Promise<void>;
435
+ /**
436
+ * spz 形式のリソースを保存する
437
+ * @param name - このメッシュの固有名
438
+ * @param fileName - 保存ファイル名
439
+ */
440
+ saveSpzWasm(name: string, fileName: string): Promise<void>;
441
+ /**
442
+ * 名前を指定してロード済み TavioMesh を現在のレンダービューに追加する
443
+ * @param name - 対象の名前
444
+ */
445
+ addTavioMesh(name: string): void;
446
+ /**
447
+ * 名前を指定してロード済み TavioMesh をシーンから取り除く
448
+ * @param name - 対象の名前
449
+ * @param renderViewName - 対象となるレンダービューの名前
450
+ */
451
+ removeTavioMesh(name: string, renderViewName?: string | Symbol): void;
452
+ /**
453
+ * 名前を指定してロード済み TavioMesh をシーンから取り除く
454
+ * @param name - 対象の名前
455
+ */
456
+ removeTavioMeshAllRenderView(name: string): void;
457
+ /**
458
+ * 名前を指定して TavioMesh を削除・解放する
459
+ * @param name - 対象の名前
460
+ */
461
+ disposeTavioMesh(name: string): void;
462
+ /**
463
+ * 名前を指定して TavioMesh の表示・非表示を設定する
464
+ * @param name - 対象の名前
465
+ * @param visibility - 可視状態
466
+ */
467
+ setVisibilityTavioMesh(name: string, visibility: boolean): void;
468
+ /**
469
+ * 名前を指定して TavioMesh の点描画用 Points の表示・非表示を設定する
470
+ * @param name - 対象の名前
471
+ * @param visibility - 可視状態
472
+ */
473
+ setVisibilityPoints(name: string, visibility: boolean): void;
474
+ /**
475
+ * 背景球(シーンの背景)の透明度を指定する(0.0 ~ 1.0)
476
+ * @param opacity - 透明度
477
+ */
478
+ setBackgroundOpacity(opacity: number): void;
479
+ /**
480
+ * 名前を指定してロード済み TavioMesh から背景を設定する
481
+ * @param name - 対象の名前
482
+ */
483
+ setBackgroundByTavioMesh(name: string): void;
484
+ /**
485
+ * 名前を指定した TavioMesh に含まれるインスタンスを、インデックスで指定して動かす
486
+ * ※ここでいうインデックスとは load/concat した順番を意味する整数値(concat していない場合常に 0)
487
+ * @param name - 対象の名前
488
+ * @param index - インデックス
489
+ * @param translation - 平行移動
490
+ * @param rotation - 回転(オイラー角)
491
+ * @param scale - 拡大縮小(XYZ で統一のスケール)
492
+ */
493
+ setTransform(name: string, index: number, translation: iVectorLike, rotation: iVectorLike, scale: number): void;
494
+ /**
495
+ * 名前を指定した TavioMesh に含まれるインスタンスの、指定されたインデックスの座標変換情報を返す
496
+ * ※ここでいうインデックスとは load/concat した順番を意味する整数値
497
+ * @param name - 対象の名前
498
+ * @param index - インデックス
499
+ */
500
+ getTransform(name: string, index: number): iTransform;
501
+ /**
502
+ * 名前を指定した TavioMesh に含まれるインスタンスをビルボードとして扱うかどうかを設定する
503
+ * ※ここでいうインデックスとは load/concat した順番を意味する整数値
504
+ * @param name - 対象の名前
505
+ * @param index - インデックス
506
+ * @param flag - ビルボードとして扱うかどうか
507
+ */
508
+ setBillboard(name: string, index: number, flag: boolean): void;
509
+ /**
510
+ * ==========================================================================
511
+ * general
512
+ * ==========================================================================
513
+ */
514
+ /**
515
+ * ウィンドウのリサイズ処理
516
+ * @param width - 幅
517
+ * @param height - 高さ
518
+ * @param start - リサイズと同時に描画を開始するかどうか
519
+ */
520
+ resize(width?: number, height?: number, start?: boolean): void;
521
+ /**
522
+ * 描画を開始する
523
+ */
524
+ start(): void;
525
+ /**
526
+ * 描画処理
527
+ * @private
528
+ */
529
+ private _render;
530
+ /**
531
+ * DevicePixelRatio をレンダラーに対して設定する
532
+ * @param value - 設定する DevicePixelRatio
533
+ */
534
+ setDevicePixelRatio(value: number): void;
535
+ /**
536
+ * 現在設定されている DevicePixelRatio を返す
537
+ */
538
+ getDevicePixelRatio(): number;
539
+ /**
540
+ * インタラクティブに描画するモードを用いるかどうかを設定する
541
+ * @param isInteractive - 有効とするかどうか
542
+ */
543
+ setInteractiveMode(isInteractive: boolean): void;
544
+ /**
545
+ * 球面調和関数の交流成分を利用するかどうかを設定する
546
+ * @param isUsing - 利用するかどうかのフラグ
547
+ */
548
+ setUsingSphericalHarmonics(isUsing: boolean): void;
549
+ /**
550
+ * 球面調和関数の交流成分に対する係数を設定する(0.0 ~ 1.0)
551
+ * @param intensity - 0.0 で交流成分の効果が完全に不可視化される
552
+ */
553
+ setSphericalHarmonicsIntensity(intensity: number): void;
554
+ /**
555
+ * ファイルに含まれるヘッダ情報及び頂点の情報などを取得する
556
+ */
557
+ getHeaderInfo(name: string): iHeaderInfo;
558
+ /**
559
+ * フレームバッファに 3DGS のワールド座標をレンダリングし指定されたスクリーン座標から取得する
560
+ * @param x - 取得する X 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標)
561
+ * @param y - 取得する Y 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標, Y-down)
562
+ * @param isDebug - デバッグモード(有効化するとピッキングバッファを可視化)
563
+ */
564
+ getWorldPositionByRenderView(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo>;
565
+ /**
566
+ * 各種リソースを解放する
567
+ * ※このメソッドを呼び出すと、それまで利用していた canvas は再利用できなくなる
568
+ * ※別の canvas を渡して setupOnConstructor や init、render を呼ぶことで再度描画を行うことができる
569
+ */
570
+ dispose(): void;
571
+ /**
572
+ * ビューポートの情報を uniform 変数に設定する
573
+ * @param renderView - 対象となるレンダービュー
574
+ */
575
+ private _updateViewportUniforms;
576
+ /**
577
+ * 座標を焼き込むレンダリング処理を実行しソートを実行させる
578
+ * @param isForce - 強制的に実行するかどうか
579
+ */
580
+ private _renderDepthRenderTarget;
581
+ /**
582
+ * ==========================================================================
583
+ * renderview
584
+ * ==========================================================================
585
+ */
586
+ /**
587
+ * レンダービューを設定する
588
+ * @param renderViewName - 対象となるレンダービューの名前
589
+ */
590
+ setRenderView(renderViewName: string | Symbol | null): void;
591
+ /**
592
+ * レンダービューの個数を返す
593
+ */
594
+ getRenderViewCount(): number;
595
+ /**
596
+ * アクティブなレンダービューの名前を返す
597
+ * ※既定のレンダービューがアクティブな場合 null が返る
598
+ */
599
+ getCurrentRenderViewName(): string | null;
600
+ /**
601
+ * レンダービューを生成する(生成したインスタンスを呼び出し元に返さない)
602
+ * @param name - 生成されるレンダービューの固有名
603
+ */
604
+ createRenderView(name: string): void;
605
+ /**
606
+ * レンダービューに位置とサイズを設定する
607
+ * ※原点が左下角である点に注意(スクリーン座標系と上下が逆)
608
+ * @param renderViewName - 対象となるレンダービューの名前
609
+ * @param x - 矩形の左下角の横位置
610
+ * @param y - 矩形の左下角の縦位置
611
+ * @param width - 幅(未指定・null 時は canvas の描画幅)
612
+ * @param height - 高さ(未指定・null 時は canvas の描画高さ)
613
+ * @param start - 同時に描画を開始するかどうか
614
+ */
615
+ setRenderViewSize(renderViewName?: string | Symbol | null, x?: number, y?: number, width?: number, height?: number, start?: boolean): void;
616
+ /**
617
+ * レンダービューを生成し、各種コントロールのセットアップも同時に行う
618
+ * @param name - 生成されるレンダービューの固有名
619
+ */
620
+ private _createRenderView;
621
+ /**
622
+ * 名前を指定してレンダービューを取得する
623
+ * @param renderViewName - 対象となるレンダービューの名前
624
+ */
625
+ private _getRenderView;
626
+ /**
627
+ * ==========================================================================
628
+ * camera
629
+ * ==========================================================================
630
+ */
631
+ /**
632
+ * カメラの現在の座標と視線方向、視野角を取得する
633
+ */
634
+ getCameraParameter(): iCameraParameter;
635
+ /**
636
+ * カメラの現在の座標と注視点、視野角を設定する
637
+ * ※このメソッドは設定時、その値が即座に反映される
638
+ * @param position - 設定する座標
639
+ * @param target - 設定する注視点
640
+ * @param fov - 設定する視野角
641
+ */
642
+ setCameraParameter(position?: iVectorLike | null, target?: iVectorLike | null, fov?: number | null): void;
643
+ /**
644
+ * ==========================================================================
645
+ * controls
646
+ * ==========================================================================
647
+ */
648
+ /**
649
+ * Controls タイプを設定する
650
+ * @param type - 設定するタイプを意味する文字列
651
+ */
652
+ setControlsType(type: tControlsType): void;
653
+ /**
654
+ * 現在のカメラコントロールを意味する文字列を返す
655
+ */
656
+ getControlsType(): tControlsType;
657
+ /**
658
+ * FlightControls と TransferControls に減衰を設定する
659
+ * @param attenuation - 減衰(0.0 以上 ~ 1.0 未満)
660
+ */
661
+ setControlsAttenuation(attenuation: number): void;
662
+ /**
663
+ * ==========================================================================
664
+ * orbit controls
665
+ * ==========================================================================
666
+ */
667
+ /**
668
+ * オービットコントロールのズーム使用可否を設定する
669
+ * @param enable - 使用可否を意味する真偽値
670
+ */
671
+ setOrbitEnableZoom(enable: boolean): void;
672
+ /**
673
+ * オービットコントロールの平行移動使用可否を設定する
674
+ * @param enable - 使用可否を意味する真偽値
675
+ */
676
+ setOrbitEnablePan(enable: boolean): void;
677
+ /**
678
+ * オービットコントロールの可動範囲制限の可否を設定する
679
+ * @param enable - 使用可否を意味する真偽値
680
+ */
681
+ setOrbitEnableLimit(enable: boolean): void;
682
+ /**
683
+ * オービットコントロールのズーム範囲制限の可否を設定する
684
+ * @param enable - 使用可否を意味する真偽値
685
+ */
686
+ setOrbitEnableZoomLimit(enable: boolean): void;
687
+ /**
688
+ * オービットコントロールの注視点と座標の距離を取得する
689
+ * @returns 注視点と座標の距離
690
+ */
691
+ getOrbitDistance(): number;
692
+ /**
693
+ * オービットコントロールの注視点から位置までの距離を設定する
694
+ * @param distance - 設定する距離
695
+ */
696
+ setOrbitDistance(distance: number): void;
697
+ /**
698
+ * オービットコントロールのピッチとヨーを相対的に移動する
699
+ * @param pitch - ピッチ角度の変化量(ラジアン)
700
+ * @param yaw - ヨー角度の変化量(ラジアン)
701
+ */
702
+ setOrbitRelativeRotation(pitch: number, yaw: number): void;
703
+ /**
704
+ * オービットコントロールのドリー(前後移動)を相対的に設定する
705
+ * @param value - 設定する値
706
+ */
707
+ setOrbitRelativeDollyOut(value: number): void;
708
+ /**
709
+ * オービットコントロールの上下の回転を相対的に設定する
710
+ * @param value - 設定する値
711
+ */
712
+ setOrbitRelativeRotateUp(value: number): void;
713
+ /**
714
+ * オービットコントロールの左右の回転を相対的に設定する
715
+ * @param value - 設定する値
716
+ */
717
+ setOrbitRelativeRotateLeft(value: number): void;
718
+ /**
719
+ * オービットコントロールの上下の移動を相対的に設定する
720
+ * @param value - 設定する値
721
+ */
722
+ setOrbitRelativeTranslateUp(value: number): void;
723
+ /**
724
+ * オービットコントロールの左右の移動を相対的に設定する
725
+ * @param value - 設定する値
726
+ */
727
+ setOrbitRelativeTranslateLeft(value: number): void;
728
+ /**
729
+ * オービットコントロールへポインターが押下中かどうかを設定する
730
+ * @param isDown - 設定する値
731
+ */
732
+ setOrbitPointerDown(isDown: boolean): void;
733
+ /**
734
+ * オービットコントロールの範囲外へはみ出すことができる範囲を設定する
735
+ * @param value - 設定する値
736
+ */
737
+ setOrbitOverflow(value: number): void;
738
+ /**
739
+ * オービットコントロールの北緯方向の可動範囲を設定する
740
+ * @param value - 設定する値
741
+ */
742
+ setOrbitUpLimit(value: number): void;
743
+ /**
744
+ * オービットコントロールの南緯方向の可動範囲を設定する
745
+ * @param value - 設定する値
746
+ */
747
+ setOrbitDownLimit(value: number): void;
748
+ /**
749
+ * オービットコントロールの西経方向の可動範囲を設定する
750
+ * @param value - 設定する値
751
+ */
752
+ setOrbitLeftLimit(value: number): void;
753
+ /**
754
+ * オービットコントロールの西経方向の可動範囲を設定する
755
+ * @param value - 設定する値
756
+ */
757
+ setOrbitRightLimit(value: number): void;
758
+ /**
759
+ * オービットコントロールのズームの最短距離を設定する
760
+ * @param value - 設定する値
761
+ */
762
+ setOrbitZoomInLimit(value: number): void;
763
+ /**
764
+ * オービットコントロールのズームの最長距離を設定する
765
+ * @param value - 設定する値
766
+ */
767
+ setOrbitZoomOutLimit(value: number): void;
768
+ /**
769
+ * ==========================================================================
770
+ * camera path controls
771
+ * ==========================================================================
772
+ */
773
+ /**
774
+ * カメラパスを生成して返す
775
+ * @param position - カメラの座標({x, y, z} のオブジェクト、または [x, y, z] の数値の配列)の配列
776
+ * @param target - 注視点の座標({x, y, z} のオブジェクト、または [x, y, z] の数値の配列)の配列
777
+ * @param debug - デバッグモードをオンにすると、各点とその補間後の軌跡がシーンに追加される
778
+ */
779
+ createCameraPath(position: iVectorLike[] | number[][], target: iVectorLike[] | number[][], debug?: boolean): CameraPath;
780
+ /**
781
+ * カメラパスが有効な場合、指定された時間を設定し更新する
782
+ * @param time - 設定する時間(0.0 ~ 1.0)
783
+ */
784
+ updateCameraPath(time: number): void;
785
+ /**
786
+ * カメラパスを設定する
787
+ * @deprecated このメソッドは廃止されました。addCameraPath(name, path) と selectCameraPath(name) を使用してください。
788
+ * @param path - 設定する CameraPath
789
+ */
790
+ setCameraPath(path: CameraPath): void;
791
+ /**
792
+ * カメラパスを名前で追加する
793
+ * @param name - カメラパスの名前
794
+ * @param path - 追加する CameraPath
795
+ */
796
+ addCameraPath(name: string, path: CameraPath): void;
797
+ /**
798
+ * カメラパスを名前で削除する
799
+ * @param name - 削除するカメラパスの名前
800
+ */
801
+ removeCameraPath(name: string): void;
802
+ /**
803
+ * アクティブなカメラパスを選択する
804
+ * @param name - 選択するカメラパスの名前
805
+ */
806
+ selectCameraPath(name: string): void;
807
+ /**
808
+ * 現在アクティブなカメラパスを取得する
809
+ * @returns アクティブなカメラパス、または null
810
+ */
811
+ getActiveCameraPath(): CameraPath | null;
812
+ /**
813
+ * すべてのカメラパス名を取得する
814
+ * @returns カメラパス名の配列
815
+ */
816
+ getPathNames(): string[];
817
+ /**
818
+ * カメラパスのオプションを設定する
819
+ * @param option - カメラパスに設定するオプション
820
+ */
821
+ setCameraPathOption(option: iCameraPathOption): void;
822
+ /**
823
+ * カメラパスのインタラクション用の座標を設定する
824
+ * @param x - 設定する X 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標)
825
+ * @param y - 設定する Y 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標, Y-down)
826
+ */
827
+ setCameraPathInteraction(x: number, y: number): void;
828
+ /**
829
+ * カメラパスの可動領域(カプセル型)の半径を設定する
830
+ * @param radius - 設定する半径
831
+ */
832
+ setCameraPathCollisionRadius(radius: number): void;
833
+ /**
834
+ * ==========================================================================
835
+ * flight controls
836
+ * ==========================================================================
837
+ */
838
+ /**
839
+ * FlightControls に緯度を設定する
840
+ * @param latitude - 緯度(-90 ~ 90)
841
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
842
+ */
843
+ setFlightLatitude(latitude: number, isForce?: boolean): void;
844
+ /**
845
+ * FlightControls に経度を設定する
846
+ * @param longitude - 経度(0 ~ 360)
847
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
848
+ */
849
+ setFlightLongitude(longitude: number, isForce?: boolean): void;
850
+ /**
851
+ * FlightControls に緯度を相対的に設定する
852
+ * @param latitude - 相対値
853
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
854
+ */
855
+ setFlightRelativeLatitude(latitude: number, isForce?: boolean): void;
856
+ /**
857
+ * FlightControls に経度を相対的に設定する
858
+ * @param longitude - 相対値
859
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
860
+ */
861
+ setFlightRelativeLongitude(longitude: number, isForce?: boolean): void;
862
+ /**
863
+ * FlightControls から緯度経度を取得する
864
+ */
865
+ getFlightParameter(): iLatitudeLongitude;
866
+ /**
867
+ * ==========================================================================
868
+ * transfer controls
869
+ * ==========================================================================
870
+ */
871
+ /**
872
+ * TransferControls に位置を設定する
873
+ * @param position - 位置
874
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
875
+ */
876
+ setTransferPosition(position: iVectorLike, isForce?: boolean): void;
877
+ /**
878
+ * TransferControls に位置を相対的に設定する
879
+ * @param position - 相対値
880
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
881
+ */
882
+ setTransferRelativePosition(position: iVectorLike, isForce?: boolean): void;
883
+ /**
884
+ * TransferControls に fov を設定する
885
+ * @param fov - 設定する fov
886
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
887
+ */
888
+ setTransferFov(fov: number, isForce?: boolean): void;
889
+ /**
890
+ * TransferControls に、現在の位置と向きに応じて移動するよう設定する
891
+ * @param offset - 移動する量
892
+ * @param scale - 移動するスケール
893
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
894
+ */
895
+ moveTransferByDirection(offset: iVectorLike, scale: number, isForce?: boolean): void;
896
+ /**
897
+ * TransferControls に、現在の位置と向きに応じて水平に移動するよう設定する
898
+ * @param x - 右を正とした横方向
899
+ * @param y - 奥を正とした前後方向
900
+ * @param scale - 移動するスケール
901
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
902
+ */
903
+ moveTransferByHorizontalDirection(x: number, y: number, scale: number, isForce?: boolean): void;
904
+ /**
905
+ * TransferControls に、XZ 平面に対して上昇するよう設定する
906
+ * @param scale - 移動するスケール
907
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
908
+ */
909
+ moveTransferToTop(scale: number, isForce?: boolean): void;
910
+ /**
911
+ * TransferControls に、XZ 平面に対して下降するよう設定する
912
+ * @param scale - 移動するスケール
913
+ * @param isForce - トランジションせず即座に強制上書きするかどうか
914
+ */
915
+ moveTransferToBottom(scale: number, isForce?: boolean): void;
916
+ /**
917
+ * ==========================================================================
918
+ * camera collider
919
+ * ==========================================================================
920
+ */
921
+ /**
922
+ * カメラコライダーの有効・無効を設定する
923
+ * @param enabled - 有効化するかどうか
924
+ */
925
+ setCameraColliderEnabled(enabled: boolean): void;
926
+ /**
927
+ * カメラコライダーの有効・無効状態を取得する
928
+ * @returns カメラコライダーが有効かどうか
929
+ */
930
+ getCameraColliderEnabled(): boolean;
931
+ /**
932
+ * ==========================================================================
933
+ * shader effects
934
+ * ==========================================================================
935
+ */
936
+ /**
937
+ * 点描画用の Points に対して uniform 変数の値を設定する
938
+ * ※あくまでも private なメソッドであり、値設定後に自動で start() はコールされない
939
+ * @private
940
+ * @param uniforms - 設定する値を定義したオブジェクト
941
+ */
942
+ private _setPointUniforms;
943
+ /**
944
+ * MaterialGenerator で独自に拡張した defines を更新する
945
+ * @param customUniforms - 設定・更新する defines
946
+ */
947
+ setCustomDefines(customDefines: any): void;
948
+ /**
949
+ * MaterialGenerator で独自に拡張した uniform 変数を更新する
950
+ * @param customUniforms - 設定・更新する uniform 変数
951
+ */
952
+ setCustomUniforms(customUniforms: any): void;
953
+ /**
954
+ * スプラットの大きさの基本係数を設定する
955
+ * @param value - 設定する係数(0.0 to 1.0)
956
+ */
957
+ setGaussianScale(value: number): void;
958
+ /**
959
+ * 距離に応じたスプラットの大きさにおける最小値を設定する
960
+ * @param value - 設定する係数(0.0 to 1.0)
961
+ */
962
+ setEffectMinimumScale(value: number): void;
963
+ /**
964
+ * 距離に応じたスプラットの大きさ係数を設定する
965
+ * @param value - 設定する係数(0.0 to 1.0)
966
+ */
967
+ setEffectDistanceBase(value: number): void;
968
+ /**
969
+ * 距離に応じたスプラットの範囲係数を設定する
970
+ * @param value - 設定する係数(0.0 < n <= 1.0)
971
+ */
972
+ setEffectDistanceRange(value: number): void;
973
+ /**
974
+ * シェーダーで使用するワールド原点を設定する
975
+ * @param x - X座標
976
+ * @param y - Y座標
977
+ * @param z - Z座標
978
+ */
979
+ setWorldOrigin(x: number, y: number, z: number): void;
980
+ /**
981
+ * シェーダ上で作用する加減算アルファ値を設定する
982
+ * @param alpha - アルファ(適切な範囲はおよそ -3.0 ~ 3.0)
983
+ */
984
+ setOpacityAdditive(alpha: number): void;
985
+ /**
986
+ * シェーダ上で作用する乗算アルファ値を設定する
987
+ * @param alpha - アルファ(適切な範囲はおよそ -3.0 ~ 3.0)
988
+ */
989
+ setOpacityMultiplier(alpha: number): void;
990
+ /**
991
+ * 点描画用の Points に対して距離に応じたエフェクトの範囲係数を設定する(外側)
992
+ * @param value - 設定する係数(0.0 < n <= 1.0)
993
+ */
994
+ setEffectDistancePoints(value: number): void;
995
+ /**
996
+ * 点描画用の Points に対して距離に応じたエフェクトの範囲係数を設定する(内側)
997
+ * @param value - 設定する係数(0.0 < n <= 1.0)
998
+ */
999
+ setEffectDistanceNearPoints(value: number): void;
1000
+ /**
1001
+ * 色エフェクトの範囲を設定する(外側)
1002
+ * @param value - 設定する係数(0.0 < n <= 1.0)
1003
+ */
1004
+ setEffectDistanceColor(value: number): void;
1005
+ /**
1006
+ * 色エフェクトの範囲を設定する(内側)
1007
+ * @param value - 設定する係数(0.0 < n <= 1.0)
1008
+ */
1009
+ setEffectDistanceColorNear(value: number): void;
1010
+ /**
1011
+ * ソナーエフェクトを設定する(外側)
1012
+ * @param value - 設定する係数(0.0 < n <= 1.0)
1013
+ */
1014
+ setEffectSonar(value: number): void;
1015
+ /**
1016
+ * ソナーエフェクトの範囲を設定する
1017
+ * @param value - 設定する範囲(0.0 < n <= 1.0)
1018
+ */
1019
+ setEffectSonarRange(value: number): void;
1020
+ /**
1021
+ * 点描画用の Points に対してアルファを設定する
1022
+ * @param alpha - アルファ(0.0 ~ 1.0)
1023
+ */
1024
+ setOpacityPoints(alpha: number): void;
1025
+ /**
1026
+ * シェーダ上で作用する色温度を設定する
1027
+ * @param temperature - 色温度(適切な範囲はおよそ -1.0 ~ 1.0)
1028
+ */
1029
+ setColorTemperature(temperature: number): void;
1030
+ /**
1031
+ * シェーダ上で作用するティントを設定する
1032
+ * @param tint - ティント(適切な範囲はおよそ -1.0 ~ 1.0)
1033
+ */
1034
+ setColorTint(tint: number): void;
1035
+ /**
1036
+ * シェーダ上で作用するコントラストを設定する
1037
+ * @param contrast - コントラスト(適切な範囲はおよそ 0.0 ~ 1.0)
1038
+ */
1039
+ setColorContrast(contrast: number): void;
1040
+ /**
1041
+ * シェーダ上で作用する HSV を設定する
1042
+ * @param hsv - 変換に用いる係数を Vector3 で表したもの
1043
+ */
1044
+ setHSVColor(hsv: iVectorLike): void;
1045
+ /**
1046
+ * シェーダ上で作用する RGB を設定する
1047
+ * @param rgb - 変換に用いる係数を Vector3 で表したもの(rgb-R, rgb-G, rgb-B)
1048
+ */
1049
+ setColorRGB(rgb: iVectorLike): void;
1050
+ /**
1051
+ * シェーダ上で作用する blur を設定する
1052
+ * @param blur - スプラット内で色をぼかす係数(適切な範囲はおよそ 0.0 ~ 1.0)
1053
+ */
1054
+ setColorBlur(blur: number): void;
1055
+ /**
1056
+ * シェーダ上で作用する sharpness を設定する
1057
+ * @param sharpness - スプラット内で色を強調する係数(適切な範囲はおよそ 0.0 ~ 1.0)
1058
+ */
1059
+ setColorSharpness(sharpness: number): void;
1060
+ /**
1061
+ * ==========================================================================
1062
+ * animation
1063
+ * ==========================================================================
1064
+ */
1065
+ /**
1066
+ * アニメーションがアクティブかどうかを返す
1067
+ * @returns アニメーションがアクティブかどうか
1068
+ */
1069
+ isAnimating(): boolean;
1070
+ /**
1071
+ * 点描画の開花効果をアニメーションする
1072
+ * @param duration - アニメーションの継続時間(ミリ秒)
1073
+ */
1074
+ startBloomPoints(duration: number): void;
1075
+ /**
1076
+ * 点描画からスプラットへの溶解効果をアニメーションする
1077
+ * @param duration - アニメーションの継続時間(ミリ秒)
1078
+ */
1079
+ startDissolveToGaussian(duration: number): void;
1080
+ /**
1081
+ * ソナー波効果をアニメーションする
1082
+ * @param duration - アニメーションの継続時間(ミリ秒)
1083
+ */
1084
+ startSonarWave(duration: number): void;
1085
+ /**
1086
+ * カメラパスをアニメーションする
1087
+ * @param name - カメラパスの名前
1088
+ * @param duration - アニメーションの継続時間(ミリ秒)
1089
+ */
1090
+ animatePath(name: string, duration: number): void;
1091
+ /**
1092
+ * アニメーション用の距離情報を設定する
1093
+ * @param mainDistance - メインの範囲の距離(実際の距離値、distance50やdistance70など、nullの場合は距離マッピングを無効化)
1094
+ * @param remainingDistance - 残りの範囲の距離(実際の距離値、effectDistanceMaxと同じ、通常はdistance100、nullの場合は距離マッピングを無効化)
1095
+ * @param splitPoint - 分割点(0.0~1.0、デフォルト0.8。progressがこの値まででmainDistance、それ以降でremainingDistanceまで)
1096
+ * @note mainDistanceまたはremainingDistanceがnullの場合、距離マッピングは無効化され、progressがそのまま使用されます
1097
+ * @deprecated setAnimationConfig を使用してください
1098
+ */
1099
+ setDistanceInfoForAnimation(mainDistance: number | null, remainingDistance: number | null, splitPoint?: number): void;
1100
+ /**
1101
+ * アニメーションの最大描画距離を取得する
1102
+ * @returns 最大描画距離(0.0~1.0)
1103
+ * @deprecated getAnimationConfig を使用してください
1104
+ */
1105
+ getMaxRenderDistanceForAnimation(): number;
1106
+ /**
1107
+ * アニメーションの最大描画距離を設定する
1108
+ * progressが1.0に達したときにこの値がゴールとなる
1109
+ * @param value - 最大描画距離(0.0~1.0)
1110
+ * @deprecated setAnimationConfig を使用してください
1111
+ */
1112
+ setMaxRenderDistanceForAnimation(value: number): void;
1113
+ /**
1114
+ * アニメーション設定を一括で取得する
1115
+ * @returns 現在のアニメーション設定
1116
+ */
1117
+ getAnimationConfig(): iAnimationConfig;
1118
+ /**
1119
+ * アニメーション設定を一括で設定する
1120
+ * @param config - アニメーション設定オブジェクト
1121
+ * @example
1122
+ * // 最大描画距離のみ設定
1123
+ * tvv.setAnimationConfig({ maxRenderDistance: 0.5 });
1124
+ *
1125
+ * // 距離マッピングと最大描画距離を設定
1126
+ * tvv.setAnimationConfig({
1127
+ * maxRenderDistance: 0.5,
1128
+ * mainDistance: 50,
1129
+ * remainingDistance: 100,
1130
+ * splitPoint: 0.8
1131
+ * });
1132
+ */
1133
+ setAnimationConfig(config: iAnimationConfig): void;
1134
+ /**
1135
+ * ==========================================================================
1136
+ * collision
1137
+ * ==========================================================================
1138
+ */
1139
+ /**
1140
+ * セレクターから球の衝突判定を生成する
1141
+ * @private
1142
+ * @param selector - 対象となるセレクター
1143
+ */
1144
+ private _createCollisionSphereFromSelector;
1145
+ /**
1146
+ * セレクターから箱の衝突判定を生成する
1147
+ * @private
1148
+ * @param selector - 対象となるセレクター
1149
+ */
1150
+ private _createCollisionBoxFromSelector;
1151
+ /**
1152
+ * 衝突判定を設定する
1153
+ * @param collision - 設定する衝突判定、またはその配列
1154
+ */
1155
+ setCollision(collision: iCollisionTarget | iCollisionTarget[]): void;
1156
+ /**
1157
+ * 現在の衝突判定を解除する
1158
+ */
1159
+ resetCollision(): void;
1160
+ /**
1161
+ * 現在選択しているスプラットを削除状態とする
1162
+ */
1163
+ deleteSelectedGaussian(): void;
1164
+ /**
1165
+ * 削除状態を一世代前に戻す
1166
+ */
1167
+ undoDeletedGaussian(): void;
1168
+ /**
1169
+ * すべての削除状態をリセットする
1170
+ */
1171
+ resetDeletedGaussian(): void;
1172
+ /**
1173
+ * セレクターによる衝突判定の反転フラグを設定する
1174
+ * @param reversed - 設定する反転属性
1175
+ */
1176
+ setCollisionReversed(reversed: boolean): void;
1177
+ /**
1178
+ * 名前を指定してセレクターで衝突判定を行う
1179
+ * @param name - 対象となるセレクターの名前
1180
+ */
1181
+ checkCollisionBySelector(name: string): void;
1182
+ /**
1183
+ * 名前を複数(配列で)指定して対象のセレクターで衝突判定を行う
1184
+ * @param names - 対象となるセレクターの名前の配列
1185
+ */
1186
+ checkCollisionBySelectors(names: string[]): void;
1187
+ /**
1188
+ * 現在追加されているすべてのセレクターで衝突判定を行う
1189
+ */
1190
+ checkCollisionByAllSelectors(): void;
1191
+ /**
1192
+ * 球の衝突判定パラメータ(Worker に渡すフォーマット)を生成する
1193
+ * @param radius - 半径
1194
+ * @param position - ワールド空間における位置
1195
+ * @param scale - ワールド空間における拡大縮小(スケール)
1196
+ * @param inverseMatrix - ワールド変換の逆行列
1197
+ * @param reversed - 判定の反転(球に内包されている状態を規定とし、それを反転するかどうか)
1198
+ */
1199
+ createCollisionSphere(radius: number, position: iVectorLike, scale: iVectorLike, inverseMatrix: Matrix4, reversed?: boolean): iCollisionTarget;
1200
+ /**
1201
+ * 箱の衝突判定パラメータ(Worker に渡すフォーマット)を生成する
1202
+ * @param width - 一辺の幅
1203
+ * @param height - 一辺の高さ
1204
+ * @param depth - 一辺の奥行き
1205
+ * @param position - ワールド空間における位置
1206
+ * @param scale - ワールド空間における拡大縮小(スケール)
1207
+ * @param inverseMatrix - ワールド変換の逆行列
1208
+ * @param reversed - 判定の反転(球に内包されている状態を規定とし、それを反転するかどうか)
1209
+ */
1210
+ createCollisionBox(width: number, height: number, depth: number, position: iVectorLike, scale: iVectorLike, inverseMatrix: Matrix4, reversed?: boolean): iCollisionTarget;
1211
+ /**
1212
+ * ==========================================================================
1213
+ * selector
1214
+ * ==========================================================================
1215
+ */
1216
+ /**
1217
+ * すべての生成済みセレクターの諸情報を返す
1218
+ */
1219
+ getAllSelectorInfo(): iSelectorInfo[];
1220
+ /**
1221
+ * 名前を指定してセレクターの可視性を設定する
1222
+ * @param name - 設定するセレクターの名前
1223
+ * @param visible - 設定する可視性
1224
+ */
1225
+ setSelectorVisible(name: string, visible: boolean): void;
1226
+ /**
1227
+ * 名前を指定してセレクターを平行移動モードにする
1228
+ * @param name - 設定するセレクターの名前
1229
+ */
1230
+ setSelectorModeTranslate(name: string): void;
1231
+ /**
1232
+ * 名前を指定してセレクターを拡大縮小モードにする
1233
+ * @param name - 設定するセレクターの名前
1234
+ */
1235
+ setSelectorModeScale(name: string): void;
1236
+ /**
1237
+ * 名前を指定してセレクターを回転モードにする
1238
+ * @param name - 設定するセレクターの名前
1239
+ */
1240
+ setSelectorModeRotate(name: string): void;
1241
+ /**
1242
+ * 名前を指定してセレクターの位置を設定する
1243
+ * @param name - 設定するセレクターの名前
1244
+ * @param position - 設定する位置
1245
+ */
1246
+ setSelectorPosition(name: string, position: iVectorLike): void;
1247
+ /**
1248
+ * 名前を指定してセレクターの回転を設定する
1249
+ * @param name - 設定するセレクターの名前
1250
+ * @param rotation - 設定する回転(Euler)
1251
+ */
1252
+ setSelectorRotation(name: string, rotation: iVectorLike): void;
1253
+ /**
1254
+ * 名前を指定してセレクターのスケールを設定する
1255
+ * @param name - 設定するセレクターの名前
1256
+ * @param position - 設定するスケール
1257
+ */
1258
+ setSelectorScale(name: string, scale: iVectorLike): void;
1259
+ /**
1260
+ * 名前を指定してセレクターを削除する
1261
+ * @param name - 削除するセレクターの名前
1262
+ */
1263
+ deleteSelector(name: string): void;
1264
+ /**
1265
+ * 名前を指定して球のセレクターを追加する(既定の状態では visible が false である点に注意)
1266
+ * @param name - 追加するセレクターに付与する名前
1267
+ * @param option - セレクターに対するオプション
1268
+ */
1269
+ addSphereSelector(name: string, option?: iSphereSelectorOption): void;
1270
+ /**
1271
+ * 名前を指定して箱のセレクターを追加する(既定の状態では visible が false である点に注意)
1272
+ * @param name - 追加するセレクターに付与する名前
1273
+ * @param option - セレクターに対するオプション
1274
+ */
1275
+ addBoxSelector(name: string, option?: iBoxSelectorOption): void;
1276
+ /**
1277
+ * OrbitControlsの注視点カーソル機能の有効・無効を設定する
1278
+ * orbitCursorが有効のとき、カメラモードがorbitかつ注視点の座標が変化したときに自動表示される
1279
+ * @param enabled - 有効にするかどうか
1280
+ */
1281
+ enableOrbitCursor(enabled: boolean): void;
1282
+ /**
1283
+ * OrbitControlsの注視点カーソル機能が有効かどうかを取得する
1284
+ * @returns 有効かどうか
1285
+ */
1286
+ isOrbitCursorEnabled(): boolean;
1287
+ /**
1288
+ * OrbitControlsの注視点カーソルのスケールを設定する
1289
+ * @param scale - 設定するスケール値
1290
+ */
1291
+ setOrbitCursorScale(scale: number): void;
1292
+ }
1293
+ export {};