@galacean/effects-plugin-model 1.2.1 → 2.0.0-alpha.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.
- package/dist/gesture/index.d.ts +5 -4
- package/dist/gltf/loader-helper.d.ts +1 -3
- package/dist/index.d.ts +4 -0
- package/dist/index.js +8358 -6785
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -2
- package/dist/index.mjs +8357 -6784
- package/dist/index.mjs.map +1 -1
- package/dist/loader.mjs +10070 -4913
- package/dist/loader.mjs.map +1 -1
- package/dist/plugin/const.d.ts +3 -0
- package/dist/plugin/index.d.ts +0 -2
- package/dist/plugin/model-item.d.ts +258 -0
- package/dist/plugin/model-plugin.d.ts +91 -18
- package/dist/plugin/model-tree-item.d.ts +113 -6
- package/dist/plugin/model-tree-plugin.d.ts +9 -8
- package/dist/runtime/anim-sampler.d.ts +20 -0
- package/dist/runtime/animation.d.ts +179 -26
- package/dist/runtime/cache.d.ts +75 -0
- package/dist/runtime/camera.d.ts +130 -5
- package/dist/runtime/common.d.ts +143 -4
- package/dist/runtime/light.d.ts +95 -6
- package/dist/runtime/material.d.ts +306 -1
- package/dist/runtime/math.d.ts +2 -0
- package/dist/runtime/mesh.d.ts +242 -32
- package/dist/runtime/object.d.ts +88 -10
- package/dist/runtime/scene.d.ts +156 -27
- package/dist/runtime/shader-libs/standard-shader-source.d.ts +10 -0
- package/dist/runtime/shader-libs/standard-shader.d.ts +16 -0
- package/dist/runtime/shader.d.ts +33 -1
- package/dist/runtime/skybox.d.ts +233 -9
- package/dist/utility/debug-helper.d.ts +14 -0
- package/dist/utility/hit-test-helper.d.ts +39 -3
- package/dist/utility/plugin-helper.d.ts +665 -14
- package/dist/utility/ri-helper.d.ts +67 -0
- package/dist/utility/shader-helper.d.ts +55 -0
- package/dist/utility/ts-helper.d.ts +6 -0
- package/package.json +4 -4
- package/dist/plugin/model-tree-vfx-item.d.ts +0 -15
- package/dist/plugin/model-vfx-item.d.ts +0 -28
- package/dist/runtime/shadow.d.ts +0 -230
|
@@ -1,33 +1,86 @@
|
|
|
1
|
-
import type { Geometry, Engine } from '@galacean/effects';
|
|
1
|
+
import type { Geometry, Engine, VFXItemContent, VFXItem } from '@galacean/effects';
|
|
2
2
|
import { Texture } from '@galacean/effects';
|
|
3
3
|
import type { ModelSkinOptions, ModelAnimTrackOptions, ModelAnimationOptions, ModelTreeOptions } from '../index';
|
|
4
4
|
import { Matrix4 } from './math';
|
|
5
5
|
import { PObject } from './object';
|
|
6
6
|
import type { PSceneManager } from './scene';
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* 纹理数据模式,包含浮点和半精度浮点
|
|
9
|
+
*/
|
|
8
10
|
export declare enum TextureDataMode {
|
|
9
11
|
none = 0,
|
|
10
12
|
float = 1,
|
|
11
13
|
half_float = 2
|
|
12
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* 蒙皮类,支持蒙皮动画
|
|
17
|
+
*/
|
|
13
18
|
export declare class PSkin extends PObject {
|
|
14
|
-
|
|
19
|
+
/**
|
|
20
|
+
* 场景树父元素
|
|
21
|
+
*/
|
|
22
|
+
parentItem?: VFXItem<VFXItemContent>;
|
|
23
|
+
/**
|
|
24
|
+
* 骨骼索引
|
|
25
|
+
*/
|
|
15
26
|
skeleton: number;
|
|
27
|
+
/**
|
|
28
|
+
* 关节索引
|
|
29
|
+
*/
|
|
16
30
|
jointList: number[];
|
|
31
|
+
/**
|
|
32
|
+
* 逆绑定矩阵
|
|
33
|
+
*/
|
|
17
34
|
inverseBindMatrices: Matrix4[];
|
|
35
|
+
/**
|
|
36
|
+
* 动画矩阵
|
|
37
|
+
*/
|
|
18
38
|
animationMatrices: Matrix4[];
|
|
39
|
+
/**
|
|
40
|
+
* 纹理数据模式
|
|
41
|
+
*/
|
|
19
42
|
textureDataMode: TextureDataMode;
|
|
20
|
-
|
|
43
|
+
/**
|
|
44
|
+
* 创建蒙皮对象
|
|
45
|
+
* @param options - 蒙皮相关数据
|
|
46
|
+
* @param engine - 引擎对象
|
|
47
|
+
* @param parentItem - 场景树父元素
|
|
48
|
+
*/
|
|
49
|
+
create(options: ModelSkinOptions, engine: Engine, parentItem?: VFXItem<VFXItemContent>): void;
|
|
50
|
+
/**
|
|
51
|
+
* 更新蒙皮矩阵
|
|
52
|
+
*/
|
|
21
53
|
updateSkinMatrices(): void;
|
|
54
|
+
/**
|
|
55
|
+
* 计算 Mesh 的动画矩阵
|
|
56
|
+
* @param worldMatrix - 世界矩阵
|
|
57
|
+
* @param matrixList - 矩阵列表
|
|
58
|
+
* @param normalMatList - 法线矩阵列表
|
|
59
|
+
*/
|
|
22
60
|
computeMeshAnimMatrices(worldMatrix: Matrix4, matrixList: Float32Array, normalMatList: Float32Array): void;
|
|
23
|
-
|
|
61
|
+
/**
|
|
62
|
+
* 更新父元素
|
|
63
|
+
* @param parentItem - 场景树父元素
|
|
64
|
+
*/
|
|
65
|
+
updateParentItem(parentItem: VFXItem<VFXItemContent>): void;
|
|
66
|
+
/**
|
|
67
|
+
* 获取关节点数
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
24
70
|
getJointCount(): number;
|
|
71
|
+
/**
|
|
72
|
+
* 是否纹理数据模式
|
|
73
|
+
* @returns
|
|
74
|
+
*/
|
|
25
75
|
isTextureDataMode(): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* 销毁
|
|
78
|
+
*/
|
|
26
79
|
dispose(): void;
|
|
27
80
|
private getTextureDataMode;
|
|
28
81
|
}
|
|
29
82
|
/**
|
|
30
|
-
* Morph
|
|
83
|
+
* Morph 动画类
|
|
31
84
|
* 保存了动画状态相关的数据,包括 weights 数组数据
|
|
32
85
|
* 增加了状态数据的检查,保证数据的正确性
|
|
33
86
|
* Morph 动画非常消耗内存,谨慎使用。
|
|
@@ -57,28 +110,25 @@ export declare class PMorph extends PObject {
|
|
|
57
110
|
hasTangentMorph: boolean;
|
|
58
111
|
/**
|
|
59
112
|
* 通过 Geometry 数据创建 Morph 动画相关状态,并进行必要的正确性检查
|
|
60
|
-
*
|
|
61
|
-
* @
|
|
113
|
+
* @param geometry - Mesh 的几何体,是否包含 Morph 动画都是可以的
|
|
114
|
+
* @returns 是否创建成功
|
|
62
115
|
*/
|
|
63
116
|
create(geometry: Geometry): boolean;
|
|
64
117
|
dispose(): void;
|
|
65
118
|
/**
|
|
66
119
|
* 初始化 Morph target 的权重数组
|
|
67
|
-
*
|
|
68
120
|
* @param weights - glTF Mesh 的权重数组,长度必须严格一致
|
|
69
121
|
*/
|
|
70
122
|
initWeights(weights: number[]): void;
|
|
71
123
|
/**
|
|
72
124
|
* 当前状态是否有 Morph 动画:
|
|
73
125
|
* 需要判断 weights 数组长度,以及 Position、Normal 和 Tangent 是否有动画
|
|
74
|
-
*
|
|
75
126
|
* @returns 返回是否有 Morph 动画
|
|
76
127
|
*/
|
|
77
128
|
hasMorph(): boolean;
|
|
78
129
|
/**
|
|
79
130
|
* 两个 Morph 动画状态是否相等:
|
|
80
131
|
* 这里只比较初始状态是否一样,不考虑 weights 数组的情况,提供给 Mesh 进行 Geometry 检查使用
|
|
81
|
-
*
|
|
82
132
|
* @param morph - Morph 动画状态对象
|
|
83
133
|
* @returns 返回两个 Morph 动画状态是否相等
|
|
84
134
|
*/
|
|
@@ -87,7 +137,6 @@ export declare class PMorph extends PObject {
|
|
|
87
137
|
/**
|
|
88
138
|
* 统计 Geometry 中 Attribute 名称个数:
|
|
89
139
|
* 主要用于统计 Morph 动画中新增的 Attribute 名称的个数,会作为最终的 weights 数组长度使用
|
|
90
|
-
*
|
|
91
140
|
* @param attributeNameList - Attribute 名数组列表,只与 Morph Target 中的属性有关
|
|
92
141
|
* @param geometry - Geometry 对象,是否有 Morph 动画都可以
|
|
93
142
|
* @returns 存在的 Attribute 名称数目
|
|
@@ -106,28 +155,72 @@ export declare class PMorph extends PObject {
|
|
|
106
155
|
*/
|
|
107
156
|
private static tangentNameList;
|
|
108
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* 动画插值类型
|
|
160
|
+
*/
|
|
109
161
|
export declare enum PAnimInterpType {
|
|
110
162
|
linear = 0,
|
|
111
163
|
step = 1,
|
|
112
164
|
cubicSpline = 2
|
|
113
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* 动画路径类型
|
|
168
|
+
*/
|
|
114
169
|
export declare enum PAnimPathType {
|
|
115
170
|
translation = 0,
|
|
116
171
|
rotation = 1,
|
|
117
172
|
scale = 2,
|
|
118
173
|
weights = 3
|
|
119
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* 动画轨道类
|
|
177
|
+
*/
|
|
120
178
|
export declare class PAnimTrack {
|
|
179
|
+
/**
|
|
180
|
+
* 节点索引
|
|
181
|
+
*/
|
|
121
182
|
node: number;
|
|
183
|
+
/**
|
|
184
|
+
* 时间数组
|
|
185
|
+
*/
|
|
122
186
|
timeArray: Float32Array;
|
|
187
|
+
/**
|
|
188
|
+
* 数据数组
|
|
189
|
+
*/
|
|
123
190
|
dataArray: Float32Array;
|
|
191
|
+
/**
|
|
192
|
+
* 路径类型
|
|
193
|
+
*/
|
|
124
194
|
path: PAnimPathType;
|
|
195
|
+
/**
|
|
196
|
+
* 插值类型
|
|
197
|
+
*/
|
|
125
198
|
interp: PAnimInterpType;
|
|
199
|
+
/**
|
|
200
|
+
* 分量
|
|
201
|
+
*/
|
|
126
202
|
component: number;
|
|
127
203
|
private sampler?;
|
|
204
|
+
/**
|
|
205
|
+
* 创建动画轨道对象
|
|
206
|
+
* @param options - 动画轨道参数
|
|
207
|
+
*/
|
|
128
208
|
constructor(options: ModelAnimTrackOptions);
|
|
209
|
+
/**
|
|
210
|
+
* 销毁
|
|
211
|
+
*/
|
|
129
212
|
dispose(): void;
|
|
130
|
-
|
|
213
|
+
/**
|
|
214
|
+
* 更新节点动画数据
|
|
215
|
+
* @param time - 当前播放时间
|
|
216
|
+
* @param treeItem - 节点树元素
|
|
217
|
+
* @param sceneManager - 3D 场景管理器
|
|
218
|
+
*/
|
|
219
|
+
tick(time: number, treeItem: VFXItem<VFXItemContent>, sceneManager?: PSceneManager): void;
|
|
220
|
+
/**
|
|
221
|
+
* 获取动画结束时间
|
|
222
|
+
* @returns
|
|
223
|
+
*/
|
|
131
224
|
getEndTime(): number;
|
|
132
225
|
/**
|
|
133
226
|
* 生成 Mesh 元素的父节点
|
|
@@ -141,6 +234,9 @@ export declare class PAnimTrack {
|
|
|
141
234
|
private getPathInfo;
|
|
142
235
|
private getInterpInfo;
|
|
143
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* 动画纹理类
|
|
239
|
+
*/
|
|
144
240
|
export declare class PAnimTexture {
|
|
145
241
|
private engine;
|
|
146
242
|
private isHalfFloat;
|
|
@@ -149,20 +245,60 @@ export declare class PAnimTexture {
|
|
|
149
245
|
private buffer?;
|
|
150
246
|
private texture?;
|
|
151
247
|
constructor(engine: Engine);
|
|
248
|
+
/**
|
|
249
|
+
* 创建动画纹理对象
|
|
250
|
+
* @param jointCount - 骨骼数目
|
|
251
|
+
* @param isHalfFloat - 是否半浮点精度
|
|
252
|
+
* @param name - 名称
|
|
253
|
+
*/
|
|
152
254
|
create(jointCount: number, isHalfFloat: boolean, name: string): void;
|
|
255
|
+
/**
|
|
256
|
+
* 更新动画数据
|
|
257
|
+
* @param buffer - 新的动画数据
|
|
258
|
+
*/
|
|
153
259
|
update(buffer: Float32Array): void;
|
|
260
|
+
/**
|
|
261
|
+
* 销毁
|
|
262
|
+
*/
|
|
154
263
|
dispose(): void;
|
|
264
|
+
/**
|
|
265
|
+
* 获取纹理大小
|
|
266
|
+
* @returns
|
|
267
|
+
*/
|
|
155
268
|
getSize(): number;
|
|
269
|
+
/**
|
|
270
|
+
* 获取纹理对象
|
|
271
|
+
* @returns
|
|
272
|
+
*/
|
|
156
273
|
getTexture(): Texture;
|
|
157
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* 动画类,负责动画数据创建、更新和销毁
|
|
277
|
+
*/
|
|
158
278
|
export declare class PAnimation extends PObject {
|
|
159
279
|
private time;
|
|
160
280
|
private duration;
|
|
161
281
|
private tracks;
|
|
282
|
+
/**
|
|
283
|
+
* 创建动画对象
|
|
284
|
+
* @param options - 动画参数
|
|
285
|
+
*/
|
|
162
286
|
create(options: ModelAnimationOptions): void;
|
|
163
|
-
|
|
287
|
+
/**
|
|
288
|
+
* 动画更新
|
|
289
|
+
* @param time - 当前时间
|
|
290
|
+
* @param treeItem - 场景树元素
|
|
291
|
+
* @param sceneManager - 3D 场景管理器
|
|
292
|
+
*/
|
|
293
|
+
tick(time: number, treeItem: VFXItem<VFXItemContent>, sceneManager?: PSceneManager): void;
|
|
294
|
+
/**
|
|
295
|
+
* 销毁
|
|
296
|
+
*/
|
|
164
297
|
dispose(): void;
|
|
165
298
|
}
|
|
299
|
+
/**
|
|
300
|
+
* 动画管理类,负责管理动画对象
|
|
301
|
+
*/
|
|
166
302
|
export declare class PAnimationManager extends PObject {
|
|
167
303
|
private ownerItem;
|
|
168
304
|
private animation;
|
|
@@ -170,19 +306,36 @@ export declare class PAnimationManager extends PObject {
|
|
|
170
306
|
private delay;
|
|
171
307
|
private time;
|
|
172
308
|
private animations;
|
|
173
|
-
private sceneManager
|
|
174
|
-
|
|
309
|
+
private sceneManager?;
|
|
310
|
+
/**
|
|
311
|
+
* 创建动画管理器
|
|
312
|
+
* @param treeOptions - 场景树参数
|
|
313
|
+
* @param ownerItem - 场景树所属元素
|
|
314
|
+
*/
|
|
315
|
+
constructor(treeOptions: ModelTreeOptions, ownerItem: VFXItem<VFXItemContent>);
|
|
316
|
+
/**
|
|
317
|
+
* 设置场景管理器
|
|
318
|
+
* @param sceneManager - 场景管理器
|
|
319
|
+
*/
|
|
320
|
+
setSceneManager(sceneManager: PSceneManager): void;
|
|
321
|
+
/**
|
|
322
|
+
* 创建动画对象
|
|
323
|
+
* @param animationOpts - 动画参数
|
|
324
|
+
* @returns 动画对象
|
|
325
|
+
*/
|
|
175
326
|
createAnimation(animationOpts: ModelAnimationOptions): PAnimation;
|
|
327
|
+
/**
|
|
328
|
+
* 动画更新
|
|
329
|
+
* @param deltaSeconds - 更新间隔
|
|
330
|
+
*/
|
|
176
331
|
tick(deltaSeconds: number): void;
|
|
332
|
+
/**
|
|
333
|
+
* 销毁
|
|
334
|
+
*/
|
|
177
335
|
dispose(): void;
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
constructor(engine: Engine);
|
|
184
|
-
create(treeItems: ModelTreeVFXItem[]): void;
|
|
185
|
-
insert(animationManager: PAnimationManager): void;
|
|
186
|
-
delete(animationManager: PAnimationManager): void;
|
|
187
|
-
dispose(): void;
|
|
336
|
+
/**
|
|
337
|
+
* 获取场景树元素
|
|
338
|
+
* @returns
|
|
339
|
+
*/
|
|
340
|
+
getTreeItem(): VFXItem<VFXItemContent>;
|
|
188
341
|
}
|
package/dist/runtime/cache.d.ts
CHANGED
|
@@ -4,6 +4,9 @@ import type { ModelSkyboxOptions } from '../index';
|
|
|
4
4
|
import type { FBOOptions } from '../utility/ri-helper';
|
|
5
5
|
import type { PMaterialBase } from './material';
|
|
6
6
|
import type { PSkyboxParams } from './skybox';
|
|
7
|
+
/**
|
|
8
|
+
* 合成缓存类,负责管理插件 WebGL 相关资源加载和创建
|
|
9
|
+
*/
|
|
7
10
|
export declare class CompositionCache {
|
|
8
11
|
private engine;
|
|
9
12
|
private loadSkybox;
|
|
@@ -14,21 +17,93 @@ export declare class CompositionCache {
|
|
|
14
17
|
private renderPassCache;
|
|
15
18
|
private static brdfLutTexOptions?;
|
|
16
19
|
private static skyboxOptions?;
|
|
20
|
+
/**
|
|
21
|
+
* 加载静态的纹理数据
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
17
24
|
static loadStaticResources(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* 创建天空盒数据,如果传入的 params 为空,会使用内置的天空盒参数
|
|
27
|
+
* @param engine - 引擎
|
|
28
|
+
* @param params - 天空盒参数
|
|
29
|
+
* @returns 天空盒数据
|
|
30
|
+
*/
|
|
18
31
|
static genSkyboxOptions(engine: Engine, params?: PSkyboxParams): Promise<ModelSkyboxOptions>;
|
|
19
32
|
constructor(engine: Engine);
|
|
33
|
+
/**
|
|
34
|
+
* 记录是否加载天空盒,缓存天空盒相关的查询纹理
|
|
35
|
+
* @param loadSkybox - 是否加载天空盒
|
|
36
|
+
*/
|
|
20
37
|
setup(loadSkybox: boolean): void;
|
|
38
|
+
/**
|
|
39
|
+
* 获取缓存的纹理对象
|
|
40
|
+
* @param name - 名称
|
|
41
|
+
* @returns 纹理对象
|
|
42
|
+
*/
|
|
21
43
|
getTexture(name: string): Texture | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* 设置纹理对象缓存
|
|
46
|
+
* @param name - 名称
|
|
47
|
+
* @param tex - 纹理对象
|
|
48
|
+
*/
|
|
22
49
|
setTexture(name: string, tex: Texture): void;
|
|
50
|
+
/**
|
|
51
|
+
* 获取或者创建纹理对象
|
|
52
|
+
* @param name - 名称
|
|
53
|
+
* @param options - 纹理参数
|
|
54
|
+
* @returns 纹理对象
|
|
55
|
+
*/
|
|
23
56
|
getOrCreateTexture(name: string, options: TextureSourceOptions): Texture;
|
|
57
|
+
/**
|
|
58
|
+
* 根据名称删除纹理对象
|
|
59
|
+
* @param name - 名称
|
|
60
|
+
* @returns 是否删除成功
|
|
61
|
+
*/
|
|
24
62
|
deleteTexture(name: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* 获取或者创建几何体
|
|
65
|
+
* @param name - 名称
|
|
66
|
+
* @param geomJson - 几何体参数
|
|
67
|
+
* @param bins - 几何体数据
|
|
68
|
+
* @returns 几何体
|
|
69
|
+
*/
|
|
25
70
|
getOrCreateGeometry(name: string, geomJson: spec.GeometryOptionsJSON, bins: ArrayBuffer[]): Geometry;
|
|
71
|
+
/**
|
|
72
|
+
* 获取滤波 Mesh
|
|
73
|
+
* @param name - 名称
|
|
74
|
+
* @param material - 材质
|
|
75
|
+
* @param uniformSemantics - Uniform 语义信息
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
26
78
|
getFilterMesh(name: string, material: PMaterialBase, uniformSemantics: Record<string, any>): Mesh;
|
|
27
79
|
getShadowBasePass(name: string, priority: number, meshList: Mesh[], fboOptions: FBOOptions): RenderPass;
|
|
28
80
|
getShadowFilterPass(name: string, priority: number, meshList: Mesh[], fboOptions: FBOOptions): RenderPass;
|
|
81
|
+
/**
|
|
82
|
+
* 获取渲染 Pass
|
|
83
|
+
* @param name - 名称
|
|
84
|
+
* @param priority - 优先级
|
|
85
|
+
* @param meshList - Mesh 列表
|
|
86
|
+
* @param fboOptions - FBO 参数
|
|
87
|
+
* @returns
|
|
88
|
+
*/
|
|
29
89
|
getRenderPass(name: string, priority: number, meshList: Mesh[], fboOptions: FBOOptions): RenderPass;
|
|
90
|
+
/**
|
|
91
|
+
* 销毁缓存,释放所有缓存的对象
|
|
92
|
+
*/
|
|
30
93
|
dispose(): void;
|
|
94
|
+
/**
|
|
95
|
+
* 获取所有的渲染 Pass
|
|
96
|
+
* @returns
|
|
97
|
+
*/
|
|
31
98
|
getRenderPasses(): RenderPass[];
|
|
99
|
+
/**
|
|
100
|
+
* 获取纹理对象,用户 IBL 渲染
|
|
101
|
+
* @returns
|
|
102
|
+
*/
|
|
32
103
|
getBrdfLutTexture(): Texture | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* 获取天空盒参数
|
|
106
|
+
* @returns
|
|
107
|
+
*/
|
|
33
108
|
getSkyboxOptions(): ModelSkyboxOptions | undefined;
|
|
34
109
|
}
|
package/dist/runtime/camera.d.ts
CHANGED
|
@@ -1,46 +1,171 @@
|
|
|
1
1
|
import type { math } from '@galacean/effects';
|
|
2
2
|
import { spec } from '@galacean/effects';
|
|
3
|
-
import type {
|
|
4
|
-
import type { ModelItemCamera } from '../index';
|
|
3
|
+
import type { ModelCameraOptions } from '../index';
|
|
5
4
|
import { Vector2, Vector3, Matrix4 } from './math';
|
|
6
5
|
import { PEntity } from './object';
|
|
6
|
+
import type { ModelCameraComponent } from '../plugin/model-item';
|
|
7
7
|
type Box3 = math.Box3;
|
|
8
8
|
type Quaternion = math.Quaternion;
|
|
9
|
+
/**
|
|
10
|
+
* 相机类,支持基础的相机功能
|
|
11
|
+
*/
|
|
9
12
|
export declare class PCamera extends PEntity {
|
|
13
|
+
/**
|
|
14
|
+
* 所属的相机组件
|
|
15
|
+
*/
|
|
16
|
+
owner?: ModelCameraComponent;
|
|
17
|
+
/**
|
|
18
|
+
* 画布宽度
|
|
19
|
+
*/
|
|
10
20
|
width: number;
|
|
21
|
+
/**
|
|
22
|
+
* 画布高度
|
|
23
|
+
*/
|
|
11
24
|
height: number;
|
|
25
|
+
/**
|
|
26
|
+
* 近裁剪平面
|
|
27
|
+
*/
|
|
12
28
|
nearPlane: number;
|
|
29
|
+
/**
|
|
30
|
+
* 远裁剪平面
|
|
31
|
+
*/
|
|
13
32
|
farPlane: number;
|
|
33
|
+
/**
|
|
34
|
+
* Y 轴上视角
|
|
35
|
+
*/
|
|
14
36
|
fovy: number;
|
|
37
|
+
/**
|
|
38
|
+
* 纵横比
|
|
39
|
+
*/
|
|
15
40
|
aspect: number;
|
|
41
|
+
/**
|
|
42
|
+
* 剪裁模式,默认是剪裁左右
|
|
43
|
+
*/
|
|
16
44
|
clipMode: spec.CameraClipMode;
|
|
45
|
+
/**
|
|
46
|
+
* 投影矩阵
|
|
47
|
+
*/
|
|
17
48
|
projectionMatrix: Matrix4;
|
|
49
|
+
/**
|
|
50
|
+
* 相机矩阵
|
|
51
|
+
*/
|
|
18
52
|
viewMatrix: Matrix4;
|
|
19
|
-
|
|
53
|
+
/**
|
|
54
|
+
* 构造函数,创建相机对象
|
|
55
|
+
* @param camera - 相机数据
|
|
56
|
+
* @param width - 画布宽度
|
|
57
|
+
* @param height - 画布高度
|
|
58
|
+
* @param owner - 所属的相机组件
|
|
59
|
+
*/
|
|
60
|
+
constructor(name: string, width: number, height: number, options: ModelCameraOptions, owner?: ModelCameraComponent);
|
|
61
|
+
/**
|
|
62
|
+
* 更新相机矩阵和投影矩阵,从所属的元素中获取变换数据
|
|
63
|
+
*/
|
|
20
64
|
update(): void;
|
|
65
|
+
/**
|
|
66
|
+
* 获取新的透视矩阵,视角大小乘 1.25 倍
|
|
67
|
+
* @param fov - 视角大小
|
|
68
|
+
* @returns 投影矩阵
|
|
69
|
+
*/
|
|
21
70
|
getNewProjectionMatrix(fov: number): Matrix4;
|
|
71
|
+
/**
|
|
72
|
+
* 计算视角中的包围盒大小
|
|
73
|
+
* @param box - 包围盒
|
|
74
|
+
* @returns 视角中的包围盒
|
|
75
|
+
*/
|
|
22
76
|
computeViewAABB(box: Box3): Box3;
|
|
77
|
+
/**
|
|
78
|
+
* 获取画布大小
|
|
79
|
+
* @returns
|
|
80
|
+
*/
|
|
23
81
|
getSize(): Vector2;
|
|
82
|
+
/**
|
|
83
|
+
* 是否剪裁上下
|
|
84
|
+
* @returns
|
|
85
|
+
*/
|
|
24
86
|
isReversed(): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* 获取眼睛位置
|
|
89
|
+
* @returns
|
|
90
|
+
*/
|
|
25
91
|
getEye(): Vector3;
|
|
92
|
+
/**
|
|
93
|
+
* 设置眼睛位置
|
|
94
|
+
* @param val - 眼睛位置
|
|
95
|
+
*/
|
|
26
96
|
setEye(val: Vector3): void;
|
|
27
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* 相机管理类,负责管理场景中的 3D 相机对象
|
|
100
|
+
*/
|
|
28
101
|
export declare class PCameraManager {
|
|
29
102
|
private winWidth;
|
|
30
103
|
private winHeight;
|
|
31
104
|
private cameraList;
|
|
32
105
|
private defaultCamera;
|
|
33
106
|
constructor();
|
|
107
|
+
/**
|
|
108
|
+
* 初始化画布大小,更新默认相机
|
|
109
|
+
* @param width - 画布宽度
|
|
110
|
+
* @param height - 画布高度
|
|
111
|
+
*/
|
|
34
112
|
initial(width: number, height: number): void;
|
|
35
|
-
|
|
113
|
+
/**
|
|
114
|
+
* 插入相机数据,创建新的相机对象
|
|
115
|
+
* @param inCamera - 相机数据
|
|
116
|
+
* @param owner - 所属的相机组件
|
|
117
|
+
* @returns 新的相机对象
|
|
118
|
+
*/
|
|
119
|
+
insert(name: string, options: ModelCameraOptions, owner?: ModelCameraComponent): PCamera;
|
|
120
|
+
/**
|
|
121
|
+
* 插入相机对象
|
|
122
|
+
* @param camera - 相机对象
|
|
123
|
+
*/
|
|
36
124
|
insertCamera(camera: PCamera): void;
|
|
125
|
+
/**
|
|
126
|
+
* 根据对象或者索引,删除相机对象
|
|
127
|
+
* @param camera - 索引或相机对象
|
|
128
|
+
*/
|
|
37
129
|
remove(camera: PCamera | number): void;
|
|
130
|
+
/**
|
|
131
|
+
* 销毁相机管理对象
|
|
132
|
+
*/
|
|
38
133
|
dispose(): void;
|
|
39
|
-
|
|
134
|
+
/**
|
|
135
|
+
* 更新默认相机状态,并计算新的透视和相机矩阵
|
|
136
|
+
* @param fovy - 视角
|
|
137
|
+
* @param aspect - 纵横比
|
|
138
|
+
* @param nearPlane - 近裁剪平面
|
|
139
|
+
* @param farPlane - 远裁剪平面
|
|
140
|
+
* @param position - 位置
|
|
141
|
+
* @param rotation - 旋转
|
|
142
|
+
* @param clipMode - 剪裁模式
|
|
143
|
+
*/
|
|
144
|
+
updateDefaultCamera(fovy: number, aspect: number, nearPlane: number, farPlane: number, position: Vector3, rotation: Quaternion, clipMode: number): void;
|
|
145
|
+
/**
|
|
146
|
+
* 获取相机对象列表
|
|
147
|
+
* @returns
|
|
148
|
+
*/
|
|
40
149
|
getCameraList(): PCamera[];
|
|
150
|
+
/**
|
|
151
|
+
* 获取默认相机对象
|
|
152
|
+
* @returns
|
|
153
|
+
*/
|
|
41
154
|
getDefaultCamera(): PCamera;
|
|
155
|
+
/**
|
|
156
|
+
* 获取相机数目
|
|
157
|
+
* @returns
|
|
158
|
+
*/
|
|
42
159
|
getCameraCount(): number;
|
|
160
|
+
/**
|
|
161
|
+
* 获取激活的相机对象
|
|
162
|
+
* @returns
|
|
163
|
+
*/
|
|
43
164
|
getActiveCamera(): PCamera;
|
|
165
|
+
/**
|
|
166
|
+
* 获取画布纵横比
|
|
167
|
+
* @returns
|
|
168
|
+
*/
|
|
44
169
|
getAspect(): number;
|
|
45
170
|
}
|
|
46
171
|
export {};
|