@openheart/tavio-renderer 2.3.30-with-wasm → 2.4.0

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 (35) hide show
  1. package/build/esm/assets/{tavio-JUxSmuMi.js → tavio-DVLlyem4.js} +211 -211
  2. package/build/esm/assets/{workerHelpers-yS8SNwfU.js → workerHelpers-BWRcUO-d.js} +1 -1
  3. package/build/esm/index.js +7366 -6111
  4. package/build/esm/types/editor/selector/boxSelector.d.ts +4 -3
  5. package/build/esm/types/module.d.ts +5 -4
  6. package/build/esm/types/viewer/canvas.d.ts +150 -1560
  7. package/build/esm/types/viewer/constants.d.ts +99 -0
  8. package/build/esm/types/viewer/driver/coreDriver.d.ts +1402 -0
  9. package/build/esm/types/viewer/driver/iCoreDriver.d.ts +206 -0
  10. package/build/esm/types/viewer/driver/offscreenDriver.d.ts +222 -0
  11. package/build/esm/types/viewer/driver/rpcBridge.d.ts +39 -0
  12. package/build/esm/types/viewer/driver/workerElementAdapter.d.ts +66 -0
  13. package/build/esm/types/viewer/materialGenerator.d.ts +24 -27
  14. package/build/esm/types/viewer/renderView.d.ts +4 -3
  15. package/build/esm/types/viewer/shaderRegistry.d.ts +22 -0
  16. package/build/esm/types/viewer/tavioMesh/localTransform.d.ts +65 -0
  17. package/build/esm/types/viewer/tavioMesh/minMaxRange.d.ts +47 -0
  18. package/build/esm/types/viewer/tavioMesh/parsers/imageParser.d.ts +14 -0
  19. package/build/esm/types/{utility/plyDecoder.d.ts → viewer/tavioMesh/parsers/plyParser.d.ts} +4 -15
  20. package/build/esm/types/viewer/tavioMesh/parsers/splatParser.d.ts +12 -0
  21. package/build/esm/types/viewer/tavioMesh/selection.d.ts +39 -0
  22. package/build/esm/types/viewer/{tavioMesh.d.ts → tavioMesh/tavioMesh.d.ts} +73 -62
  23. package/build/esm/types/viewer/types.d.ts +376 -0
  24. package/build/esm/types/worker/renderingWorker.d.ts +8 -0
  25. package/build/esm/types/worker/tavioWorker.d.ts +1 -1
  26. package/build/esm/wasm/pkg/no-thread/tavio.d.ts +13 -13
  27. package/build/esm/wasm/pkg/no-thread/tavio.js +125 -125
  28. package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm +0 -0
  29. package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm.d.ts +13 -13
  30. package/build/esm/wasm/pkg/thread/tavio.d.ts +16 -16
  31. package/build/esm/wasm/pkg/thread/tavio.js +154 -154
  32. package/build/esm/wasm/pkg/thread/tavio_bg.wasm +0 -0
  33. package/build/esm/wasm/pkg/thread/tavio_bg.wasm.d.ts +16 -16
  34. package/package.json +1 -1
  35. package/build/esm/types/animation/animationController.d.ts +0 -146
@@ -1,300 +1,22 @@
1
- import { Matrix4, Mesh, Quaternion, RawShaderMaterial, Vector2, Vector3, WebGLRenderTarget, WebGLRenderer, PMREMGenerator, SpotLight, AmbientLight } from 'three';
2
1
  import { default as EventEmitter } from 'eventemitter3';
3
- import { iCollisionTarget } from '../worker/tavioWorker';
2
+ import { MeshStandardMaterialParameters } from 'three';
3
+ import { iLatitudeLongitude } from '../camera/flightControls';
4
+ import { WorkerElementAdapter } from './driver/workerElementAdapter';
4
5
  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';
6
+ import { iVectorLike, iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iSelectorInfo, iPickingInfo, iCameraPathOption, iCameraParameter, tSelectionMode, tMaskSource, tControlsType, tCustomDefines, tCustomUniforms } from './types';
7
+ import { iCollisionTarget } from '../worker/tavioWorker';
9
8
  import { iSphereSelectorOption } from '../editor/selector/sphereSelector';
10
9
  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
- * TypeScript の strict モードが true の場合、コンストラクタ内で初期化されていない場合など、
18
- * かなり厳密にチェックされる。本来であれば、すべてのプロパティをコンストラクタで初期化する
19
- * べきである。しかし本実装では dispose で解放する処理などがある関係上、コンストラクタ内で
20
- * すべてのプロパティを初期化せず、別途メソッドを呼び出したときに初めて初期化される要素が
21
- * 多く存在する。また同様の理由で、dispose 内で null を代入する都合があり、型定義が非常に
22
- * ややこしくなる。
23
- * たとえば `data: Uint8Array | null` のように null を許容するデータ型にしないと dispose で
24
- * null を代入することができない。一方でこのような型定義を行うと、事あるごとに「中身は null
25
- * の可能性があります」という旨のエラーが発生し都度 null でないかどうかのチェックを行う必要
26
- * が生じる。
27
- * 妥協案として、TypeScript の「非 null アサーション」を意味する `!` の演算子を多用している。
28
- * たとえば `tex: Texture | null` なプロパティであれば `this.tex.width` と書くと「tex は
29
- * null である可能性がある」というエラーが出るが `this.tex!.width` と書くとエラーは発生しない。
30
- * この記法では確かにエラーは出ないが、実際問題、dispose を呼び出したあとに参照したら中身は
31
- * null である可能性はあり厳密にはエラーになるのが正しい。しかし先述のとおりすべての箇所で
32
- * if 文などを書いて null チェックをすると冗長性が高くなりすぎてしまうため、ここでは運用上の
33
- * 妥協案として非アサーションの記法を使っている。
34
- * ※非 null アサーションとオプショナルチェイニングはまったくの別物なので注意
35
- */
36
- /**
37
- * Tavio Viewer のエラーコード
38
- */
39
- export declare const TavioErrorCode: {
40
- /** Float16Array 未対応環境 */
41
- readonly FLOAT16_NOT_SUPPORTED: "E001";
42
- };
43
- /**
44
- * Tavio Viewer のカスタムエラークラス
45
- */
46
- export declare class TavioError extends Error {
47
- /** エラーコード */
48
- code: string;
49
- constructor(code: string, message: string);
50
- }
51
- /**
52
- * カメラコントロールの種類
53
- */
54
- export type tControlsType = "orbit" | "path" | "flight";
55
- /**
56
- * カメラコントロールの型チェック用定義
57
- */
58
- export type tControlInstance = OrbitControls | CameraPathControls | FlightControls;
59
- /**
60
- * 範囲選択用マスクのソース型 (画面上のマスク形状を表す要素)
61
- */
62
- export type tMaskSource = HTMLCanvasElement | OffscreenCanvas | ImageData;
63
- /**
64
- * Vector3 と同様に外部データを扱うための型定義
65
- */
66
- export interface iVectorLike {
67
- x: number;
68
- y: number;
69
- z: number;
70
- }
71
- /**
72
- * カメラパスコントロールのオプション
73
- */
74
- export interface iCameraPathOption {
75
- attenuation?: number;
76
- scaleX?: number;
77
- scaleY?: number;
78
- }
79
- /**
80
- * 汎用カメラパラメータ
81
- */
82
- interface iCameraParameter {
83
- position?: number[];
84
- eye?: number[];
85
- target?: number[];
86
- fov?: number;
87
- }
88
- /**
89
- * ビューアオプション
90
- */
91
- export interface iViewerOption {
92
- usingSharedArrayBuffer?: boolean;
93
- controlsType?: tControlsType;
94
- gaussianScale?: number;
95
- minimumScale?: number;
96
- distanceEffectPoint?: number;
97
- distanceEffectPointNear?: number;
98
- distanceEffectBase?: number;
99
- distanceEffectRange?: number;
100
- distanceColorEffect?: number;
101
- distanceColorEffectNear?: number;
102
- effectSonar?: number;
103
- effectSonarRange?: number;
104
- worldOrigin?: iVectorLike;
105
- opacityPoints?: number;
106
- opacityAdditive?: number;
107
- opacityMultiplier?: number;
108
- colorTemperature?: number;
109
- colorTint?: number;
110
- colorContrast?: number;
111
- colorHSV?: iVectorLike;
112
- colorRGB?: iVectorLike;
113
- colorBlur?: number;
114
- colorSharpness?: number;
115
- backgroundOpacity?: number;
116
- disableBackground?: boolean;
117
- consoleOutput?: boolean;
118
- /** @deprecated orbitCursorAutoDisplay を使用してください */
119
- enableOrbitCursor?: boolean;
120
- orbitCursorAutoDisplay?: boolean;
121
- orbitCursorDisplay?: boolean;
122
- orbitCursorScale?: number;
123
- dropShadow?: boolean;
124
- shadowMapSize?: number;
125
- clipSphere?: boolean;
126
- preserveDrawingBuffer?: boolean;
127
- powerPreference?: WebGLPowerPreference;
128
- enableLocalTransform?: boolean;
129
- indexSelectionDivisor?: number;
130
- }
131
- /**
132
- * ビューアのマテリアルオプション
133
- */
134
- export interface iViewerMaterialOption {
135
- materialOption: iMaterialOption | iMaterialOption[];
136
- isDebug?: boolean;
137
- }
138
- /**
139
- * セレクターの情報
140
- */
141
- interface iSelectorInfo {
142
- name: string;
143
- visible: boolean;
144
- position?: iVectorLike;
145
- rotation?: iVectorLike;
146
- scale?: iVectorLike;
147
- radius?: number | null;
148
- width?: number | null;
149
- height?: number | null;
150
- depth?: number | null;
151
- }
152
- /**
153
- * ファイルのロードオプション
154
- */
155
- export interface iLoadingOption {
156
- useSphericalHarmonics?: boolean;
157
- autoInsert?: boolean;
158
- autoBackground?: boolean;
159
- }
160
- /**
161
- * ファイル内に含まれる 3DGS の原点からの距離と割合
162
- */
163
- export interface iDistanceInfo {
164
- per50?: number | null;
165
- per70?: number | null;
166
- per90?: number | null;
167
- per100: number | null;
168
- }
169
- /**
170
- * ファイル内のヘッダ及び頂点情報
171
- */
172
- export interface iHeaderInfo {
173
- majorVersionNumber: number;
174
- minorVersionNumber: number;
175
- featureBits: any;
176
- distance: iDistanceInfo;
177
- }
178
- /**
179
- * ファイルに対する座標変換情報
180
- */
181
- export interface iTransform {
182
- translation: iVectorLike;
183
- rotation: iVectorLike;
184
- scale: number;
185
- }
186
- /**
187
- * ピッキングして得られた情報
188
- */
189
- export interface iPickingInfo {
190
- name: string;
191
- index: number;
192
- target: iVectorLike;
193
- }
194
- /**
195
- * ビューポートや focal の情報
196
- */
197
- export interface iViewportInfo {
198
- projection: Matrix4;
199
- focal: Vector2;
200
- inverseViewport: Vector2;
201
- }
202
- /**
203
- * ローカルトランスフォームの情報
204
- */
205
- export interface iLocalTransformInfo {
206
- /** 選択されているスプラットの総数 */
207
- count: number;
208
- /** ローカル変換を適用する前の初期ワールド中心座標(単一選択時はスプラットの初期座標にインスタンス変換を適用した位置、複数選択時は選択オブジェクトの初期重心) */
209
- initialCenter: Vector3;
210
- /** ローカル変換(平行移動)適用後の現在のワールド中心座標 */
211
- worldCenter: Vector3;
212
- /** ギズモの親オブジェクトに設定するワールド姿勢(単一選択時はスプラット初期回転+インスタンス回転、複数選択時はインスタンス回転のみ) */
213
- worldQuaternion: Quaternion;
214
- /** 現在スプラットに適用されているローカル平行移動量(複数選択時は null) */
215
- localTranslation: Vector3 | null;
216
- /** 現在スプラットに適用されているローカル回転(複数選択時は null) */
217
- localQuaternion: Quaternion | null;
218
- /** 現在スプラットに適用されているローカルスケール(複数選択時は null) */
219
- localScale: Vector3 | null;
220
- /** スプラット固有の初期回転(単一選択時のみ設定される) */
221
- initialQuaternion?: Quaternion;
222
- /** スプラットが属するインスタンスのスケール値(単一選択時のみ設定される) */
223
- instanceScale?: number;
224
- }
225
- /** スプラットの選択モード */
226
- export declare const SELECTION_MODE: {
227
- /** 既存の選択状態をクリアして新規選択(上書き) */
228
- readonly REPLACE: "replace";
229
- /** 既存の選択状態に追加(論理和) */
230
- readonly ADD: "add";
231
- /** 既存の選択状態から除外(論理差) */
232
- readonly SUBTRACT: "subtract";
233
- };
234
- export type tSelectionMode = typeof SELECTION_MODE[keyof typeof SELECTION_MODE];
235
- /**
236
- * ビューア実装本体
237
- */
238
10
  export declare class Core extends EventEmitter {
239
- canvas: HTMLCanvasElement;
240
- gl: WebGL2RenderingContext;
241
- uniforms: any;
242
- viewerOption: iViewerOption;
243
- defaultRenderViewSymbol: Symbol;
244
- renderViewMap: Map<Symbol | string, RenderView>;
245
- currentRenderViewName: Symbol | string;
246
- currentRenderView: RenderView;
247
- meshMap: Map<string, TavioMesh>;
248
- selectorMap: Map<string, Selector>;
249
- cameraColliderEnabled: boolean;
250
- reversedCollision: boolean;
251
- maxDistance: number;
252
- isInteractive: boolean;
253
- isRendering: boolean;
254
- isLoading: boolean;
255
- isPaused: boolean;
256
- startRendering: number;
257
- renderer: WebGLRenderer;
258
- pmremGenerator: PMREMGenerator;
259
- gaussianMaterial: RawShaderMaterial;
260
- gaussianPickingMaterial: RawShaderMaterial;
261
- gaussianShadowingMaterial: RawShaderMaterial;
262
- gaussianIndexSelectionMaterial: RawShaderMaterial;
263
- pickingRenderTarget: WebGLRenderTarget;
264
- indexSelectionRenderTarget: WebGLRenderTarget;
265
- console: ConsoleOutput;
266
- indexSelectionDivisor: number;
267
- private localTransformGizmo;
268
- private localTransformGizmoParent;
269
- private localTransformGizmoTarget;
270
- private localTransformGizmoEnabled;
271
- private localTransformInitialQuaternion;
272
- private animationController;
273
- private pathAnimationLocked;
274
- /** WebGLRenderer.getSize 用(RenderView は論理ピクセル。canvas バッファ実寸とは別) */
275
- private readonly _rendererLogicalSize;
276
- /** setFrameRateLimit で設定される1フレームあたりの最小間隔(ms)。0 の場合は上限なし */
277
- private _frameIntervalMs;
278
- /** 直前にフレームを描画した時刻(Date.now()) */
279
- private _lastFrameTimestamp;
280
- /**
281
- * インスタンスが発火するイベント
282
- * ※実際には TavioMesh が発火するイベントをリレーする
283
- */
284
- static EVENTS: string[];
285
- /**
286
- * 対応する Controls 種別
287
- */
288
- static CONTROLS: string[];
289
- /**
290
- * シェーダチャンク関連(定義は MaterialGenerator.ts 内)
291
- */
11
+ private driver;
292
12
  static CHUNK_TARGET: {
293
13
  readonly ANY: 0;
294
- readonly BASIC: 1;
295
- readonly PICKING: 2;
296
- readonly SHADOWING: 4;
297
- readonly INDEX_SELECTION: 8;
14
+ readonly ANY_SPLAT: 1;
15
+ readonly BASIC: 2;
16
+ readonly PICKING: 4;
17
+ readonly SHADOWING: 8;
18
+ readonly INDEX_SELECTION: 16;
19
+ readonly POINTS: 32;
298
20
  };
299
21
  static SHADER_STAGE: {
300
22
  readonly VERTEX_PRECISION: 0;
@@ -314,1330 +36,198 @@ export declare class Core extends EventEmitter {
314
36
  readonly FRAGMENT_MAIN_OUT: 14;
315
37
  readonly FRAGMENT_MAIN_END: 15;
316
38
  };
317
- /**
318
- * @constructor
319
- * @param viewerOption - ビューア実装の初期化オプション
320
- * @throws Float16Array 未対応環境ではエラーをスローする
321
- */
39
+ get canvas(): HTMLCanvasElement | OffscreenCanvas;
40
+ get viewerOption(): iViewerOption;
41
+ getElementAdapter(): HTMLCanvasElement | OffscreenCanvas | WorkerElementAdapter;
322
42
  constructor(viewerOption?: iViewerOption);
323
- /**
324
- * ==========================================================================
325
- * setup
326
- * ==========================================================================
327
- */
328
- /**
329
- * コンストラクタ内のセットアップ
330
- * ※一度 dispose した場合、コンストラクタを再度実行することはできないのでこのメソッドで復帰させる
331
- * @param viewerOption - ビューア実装の初期化オプション
332
- */
333
- setupOnConstructor(viewerOption?: iViewerOption): void;
334
- /**
335
- * 各種初期化処理を行う
336
- * @param canvas - WebGL コンテキストを取得する対象となる canvas 要素
337
- * @param materialOption - シェーダチャンクなどの情報を含むマテリアルオプション
338
- */
339
- init(canvas: HTMLCanvasElement, materialOption?: iViewerMaterialOption): void;
340
- /**
341
- * アンビエントライトをレンダービューに追加する
342
- * @param color - 光の色
343
- * @param intensity - 光の強さ
344
- */
345
- addAmbientLight(color: number, intensity: number): AmbientLight;
346
- /**
347
- * スポットライトをレンダービューに追加する
348
- * @param position - ライトの位置
349
- * @param target - ライトの注視点
350
- * @param color - 光の色
351
- * @param intensity - 光の強さ
352
- * @param distance - 光が届く距離
353
- * @param angle - 光が届く範囲(Math.PI / 2 より小さな値を指定)
354
- * @param penumbra - 光の輪郭のぼやけ具合
355
- * @param decay - 光の減衰
356
- * @param castShadow - 影を落とすかどうか
357
- * @param isDebug - ヘルパーを表示するかどうか
358
- */
359
- addSpotLight(position: iVectorLike, target: iVectorLike, color: number, intensity: number, distance: number, angle: number, penumbra: number, decay: number, castShadow?: boolean, isDebug?: boolean): SpotLight;
360
- /**
361
- * ホワイトキューブの Mesh を追加する
362
- * @param position - キューブの位置
363
- * @param scale - キューブに対するスケール
364
- * @param receiveShadow - 影が落ちるかどうか
365
- * @param materialOption - MeshStandardMaterial の初期化オプション
366
- */
367
- addWhiteCube(position: iVectorLike, scale: iVectorLike, receiveShadow?: boolean, materialOption?: any): Mesh;
368
- /**
369
- * 現在のレンダービューのアンビエントライトの強度を設定する
370
- * @param intensity - 光の強度
371
- */
43
+ init(canvas: HTMLCanvasElement | OffscreenCanvas, materialOption?: iViewerMaterialOption): void;
44
+ start(): void;
45
+ pause(): void;
46
+ resume(): void;
47
+ resize(width?: number, height?: number, start?: boolean): void;
48
+ dispose(): void;
49
+ addAmbientLight(color: number, intensity: number): void;
50
+ addSpotLight(position: iVectorLike, target: iVectorLike, color: number, intensity: number, distance: number, angle: number, penumbra: number, decay: number, castShadow?: boolean, isDebug?: boolean): void;
51
+ addWhiteCube(position?: iVectorLike, scale?: iVectorLike, receiveShadow?: boolean, materialOption?: MeshStandardMaterialParameters): void;
372
52
  setAmbientLightIntensity(intensity: number): void;
373
- /**
374
- * 現在のレンダービューのスポットライトの位置を設定する
375
- * @param position - 位置
376
- */
377
53
  setSpotLightPosition(position: iVectorLike): void;
378
- /**
379
- * 現在のレンダービューのスポットライトのターゲット位置を設定する
380
- * @param target - ターゲット位置
381
- */
382
54
  setSpotLightTargetPosition(target: iVectorLike): void;
383
- /**
384
- * 現在のレンダービューのスポットライトの強度を設定する
385
- * @param intensity - 光の強度
386
- */
387
55
  setSpotLightIntensity(intensity: number): void;
388
- /**
389
- * 現在のレンダービューのスポットライトの照射距離を設定する
390
- * @param distance - 照射距離
391
- */
392
56
  setSpotLightDistance(distance: number): void;
393
- /**
394
- * 現在のレンダービューのスポットライトの放射角を設定する
395
- * @param angle - 放射角
396
- */
397
57
  setSpotLightAngle(angle: number): void;
398
- /**
399
- * 現在のレンダービューのスポットライトの半影を設定する
400
- * @param penumbra - 半影の割合
401
- */
402
58
  setSpotLightPenumbra(penumbra: number): void;
403
- /**
404
- * 現在のレンダービューのスポットライトの減衰を設定する
405
- * @param decay - 減衰の度合い
406
- */
407
59
  setSpotLightDecay(decay: number): void;
408
- /**
409
- * 影を描画・更新する
410
- */
411
60
  renderShadow(): void;
412
- /**
413
- * レンダービューをセットアップする
414
- */
415
- setupRenderView(): void;
416
- /**
417
- * カメラコントロール・カメラコライダーをセットアップする
418
- * @param renderView - セットアップの対象となるレンダービュー
419
- */
420
- setupControls(renderView: RenderView): void;
421
- /**
422
- * viewerOption から注視点カーソルの自動表示設定を解決する
423
- * @private
424
- */
425
- private _getOrbitCursorAutoDisplayOption;
426
- /**
427
- * OrbitControls をセットアップする
428
- * @param renderView - セットアップの対象となるレンダービュー
429
- */
430
- setupOrbitControls(renderView: RenderView): void;
431
- /**
432
- * CameraPathControls をセットアップする
433
- * @param renderView - セットアップの対象となるレンダービュー
434
- */
435
- setupCameraPathControls(renderView: RenderView): void;
436
- /**
437
- * FlightControls をセットアップする
438
- * @param renderView - セットアップの対象となるレンダービュー
439
- */
440
- setupFlightControls(renderView: RenderView): void;
441
- /**
442
- * TransferControls をセットアップする
443
- * @param renderView - セットアップの対象となるレンダービュー
444
- */
445
- setupTransferControls(renderView: RenderView): void;
446
- /**
447
- * CameraCollider をセットアップする
448
- * @param renderView - セットアップの対象となるレンダービュー
449
- */
450
- setupCameraCollider(renderView: RenderView): void;
451
- /**
452
- * マテリアルをセットアップする
453
- * @param option - シェーダチャンクなどの情報を含むマテリアルオプション
454
- */
455
- setupMaterial(option?: iViewerMaterialOption): void;
456
- /**
457
- * セレクターをセットアップする
458
- */
459
- setupSelector(): void;
460
- /**
461
- * ローカルトランスフォーム用の TransformControls ギズモをセットアップする
462
- */
463
- setupLocalTransformGizmo(): void;
464
- /**
465
- * ==========================================================================
466
- * TavioMesh / loader
467
- * ==========================================================================
468
- */
469
- /**
470
- * TavioMesh を生成しロード前の共通処理を行う
471
- * @private
472
- * @param name - このメッシュの固有名
473
- * @param option - ロード・パース関連のオプション
474
- */
475
- private _beforeLoadMesh;
476
- /**
477
- * TavioMesh のロード後の共通処理を行う
478
- * @private
479
- * @param name - 設定する名前
480
- * @param option - ロード・パース関連のオプション
481
- */
482
- private _afterLoadMesh;
483
- /**
484
- * TavioMesh のインスタンスを生成し tavio 形式のリソースをロード、シーンに追加する
485
- * @param name - このメッシュの固有名
486
- * @param source - 読み込む .tavio ファイル。URL 文字列に加え、事前に取得済みの
487
- * Blob / ArrayBuffer を渡すこともできる
488
- * @param option - ロード・パース関連のオプション
489
- */
490
61
  loadTavio(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
491
- /**
492
- * 既存の TavioMesh のインスタンスにデータを統合する
493
- * @param name - このメッシュの固有名
494
- * @param source - 読み込む .tavio ファイル。URL 文字列に加え、事前に取得済みの
495
- * Blob / ArrayBuffer を渡すこともできる
496
- * @param option - ロード・パース関連のオプション
497
- */
62
+ loadTavioWasm(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
63
+ loadPly(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
64
+ loadSplat(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
65
+ loadImage(name: string, source: string | Blob | ArrayBuffer | ImageBitmap, option?: iLoadingOption): Promise<void>;
66
+ loadCanvas(name: string, canvas: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, option?: iLoadingOption): Promise<void>;
498
67
  concatTavio(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
499
- /**
500
- * TavioMesh のインスタンスを生成し ply 形式のリソースをロード、シーンに追加する
501
- * @param name - このメッシュの固有名
502
- * @param url - 読み込む .ply ファイル
503
- * @param option - ロード・パース関連のオプション
504
- */
505
- loadPly(name: string, url: string, option?: iLoadingOption): Promise<void>;
506
- /**
507
- * 既存の TavioMesh のインスタンスにデータを統合する
508
- * @param name - このメッシュの固有名
509
- * @param url - 読み込む .ply ファイル
510
- * @param option - ロード・パース関連のオプション
511
- */
512
- concatPly(name: string, url: string, option?: iLoadingOption): Promise<void>;
513
- /**
514
- * TavioMesh のインスタンスを生成し splat 形式のリソースをロード、シーンに追加する
515
- * @param name - このメッシュの固有名
516
- * @param url - 読み込む .splat ファイル
517
- * @param option - ロード・パース関連のオプション
518
- */
519
- loadSplat(name: string, url: string, option?: iLoadingOption): Promise<void>;
520
- /**
521
- * 既存の TavioMesh のインスタンスにデータを統合する
522
- * @param name - このメッシュの固有名
523
- * @param url - 読み込む .splat ファイル
524
- * @param option - ロード・パース関連のオプション
525
- */
526
- concatSplat(name: string, url: string, option?: iLoadingOption): Promise<void>;
527
- /**
528
- * TavioMesh のインスタンスを生成し画像形式のリソースをロード、シーンに追加する
529
- * @param name - このメッシュの固有名
530
- * @param url - 読み込む画像ファイル
531
- * @param option - ロード・パース関連のオプション
532
- */
533
- loadImage(name: string, url: string, option?: iLoadingOption): Promise<void>;
534
- /**
535
- * 既存の TavioMesh のインスタンスにデータを統合する
536
- * @param name - このメッシュの固有名
537
- * @param url - 読み込む画像ファイル
538
- * @param option - ロード・パース関連のオプション
539
- */
540
- concatImage(name: string, url: string, option?: iLoadingOption): Promise<void>;
541
- /**
542
- * canvas 要素から TavioMesh のインスタンスを生成し、シーンに追加する
543
- * @param name - このメッシュの固有名
544
- * @param canvas - 処理の対象となる canvas 要素
545
- * @param option - ロード・パース関連のオプション
546
- */
547
- loadCanvas(name: string, canvas: HTMLCanvasElement, option?: iLoadingOption): Promise<void>;
548
- /**
549
- * 既存の TavioMesh のインスタンスにデータを統合する
550
- * @param name - このメッシュの固有名
551
- * @param canvas - 処理の対象となる canvas 要素
552
- * @param option - ロード・パース関連のオプション
553
- */
554
- concatCanvas(name: string, canvas: HTMLCanvasElement, option?: iLoadingOption): Promise<void>;
555
- /**
556
- * tavio 形式のリソースをロードする
557
- * @param name - このメッシュの固有名
558
- * @see {@link TavioMesh.prototype.loadTavioWasm}
559
- */
560
- loadTavioWasm(name: string, ...args: Parameters<typeof TavioMesh.prototype.loadTavioWasm>): Promise<void>;
561
- /**
562
- * ply 形式のリソースをロードする
563
- * @param name - このメッシュの固有名
564
- * @see {@link TavioMesh.prototype.loadPlyWasm}
565
- */
566
- loadPlyWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
567
- /**
568
- * splat 形式のリソースをロードする
569
- * @param name - このメッシュの固有名
570
- * @see {@link TavioMesh.prototype.loadSplatWasm}
571
- */
572
- loadSplatWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
573
- /**
574
- * spz 形式のリソースをロードする
575
- * @param name - このメッシュの固有名
576
- * @see {@link TavioMesh.prototype.loadSpzWasm}
577
- */
578
- loadSpzWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
579
- /**
580
- * sog 形式のリソースをロードする
581
- * @param name - このメッシュの固有名
582
- * @see {@link TavioMesh.prototype.loadSogWasm}
583
- */
584
- loadSogWasm(name: string, url: string, options?: Parameters<typeof TavioMesh.prototype.loadMeshWasm>[2]): Promise<void>;
585
- /**
586
- * tavio 形式のバイナリデータを生成する
587
- * @param name - このメッシュの固有名
588
- * @param options.exportSphericalHarmonics - 球面調和関数の交流成分をエンコードする [default: true]
589
- * @param options.exportCelestialSphere - 天体球の画像をエンコードする [default: true]
590
- * @param options.sphericalHarmonicsSampleRate - 球面調和関数の交流成分の計算のサンプル率 [default: 0.1]
591
- * @param options.celestialSphereDistanceRatio - 天体球の画像に使用する点の距離の比率 [default: 0.99]
592
- */
593
- exportTavioWasm(name: string, options?: Parameters<typeof TavioMesh.prototype.exportTavioWasm>[0]): Promise<{
594
- bytes: Uint8Array;
595
- version: string;
596
- }>;
597
- /**
598
- * tavio 形式のリソースを保存する
599
- * @param name - このメッシュの固有名
600
- * @param fileName - 保存ファイル名
601
- * @param options.exportSphericalHarmonics - 球面調和関数の交流成分をエンコードする [default: true]
602
- * @param options.exportCelestialSphere - 天体球の画像をエンコードする [default: true]
603
- * @param options.sphericalHarmonicsSampleRate - 球面調和関数の交流成分の計算のサンプル率 [default: 0.1]
604
- * @param options.celestialSphereDistanceRatio - 天体球の画像に使用する点の距離の比率 [default: 0.99]
605
- */
606
- saveTavioWasm(name: string, fileName: string, options?: Parameters<typeof TavioMesh.prototype.exportTavioWasm>[0]): Promise<void>;
607
- /**
608
- * splat 形式のリソースを保存する
609
- * @param name - このメッシュの固有名
610
- * @param fileName - 保存ファイル名
611
- */
612
- saveSplatWasm(name: string, fileName: string): Promise<void>;
613
- /**
614
- * ply 形式のリソースを保存する
615
- * @param name - このメッシュの固有名
616
- * @param fileName - 保存ファイル名
617
- */
618
- savePlyWasm(name: string, fileName: string): Promise<void>;
619
- /**
620
- * spz 形式のリソースを保存する
621
- * @param name - このメッシュの固有名
622
- * @param fileName - 保存ファイル名
623
- */
624
- saveSpzWasm(name: string, fileName: string): Promise<void>;
625
- /**
626
- * 名前を指定してロード済み TavioMesh を現在のレンダービューに追加する
627
- * @param name - 対象の名前
628
- */
68
+ concatPly(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
69
+ concatSplat(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
70
+ concatImage(name: string, source: string | Blob | ArrayBuffer | ImageBitmap, option?: iLoadingOption): Promise<void>;
71
+ concatCanvas(name: string, canvas: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, option?: iLoadingOption): Promise<void>;
72
+ saveSplatWasm(name: string, fileName?: string): Promise<any>;
73
+ savePlyWasm(name: string, fileName?: string): Promise<any>;
74
+ saveSpzWasm(name: string, fileName?: string): Promise<any>;
75
+ saveTavioWasm(name: string, fileName?: string, options?: any): Promise<any>;
76
+ exportTavioWasm(name: string, options?: any): Promise<any>;
629
77
  addTavioMesh(name: string): void;
630
- /**
631
- * 名前を指定してロード済み TavioMesh をシーンから取り除く
632
- * @param name - 対象の名前
633
- * @param renderViewName - 対象となるレンダービューの名前
634
- */
635
78
  removeTavioMesh(name: string, renderViewName?: string | Symbol): void;
636
- /**
637
- * 名前を指定してロード済み TavioMesh をシーンから取り除く
638
- * @param name - 対象の名前
639
- */
640
79
  removeTavioMeshAllRenderView(name: string): void;
641
- /**
642
- * 名前を指定して TavioMesh を削除・解放する
643
- * @param name - 対象の名前
644
- */
645
80
  disposeTavioMesh(name: string): void;
646
- /**
647
- * 名前を指定して TavioMesh の表示・非表示を設定する
648
- * @param name - 対象の名前
649
- * @param visibility - 可視状態
650
- */
651
81
  setVisibilityTavioMesh(name: string, visibility: boolean): void;
652
- /**
653
- * 名前を指定して TavioMesh の点描画用 Points の表示・非表示を設定する
654
- * @param name - 対象の名前
655
- * @param visibility - 可視状態
656
- */
657
82
  setVisibilityPoints(name: string, visibility: boolean): void;
658
- /**
659
- * 背景球(シーンの背景)の透明度を指定する(0.0 ~ 1.0)
660
- * @param opacity - 透明度
661
- */
662
83
  setBackgroundOpacity(opacity: number): void;
663
- /**
664
- * 名前を指定してロード済み TavioMesh から背景を設定する
665
- * @param name - 対象の名前
666
- */
667
84
  setBackgroundByTavioMesh(name: string): void;
668
- /**
669
- * 名前を指定した TavioMesh に含まれるメッシュに対して座標変換を適用する
670
- * @param name - 対象の名前
671
- * @param translation - 平行移動
672
- * @param rotation - 回転(オイラー角)
673
- * @param scale - 拡大縮小(XYZ で統一のスケール)
674
- */
85
+ getFirstMeshName(): Promise<string | null> | string | null;
86
+ createRenderView(name: string | Symbol): void;
87
+ setRenderView(name?: string | Symbol | null): void;
88
+ getCurrentRenderViewName(): Promise<string | null> | string | null;
89
+ getRenderViewCount(): Promise<number> | number;
90
+ setRenderViewSize(renderViewName?: string | Symbol, x?: number, y?: number, width?: number, height?: number, start?: boolean): void;
91
+ getWorldPositionByRenderView(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo | null> | iPickingInfo | null;
92
+ setCustomDefines(defines: tCustomDefines): void;
93
+ setCustomUniforms(uniforms: tCustomUniforms): void;
94
+ setGaussianScale(scale: number): void;
95
+ setOpacityAdditive(opacity: number): void;
96
+ setOpacityMultiplier(multiplier: number): void;
97
+ setOpacityPoints(opacity: number): void;
98
+ setSphericalHarmonicsIntensity(intensity: number): void;
99
+ setUsingSphericalHarmonics(isUsing: boolean): void;
100
+ setColorBlur(blur: number): void;
101
+ setColorSharpness(sharpness: number): void;
102
+ setColorTemperature(temperature: number): void;
103
+ setColorTint(tint: number): void;
104
+ setColorContrast(contrast: number): void;
105
+ setHSVColor(hsv: iVectorLike): void;
106
+ setColorRGB(rgb: iVectorLike): void;
107
+ setClippingEnabled(enabled: boolean): void;
108
+ setClippingSphere(position: iVectorLike, scale: iVectorLike): void;
109
+ setOutsideClipPointSize(size: number): void;
110
+ setOutsideClipOpacity(opacity: number): void;
111
+ setEffectMinimumScale(value: number): void;
112
+ setEffectDistanceBase(value: number): void;
113
+ setEffectDistanceRange(value: number): void;
114
+ setWorldOrigin(x: number, y: number, z: number): void;
115
+ setEffectDistancePoints(value: number): void;
116
+ setEffectDistanceNearPoints(value: number): void;
117
+ setEffectSonar(value: number): void;
118
+ setEffectSonarRange(value: number): void;
119
+ startBloomPoints(duration?: number): void;
120
+ startDissolveToGaussian(duration?: number, backgroundFadeInDelay?: number, backgroundFadeInDuration?: number): void;
121
+ startSonarWave(duration?: number): void;
122
+ animatePath(name?: string, duration?: number): void;
123
+ startFadeInBackground(duration?: number): void;
124
+ startFadeOutBackground(duration?: number): void;
125
+ applyLocalTransformToSelected(name: string, translation: iVectorLike, rotation: iVectorLike, scale: iVectorLike): void;
126
+ resetLocalTransformOfSelected(name: string): void;
127
+ resetAllLocalTransforms(name: string): void;
128
+ setLocalTransformGizmoEnabled(enabled: boolean): void;
129
+ setLocalTransformGizmoMode(mode: "translate" | "rotate" | "scale"): void;
130
+ setDropShadow(enabled: boolean): void;
675
131
  setModelTransform(name: string, translation: iVectorLike, rotation: iVectorLike, scale: number): void;
676
- /**
677
- * 名前を指定した TavioMesh に含まれるメッシュの座標変換情報を返す
678
- * @param name - 対象の名前
679
- */
680
- getModelTransform(name: string): iTransform | null;
681
- /**
682
- * 名前を指定した TavioMesh に含まれるインスタンスを、インデックスで指定して動かす
683
- * ※ここでいうインデックスとは load/concat した順番を意味する整数値(concat していない場合常に 0)
684
- * @param name - 対象の名前
685
- * @param index - インデックス
686
- * @param translation - 平行移動
687
- * @param rotation - 回転(オイラー角)
688
- * @param scale - 拡大縮小(XYZ で統一のスケール)
689
- */
132
+ getModelTransform(name: string): Promise<iTransform | null> | iTransform | null;
690
133
  setTransform(name: string, index: number, translation: iVectorLike, rotation: iVectorLike, scale: number): void;
691
- /**
692
- * 名前を指定した TavioMesh に含まれるインスタンスの、指定されたインデックスの座標変換情報を返す
693
- * ※ここでいうインデックスとは load/concat した順番を意味する整数値
694
- * @param name - 対象の名前
695
- * @param index - インデックス
696
- */
697
- getTransform(name: string, index: number): iTransform | null;
698
- /**
699
- * 名前を指定した TavioMesh に含まれるインスタンスをビルボードとして扱うかどうかを設定する
700
- * ※ここでいうインデックスとは load/concat した順番を意味する整数値
701
- * @param name - 対象の名前
702
- * @param index - インデックス
703
- * @param flag - ビルボードとして扱うかどうか
704
- */
134
+ getTransform(name: string, index: number): Promise<iTransform | null> | iTransform | null;
705
135
  setBillboard(name: string, index: number, flag: boolean): void;
706
- /**
707
- * ==========================================================================
708
- * general
709
- * ==========================================================================
710
- */
711
- /**
712
- * ウィンドウのリサイズ処理
713
- * @param width - 幅(CSS/論理ピクセル。Three.js setSize にそのまま渡す)
714
- * @param height - 高さ(同上)
715
- * @param start - リサイズと同時に描画を開始するかどうか
716
- */
717
- resize(width?: number, height?: number, start?: boolean): void;
718
- /**
719
- * 描画を開始する
720
- * ※ pause() によって一時停止中の場合は何もしない(再開するには resume() を呼ぶ)
721
- */
722
- start(): void;
723
- /**
724
- * 描画を一時停止する
725
- * ※ resume() を呼ぶまで、start() を呼び出す内部処理があっても描画は再開されない
726
- */
727
- pause(): void;
728
- /**
729
- * pause() によって一時停止した描画を再開する
730
- */
731
- resume(): void;
732
- /**
733
- * フレームレートの上限を設定する
734
- * @param fps - 1秒あたりの上限フレーム数。0以下を指定すると上限を解除する
735
- */
736
- setFrameRateLimit(fps: number): void;
737
- /**
738
- * 描画処理
739
- * @private
740
- */
741
- private _render;
742
- /**
743
- * 登録されている最初のメッシュの名前を取得する
744
- */
745
- getFirstMeshName(): string | null;
746
- /**
747
- * DevicePixelRatio をレンダラーに対して設定する
748
- * @param value - 設定する DevicePixelRatio
749
- */
750
- setDevicePixelRatio(value: number): void;
751
- /**
752
- * 現在設定されている DevicePixelRatio を返す
753
- */
754
- getDevicePixelRatio(): number | null;
755
- /**
756
- * インタラクティブに描画するモードを用いるかどうかを設定する
757
- * @param isInteractive - 有効とするかどうか
758
- */
759
- setInteractiveMode(isInteractive: boolean): void;
760
- /**
761
- * 球面調和関数の交流成分を利用するかどうかを設定する
762
- * @param isUsing - 利用するかどうかのフラグ
763
- */
764
- setUsingSphericalHarmonics(isUsing: boolean): void;
765
- /**
766
- * 球面調和関数の交流成分に対する係数を設定する(0.0 ~ 1.0)
767
- * @param intensity - 0.0 で交流成分の効果が完全に不可視化される
768
- */
769
- setSphericalHarmonicsIntensity(intensity: number): void;
770
- /**
771
- * レンダラーに対して影の有効・無効を設定する
772
- * @param enabled - 有効化するかどうか
773
- */
774
- setDropShadow(enabled: boolean): void;
775
- /**
776
- * ファイルに含まれるヘッダ情報及び頂点の情報などを取得する
777
- */
778
- getHeaderInfo(name: string): iHeaderInfo | null;
779
- /**
780
- * フレームバッファに 3DGS のワールド座標をレンダリングし指定されたスクリーン座標から取得する
781
- * @param x - 取得する X 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標)
782
- * @param y - 取得する Y 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標, Y-down)
783
- * @param isDebug - デバッグモード(有効化するとピッキングバッファを可視化)
784
- */
785
- getWorldPositionByRenderView(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo | null>;
786
- /**
787
- * スクリーン空間上の矩形またはドローイングマスクの範囲にあるスプラットを選択する
788
- * @param x - 正規化された選択領域の左上 X 座標 (0.0 ~ 1.0)
789
- * @param y - 正規化された選択領域の左上 Y 座標 (0.0 ~ 1.0)
790
- * @param width - 正規化された選択領域の幅 (0.0 ~ 1.0)
791
- * @param height - 正規化された選択領域の高さ (0.0 ~ 1.0)
792
- * @param mode - 選択モード(SELECTION_MODE)
793
- * @param maskSource - オプション:指定領域に対応するアルファマスク(Canvas, OffscreenCanvas, ImageData)
794
- */
795
- selectSplatByScreenArea(x: number, y: number, width: number, height: number, mode?: tSelectionMode, maskSource?: tMaskSource): Promise<void>;
796
- /**
797
- * 各種リソースを解放する
798
- * ※このメソッドを呼び出すと、それまで利用していた canvas は再利用できなくなる
799
- * ※別の canvas を渡して setupOnConstructor や init、render を呼ぶことで再度描画を行うことができる
800
- * ※返り値の Promise は GPU プロセス側のコンテキスト消失(shared image の解放)が
801
- * 確認できてから resolve する。forceContextLoss() 自体は同期的に返るが、実際の
802
- * コンテキスト消失は webglcontextlost イベントで非同期に通知されるため、これを
803
- * 待たずに別の canvas で init() すると GPU プロセス側でリソース競合
804
- * (SharedImageManager の mailbox 不整合等)が起きうる。呼び出し側は
805
- * `await core.dispose()` してから次の init() を行うこと。
806
- */
807
- dispose(): Promise<void>;
808
- /**
809
- * ビューポートの情報を計算する
810
- * @param projection - プロジェクション行列
811
- * @param width - ビューポートの幅
812
- * @param height - ビューポートの高さ
813
- */
814
- private _calcViewportUniforms;
815
- /**
816
- * ビューポートの情報を uniform 変数に設定する
817
- * @param renderView - 対象となるレンダービュー
818
- */
819
- private _updateViewportUniforms;
820
- /**
821
- * 座標を焼き込むレンダリング処理を実行しソートを実行させる
822
- * @param isForce - 強制的に実行するかどうか
823
- */
824
- private _renderDepthRenderTarget;
825
- /**
826
- * ==========================================================================
827
- * renderview
828
- * ==========================================================================
829
- */
830
- /**
831
- * レンダービューを設定する
832
- * @param renderViewName - 対象となるレンダービューの名前
833
- */
834
- setRenderView(renderViewName: string | Symbol | null): void;
835
- /**
836
- * レンダービューの個数を返す
837
- */
838
- getRenderViewCount(): number;
839
- /**
840
- * アクティブなレンダービューの名前を返す
841
- * ※既定のレンダービューがアクティブな場合 null が返る
842
- */
843
- getCurrentRenderViewName(): string | null;
844
- /**
845
- * レンダービューを生成する(生成したインスタンスを呼び出し元に返さない)
846
- * @param name - 生成されるレンダービューの固有名
847
- */
848
- createRenderView(name: string): void;
849
- /**
850
- * レンダービューに位置とサイズを設定する
851
- * ※原点が左下角である点に注意(スクリーン座標系と上下が逆)
852
- * @param renderViewName - 対象となるレンダービューの名前
853
- * @param x - 矩形の左下角の横位置
854
- * @param y - 矩形の左下角の縦位置
855
- * @param width - 幅(論理ピクセル。未指定・null 時は renderer.getSize())
856
- * @param height - 高さ(論理ピクセル。未指定・null 時は renderer.getSize())
857
- * @param start - 同時に描画を開始するかどうか
858
- */
859
- setRenderViewSize(renderViewName?: string | Symbol | null, x?: number, y?: number, width?: number, height?: number, start?: boolean): void;
860
- /**
861
- * レンダービューを生成し、各種コントロールのセットアップも同時に行う
862
- * @param name - 生成されるレンダービューの固有名
863
- */
864
- private _createRenderView;
865
- /**
866
- * 名前を指定してレンダービューを取得する
867
- * @param renderViewName - 対象となるレンダービューの名前
868
- */
869
- private _getRenderView;
870
- /**
871
- * ==========================================================================
872
- * camera
873
- * ==========================================================================
874
- */
875
- /**
876
- * カメラの現在の座標と視線方向、視野角を取得する
877
- */
878
- getCameraParameter(): iCameraParameter;
879
- /**
880
- * カメラの現在の座標と注視点、視野角を設定する
881
- * ※このメソッドは設定時、その値が即座に反映される
882
- * @param position - 設定する座標
883
- * @param target - 設定する注視点
884
- * @param fov - 設定する視野角
885
- */
886
- setCameraParameter(position?: iVectorLike | null, target?: iVectorLike | null, fov?: number | null): void;
887
- /**
888
- * ==========================================================================
889
- * controls
890
- * ==========================================================================
891
- */
892
- /**
893
- * Controls タイプを設定する
894
- * @param type - 設定するタイプを意味する文字列
895
- */
896
- setControlsType(type: tControlsType): void;
897
- /**
898
- * 現在のカメラコントロールを意味する文字列を返す
899
- */
900
- getControlsType(): tControlsType;
901
- /**
902
- * FlightControls と TransferControls に減衰を設定する
903
- * @param attenuation - 減衰(0.0 以上 ~ 1.0 未満)
904
- */
136
+ setCameraParameter(position?: number[] | iVectorLike, target?: number[] | iVectorLike, fov?: number): void;
137
+ getCameraParameter(): Promise<iCameraParameter> | iCameraParameter;
138
+ setCameraColliderEnabled(enabled: boolean): void;
139
+ setCameraColliderSelector(selectorNames?: string[]): void;
140
+ getCameraColliderEnabled(): Promise<boolean> | boolean;
141
+ setInteractiveMode(interactive: boolean): void;
142
+ getInteractiveMode(): Promise<boolean> | boolean;
143
+ setControlsType(controlsType: string): void;
144
+ getControlsType(): Promise<tControlsType> | tControlsType;
905
145
  setControlsAttenuation(attenuation: number): void;
906
- /**
907
- * ==========================================================================
908
- * orbit controls
909
- * ==========================================================================
910
- */
911
- /**
912
- * オービットコントロールのズーム使用可否を設定する
913
- * @param enable - 使用可否を意味する真偽値
914
- */
146
+ selectCameraPath(name: string): void;
147
+ updateCameraPath(time?: number): void;
148
+ createCameraPath(position: number[][] | iVectorLike[], target: number[][] | iVectorLike[], debug?: boolean): CameraPath | void;
149
+ addCameraPath(name: string, position: number[][] | iVectorLike[], target: number[][] | iVectorLike[], debug?: boolean): void;
150
+ removeCameraPath(name: string): void;
151
+ getPathNames(): Promise<string[]> | string[];
152
+ getActiveCameraPathName(): Promise<string | null> | string | null;
153
+ getCameraPathByTime(name?: string, time?: number): Promise<{
154
+ position: iVectorLike;
155
+ target: iVectorLike;
156
+ } | null> | {
157
+ position: iVectorLike;
158
+ target: iVectorLike;
159
+ } | null;
160
+ getCameraPathTime(): Promise<number> | number;
161
+ setCameraPathOption(option: iCameraPathOption): void;
162
+ setCameraPathCollisionRadius(radius: number): void;
163
+ setCameraPathInteraction(x: number, y: number): void;
164
+ setOrbitPointerDown(isDown: boolean): void;
165
+ setOrbitRelativeRotateLeft(value: number): void;
166
+ setOrbitRelativeRotateUp(value: number): void;
167
+ setOrbitRelativeTranslateLeft(value: number): void;
168
+ setOrbitRelativeTranslateUp(value: number): void;
169
+ setOrbitRelativeDollyOut(value: number): void;
170
+ getOrbitDistance(): Promise<number> | number;
171
+ setOrbitDistance(distance: number): void;
172
+ setOrbitRotation(pitch: number, yaw: number, isForce?: boolean): void;
173
+ setOrbitRelativeRotation(pitch: number, yaw: number): void;
915
174
  setOrbitEnableZoom(enable: boolean): void;
916
- /**
917
- * オービットコントロールの平行移動使用可否を設定する
918
- * @param enable - 使用可否を意味する真偽値
919
- */
920
175
  setOrbitEnablePan(enable: boolean): void;
921
- /**
922
- * オービットコントロールの可動範囲制限の可否を設定する
923
- * @param enable - 使用可否を意味する真偽値
924
- */
925
176
  setOrbitEnableLimit(enable: boolean): void;
926
- /**
927
- * オービットコントロールのズーム範囲制限の可否を設定する
928
- * @param enable - 使用可否を意味する真偽値
929
- */
930
177
  setOrbitEnableZoomLimit(enable: boolean): void;
931
- /**
932
- * オービットコントロールの注視点と座標の距離を取得する
933
- * @returns 注視点と座標の距離
934
- */
935
- getOrbitDistance(): number;
936
- /**
937
- * オービットコントロールの注視点から位置までの距離を設定する
938
- * @param distance - 設定する距離
939
- */
940
- setOrbitDistance(distance: number): void;
941
- /**
942
- * オービットコントロールのピッチとヨーを設定する
943
- * @param pitch - ピッチ角度の変化量(ラジアン)
944
- * @param yaw - ヨー角度の変化量(ラジアン)
945
- */
946
- setOrbitRotation(pitch: number, yaw: number, isForce?: boolean): void;
947
- /**
948
- * オービットコントロールのピッチとヨーを相対的に移動する
949
- * @param pitch - ピッチ角度の変化量(ラジアン)
950
- * @param yaw - ヨー角度の変化量(ラジアン)
951
- */
952
- setOrbitRelativeRotation(pitch: number, yaw: number): void;
953
- /**
954
- * オービットコントロールのドリー(前後移動)を相対的に設定する
955
- * @param value - 設定する値
956
- */
957
- setOrbitRelativeDollyOut(value: number): void;
958
- /**
959
- * オービットコントロールの上下の回転を相対的に設定する
960
- * @param value - 設定する値
961
- */
962
- setOrbitRelativeRotateUp(value: number): void;
963
- /**
964
- * オービットコントロールの左右の回転を相対的に設定する
965
- * @param value - 設定する値
966
- */
967
- setOrbitRelativeRotateLeft(value: number): void;
968
- /**
969
- * オービットコントロールの上下の移動を相対的に設定する
970
- * @param value - 設定する値
971
- */
972
- setOrbitRelativeTranslateUp(value: number): void;
973
- /**
974
- * オービットコントロールの左右の移動を相対的に設定する
975
- * @param value - 設定する値
976
- */
977
- setOrbitRelativeTranslateLeft(value: number): void;
978
- /**
979
- * オービットコントロールへポインターが押下中かどうかを設定する
980
- * @param isDown - 設定する値
981
- */
982
- setOrbitPointerDown(isDown: boolean): void;
983
- /**
984
- * オービットコントロールの範囲外へはみ出すことができる範囲を設定する
985
- * @param value - 設定する値
986
- */
987
178
  setOrbitOverflow(value: number): void;
988
- /**
989
- * オービットコントロールの北緯方向の可動範囲を設定する
990
- * @param value - 設定する値
991
- */
992
179
  setOrbitUpLimit(value: number): void;
993
- /**
994
- * オービットコントロールの南緯方向の可動範囲を設定する
995
- * @param value - 設定する値
996
- */
997
180
  setOrbitDownLimit(value: number): void;
998
- /**
999
- * オービットコントロールの西経方向の可動範囲を設定する
1000
- * @param value - 設定する値
1001
- */
1002
181
  setOrbitLeftLimit(value: number): void;
1003
- /**
1004
- * オービットコントロールの西経方向の可動範囲を設定する
1005
- * @param value - 設定する値
1006
- */
1007
182
  setOrbitRightLimit(value: number): void;
1008
- /**
1009
- * オービットコントロールのズームの最短距離を設定する
1010
- * @param value - 設定する値
1011
- */
1012
183
  setOrbitZoomInLimit(value: number): void;
1013
- /**
1014
- * オービットコントロールのズームの最長距離を設定する
1015
- * @param value - 設定する値
1016
- */
1017
184
  setOrbitZoomOutLimit(value: number): void;
1018
- /**
1019
- * ==========================================================================
1020
- * camera path controls
1021
- * ==========================================================================
1022
- */
1023
- /**
1024
- * カメラパスを生成して返す
1025
- * @param position - カメラの座標({x, y, z} のオブジェクト、または [x, y, z] の数値の配列)の配列
1026
- * @param target - 注視点の座標({x, y, z} のオブジェクト、または [x, y, z] の数値の配列)の配列
1027
- * @param debug - デバッグモードをオンにすると、各点とその補間後の軌跡がシーンに追加される
1028
- */
1029
- createCameraPath(position: iVectorLike[] | number[][], target: iVectorLike[] | number[][], debug?: boolean): CameraPath;
1030
- /**
1031
- * カメラパスが有効な場合、指定された時間を設定し更新する
1032
- * @param time - 設定する時間(0.0 ~ 1.0)
1033
- */
1034
- updateCameraPath(time: number): void;
1035
- /**
1036
- * カメラパスを設定する
1037
- * @deprecated このメソッドは廃止されました。addCameraPath(name, path) と selectCameraPath(name) を使用してください。
1038
- * @param path - 設定する CameraPath
1039
- */
1040
- setCameraPath(path: CameraPath): void;
1041
- /**
1042
- * カメラパスを名前で追加する
1043
- * @param name - カメラパスの名前
1044
- * @param path - 追加する CameraPath
1045
- */
1046
- addCameraPath(name: string, path: CameraPath): void;
1047
- /**
1048
- * カメラパスを名前で削除する
1049
- * @param name - 削除するカメラパスの名前
1050
- */
1051
- removeCameraPath(name: string): void;
1052
- /**
1053
- * アクティブなカメラパスを選択する
1054
- * @param name - 選択するカメラパスの名前
1055
- */
1056
- selectCameraPath(name: string): void;
1057
- /**
1058
- * 現在アクティブなカメラパスを取得する
1059
- * @returns アクティブなカメラパス、または null
1060
- */
1061
- getActiveCameraPath(): CameraPath | null;
1062
- /**
1063
- * 現在アクティブなカメラパスの名前を取得する
1064
- * @returns アクティブなカメラパスの名前、または null
1065
- */
1066
- getActiveCameraPathName(): string | null;
1067
- /**
1068
- * カメラパスコントロールの現在時刻(progress)を取得する
1069
- * @returns 現在時刻(0.0 ~ 1.0)、または null
1070
- */
1071
- getCameraPathTime(): number | null;
1072
- /**
1073
- * すべてのカメラパス名を取得する
1074
- * @returns カメラパス名の配列
1075
- */
1076
- getPathNames(): string[];
1077
- /**
1078
- * カメラパスのオプションを設定する
1079
- * @param option - カメラパスに設定するオプション
1080
- */
1081
- setCameraPathOption(option: iCameraPathOption): void;
1082
- /**
1083
- * カメラパスのインタラクション用の座標を設定する
1084
- * @param x - 設定する X 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標)
1085
- * @param y - 設定する Y 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標, Y-down)
1086
- */
1087
- setCameraPathInteraction(x: number, y: number): void;
1088
- /**
1089
- * カメラパスの可動領域(カプセル型)の半径を設定する
1090
- * @param radius - 設定する半径
1091
- */
1092
- setCameraPathCollisionRadius(radius: number): void;
1093
- /**
1094
- * ==========================================================================
1095
- * flight controls
1096
- * ==========================================================================
1097
- */
1098
- /**
1099
- * FlightControls に緯度を設定する
1100
- * @param latitude - 緯度(-90 ~ 90)
1101
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1102
- */
1103
- setFlightLatitude(latitude: number, isForce?: boolean): void;
1104
- /**
1105
- * FlightControls に経度を設定する
1106
- * @param longitude - 経度(0 ~ 360)
1107
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1108
- */
1109
- setFlightLongitude(longitude: number, isForce?: boolean): void;
1110
- /**
1111
- * FlightControls に緯度を相対的に設定する
1112
- * @param latitude - 相対値
1113
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1114
- */
1115
- setFlightRelativeLatitude(latitude: number, isForce?: boolean): void;
1116
- /**
1117
- * FlightControls に経度を相対的に設定する
1118
- * @param longitude - 相対値
1119
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1120
- */
1121
- setFlightRelativeLongitude(longitude: number, isForce?: boolean): void;
1122
- /**
1123
- * FlightControls から緯度経度を取得する
1124
- */
1125
- getFlightParameter(): iLatitudeLongitude | null;
1126
- /**
1127
- * ==========================================================================
1128
- * transfer controls
1129
- * ==========================================================================
1130
- */
1131
- /**
1132
- * TransferControls に位置を設定する
1133
- * @param position - 位置
1134
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1135
- */
1136
- setTransferPosition(position: iVectorLike, isForce?: boolean): void;
1137
- /**
1138
- * TransferControls に位置を相対的に設定する
1139
- * @param position - 相対値
1140
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1141
- */
185
+ setOrbitCursorAutoDisplay(enabled: boolean): void;
186
+ isOrbitCursorAutoDisplayEnabled(): Promise<boolean> | boolean;
187
+ setOrbitCursorDisplay(enabled: boolean): void;
188
+ isOrbitCursorDisplay(): Promise<boolean> | boolean;
189
+ setAxisVisible(visible: boolean): void;
190
+ isAxisVisible(): Promise<boolean> | boolean;
191
+ setOrbitCursorScale(scale: number): void;
192
+ setTransferPosition(position: iVectorLike): void;
1142
193
  setTransferRelativePosition(position: iVectorLike, isForce?: boolean): void;
1143
- /**
1144
- * TransferControls に fov を設定する
1145
- * @param fov - 設定する fov
1146
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1147
- */
1148
- setTransferFov(fov: number, isForce?: boolean): void;
1149
- /**
1150
- * TransferControls に、現在の位置と向きに応じて移動するよう設定する
1151
- * @param offset - 移動する量
1152
- * @param scale - 移動するスケール
1153
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1154
- */
1155
194
  moveTransferByDirection(offset: iVectorLike, scale: number, isForce?: boolean): void;
1156
- /**
1157
- * TransferControls に、現在の位置と向きに応じて水平に移動するよう設定する
1158
- * @param x - 右を正とした横方向
1159
- * @param y - 奥を正とした前後方向
1160
- * @param scale - 移動するスケール
1161
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1162
- */
1163
195
  moveTransferByHorizontalDirection(x: number, y: number, scale: number, isForce?: boolean): void;
1164
- /**
1165
- * TransferControls に、XZ 平面に対して上昇するよう設定する
1166
- * @param scale - 移動するスケール
1167
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1168
- */
1169
196
  moveTransferToTop(scale: number, isForce?: boolean): void;
1170
- /**
1171
- * TransferControls に、XZ 平面に対して下降するよう設定する
1172
- * @param scale - 移動するスケール
1173
- * @param isForce - トランジションせず即座に強制上書きするかどうか
1174
- */
1175
197
  moveTransferToBottom(scale: number, isForce?: boolean): void;
1176
- /**
1177
- * ==========================================================================
1178
- * camera collider
1179
- * ==========================================================================
1180
- */
1181
- /**
1182
- * カメラコライダーの有効・無効を設定する
1183
- * @param enabled - 有効化するかどうか
1184
- */
1185
- setCameraColliderEnabled(enabled: boolean): void;
1186
- /**
1187
- * カメラコライダーの有効・無効状態を取得する
1188
- * @returns カメラコライダーが有効かどうか
1189
- */
1190
- getCameraColliderEnabled(): boolean;
1191
- /**
1192
- * ==========================================================================
1193
- * shader effects
1194
- * ==========================================================================
1195
- */
1196
- /**
1197
- * 点描画用の Points に対して uniform 変数の値を設定する
1198
- * ※あくまでも private なメソッドであり、値設定後に自動で start() はコールされない
1199
- * @private
1200
- * @param uniforms - 設定する値を定義したオブジェクト
1201
- */
1202
- private _setPointUniforms;
1203
- /**
1204
- * MaterialGenerator で独自に拡張した defines を更新する
1205
- * @param customUniforms - 設定・更新する defines
1206
- */
1207
- setCustomDefines(customDefines: any): void;
1208
- /**
1209
- * MaterialGenerator で独自に拡張した uniform 変数を更新する
1210
- * @param customUniforms - 設定・更新する uniform 変数
1211
- */
1212
- setCustomUniforms(customUniforms: any): void;
1213
- /**
1214
- * スプラットの大きさの基本係数を設定する
1215
- * @param value - 設定する係数(0.0 to 1.0)
1216
- */
1217
- setGaussianScale(value: number): void;
1218
- /**
1219
- * 距離に応じたスプラットの大きさにおける最小値を設定する
1220
- * @param value - 設定する係数(0.0 to 1.0)
1221
- */
1222
- setEffectMinimumScale(value: number): void;
1223
- /**
1224
- * 距離に応じたスプラットの大きさ係数を設定する
1225
- * @param value - 設定する係数(0.0 to 1.0)
1226
- */
1227
- setEffectDistanceBase(value: number): void;
1228
- /**
1229
- * 距離に応じたスプラットの範囲係数を設定する
1230
- * @param value - 設定する係数(0.0 < n <= 1.0)
1231
- */
1232
- setEffectDistanceRange(value: number): void;
1233
- /**
1234
- * シェーダーで使用するワールド原点を設定する
1235
- * @param x - X座標
1236
- * @param y - Y座標
1237
- * @param z - Z座標
1238
- */
1239
- setWorldOrigin(x: number, y: number, z: number): void;
1240
- /**
1241
- * シェーダ上で作用する加減算アルファ値を設定する
1242
- * @param alpha - アルファ(適切な範囲はおよそ -3.0 ~ 3.0)
1243
- */
1244
- setOpacityAdditive(alpha: number): void;
1245
- /**
1246
- * シェーダ上で作用する乗算アルファ値を設定する
1247
- * @param alpha - アルファ(適切な範囲はおよそ -3.0 ~ 3.0)
1248
- */
1249
- setOpacityMultiplier(alpha: number): void;
1250
- /**
1251
- * 点描画用の Points に対して距離に応じたエフェクトの範囲係数を設定する(外側)
1252
- * @param value - 設定する係数(0.0 < n <= 1.0)
1253
- */
1254
- setEffectDistancePoints(value: number): void;
1255
- /**
1256
- * 点描画用の Points に対して距離に応じたエフェクトの範囲係数を設定する(内側)
1257
- * @param value - 設定する係数(0.0 < n <= 1.0)
1258
- */
1259
- setEffectDistanceNearPoints(value: number): void;
1260
- /**
1261
- * 色エフェクトの範囲を設定する(外側)
1262
- * @param value - 設定する係数(0.0 < n <= 1.0)
1263
- */
1264
- setEffectDistanceColor(value: number): void;
1265
- /**
1266
- * 色エフェクトの範囲を設定する(内側)
1267
- * @param value - 設定する係数(0.0 < n <= 1.0)
1268
- */
1269
- setEffectDistanceColorNear(value: number): void;
1270
- /**
1271
- * ソナーエフェクトを設定する(外側)
1272
- * @param value - 設定する係数(0.0 < n <= 1.0)
1273
- */
1274
- setEffectSonar(value: number): void;
1275
- /**
1276
- * ソナーエフェクトの範囲を設定する
1277
- * @param value - 設定する範囲(0.0 < n <= 1.0)
1278
- */
1279
- setEffectSonarRange(value: number): void;
1280
- /**
1281
- * 点描画用の Points に対してアルファを設定する
1282
- * @param alpha - アルファ(0.0 ~ 1.0)
1283
- */
1284
- setOpacityPoints(alpha: number): void;
1285
- /**
1286
- * シェーダ上で作用する色温度を設定する
1287
- * @param temperature - 色温度(適切な範囲はおよそ -1.0 ~ 1.0)
1288
- */
1289
- setColorTemperature(temperature: number): void;
1290
- /**
1291
- * シェーダ上で作用するティントを設定する
1292
- * @param tint - ティント(適切な範囲はおよそ -1.0 ~ 1.0)
1293
- */
1294
- setColorTint(tint: number): void;
1295
- /**
1296
- * シェーダ上で作用するコントラストを設定する
1297
- * @param contrast - コントラスト(適切な範囲はおよそ 0.0 ~ 1.0)
1298
- */
1299
- setColorContrast(contrast: number): void;
1300
- /**
1301
- * シェーダ上で作用する HSV を設定する
1302
- * @param hsv - 変換に用いる係数を Vector3 で表したもの
1303
- */
1304
- setHSVColor(hsv: iVectorLike): void;
1305
- /**
1306
- * シェーダ上で作用する RGB を設定する
1307
- * @param rgb - 変換に用いる係数を Vector3 で表したもの(rgb-R, rgb-G, rgb-B)
1308
- */
1309
- setColorRGB(rgb: iVectorLike): void;
1310
- /**
1311
- * シェーダ上で作用する blur を設定する
1312
- * @param blur - スプラット内で色をぼかす係数(適切な範囲はおよそ 0.0 ~ 1.0)
1313
- */
1314
- setColorBlur(blur: number): void;
1315
- /**
1316
- * シェーダ上で作用する sharpness を設定する
1317
- * @param sharpness - スプラット内で色を強調する係数(適切な範囲はおよそ 0.0 ~ 1.0)
1318
- */
1319
- setColorSharpness(sharpness: number): void;
1320
- /**
1321
- * スプラットをスフィアの形状でクリッピングするためのパラメータを設定する
1322
- * @param position - 位置
1323
- * @param scale - スケール
1324
- */
1325
- setClippingSphere(position: iVectorLike, scale: iVectorLike): void;
1326
- /**
1327
- * クリッピングによって範囲外となったスプラットの点の大きさ
1328
- * @param size - 点の大きさ
1329
- */
1330
- setOutsideClipPointSize(size: number): void;
1331
- /**
1332
- * クリッピングによって範囲外となったスプラットの透明度を設定する
1333
- * @param opacity - 設定する係数(もとのアルファに乗算される値)
1334
- */
1335
- setOutsideClipOpacity(opacity: number): void;
1336
- /**
1337
- * ==========================================================================
1338
- * animation
1339
- * ==========================================================================
1340
- */
1341
- /**
1342
- * アニメーションがアクティブかどうかを返す
1343
- * @returns アニメーションがアクティブかどうか
1344
- */
1345
- isAnimating(): boolean;
1346
- /**
1347
- * 点描画の開花効果をアニメーションする
1348
- * @param duration - アニメーションの継続時間(ミリ秒)
1349
- */
1350
- startBloomPoints(duration: number): void;
1351
- /**
1352
- * 点描画からスプラットへの溶解効果をアニメーションする
1353
- * @param duration - アニメーションの継続時間(ミリ秒)
1354
- * @param backgroundFadeInDelay - 溶解開始から fadeInBackground を開始するまでの遅延(ミリ秒)
1355
- * @param backgroundFadeInDuration - fadeInBackground の継続時間(ミリ秒)
1356
- */
1357
- startDissolveToGaussian(duration: number, backgroundFadeInDelay?: number, backgroundFadeInDuration?: number): void;
1358
- /**
1359
- * 背景の不透明度を0から1.0へアニメーションする
1360
- * @param duration - アニメーションの継続時間(ミリ秒)
1361
- */
1362
- startFadeInBackground(duration: number): void;
1363
- /**
1364
- * 背景の不透明度を1.0から0へアニメーションする
1365
- * @param duration - アニメーションの継続時間(ミリ秒)
1366
- */
1367
- startFadeOutBackground(duration: number): void;
1368
- /**
1369
- * ソナー波効果をアニメーションする
1370
- * @param duration - アニメーションの継続時間(ミリ秒)
1371
- */
1372
- startSonarWave(duration: number): void;
1373
- /**
1374
- * カメラパスをアニメーションする
1375
- * @param name - カメラパスの名前
1376
- * @param duration - アニメーションの継続時間(ミリ秒)
1377
- */
1378
- animatePath(name: string, duration: number): void;
1379
- /**
1380
- * アニメーション用の距離情報を設定する
1381
- * @param mainDistance - メインの範囲の距離(実際の距離値、distance50やdistance70など、nullの場合は距離マッピングを無効化)
1382
- * @param remainingDistance - 残りの範囲の距離(実際の距離値、effectDistanceMaxと同じ、通常はdistance100、nullの場合は距離マッピングを無効化)
1383
- * @param splitPoint - 分割点(0.0~1.0、デフォルト0.8。progressがこの値まででmainDistance、それ以降でremainingDistanceまで)
1384
- * @note mainDistanceまたはremainingDistanceがnullの場合、距離マッピングは無効化され、progressがそのまま使用されます
1385
- * @deprecated setAnimationConfig を使用してください
1386
- */
1387
- setDistanceInfoForAnimation(mainDistance: number | null, remainingDistance: number | null, splitPoint?: number): void;
1388
- /**
1389
- * アニメーションの最大描画距離を取得する
1390
- * @returns 最大描画距離(0.0~1.0)
1391
- * @deprecated getAnimationConfig を使用してください
1392
- */
1393
- getMaxRenderDistanceForAnimation(): number;
1394
- /**
1395
- * アニメーションの最大描画距離を設定する
1396
- * progressが1.0に達したときにこの値がゴールとなる
1397
- * @param value - 最大描画距離(0.0~1.0)
1398
- * @deprecated setAnimationConfig を使用してください
1399
- */
1400
- setMaxRenderDistanceForAnimation(value: number): void;
1401
- /**
1402
- * アニメーション設定を一括で取得する
1403
- * @returns 現在のアニメーション設定
1404
- */
1405
- getAnimationConfig(): iAnimationConfig;
1406
- /**
1407
- * アニメーション設定を一括で設定する
1408
- * @param config - アニメーション設定オブジェクト
1409
- * @example
1410
- * // 最大描画距離のみ設定
1411
- * tvv.setAnimationConfig({ maxRenderDistance: 0.5 });
1412
- *
1413
- * // 距離マッピングと最大描画距離を設定
1414
- * tvv.setAnimationConfig({
1415
- * maxRenderDistance: 0.5,
1416
- * mainDistance: 50,
1417
- * remainingDistance: 100,
1418
- * splitPoint: 0.8
1419
- * });
1420
- */
1421
- setAnimationConfig(config: iAnimationConfig): void;
1422
- /**
1423
- * ==========================================================================
1424
- * collision
1425
- * ==========================================================================
1426
- */
1427
- /**
1428
- * セレクターから球の衝突判定を生成する
1429
- * @private
1430
- * @param selector - 対象となるセレクター
1431
- */
1432
- private _createCollisionSphereFromSelector;
1433
- /**
1434
- * セレクターから箱の衝突判定を生成する
1435
- * @private
1436
- * @param selector - 対象となるセレクター
1437
- */
1438
- private _createCollisionBoxFromSelector;
1439
- /**
1440
- * 衝突判定を設定する
1441
- * @param collision - 設定する衝突判定、またはその配列
1442
- * @param mode - 選択モード(SELECTION_MODE)
1443
- */
1444
- setCollision(collision: iCollisionTarget | iCollisionTarget[], mode?: tSelectionMode): void;
1445
- /**
1446
- * 現在の衝突判定を解除する
1447
- */
1448
- resetCollision(): void;
1449
- /**
1450
- * 現在選択しているスプラットを削除状態とする
1451
- */
198
+ setTransferFov(fov: number): void;
199
+ getFlightParameter(): Promise<iLatitudeLongitude | null> | iLatitudeLongitude | null;
200
+ setFlightLongitude(longitude: number): void;
201
+ setFlightLatitude(latitude: number): void;
202
+ setFlightRelativeLatitude(latitude: number, isForce?: boolean): void;
203
+ setFlightRelativeLongitude(longitude: number, isForce?: boolean): void;
204
+ selectSplatByScreenArea(minX: number, minY: number, maxX: number, maxY: number, mode?: tSelectionMode, maskCanvas?: tMaskSource | {
205
+ width: number;
206
+ height: number;
207
+ data: ArrayBuffer;
208
+ }): void;
209
+ setFrameRateLimit(fps: number): void;
210
+ setDevicePixelRatio(value: number): void;
211
+ getDevicePixelRatio(): number | null;
212
+ getHeaderInfo(name: string): Promise<iHeaderInfo | null> | iHeaderInfo | null;
213
+ setCollisionReversed(reversed: boolean): void;
1452
214
  deleteSelectedGaussian(): void;
1453
- /**
1454
- * 削除状態を一世代前に戻す
1455
- */
1456
215
  undoDeletedGaussian(): void;
1457
- /**
1458
- * すべての削除状態をリセットする
1459
- */
1460
216
  resetDeletedGaussian(): void;
1461
- /**
1462
- * セレクターによる衝突判定の反転フラグを設定する
1463
- * @param reversed - 設定する反転属性
1464
- */
1465
- setCollisionReversed(reversed: boolean): void;
1466
- /**
1467
- * 名前を指定してセレクターで衝突判定を行う
1468
- * @param name - 対象となるセレクターの名前
1469
- * @param mode - 選択モード(SELECTION_MODE)
1470
- */
217
+ resetCollision(): void;
218
+ setCollision(collision: iCollisionTarget | iCollisionTarget[], mode?: tSelectionMode): void;
1471
219
  checkCollisionBySelector(name: string, mode?: tSelectionMode): void;
1472
- /**
1473
- * 名前を複数(配列で)指定して対象のセレクターで衝突判定を行う
1474
- * @param names - 対象となるセレクターの名前の配列
1475
- * @param mode - 選択モード(SELECTION_MODE)
1476
- */
1477
220
  checkCollisionBySelectors(names: string[], mode?: tSelectionMode): void;
1478
- /**
1479
- * 現在追加されているすべてのセレクターで衝突判定を行う
1480
- * @param mode - 選択モード(SELECTION_MODE)
1481
- */
1482
221
  checkCollisionByAllSelectors(mode?: tSelectionMode): void;
1483
- /**
1484
- * 球の衝突判定パラメータ(Worker に渡すフォーマット)を生成する
1485
- * @param radius - 半径
1486
- * @param position - ワールド空間における位置
1487
- * @param scale - ワールド空間における拡大縮小(スケール)
1488
- * @param inverseMatrix - ワールド変換の逆行列
1489
- * @param reversed - 判定の反転(球に内包されている状態を規定とし、それを反転するかどうか)
1490
- */
1491
- createCollisionSphere(radius: number, position: iVectorLike, scale: iVectorLike, inverseMatrix: Matrix4, reversed?: boolean): iCollisionTarget;
1492
- /**
1493
- * 箱の衝突判定パラメータ(Worker に渡すフォーマット)を生成する
1494
- * @param width - 一辺の幅
1495
- * @param height - 一辺の高さ
1496
- * @param depth - 一辺の奥行き
1497
- * @param position - ワールド空間における位置
1498
- * @param scale - ワールド空間における拡大縮小(スケール)
1499
- * @param inverseMatrix - ワールド変換の逆行列
1500
- * @param reversed - 判定の反転(球に内包されている状態を規定とし、それを反転するかどうか)
1501
- */
1502
- createCollisionBox(width: number, height: number, depth: number, position: iVectorLike, scale: iVectorLike, inverseMatrix: Matrix4, reversed?: boolean): iCollisionTarget;
1503
- /**
1504
- * ==========================================================================
1505
- * selector
1506
- * ==========================================================================
1507
- */
1508
- /**
1509
- * すべての生成済みセレクターの諸情報を返す
1510
- */
1511
- getAllSelectorInfo(): iSelectorInfo[];
1512
- /**
1513
- * 名前を指定してセレクターの可視性を設定する
1514
- * @param name - 設定するセレクターの名前
1515
- * @param visible - 設定する可視性
1516
- */
222
+ getAllSelectorInfo(): Promise<iSelectorInfo[]> | iSelectorInfo[];
1517
223
  setSelectorVisible(name: string, visible: boolean): void;
1518
- /**
1519
- * 名前を指定してセレクターを平行移動モードにする
1520
- * @param name - 設定するセレクターの名前
1521
- */
1522
224
  setSelectorModeTranslate(name: string): void;
1523
- /**
1524
- * 名前を指定してセレクターを拡大縮小モードにする
1525
- * @param name - 設定するセレクターの名前
1526
- */
1527
225
  setSelectorModeScale(name: string): void;
1528
- /**
1529
- * 名前を指定してセレクターを回転モードにする
1530
- * @param name - 設定するセレクターの名前
1531
- */
1532
226
  setSelectorModeRotate(name: string): void;
1533
- /**
1534
- * 名前を指定してセレクターの位置を設定する
1535
- * @param name - 設定するセレクターの名前
1536
- * @param position - 設定する位置
1537
- */
1538
227
  setSelectorPosition(name: string, position: iVectorLike): void;
1539
- /**
1540
- * 名前を指定してセレクターの回転を設定する
1541
- * @param name - 設定するセレクターの名前
1542
- * @param rotation - 設定する回転(Euler)
1543
- */
1544
228
  setSelectorRotation(name: string, rotation: iVectorLike): void;
1545
- /**
1546
- * 名前を指定してセレクターのスケールを設定する
1547
- * @param name - 設定するセレクターの名前
1548
- * @param position - 設定するスケール
1549
- */
1550
229
  setSelectorScale(name: string, scale: iVectorLike): void;
1551
- /**
1552
- * 名前を指定してセレクターを削除する
1553
- * @param name - 削除するセレクターの名前
1554
- */
1555
230
  deleteSelector(name: string): void;
1556
- /**
1557
- * 名前を指定して球のセレクターを追加する(既定の状態では visible が false である点に注意)
1558
- * @param name - 追加するセレクターに付与する名前
1559
- * @param option - セレクターに対するオプション
1560
- */
1561
231
  addSphereSelector(name: string, option?: iSphereSelectorOption): void;
1562
- /**
1563
- * 名前を指定して箱のセレクターを追加する(既定の状態では visible が false である点に注意)
1564
- * @param name - 追加するセレクターに付与する名前
1565
- * @param option - セレクターに対するオプション
1566
- */
1567
232
  addBoxSelector(name: string, option?: iBoxSelectorOption): void;
1568
- /**
1569
- * OrbitControlsの注視点カーソルを、注視点変更時に自動表示するかどうかを設定する
1570
- * @param enabled - 有効にするかどうか
1571
- */
1572
- setOrbitCursorAutoDisplay(enabled: boolean): void;
1573
- /**
1574
- * 注視点変更時のオービットカーソル自動表示が有効かどうかを取得する
1575
- * @returns 有効かどうか
1576
- */
1577
- isOrbitCursorAutoDisplayEnabled(): boolean;
1578
- /**
1579
- * OrbitControlsの注視点カーソルを常に表示するかどうかを設定する
1580
- * @param enabled - 有効にするかどうか
1581
- */
1582
- setOrbitCursorDisplay(enabled: boolean): void;
1583
- /**
1584
- * オービットカーソルの常時表示が有効かどうかを取得する
1585
- * @returns 有効かどうか
1586
- */
1587
- isOrbitCursorDisplay(): boolean;
1588
- /**
1589
- * @deprecated setOrbitCursorAutoDisplay を使用してください
1590
- */
1591
- enableOrbitCursor(enabled: boolean): void;
1592
- /**
1593
- * @deprecated isOrbitCursorAutoDisplayEnabled を使用してください
1594
- */
1595
- isOrbitCursorEnabled(): boolean;
1596
- /**
1597
- * OrbitControlsの注視点カーソルのスケールを設定する
1598
- * @param scale - 設定するスケール値
1599
- */
1600
- setOrbitCursorScale(scale: number): void;
1601
- /**
1602
- * ==========================================================================
1603
- * local transform
1604
- * ==========================================================================
1605
- */
1606
- /**
1607
- * 指定したメッシュ名で選択されているスプラットに対してローカル空間のモデル変換を累積適用する
1608
- * @param name - 対象の名前
1609
- * @param translation - 平行移動
1610
- * @param rotation - 回転(オイラー角)
1611
- * @param scale - 拡大縮小(XYZ で統一のスケール)
1612
- */
1613
- applyLocalTransformToSelected(name: string, translation: iVectorLike, rotation: iVectorLike, scale: iVectorLike): void;
1614
- /**
1615
- * 指定したメッシュ名で選択されているスプラットのローカル空間のモデル変換をリセットする
1616
- * @param name - 対象の名前
1617
- */
1618
- resetLocalTransformOfSelected(name: string): void;
1619
- /**
1620
- * 指定したメッシュ名のすべてのスプラットのローカル空間のモデル変換をリセットする
1621
- * @param name - 対象の名前
1622
- */
1623
- resetAllLocalTransforms(name: string): void;
1624
- /**
1625
- * ギズモのダミーオブジェクトのトランスフォームを、選択中のスプラットに一括同期反映する
1626
- */
1627
- syncLocalTransformFromGizmo(): void;
1628
- /**
1629
- * ローカル変換ギズモの有効/無効を設定する
1630
- * @param enabled - 有効にするかどうか
1631
- */
1632
- setLocalTransformGizmoEnabled(enabled: boolean): void;
1633
- /**
1634
- * ローカル変換ギズモの操作モード(Translate / Rotate / Scale)を設定する
1635
- * @param mode - 操作モード
1636
- */
1637
- setLocalTransformGizmoMode(mode: "translate" | "rotate" | "scale"): void;
1638
- /**
1639
- * 選択中のスプラット情報に基づいてローカル変換ギズモの位置・姿勢・可視状態を更新する
1640
- */
1641
- updateLocalTransformGizmo(): void;
1642
233
  }
1643
- export {};