@openheart/tavio-renderer 2.2.9-without-wasm
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/build/esm/index.js +41928 -0
- package/build/esm/types/animation/animationController.d.ts +133 -0
- package/build/esm/types/camera/cameraCollider.d.ts +54 -0
- package/build/esm/types/camera/cameraPath.d.ts +120 -0
- package/build/esm/types/camera/cameraPathControls.d.ts +73 -0
- package/build/esm/types/camera/cameraPathManager.d.ts +67 -0
- package/build/esm/types/camera/flightControls.d.ts +76 -0
- package/build/esm/types/camera/orbitControls.d.ts +192 -0
- package/build/esm/types/camera/transferControls.d.ts +122 -0
- package/build/esm/types/editor/selector/boxSelector.d.ts +45 -0
- package/build/esm/types/editor/selector/selector.d.ts +145 -0
- package/build/esm/types/editor/selector/sphereSelector.d.ts +45 -0
- package/build/esm/types/extension/InstancedMeshEX.d.ts +101 -0
- package/build/esm/types/global.iife.d.ts +9 -0
- package/build/esm/types/loader/streamLoader.d.ts +21 -0
- package/build/esm/types/main.d.ts +0 -0
- package/build/esm/types/math/easing.d.ts +18 -0
- package/build/esm/types/math/interpolation.d.ts +70 -0
- package/build/esm/types/module.d.ts +5 -0
- package/build/esm/types/types/global.d.ts +23 -0
- package/build/esm/types/utility/console.d.ts +6 -0
- package/build/esm/types/utility/plyDecoder.d.ts +97 -0
- package/build/esm/types/utility/utility.d.ts +47 -0
- package/build/esm/types/viewer/canvas.d.ts +1108 -0
- package/build/esm/types/viewer/tavioMesh.d.ts +436 -0
- package/build/esm/types/wasm-bindings/wasm-worker-client.d.ts +57 -0
- package/build/esm/types/wasm-bindings/wasm-worker.d.ts +49 -0
- package/build/esm/types/wasm-bindings/wasm.d.ts +5 -0
- package/build/esm/types/worker/splatWorker.d.ts +16 -0
- package/build/esm/types/worker/tavioWorker.d.ts +61 -0
- package/package.json +46 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { default as EventEmitter } from 'eventemitter3';
|
|
2
|
+
import { iVectorLike } from '../viewer/canvas';
|
|
3
|
+
/**
|
|
4
|
+
* canvas.ts 内に定義されているメソッドを引数から受け取るためのインターフェース
|
|
5
|
+
*/
|
|
6
|
+
export interface iAnimationUpdateCallback {
|
|
7
|
+
setEffectDistancePoints: (value: number) => void;
|
|
8
|
+
setEffectDistanceBase: (value: number) => void;
|
|
9
|
+
setEffectDistanceNearPoints: (value: number) => void;
|
|
10
|
+
setEffectDistanceColor: (value: number) => void;
|
|
11
|
+
setEffectDistanceColorNear: (value: number) => void;
|
|
12
|
+
setEffectSonar: (value: number) => void;
|
|
13
|
+
setHSVColor: (hsv: iVectorLike) => void;
|
|
14
|
+
setBackgroundOpacity: (value: number) => void;
|
|
15
|
+
start: () => void;
|
|
16
|
+
updateCameraPath: (time: number) => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* アニメーション設定のインターフェース
|
|
20
|
+
*/
|
|
21
|
+
export interface iAnimationConfig {
|
|
22
|
+
/** アニメーションの最大描画距離(0.0~1.0、デフォルト1.0)progressが1.0に達したときにこの値がゴールとなる */
|
|
23
|
+
maxRenderDistance?: number;
|
|
24
|
+
/** メインの範囲の距離(実際の距離値、distance50やdistance70など、nullで距離マッピングを無効化) */
|
|
25
|
+
mainDistance?: number | null;
|
|
26
|
+
/** 残りの範囲の距離(実際の距離値、effectDistanceMaxと同じ、通常はdistance100、nullで距離マッピングを無効化) */
|
|
27
|
+
remainingDistance?: number | null;
|
|
28
|
+
/** 分割点(0.0~1.0、デフォルト0.8。progressがこの値まででmainDistance、それ以降でremainingDistanceまで) */
|
|
29
|
+
splitPoint?: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* アニメーションコントローラー
|
|
33
|
+
*/
|
|
34
|
+
export declare class AnimationController extends EventEmitter {
|
|
35
|
+
private activeAnimations;
|
|
36
|
+
private callbacks;
|
|
37
|
+
private mainDistance;
|
|
38
|
+
private remainingDistance;
|
|
39
|
+
private splitPoint;
|
|
40
|
+
private maxRenderDistance;
|
|
41
|
+
/**
|
|
42
|
+
* インスタンスが発火するイベント
|
|
43
|
+
*/
|
|
44
|
+
static EVENTS: string[];
|
|
45
|
+
/**
|
|
46
|
+
* アニメーションが実行中かどうかを取得する
|
|
47
|
+
* @returns アニメーションが実行中の場合 true
|
|
48
|
+
*/
|
|
49
|
+
get isAnimating(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* アニメーションの最大描画距離を取得する
|
|
52
|
+
* @returns 最大描画距離(0.0~1.0)
|
|
53
|
+
*/
|
|
54
|
+
getMaxRenderDistance(): number;
|
|
55
|
+
/**
|
|
56
|
+
* アニメーションの最大描画距離を設定する
|
|
57
|
+
* progressが1.0に達したときにこの値がゴールとなる
|
|
58
|
+
* @param value - 最大描画距離(0.0~1.0)
|
|
59
|
+
*/
|
|
60
|
+
setMaxRenderDistance(value: number): void;
|
|
61
|
+
/**
|
|
62
|
+
* アニメーション設定を一括で取得する
|
|
63
|
+
* @returns 現在のアニメーション設定
|
|
64
|
+
*/
|
|
65
|
+
getConfig(): iAnimationConfig;
|
|
66
|
+
/**
|
|
67
|
+
* アニメーション設定を一括で設定する
|
|
68
|
+
* @param config - アニメーション設定オブジェクト(各プロパティはオプショナル、指定されたもののみ更新)
|
|
69
|
+
*/
|
|
70
|
+
setConfig(config: iAnimationConfig): void;
|
|
71
|
+
/**
|
|
72
|
+
* @constructor
|
|
73
|
+
* @param callbacks - アニメーション更新時に呼び出されるコールバック関数群
|
|
74
|
+
*/
|
|
75
|
+
constructor(callbacks: iAnimationUpdateCallback);
|
|
76
|
+
/**
|
|
77
|
+
* アニメーションのprogress(0.0~1.0)を実際の距離にマッピングする
|
|
78
|
+
* progress 0.0 → 0.0(正規化)
|
|
79
|
+
* progress splitPoint → mainDistance/remainingDistance(正規化)
|
|
80
|
+
* progress 1.0 → maxRenderDistance(正規化)
|
|
81
|
+
* @param progress - アニメーションの進行度 (0.0 ~ 1.0)
|
|
82
|
+
* @returns マッピング後の距離値(正規化、0.0 ~ maxRenderDistance)
|
|
83
|
+
*/
|
|
84
|
+
private _mapProgressToDistance;
|
|
85
|
+
/**
|
|
86
|
+
* 距離情報を設定する
|
|
87
|
+
* @param mainDistance - メインの範囲の距離(実際の距離値、distance50やdistance70など、nullの場合は距離マッピングを無効化)
|
|
88
|
+
* @param remainingDistance - 残りの範囲の距離(実際の距離値、effectDistanceMaxと同じ、通常はdistance100、nullの場合は距離マッピングを無効化)
|
|
89
|
+
* @param splitPoint - 分割点(0.0~1.0、デフォルトはSPLIT_POINTを参照。progressがこの値まででmainDistance、それ以降でremainingDistanceまで)
|
|
90
|
+
* @note mainDistanceまたはremainingDistanceがnullの場合、距離マッピングは無効化され、progressがそのまま使用されます
|
|
91
|
+
*/
|
|
92
|
+
setDistanceInfo(mainDistance: number | null, remainingDistance: number | null, splitPoint?: number): void;
|
|
93
|
+
/**
|
|
94
|
+
* アニメーションを更新する
|
|
95
|
+
* @param currentTime - 現在時刻(ミリ秒)
|
|
96
|
+
*/
|
|
97
|
+
update(currentTime: number): void;
|
|
98
|
+
/**
|
|
99
|
+
* アクティブなアニメーションの数を取得する
|
|
100
|
+
* @returns アクティブなアニメーションの数
|
|
101
|
+
*/
|
|
102
|
+
getActiveAnimationCount(): number;
|
|
103
|
+
/**
|
|
104
|
+
* すべてのアニメーションをクリアする
|
|
105
|
+
*/
|
|
106
|
+
clear(): void;
|
|
107
|
+
/**
|
|
108
|
+
* ==========================================================================
|
|
109
|
+
* animations
|
|
110
|
+
* ==========================================================================
|
|
111
|
+
*/
|
|
112
|
+
/**
|
|
113
|
+
* 点描画の開花効果をアニメーションする
|
|
114
|
+
* @param duration - アニメーションの継続時間(ミリ秒)
|
|
115
|
+
*/
|
|
116
|
+
bloomPoints(duration: number): void;
|
|
117
|
+
/**
|
|
118
|
+
* 点描画からガウシアンへの溶解効果をアニメーションする
|
|
119
|
+
* @param duration - アニメーションの継続時間(ミリ秒)
|
|
120
|
+
*/
|
|
121
|
+
dissolveToGaussian(duration: number): void;
|
|
122
|
+
/**
|
|
123
|
+
* ソナー波効果をアニメーションする
|
|
124
|
+
* @param duration - アニメーションの継続時間(ミリ秒)
|
|
125
|
+
*/
|
|
126
|
+
sonarWave(duration: number): void;
|
|
127
|
+
/**
|
|
128
|
+
* カメラパスをアニメーションする
|
|
129
|
+
* @param name - カメラパスの名前
|
|
130
|
+
* @param duration - アニメーションの継続時間(ミリ秒)
|
|
131
|
+
*/
|
|
132
|
+
animatePath(name: string, duration: number): void;
|
|
133
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { PerspectiveCamera, Vector3 } from 'three';
|
|
2
|
+
import { Selector } from '../editor/selector/selector';
|
|
3
|
+
import { CameraPath } from './cameraPath';
|
|
4
|
+
import { default as EventEmitter } from 'eventemitter3';
|
|
5
|
+
/**
|
|
6
|
+
* 設定された領域内にカメラが留まるよう振る舞わせる
|
|
7
|
+
* @class
|
|
8
|
+
*/
|
|
9
|
+
export declare class CameraCollider extends EventEmitter {
|
|
10
|
+
private camera;
|
|
11
|
+
private selector;
|
|
12
|
+
private path;
|
|
13
|
+
private previousPosition;
|
|
14
|
+
/**
|
|
15
|
+
* @constructor
|
|
16
|
+
* @param camera - 対象となるカメラ
|
|
17
|
+
* @param selector - 判定に用いるセレクター、またはその配列
|
|
18
|
+
* @param path - 判定に用いるカメラパス
|
|
19
|
+
*/
|
|
20
|
+
constructor(camera: PerspectiveCamera, selector?: Selector | Selector[], path?: CameraPath);
|
|
21
|
+
/**
|
|
22
|
+
* セレクターを設定する
|
|
23
|
+
* @param selector - 対象となるセレクター
|
|
24
|
+
*/
|
|
25
|
+
setSelector(selector: Selector | Selector[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* カメラパスを設定する
|
|
28
|
+
* @param path - 対象となるカメラパス
|
|
29
|
+
*/
|
|
30
|
+
setPath(path: CameraPath): void;
|
|
31
|
+
/**
|
|
32
|
+
* 直前に参照した座標を返す
|
|
33
|
+
*/
|
|
34
|
+
getLatestPosition(): Vector3;
|
|
35
|
+
/**
|
|
36
|
+
* 直前に参照した座標を上書きする
|
|
37
|
+
* @param position
|
|
38
|
+
*/
|
|
39
|
+
setLatestPosition(position: Vector3): void;
|
|
40
|
+
/**
|
|
41
|
+
* カメラの現在の座標が範囲内に含まれるかどうかを判断基準とした更新処理を行う
|
|
42
|
+
*/
|
|
43
|
+
updateIfContains(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* カメラの軌道が範囲外に出ていないかどうかを判断基準とした更新処理を行う
|
|
46
|
+
*/
|
|
47
|
+
updateIfIntersects(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* カメラの現在の座標が範囲内に含まれるかどうかを判断基準とした更新処理を行う
|
|
50
|
+
* ※カメラパスを用いるものはセレクターを用いるものと別メソッドとしている
|
|
51
|
+
* @param radius - カメラパスの制御点からの距離(半径)
|
|
52
|
+
*/
|
|
53
|
+
updateIfContainsByPath(radius: number): boolean;
|
|
54
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Camera, Object3D, Quaternion, Vector3 } from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* カメラパスの座標と注視点用のデータ構造
|
|
4
|
+
*/
|
|
5
|
+
export interface iCameraData {
|
|
6
|
+
position: Vector3;
|
|
7
|
+
target: Vector3;
|
|
8
|
+
screenQuaternion?: Quaternion;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* スプラインを保持し、制御点の追加・削除などを管理する
|
|
12
|
+
* @class
|
|
13
|
+
*/
|
|
14
|
+
export declare class CameraPath {
|
|
15
|
+
private positionSpline;
|
|
16
|
+
private targetSpline;
|
|
17
|
+
private visualizationObjects;
|
|
18
|
+
/**
|
|
19
|
+
* @constructor
|
|
20
|
+
*/
|
|
21
|
+
constructor();
|
|
22
|
+
/**
|
|
23
|
+
* カメラパスから指定された時刻の座標・注視点を返す
|
|
24
|
+
* @param t - 時刻(0.0 ~ 1.0)
|
|
25
|
+
*/
|
|
26
|
+
get(t: number): iCameraData;
|
|
27
|
+
/**
|
|
28
|
+
* カメラパスに設定されている座標点の配列を返す
|
|
29
|
+
*/
|
|
30
|
+
getPointsOfPosition(): Vector3[];
|
|
31
|
+
/**
|
|
32
|
+
* カメラパスに設定されている注視点の配列を返す
|
|
33
|
+
*/
|
|
34
|
+
getPointsOfTarget(): Vector3[];
|
|
35
|
+
/**
|
|
36
|
+
* カメラパスから指定された時刻の座標を返す
|
|
37
|
+
* @param t - 時刻(0.0 ~ 1.0)
|
|
38
|
+
*/
|
|
39
|
+
getPosition(t: number): Vector3;
|
|
40
|
+
/**
|
|
41
|
+
* カメラパスから指定された時刻の注視点を返す
|
|
42
|
+
* @param t - 時刻(0.0 ~ 1.0)
|
|
43
|
+
*/
|
|
44
|
+
getTarget(t: number): Vector3;
|
|
45
|
+
/**
|
|
46
|
+
* 座標用のカメラパスに制御点を追加する
|
|
47
|
+
* @param v - 追加する制御点の座標
|
|
48
|
+
*/
|
|
49
|
+
addPosition(v: Vector3): this;
|
|
50
|
+
/**
|
|
51
|
+
* 注視点用のカメラパスに制御点を追加する
|
|
52
|
+
* @param v - 追加する制御点の座標
|
|
53
|
+
*/
|
|
54
|
+
addTarget(v: Vector3): this;
|
|
55
|
+
/**
|
|
56
|
+
* 配列を用いて、座標用のカメラパスに複数の制御点を追加する
|
|
57
|
+
* @param pointArray - 追加する制御点の配列
|
|
58
|
+
*/
|
|
59
|
+
addPositionFromArray(pointArray: Vector3[]): this;
|
|
60
|
+
/**
|
|
61
|
+
* 配列を用いて、注視点用のカメラパスに複数の制御点を追加する
|
|
62
|
+
* @param pointArray - 追加する制御点の配列
|
|
63
|
+
*/
|
|
64
|
+
addTargetFromArray(pointArray: Vector3[]): this;
|
|
65
|
+
/**
|
|
66
|
+
* インデックスを指定して座標用の制御点を削除する
|
|
67
|
+
* @param index - 削除する制御点のインデックス
|
|
68
|
+
*/
|
|
69
|
+
removePosition(index: number): this;
|
|
70
|
+
/**
|
|
71
|
+
* インデックスを指定して注視点用の制御点を削除する
|
|
72
|
+
* @param index - 削除する制御点のインデックス
|
|
73
|
+
*/
|
|
74
|
+
removeTarget(index: number): this;
|
|
75
|
+
/**
|
|
76
|
+
* カメラから座標と注視点を取得し、制御点を追加する
|
|
77
|
+
* @param camera - 対象となるカメラ
|
|
78
|
+
*/
|
|
79
|
+
addFromCamera(camera: Camera): this;
|
|
80
|
+
/**
|
|
81
|
+
* 補間に必要な計算を実行する(仕組み上、事前に一部を計算しておくことで高速化する意図)
|
|
82
|
+
*/
|
|
83
|
+
compute(): this;
|
|
84
|
+
/**
|
|
85
|
+
* シーンを指定して、補間後の曲線と制御点を可視化する
|
|
86
|
+
* @param parent - ラインと点を追加する Object3D
|
|
87
|
+
*/
|
|
88
|
+
insertObject(parent: Object3D): void;
|
|
89
|
+
/**
|
|
90
|
+
* 可視化用に追加したオブジェクトを削除する
|
|
91
|
+
* @param parent - オブジェクトを削除する親 Object3D
|
|
92
|
+
*/
|
|
93
|
+
removeObject(parent: Object3D): void;
|
|
94
|
+
/**
|
|
95
|
+
* 対象のシーンに、対象のスプラインを、指定された色で追加する
|
|
96
|
+
* @private
|
|
97
|
+
* @param parent - 追加の対象となる Object3D
|
|
98
|
+
* @param spline - 対象のスプライン
|
|
99
|
+
* @param segments - スプラインを何本の線の結合でジオメトリ生成するか
|
|
100
|
+
* @param pointColor - 制御点の色
|
|
101
|
+
* @param lineColor - ラインの色
|
|
102
|
+
*/
|
|
103
|
+
private insert;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Vector3 と同様に外部データを扱うための型定義
|
|
107
|
+
*/
|
|
108
|
+
interface iVectorLike {
|
|
109
|
+
x: number;
|
|
110
|
+
y: number;
|
|
111
|
+
z: number;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* カメラパスを生成するヘルパー関数
|
|
115
|
+
* @param position - カメラの座標({x, y, z} のオブジェクト、または [x, y, z] の数値の配列)の配列
|
|
116
|
+
* @param target - 注視点の座標({x, y, z} のオブジェクト、または [x, y, z] の数値の配列)の配列
|
|
117
|
+
* @returns 生成された CameraPath
|
|
118
|
+
*/
|
|
119
|
+
export declare function createCameraPath(position: iVectorLike[] | number[][], target: iVectorLike[] | number[][]): CameraPath;
|
|
120
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Camera, Vector2 } from 'three';
|
|
2
|
+
import { default as EventEmitter } from 'eventemitter3';
|
|
3
|
+
import { CameraPath, iCameraData } from './cameraPath';
|
|
4
|
+
/**
|
|
5
|
+
* カメラとカメラパスを制御する
|
|
6
|
+
* @class
|
|
7
|
+
*/
|
|
8
|
+
export declare class CameraPathControls extends EventEmitter {
|
|
9
|
+
private camera;
|
|
10
|
+
private path;
|
|
11
|
+
private interactiveScale;
|
|
12
|
+
private interactiveTimer;
|
|
13
|
+
private interactiveOrigin;
|
|
14
|
+
private interactivePosition;
|
|
15
|
+
private interactiveTarget;
|
|
16
|
+
private time;
|
|
17
|
+
private attenuation;
|
|
18
|
+
private screenQuaternion;
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
interactivity: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* @constructor
|
|
23
|
+
* @param camera - 制御の対象となるカメラ
|
|
24
|
+
* @param path - 参照するカメラパス
|
|
25
|
+
*/
|
|
26
|
+
constructor(camera: Camera, path?: CameraPath);
|
|
27
|
+
/**
|
|
28
|
+
* 自身にカメラを設定する
|
|
29
|
+
* @param camera - 制御の対象となるカメラ
|
|
30
|
+
*/
|
|
31
|
+
setCamera(camera: Camera): void;
|
|
32
|
+
/**
|
|
33
|
+
* 自身にカメラパスを設定する
|
|
34
|
+
* @param path - 参照するカメラパス
|
|
35
|
+
*/
|
|
36
|
+
setPath(path: CameraPath): void;
|
|
37
|
+
/**
|
|
38
|
+
* 現在時刻を設定する
|
|
39
|
+
* @param time - 設定する時刻
|
|
40
|
+
*/
|
|
41
|
+
setTime(time: number): iCameraData;
|
|
42
|
+
/**
|
|
43
|
+
* 減衰係数を設定する
|
|
44
|
+
* @param attenuation - 減衰(0.0 ~ 1.0)
|
|
45
|
+
*/
|
|
46
|
+
setAttenuation(attenuation: number): void;
|
|
47
|
+
/**
|
|
48
|
+
* 現在時刻を返す
|
|
49
|
+
*/
|
|
50
|
+
getTime(): number;
|
|
51
|
+
/**
|
|
52
|
+
* 状態を更新する
|
|
53
|
+
* ※ただしカメラパスコントロール自身はカメラのパラメータを変更せず戻り値を返す
|
|
54
|
+
*/
|
|
55
|
+
update(forceChanged?: boolean): iCameraData;
|
|
56
|
+
/**
|
|
57
|
+
* インタラクティブな動きの、指向対象を設定する
|
|
58
|
+
* ※指向対象は Vector2 で、-1.0 ~ 1.0 の範囲を指定する(指定された対象位置に、補間しながらカメラが向く)
|
|
59
|
+
* ※範囲は常に -1.0 ~ 1.0 で指定し、動く幅のスケールは setInteractiveScaleX と setInteractiveScaleY で縦横それぞれに指定できる
|
|
60
|
+
* @param target - カメラを向ける位置を表すベクトル
|
|
61
|
+
*/
|
|
62
|
+
setInteractiveTarget(target: Vector2): void;
|
|
63
|
+
/**
|
|
64
|
+
* 指定された指向位置に向かって動く横方向のスケールを設定する
|
|
65
|
+
* @param scale - 横方向のスケール(ラジアンに相当)
|
|
66
|
+
*/
|
|
67
|
+
setInteractiveScaleX(scale: number): void;
|
|
68
|
+
/**
|
|
69
|
+
* 指定された指向位置に向かって動く縦方向のスケールを設定する
|
|
70
|
+
* @param scale - 縦方向のスケール(ラジアンに相当)
|
|
71
|
+
*/
|
|
72
|
+
setInteractiveScaleY(scale: number): void;
|
|
73
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { CameraPath } from './cameraPath';
|
|
2
|
+
/**
|
|
3
|
+
* 複数のカメラパスを管理する
|
|
4
|
+
* @class
|
|
5
|
+
*/
|
|
6
|
+
export declare class CameraPathManager {
|
|
7
|
+
private pathMap;
|
|
8
|
+
private activePathName;
|
|
9
|
+
/**
|
|
10
|
+
* @constructor
|
|
11
|
+
*/
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* カメラパスを名前で追加する
|
|
15
|
+
* @param name - カメラパスの名前
|
|
16
|
+
* @param path - 追加する CameraPath
|
|
17
|
+
*/
|
|
18
|
+
add(name: string, path: CameraPath): void;
|
|
19
|
+
/**
|
|
20
|
+
* カメラパスを名前で削除する
|
|
21
|
+
* @param name - 削除するカメラパスの名前
|
|
22
|
+
* @returns 削除されたカメラパスがアクティブだったかどうか
|
|
23
|
+
*/
|
|
24
|
+
remove(name: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* アクティブなカメラパスを選択する
|
|
27
|
+
* @param name - 選択するカメラパスの名前
|
|
28
|
+
* @returns 選択されたカメラパス
|
|
29
|
+
*/
|
|
30
|
+
select(name: string): CameraPath;
|
|
31
|
+
/**
|
|
32
|
+
* 現在アクティブなカメラパスを取得する
|
|
33
|
+
* @returns アクティブなカメラパス、または null
|
|
34
|
+
*/
|
|
35
|
+
getActive(): CameraPath | null;
|
|
36
|
+
/**
|
|
37
|
+
* 現在アクティブなカメラパスの名前を取得する
|
|
38
|
+
* @returns アクティブなカメラパスの名前、または null
|
|
39
|
+
*/
|
|
40
|
+
getActiveName(): string | null;
|
|
41
|
+
/**
|
|
42
|
+
* 指定された名前のカメラパスを取得する
|
|
43
|
+
* @param name - カメラパスの名前
|
|
44
|
+
* @returns カメラパス、または null
|
|
45
|
+
*/
|
|
46
|
+
get(name: string): CameraPath | null;
|
|
47
|
+
/**
|
|
48
|
+
* すべてのカメラパス名を取得する
|
|
49
|
+
* @returns カメラパス名の配列
|
|
50
|
+
*/
|
|
51
|
+
getAllNames(): string[];
|
|
52
|
+
/**
|
|
53
|
+
* すべてのカメラパス名を取得する(getAllNamesのエイリアス)
|
|
54
|
+
* @returns カメラパス名の配列
|
|
55
|
+
*/
|
|
56
|
+
getPathNames(): string[];
|
|
57
|
+
/**
|
|
58
|
+
* カメラパスが存在するかどうかを確認する
|
|
59
|
+
* @param name - カメラパスの名前
|
|
60
|
+
* @returns 存在する場合 true
|
|
61
|
+
*/
|
|
62
|
+
has(name: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* すべてのカメラパスをクリアする
|
|
65
|
+
*/
|
|
66
|
+
clear(): void;
|
|
67
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { PerspectiveCamera } from 'three';
|
|
2
|
+
import { default as EventEmitter } from 'eventemitter3';
|
|
3
|
+
/**
|
|
4
|
+
* 緯度経度管理
|
|
5
|
+
*/
|
|
6
|
+
export interface iLatitudeLongitude {
|
|
7
|
+
latitude: number;
|
|
8
|
+
longitude: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* カメラを中心に首振りや仰角方向の視線制御を可能とするカメラコントロール
|
|
12
|
+
* @class
|
|
13
|
+
*/
|
|
14
|
+
export declare class FlightControls extends EventEmitter {
|
|
15
|
+
private camera;
|
|
16
|
+
private attenuation;
|
|
17
|
+
private currentLatitude;
|
|
18
|
+
private targetLatitude;
|
|
19
|
+
private latitudeQuaternion;
|
|
20
|
+
private currentLongitude;
|
|
21
|
+
private targetLongitude;
|
|
22
|
+
private longitudeQuaternion;
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
static EVENTS: string[];
|
|
25
|
+
/**
|
|
26
|
+
* @constructor
|
|
27
|
+
* @param camera - 制御の対象となるカメラ
|
|
28
|
+
*/
|
|
29
|
+
constructor(camera: PerspectiveCamera);
|
|
30
|
+
/**
|
|
31
|
+
* 現在の視線を XZ 平面に投影し正規化したベクトルを返す
|
|
32
|
+
*/
|
|
33
|
+
private _getHorizontalEyeDirection;
|
|
34
|
+
/**
|
|
35
|
+
* 現在の視線から緯度・経度を計算する
|
|
36
|
+
*/
|
|
37
|
+
private _getLL;
|
|
38
|
+
/**
|
|
39
|
+
* 自身にカメラを設定する
|
|
40
|
+
* @param camera - 制御の対象となるカメラ
|
|
41
|
+
*/
|
|
42
|
+
setCamera(camera: PerspectiveCamera): void;
|
|
43
|
+
/**
|
|
44
|
+
* 設定されているカメラの情報を各プロパティに反映する
|
|
45
|
+
*/
|
|
46
|
+
syncCameraParameter(): void;
|
|
47
|
+
/**
|
|
48
|
+
* 減衰係数を設定する
|
|
49
|
+
* @param attenuation - 減衰(0.0 ~ 1.0 未満)
|
|
50
|
+
*/
|
|
51
|
+
setAttenuation(attenuation: number): void;
|
|
52
|
+
/**
|
|
53
|
+
* 緯度方向の視線を設定する
|
|
54
|
+
* @param latitude - 視線の方向を指し示す緯度
|
|
55
|
+
* @param force - 補間を待たずに即座に反映するかどうか
|
|
56
|
+
*/
|
|
57
|
+
setLatitude(latitude: number, force?: boolean): void;
|
|
58
|
+
/**
|
|
59
|
+
* 経度方向の視線を設定する
|
|
60
|
+
* @param longitude - 視線の方向を指し示す経度
|
|
61
|
+
* @param force - 補間を待たずに即座に反映するかどうか
|
|
62
|
+
*/
|
|
63
|
+
setLongitude(longitude: number, force?: boolean): void;
|
|
64
|
+
/**
|
|
65
|
+
* 現在の緯度を返す
|
|
66
|
+
*/
|
|
67
|
+
getLatitude(): number;
|
|
68
|
+
/**
|
|
69
|
+
* 現在の経度を返す
|
|
70
|
+
*/
|
|
71
|
+
getLongitude(): number;
|
|
72
|
+
/**
|
|
73
|
+
* 状態を更新し、変更があったかどうかを真偽値で返す
|
|
74
|
+
*/
|
|
75
|
+
update(): boolean;
|
|
76
|
+
}
|