@openheart/tavio-renderer 2.6.0 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/esm/index.js +1272 -1081
- package/build/esm/types/camera/orbitControls.d.ts +5 -0
- package/build/esm/types/math/plane.d.ts +8 -0
- package/build/esm/types/module.d.ts +2 -2
- package/build/esm/types/viewer/canvas.d.ts +5 -1
- package/build/esm/types/viewer/driver/coreDriver.d.ts +68 -1
- package/build/esm/types/viewer/driver/iCoreDriver.d.ts +5 -1
- package/build/esm/types/viewer/driver/offscreenDriver.d.ts +5 -1
- package/build/esm/types/viewer/tavioMesh/tavioMesh.d.ts +5 -0
- package/build/esm/types/viewer/types.d.ts +20 -0
- package/package.json +1 -1
|
@@ -119,6 +119,11 @@ export declare class OrbitControls extends EventEmitter {
|
|
|
119
119
|
* 設定されているカメラの情報を各プロパティに反映する
|
|
120
120
|
*/
|
|
121
121
|
syncCameraParameter(): void;
|
|
122
|
+
/**
|
|
123
|
+
* 操作の慣性(ズーム・回転・平行移動の残り、バウンス)を打ち消して、現在のカメラの状態で静止させる
|
|
124
|
+
* カメラを外部から動かす間に、直前の操作の慣性でカメラが引き戻されないようにするために使う
|
|
125
|
+
*/
|
|
126
|
+
stopMotion(): void;
|
|
122
127
|
/**
|
|
123
128
|
* 注視点とカメラの距離を返す
|
|
124
129
|
*/
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Vector3 } from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* 点群に最もよく当てはまる平面の法線を主成分分析で求める
|
|
4
|
+
* 点が 3 つ未満、または直線状・一点に集中していて平面が定まらない場合は null を返す
|
|
5
|
+
* @param points - 平面を推定する点群
|
|
6
|
+
* @returns 正規化された法線(向きは不定)
|
|
7
|
+
*/
|
|
8
|
+
export declare function estimatePlaneNormal(points: Vector3[]): Vector3 | null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Core } from './viewer/canvas';
|
|
2
|
-
import { TavioError, tSelectionMode, tMaskSource, iLoadingOption, iViewerOption, iHeaderInfo, iDistanceInfo, iTransform, iVectorLike, tUniformPlainValue, tCustomDefines, tCustomUniformValue, tCustomUniforms } from './viewer/types';
|
|
2
|
+
import { TavioError, tSelectionMode, tMaskSource, iLoadingOption, iViewerOption, iHeaderInfo, iDistanceInfo, iTransform, iVectorLike, iSurfaceInfo, iFocusMarkerOption, tUniformPlainValue, tCustomDefines, tCustomUniformValue, tCustomUniforms } from './viewer/types';
|
|
3
3
|
import { TAVIO_ERROR_CODE, SELECTION_MODE } from './viewer/constants';
|
|
4
4
|
import { CHUNK_TARGET, SHADER_STAGE, iMaterialOption } from './viewer/materialGenerator';
|
|
5
5
|
export { Core, TavioError, TAVIO_ERROR_CODE, SELECTION_MODE, CHUNK_TARGET, SHADER_STAGE, };
|
|
6
|
-
export type { iMaterialOption, tSelectionMode, tMaskSource, iLoadingOption, iViewerOption, iHeaderInfo, iDistanceInfo, iTransform, iVectorLike, tUniformPlainValue, tCustomDefines, tCustomUniformValue, tCustomUniforms, };
|
|
6
|
+
export type { iMaterialOption, tSelectionMode, tMaskSource, iLoadingOption, iViewerOption, iHeaderInfo, iDistanceInfo, iTransform, iVectorLike, iSurfaceInfo, iFocusMarkerOption, tUniformPlainValue, tCustomDefines, tCustomUniformValue, tCustomUniforms, };
|
|
7
7
|
export default Core;
|
|
@@ -3,7 +3,7 @@ import { MeshStandardMaterialParameters } from 'three';
|
|
|
3
3
|
import { iLatitudeLongitude } from '../camera/flightControls';
|
|
4
4
|
import { WorkerElementAdapter } from './driver/workerElementAdapter';
|
|
5
5
|
import { CameraPath } from '../camera/cameraPath';
|
|
6
|
-
import { iVectorLike, iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iSelectorInfo, iPickingInfo, iCameraPathOption, iCameraParameter, tSelectionMode, tMaskSource, tControlsType, tCustomDefines, tCustomUniforms } from './types';
|
|
6
|
+
import { iVectorLike, iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iSelectorInfo, iPickingInfo, iSurfaceInfo, iFocusMarkerOption, iCameraPathOption, iCameraParameter, tSelectionMode, tMaskSource, tControlsType, tCustomDefines, tCustomUniforms } from './types';
|
|
7
7
|
import { iCollisionTarget } from '../worker/tavioWorker';
|
|
8
8
|
import { iSphereSelectorOption } from '../editor/selector/sphereSelector';
|
|
9
9
|
import { iBoxSelectorOption } from '../editor/selector/boxSelector';
|
|
@@ -108,6 +108,7 @@ export declare class Core extends EventEmitter {
|
|
|
108
108
|
getRenderViewCount(): Promise<number> | number;
|
|
109
109
|
setRenderViewSize(renderViewName?: string | Symbol, x?: number, y?: number, width?: number, height?: number, start?: boolean): void;
|
|
110
110
|
getWorldPositionByRenderView(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo | null> | iPickingInfo | null;
|
|
111
|
+
getSurfaceByRenderView(x: number, y: number, sampleRadius?: number): Promise<iSurfaceInfo | null> | iSurfaceInfo | null;
|
|
111
112
|
setCustomDefines(defines: tCustomDefines): void;
|
|
112
113
|
setCustomUniforms(uniforms: tCustomUniforms): void;
|
|
113
114
|
setGaussianScale(scale: number): void;
|
|
@@ -139,6 +140,9 @@ export declare class Core extends EventEmitter {
|
|
|
139
140
|
startDissolveToGaussian(duration?: number, backgroundFadeInDelay?: number, backgroundFadeInDuration?: number): void;
|
|
140
141
|
startSonarWave(duration?: number): void;
|
|
141
142
|
animatePath(name?: string, duration?: number): void;
|
|
143
|
+
animateCameraTo(position: iVectorLike, target: iVectorLike, duration?: number): void;
|
|
144
|
+
showFocusMarker(position: iVectorLike, normal: iVectorLike, option?: iFocusMarkerOption): void;
|
|
145
|
+
hideFocusMarker(): void;
|
|
142
146
|
startFadeInBackground(duration?: number): void;
|
|
143
147
|
startFadeOutBackground(duration?: number): void;
|
|
144
148
|
applyLocalTransformToSelected(name: string, translation: iVectorLike, rotation: iVectorLike, scale: iVectorLike): void;
|
|
@@ -2,7 +2,7 @@ import { RawShaderMaterial, WebGLRenderTarget, WebGLRenderer, PMREMGenerator, Me
|
|
|
2
2
|
import { iSphereSelectorOption } from '../../editor/selector/sphereSelector';
|
|
3
3
|
import { iBoxSelectorOption } from '../../editor/selector/boxSelector';
|
|
4
4
|
import { iCameraSelectorOption } from '../../editor/selector/cameraSelector';
|
|
5
|
-
import { iSelectorInfo, tControlsType, tMaskSource, tSelectionMode, iVectorLike, iCameraPathOption, iCameraParameter, iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iPickingInfo, tUniformValue, tCustomDefines, tCustomUniforms } from '../types';
|
|
5
|
+
import { iSelectorInfo, tControlsType, tMaskSource, tSelectionMode, iVectorLike, iCameraPathOption, iCameraParameter, iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iPickingInfo, iSurfaceInfo, iFocusMarkerOption, tUniformValue, tCustomDefines, tCustomUniforms } from '../types';
|
|
6
6
|
import { iCollisionTarget } from '../../worker/tavioWorker';
|
|
7
7
|
import { WorkerElementAdapter } from './workerElementAdapter';
|
|
8
8
|
import { default as EventEmitter } from 'eventemitter3';
|
|
@@ -68,6 +68,8 @@ export declare class CoreDriver extends EventEmitter implements iCoreDriver {
|
|
|
68
68
|
private torusMaterial?;
|
|
69
69
|
private sphereGeometry?;
|
|
70
70
|
private sphereMaterial?;
|
|
71
|
+
private cameraAnimationToken;
|
|
72
|
+
private focusMarker;
|
|
71
73
|
private shaderRegistry;
|
|
72
74
|
/** WebGLRenderer.getSize 用(RenderView は論理ピクセル。canvas バッファ実寸とは別) */
|
|
73
75
|
private readonly _rendererLogicalSize;
|
|
@@ -86,6 +88,16 @@ export declare class CoreDriver extends EventEmitter implements iCoreDriver {
|
|
|
86
88
|
/** 直前にフレームを描画した時刻(Date.now()) */
|
|
87
89
|
private _lastFrameTimestamp;
|
|
88
90
|
private _rafId;
|
|
91
|
+
/**
|
|
92
|
+
* 直前に発行したフレームのGPU処理完了を検知するためのフェンス。
|
|
93
|
+
* requestAnimationFrame は GPU の完了を待たずに発火するため、1フレームのGPU処理時間が
|
|
94
|
+
* 表示間隔を超えると未処理のGPUコマンドが際限なく溜まり、同じGPUを使う他の描画
|
|
95
|
+
* (ブラウザのコンポジタや他タブのビデオ再生など)が停滞する。前フレームの完了を
|
|
96
|
+
* 確認できるまで次のフレームを発行しないことで、GPUの処理能力に描画頻度を合わせる
|
|
97
|
+
*/
|
|
98
|
+
private _gpuFence;
|
|
99
|
+
/** 次回の _render でGPUフェンスの完了待ちを省略するか(リサイズ直後の即時描画用) */
|
|
100
|
+
private _bypassGpuFenceOnce;
|
|
89
101
|
/**
|
|
90
102
|
* 対応する Controls 種別
|
|
91
103
|
*/
|
|
@@ -476,6 +488,19 @@ export declare class CoreDriver extends EventEmitter implements iCoreDriver {
|
|
|
476
488
|
* @private
|
|
477
489
|
*/
|
|
478
490
|
private _render;
|
|
491
|
+
/**
|
|
492
|
+
* 前フレームで発行したGPUフェンスがまだ完了していないかどうかを返す。
|
|
493
|
+
* 完了していればフェンスを破棄する。WebGL2 でない環境やフェンスが無い場合は false
|
|
494
|
+
*/
|
|
495
|
+
private _isGpuBusy;
|
|
496
|
+
/**
|
|
497
|
+
* このフレームのGPUコマンドの末尾にフェンスを発行し、完了検知に使えるよう flush する
|
|
498
|
+
*/
|
|
499
|
+
private _insertGpuFence;
|
|
500
|
+
/**
|
|
501
|
+
* レンダラーの WebGL2 コンテキストを返す。WebGL2 でない場合やコンテキスト喪失時は null
|
|
502
|
+
*/
|
|
503
|
+
private _getWebGL2Context;
|
|
479
504
|
/**
|
|
480
505
|
* 登録されている最初のメッシュの名前を取得する
|
|
481
506
|
*/
|
|
@@ -524,6 +549,27 @@ export declare class CoreDriver extends EventEmitter implements iCoreDriver {
|
|
|
524
549
|
* @param isDebug - デバッグモード(有効化するとピッキングバッファを可視化)
|
|
525
550
|
*/
|
|
526
551
|
getWorldPositionByRenderView(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo | null>;
|
|
552
|
+
/**
|
|
553
|
+
* getWorldPositionByRenderView と同じくスクリーン座標にある 3DGS のワールド座標を取得し、
|
|
554
|
+
* あわせて周辺のスプラットの位置から推定した面の法線を返す
|
|
555
|
+
* @param x - 取得する X 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標)
|
|
556
|
+
* @param y - 取得する Y 座標(スクリーン空間を -1.0 ~ 1.0 に正規化した座標, Y-down)
|
|
557
|
+
* @param sampleRadius - 法線の推定に使う周辺の範囲(ピクセル、デフォルト 8)
|
|
558
|
+
*/
|
|
559
|
+
getSurfaceByRenderView(x: number, y: number, sampleRadius?: number): Promise<iSurfaceInfo | null>;
|
|
560
|
+
/**
|
|
561
|
+
* ピッキング用のレンダーターゲットに、指定したレンダービューから見た 3DGS のワールド座標を描画する
|
|
562
|
+
* @param renderView - 描画するレンダービュー
|
|
563
|
+
* @param alphaThreshold - この不透明度に満たない部分はピッキングの対象にしない(0.0 ならスプラットの矩形全体)
|
|
564
|
+
*/
|
|
565
|
+
private _renderPickingTarget;
|
|
566
|
+
/**
|
|
567
|
+
* ピッキング用のレンダーターゲットから読み出した 1 ピクセル分の値を解釈する
|
|
568
|
+
* @param floatBuffer - 読み出した RGBA の値
|
|
569
|
+
* @param offset - 解釈するピクセルの先頭のインデックス
|
|
570
|
+
* @returns 何も描画されていないピクセルなら null
|
|
571
|
+
*/
|
|
572
|
+
private _resolvePickingPixel;
|
|
527
573
|
/**
|
|
528
574
|
* スクリーン空間上の矩形またはドローイングマスクの範囲にあるスプラットを選択する
|
|
529
575
|
* @param x - 正規化された選択領域の左上 X 座標 (0.0 ~ 1.0)
|
|
@@ -1184,6 +1230,27 @@ export declare class CoreDriver extends EventEmitter implements iCoreDriver {
|
|
|
1184
1230
|
* @param duration - アニメーションの継続時間(ミリ秒)
|
|
1185
1231
|
*/
|
|
1186
1232
|
animatePath(name?: string, duration?: number): void;
|
|
1233
|
+
/**
|
|
1234
|
+
* カメラの位置と注視点を、指定した値へ補間しながら移動する
|
|
1235
|
+
* 移動中に再度呼ばれた場合は、その時点の状態から新しい移動に切り替える
|
|
1236
|
+
* 移動が完了すると cameraanimationend イベントを発火する(途中で切り替えられた移動では発火しない)
|
|
1237
|
+
* @param position - 移動先のカメラの位置
|
|
1238
|
+
* @param target - 移動先の注視点
|
|
1239
|
+
* @param duration - アニメーションの継続時間(ミリ秒、デフォルト 800)
|
|
1240
|
+
*/
|
|
1241
|
+
animateCameraTo(position: iVectorLike, target: iVectorLike, duration?: number): void;
|
|
1242
|
+
/**
|
|
1243
|
+
* 注視点を示すマーカー(平面のドーナツ)を、指定した位置に面の向きに合わせて一定時間表示する
|
|
1244
|
+
* 表示中に再度呼ばれた場合は、前のマーカーを消して新しいマーカーを表示する
|
|
1245
|
+
* @param position - 表示する位置
|
|
1246
|
+
* @param normal - ドーナツの面の法線
|
|
1247
|
+
* @param option - 表示オプション
|
|
1248
|
+
*/
|
|
1249
|
+
showFocusMarker(position: iVectorLike, normal: iVectorLike, option?: iFocusMarkerOption): void;
|
|
1250
|
+
/**
|
|
1251
|
+
* showFocusMarker で表示したマーカーを直ちに消す
|
|
1252
|
+
*/
|
|
1253
|
+
hideFocusMarker(): void;
|
|
1187
1254
|
/**
|
|
1188
1255
|
* 背景の不透明度を0から1.0へアニメーションする
|
|
1189
1256
|
* @param duration - アニメーションの継続時間(ミリ秒)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as EventEmitter } from 'eventemitter3';
|
|
2
|
-
import { iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iVectorLike, iSelectorInfo, iPickingInfo, iCameraPathOption, iCameraParameter, tSelectionMode, tMaskSource, tControlsType, tUniformValue, tCustomDefines, tCustomUniforms } from '../types';
|
|
2
|
+
import { iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iVectorLike, iSelectorInfo, iPickingInfo, iSurfaceInfo, iFocusMarkerOption, iCameraPathOption, iCameraParameter, tSelectionMode, tMaskSource, tControlsType, tUniformValue, tCustomDefines, tCustomUniforms } from '../types';
|
|
3
3
|
import { iCollisionTarget } from '../../worker/tavioWorker';
|
|
4
4
|
import { iSphereSelectorOption } from '../../editor/selector/sphereSelector';
|
|
5
5
|
import { iBoxSelectorOption } from '../../editor/selector/boxSelector';
|
|
@@ -79,6 +79,7 @@ export interface iCoreDriver extends EventEmitter {
|
|
|
79
79
|
getRenderViewCount(): Promise<number> | number;
|
|
80
80
|
setRenderViewSize(renderViewName?: string | Symbol, x?: number, y?: number, width?: number, height?: number, start?: boolean): void;
|
|
81
81
|
getWorldPositionByRenderView(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo | null> | iPickingInfo | null;
|
|
82
|
+
getSurfaceByRenderView(x: number, y: number, sampleRadius?: number): Promise<iSurfaceInfo | null> | iSurfaceInfo | null;
|
|
82
83
|
setUniforms(uniforms: Record<string, tUniformValue>): void;
|
|
83
84
|
setPointUniforms(uniforms: Record<string, tUniformValue>): void;
|
|
84
85
|
setCustomDefines(defines: tCustomDefines): void;
|
|
@@ -112,6 +113,9 @@ export interface iCoreDriver extends EventEmitter {
|
|
|
112
113
|
startDissolveToGaussian(duration?: number, backgroundFadeInDelay?: number, backgroundFadeInDuration?: number): void;
|
|
113
114
|
startSonarWave(duration?: number): void;
|
|
114
115
|
animatePath(name?: string, duration?: number): void;
|
|
116
|
+
animateCameraTo(position: iVectorLike, target: iVectorLike, duration?: number): void;
|
|
117
|
+
showFocusMarker(position: iVectorLike, normal: iVectorLike, option?: iFocusMarkerOption): void;
|
|
118
|
+
hideFocusMarker(): void;
|
|
115
119
|
startFadeInBackground(duration?: number): void;
|
|
116
120
|
startFadeOutBackground(duration?: number): void;
|
|
117
121
|
setOrbitCursorAutoDisplay(enabled: boolean): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as EventEmitter } from 'eventemitter3';
|
|
2
2
|
import { iCoreDriver } from './iCoreDriver';
|
|
3
|
-
import { iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iVectorLike, iSelectorInfo, iPickingInfo, iCameraPathOption, iCameraParameter, tSelectionMode, tMaskSource, tControlsType, tUniformValue, tCustomDefines, tCustomUniforms } from '../types';
|
|
3
|
+
import { iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iVectorLike, iSelectorInfo, iPickingInfo, iSurfaceInfo, iFocusMarkerOption, iCameraPathOption, iCameraParameter, tSelectionMode, tMaskSource, tControlsType, tUniformValue, tCustomDefines, tCustomUniforms } from '../types';
|
|
4
4
|
import { iCollisionTarget } from '../../worker/tavioWorker';
|
|
5
5
|
import { iLatitudeLongitude } from '../../camera/flightControls';
|
|
6
6
|
import { iSphereSelectorOption } from '../../editor/selector/sphereSelector';
|
|
@@ -59,6 +59,9 @@ export declare class OffscreenDriver extends EventEmitter implements iCoreDriver
|
|
|
59
59
|
startDissolveToGaussian(duration?: number, backgroundFadeInDelay?: number, backgroundFadeInDuration?: number): void;
|
|
60
60
|
startSonarWave(duration?: number): void;
|
|
61
61
|
animatePath(name?: string, duration?: number): void;
|
|
62
|
+
animateCameraTo(position: iVectorLike, target: iVectorLike, duration?: number): void;
|
|
63
|
+
showFocusMarker(position: iVectorLike, normal: iVectorLike, option?: iFocusMarkerOption): void;
|
|
64
|
+
hideFocusMarker(): void;
|
|
62
65
|
startFadeInBackground(duration?: number): void;
|
|
63
66
|
startFadeOutBackground(duration?: number): void;
|
|
64
67
|
applyLocalTransformToSelected(name: string, translation: iVectorLike, rotation: iVectorLike, scale: iVectorLike): void;
|
|
@@ -155,6 +158,7 @@ export declare class OffscreenDriver extends EventEmitter implements iCoreDriver
|
|
|
155
158
|
getCurrentRenderViewName(): Promise<string | null>;
|
|
156
159
|
setRenderViewSize(renderViewName?: string | Symbol, x?: number, y?: number, width?: number, height?: number, start?: boolean): void;
|
|
157
160
|
getWorldPositionByRenderView(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo | null>;
|
|
161
|
+
getSurfaceByRenderView(x: number, y: number, sampleRadius?: number): Promise<iSurfaceInfo | null>;
|
|
158
162
|
setCustomDefines(defines: tCustomDefines): void;
|
|
159
163
|
setCustomUniforms(uniforms: tCustomUniforms): void;
|
|
160
164
|
setGaussianScale(scale: number): void;
|
|
@@ -470,6 +470,11 @@ export declare class TavioMesh extends EventEmitter {
|
|
|
470
470
|
* @param camera - 対象となるカメラ
|
|
471
471
|
*/
|
|
472
472
|
syncPinckingMaterial(camera: PerspectiveCamera): void;
|
|
473
|
+
/**
|
|
474
|
+
* picking 用マテリアルで、ピッキングの対象にする不透明度の下限を設定する
|
|
475
|
+
* @param threshold - この不透明度に満たない部分は対象にしない(0.0 ならスプラットの矩形全体が対象)
|
|
476
|
+
*/
|
|
477
|
+
setPickingAlphaThreshold(threshold: number): void;
|
|
473
478
|
/**
|
|
474
479
|
* shadowing 用マテリアルに uniform 変数を同期する
|
|
475
480
|
*/
|
|
@@ -196,6 +196,26 @@ export interface iPickingInfo {
|
|
|
196
196
|
index: number;
|
|
197
197
|
target: iVectorLike;
|
|
198
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* ピッキングした位置の面の情報
|
|
201
|
+
*/
|
|
202
|
+
export interface iSurfaceInfo extends iPickingInfo {
|
|
203
|
+
/** 周辺のスプラットから推定した面の法線(正規化済み、カメラ側を向く) */
|
|
204
|
+
normal: iVectorLike;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* 注視点を示すマーカー(平面のドーナツ)の表示オプション
|
|
208
|
+
*/
|
|
209
|
+
export interface iFocusMarkerOption {
|
|
210
|
+
/** 表示時間(ミリ秒、デフォルト 1500)。広がりながら後半でフェードアウトする */
|
|
211
|
+
duration?: number;
|
|
212
|
+
/** 広がりきったときの外径(ワールド単位、デフォルト 0.05)。中心から広がる */
|
|
213
|
+
radius?: number;
|
|
214
|
+
/** 表示開始時の太さ(外径に対する比率 0.0 ~ 1.0、デフォルト 0.3)。表示の終わりに向けて 0 まで細くなる */
|
|
215
|
+
thickness?: number;
|
|
216
|
+
/** 色(デフォルト 0xffffff) */
|
|
217
|
+
color?: number;
|
|
218
|
+
}
|
|
199
219
|
/**
|
|
200
220
|
* ビューポートや focal の情報
|
|
201
221
|
*/
|