@galacean/effects-plugin-model 0.0.1-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.
Files changed (64) hide show
  1. package/README.md +26 -0
  2. package/dist/gesture/controller.d.ts +95 -0
  3. package/dist/gesture/index.d.ts +38 -0
  4. package/dist/gesture/protocol.d.ts +143 -0
  5. package/dist/gltf/index.d.ts +3 -0
  6. package/dist/gltf/loader-ext.d.ts +53 -0
  7. package/dist/gltf/loader-helper.d.ts +18 -0
  8. package/dist/gltf/loader-impl.d.ts +84 -0
  9. package/dist/gltf/protocol.d.ts +90 -0
  10. package/dist/helper/index.d.ts +2 -0
  11. package/dist/index.d.ts +38 -0
  12. package/dist/index.js +16137 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/index.min.js +9 -0
  15. package/dist/index.min.js.map +1 -0
  16. package/dist/index.mjs +16048 -0
  17. package/dist/index.mjs.map +1 -0
  18. package/dist/loader.d.ts +2 -0
  19. package/dist/loader.mjs +12040 -0
  20. package/dist/loader.mjs.map +1 -0
  21. package/dist/math/box3.d.ts +140 -0
  22. package/dist/math/euler.d.ts +139 -0
  23. package/dist/math/index.d.ts +11 -0
  24. package/dist/math/matrix2.d.ts +58 -0
  25. package/dist/math/matrix3.d.ts +113 -0
  26. package/dist/math/matrix4.d.ts +264 -0
  27. package/dist/math/quaternion.d.ts +214 -0
  28. package/dist/math/sphere.d.ts +81 -0
  29. package/dist/math/type.d.ts +29 -0
  30. package/dist/math/utilities/index.d.ts +9 -0
  31. package/dist/math/vector2.d.ts +394 -0
  32. package/dist/math/vector3.d.ts +164 -0
  33. package/dist/math/vector4.d.ts +132 -0
  34. package/dist/plugin/const.d.ts +2 -0
  35. package/dist/plugin/index.d.ts +6 -0
  36. package/dist/plugin/model-plugin.d.ts +48 -0
  37. package/dist/plugin/model-tree-item.d.ts +30 -0
  38. package/dist/plugin/model-tree-plugin.d.ts +13 -0
  39. package/dist/plugin/model-tree-vfx-item.d.ts +15 -0
  40. package/dist/plugin/model-vfx-item.d.ts +25 -0
  41. package/dist/runtime/anim-sampler.d.ts +13 -0
  42. package/dist/runtime/animation.d.ts +189 -0
  43. package/dist/runtime/cache.d.ts +34 -0
  44. package/dist/runtime/camera.d.ts +43 -0
  45. package/dist/runtime/common.d.ts +113 -0
  46. package/dist/runtime/index.d.ts +12 -0
  47. package/dist/runtime/light.d.ts +34 -0
  48. package/dist/runtime/material.d.ts +101 -0
  49. package/dist/runtime/mesh.d.ts +145 -0
  50. package/dist/runtime/object.d.ts +44 -0
  51. package/dist/runtime/scene.d.ts +131 -0
  52. package/dist/runtime/shader-libs/standard-shader-source.d.ts +3 -0
  53. package/dist/runtime/shader-libs/standard-shader.d.ts +6 -0
  54. package/dist/runtime/shader.d.ts +18 -0
  55. package/dist/runtime/shadow.d.ts +227 -0
  56. package/dist/runtime/skybox.d.ts +91 -0
  57. package/dist/utility/debug-helper.d.ts +7 -0
  58. package/dist/utility/hit-test-helper.d.ts +9 -0
  59. package/dist/utility/index.d.ts +6 -0
  60. package/dist/utility/plugin-helper.d.ts +197 -0
  61. package/dist/utility/ri-helper.d.ts +25 -0
  62. package/dist/utility/shader-helper.d.ts +13 -0
  63. package/dist/utility/ts-helper.d.ts +34 -0
  64. package/package.json +56 -0
@@ -0,0 +1,394 @@
1
+ import type { Vec2DataType } from './type';
2
+ /**
3
+ * 表示二维向量/二维点,内部使用 Float32Array 保存数据。
4
+ */
5
+ declare class Vector2 {
6
+ private _data;
7
+ constructor(x?: number, y?: number);
8
+ get x(): number;
9
+ set x(value: number);
10
+ getX(): number;
11
+ setX(value: number): void;
12
+ get y(): number;
13
+ set y(value: number);
14
+ getY(): number;
15
+ setY(value: number): void;
16
+ set(x: number, y: number): void;
17
+ get xy(): [number, number];
18
+ set xy(data: [number, number]);
19
+ /**
20
+ *
21
+ * @param x
22
+ * @param y
23
+ * @returns
24
+ */
25
+ static fromElements(x: number, y: number): Vector2;
26
+ /**
27
+ *
28
+ * @param cartesian
29
+ * @returns
30
+ */
31
+ static clone(cartesian: Vector2 | Readonly<Vector2>): Vector2;
32
+ /**
33
+ * 将二维向量打包到数组对象中。
34
+ * @param value - 待打包的二维向量。
35
+ * @param array - 保存打包向量数据。
36
+ * @param startingIndex - 保存数据数组元素起始索引,默认在数组起始位置保存数据。
37
+ * @returns 返回打包好的二维数据。
38
+ */
39
+ static pack(value: Vector2 | Readonly<Vector2>, array: Vec2DataType, startingIndex?: number): Vec2DataType;
40
+ /**
41
+ * 从数组中解包二维向量
42
+ * @param array - 待解包的数组
43
+ * @param startingIndex - 从数组第几个位置开始解包二维向量
44
+ * @param result - 保存解包后的二维向量
45
+ * @returns 返回解包后的二维向量
46
+ */
47
+ static unpack(array: Vec2DataType, startingIndex: number, result: Vector2): Vector2;
48
+ /**
49
+ * 将二维向量数组打包到数组中
50
+ * @param array - 需要打包的二维向量数组
51
+ * @param result - 保存打包后的数组
52
+ * @returns
53
+ */
54
+ static packArray(array: Vector2[] | Readonly<Vector2>[], result: Vec2DataType): Vec2DataType;
55
+ /**
56
+ * 将数组解包成二维向量数组
57
+ * @param array
58
+ * @param result
59
+ * @returns
60
+ */
61
+ static unpackArray(array: Vec2DataType, result: Vector2[]): Vector2[];
62
+ /**
63
+ *
64
+ * @param array
65
+ * @returns
66
+ */
67
+ static fromArray(array: Vec2DataType): Vector2;
68
+ /**
69
+ * 返回二维向量 x 和 y 的最大值
70
+ * @param cartesian
71
+ * @returns
72
+ */
73
+ static maximumComponent(cartesian: Vector2 | Readonly<Vector2>): number;
74
+ /**
75
+ * 返回二维向量 x 和 y 的最小值
76
+ * @param cartesian
77
+ * @returns
78
+ */
79
+ static minimumComponent(cartesian: Vector2 | Readonly<Vector2>): number;
80
+ /**
81
+ * 返回一个新的二维向量,保存输入两个向量各分量的最小值
82
+ * @param first
83
+ * @param second
84
+ * @param result
85
+ * @returns
86
+ */
87
+ static minimumByComponent(first: Vector2 | Readonly<Vector2>, second: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
88
+ /**
89
+ * 返回一个新的二维向量,保存输入两个向量各分量的最大值
90
+ * @param first
91
+ * @param second
92
+ * @param result
93
+ * @returns
94
+ */
95
+ static maximumByComponent(first: Vector2 | Readonly<Vector2>, second: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
96
+ /**
97
+ * 返回二维向量模的平方
98
+ * @param cartesian
99
+ * @returns
100
+ */
101
+ static magnitudeSquared(cartesian: Vector2 | Readonly<Vector2>): number;
102
+ /**
103
+ * 返回二维向量的模
104
+ * @param cartesian
105
+ * @returns
106
+ */
107
+ static magnitude(cartesian: Vector2 | Readonly<Vector2>): number;
108
+ /**
109
+ * 返回两个二维向量的距离
110
+ * @param left
111
+ * @param right
112
+ * @returns
113
+ */
114
+ static distance(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>): number;
115
+ /**
116
+ * 返回两个二维向量距离的平方
117
+ * @param left
118
+ * @param right
119
+ * @returns
120
+ */
121
+ static distanceSquared(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>): number;
122
+ /**
123
+ * 单位化二维向量
124
+ * @param cartesian
125
+ * @param result
126
+ * @returns
127
+ */
128
+ static normalize(cartesian: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
129
+ /**
130
+ * 计算两个二维向量的点积
131
+ * @param left
132
+ * @param right
133
+ * @returns
134
+ */
135
+ static dot(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>): number;
136
+ /**
137
+ * 计算两个二维向量的叉积
138
+ * @param left
139
+ * @param right
140
+ * @returns
141
+ */
142
+ static cross(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>): number;
143
+ /**
144
+ * 两个二维向量对应元素相乘
145
+ * @param left
146
+ * @param right
147
+ * @param result
148
+ * @returns
149
+ */
150
+ static multiplyComponents(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
151
+ /**
152
+ * 两个二维向量对应元素相除(内部不会检查除数为 0 情况)
153
+ * @param left
154
+ * @param right
155
+ * @param result
156
+ * @returns
157
+ */
158
+ static divideComponents(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
159
+ /**
160
+ * 两个二维向量对应元素相加
161
+ * @param left
162
+ * @param right
163
+ * @param result
164
+ * @returns
165
+ */
166
+ static add(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
167
+ /**
168
+ * 两个二维向量对应元素相减
169
+ * @param left
170
+ * @param right
171
+ * @param result
172
+ * @returns
173
+ */
174
+ static subtract(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
175
+ /**
176
+ * 二维向量元素乘一个标量
177
+ * @param cartesian
178
+ * @param scalar
179
+ * @param result
180
+ * @returns
181
+ */
182
+ static multiplyByScalar(cartesian: Vector2 | Readonly<Vector2>, scalar: number, result: Vector2): Vector2;
183
+ /**
184
+ * 二维向量元素除一个标量
185
+ * @param cartesian
186
+ * @param scalar
187
+ * @param result
188
+ * @returns
189
+ */
190
+ static divideByScalar(cartesian: Vector2 | Readonly<Vector2>, scalar: number, result: Vector2): Vector2;
191
+ /**
192
+ * 二维向量各元素相反数
193
+ * @param cartesian
194
+ * @param result
195
+ * @returns
196
+ */
197
+ static negate(cartesian: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
198
+ /**
199
+ * 二维向量各元素取绝对值
200
+ * @param cartesian
201
+ * @param result
202
+ * @returns
203
+ */
204
+ static abs(cartesian: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
205
+ /**
206
+ * 计算两个向量的线性插值结果
207
+ * @param start
208
+ * @param end
209
+ * @param t
210
+ * @param result
211
+ * @returns
212
+ */
213
+ static lerp(start: Vector2 | Readonly<Vector2>, end: Vector2 | Readonly<Vector2>, t: number, result: Vector2): Vector2;
214
+ /**
215
+ * 计算两个二维向量的夹角角度
216
+ * @param left
217
+ * @param right
218
+ * @returns
219
+ */
220
+ static angleBetween(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>): number;
221
+ static mostOrthogonalAxis(cartesian: Vector2 | Readonly<Vector2>, result: Vector2): Vector2;
222
+ /**
223
+ * 比较两个二维向量对应元素是否相等
224
+ * @param left
225
+ * @param right
226
+ * @returns
227
+ */
228
+ static equals(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>): boolean;
229
+ /**
230
+ *
231
+ * @param cartesian
232
+ * @param array
233
+ * @param offset
234
+ * @returns
235
+ */
236
+ static equalsArray(cartesian: Vector2 | Readonly<Vector2>, array: Vec2DataType, offset?: number): boolean;
237
+ /**
238
+ * 二维向量对应元素是否相等
239
+ * @param left
240
+ * @param right
241
+ * @param relativeEpsilon
242
+ * @param absoluteEpsilon
243
+ * @returns
244
+ */
245
+ static equalsEpsilon(left: Vector2 | Readonly<Vector2>, right: Vector2 | Readonly<Vector2>, relativeEpsilon: number, absoluteEpsilon: number): boolean;
246
+ static max(a: Vector2, b: Vector2, result: Vector2): Vector2;
247
+ static min(a: Vector2, b: Vector2, result: Vector2): Vector2;
248
+ static mix(a: Vector2, b: Vector2, t: number, result: Vector2): Vector2;
249
+ static floor(a: Vector2, result: Vector2): Vector2;
250
+ static ceil(a: Vector2, result: Vector2): Vector2;
251
+ static round(a: Vector2, result: Vector2): Vector2;
252
+ /**
253
+ * 将向量导出 number[] 对象
254
+ * @returns
255
+ */
256
+ toArray(): number[];
257
+ /**
258
+ * 克隆出一个新的二维向量
259
+ * @returns
260
+ */
261
+ clone(): Vector2;
262
+ /**
263
+ * 将二维向量数据拷贝给 result
264
+ * @param result
265
+ * @returns
266
+ */
267
+ copyTo(result: Vector2): Vector2;
268
+ /**
269
+ * 与标量相加
270
+ * @param value
271
+ * @returns
272
+ */
273
+ addScalar(value: number): this;
274
+ /**
275
+ * 与二维向量相加
276
+ * @param vector
277
+ * @returns
278
+ */
279
+ addVector(vector: Vector2): Vector2;
280
+ /**
281
+ * 与标量相减
282
+ * @param value
283
+ * @returns
284
+ */
285
+ subScalar(value: number): this;
286
+ /**
287
+ * 与向量相减
288
+ * @param vector
289
+ * @returns
290
+ */
291
+ subVector(vector: Vector2): Vector2;
292
+ /**
293
+ * 与标量相乘
294
+ * @param value
295
+ * @returns
296
+ */
297
+ multiplyScalar(value: number): Vector2;
298
+ /**
299
+ * 与向量相乘
300
+ * @param vector
301
+ * @returns
302
+ */
303
+ multiplyVector(vector: Vector2): Vector2;
304
+ /**
305
+ * 与向量相除
306
+ * @param vector
307
+ * @returns
308
+ */
309
+ divideVector(vector: Vector2): Vector2;
310
+ /**
311
+ * 与标量相除
312
+ * @param value
313
+ * @returns
314
+ */
315
+ divideScalar(value: number): Vector2;
316
+ /**
317
+ * 分量中最小值
318
+ * @returns
319
+ */
320
+ min(): number;
321
+ /**
322
+ * 分量中最大值
323
+ * @returns
324
+ */
325
+ max(): number;
326
+ /**
327
+ * 分别使用 min 和 max 对应的分量对向量进行 clamp 运算
328
+ * @param min
329
+ * @param max
330
+ * @returns
331
+ */
332
+ clamp(min: Vector2, max: Vector2): Vector2;
333
+ /**
334
+ * 各分量分别进行 floor 运算
335
+ * @returns
336
+ */
337
+ floor(): Vector2;
338
+ /**
339
+ * 各分量分别进行 ceil 运算
340
+ * @returns
341
+ */
342
+ ceil(): Vector2;
343
+ /**
344
+ * 各分量分别进行 round 运算
345
+ * @returns
346
+ */
347
+ round(): Vector2;
348
+ /**
349
+ * 各分量分别执行相反数运算
350
+ * @returns
351
+ */
352
+ negate(): Vector2;
353
+ /**
354
+ * 与另一个向量点积运算
355
+ * @param v
356
+ * @returns
357
+ */
358
+ dot(v: Vector2): number;
359
+ /**
360
+ * 与另一个向量叉积运算
361
+ * @param v
362
+ * @returns
363
+ */
364
+ cross(v: Vector2): number;
365
+ /**
366
+ * 计算向量长度
367
+ * @returns
368
+ */
369
+ length(): number;
370
+ /**
371
+ * 计算向量长度平方
372
+ * @returns
373
+ */
374
+ lengthSquared(): number;
375
+ /**
376
+ * 单位化向量
377
+ * @returns
378
+ */
379
+ normalize(): Vector2;
380
+ /**
381
+ * 计算向量与量一个向量夹角角度,弧度
382
+ * @param v
383
+ * @returns
384
+ */
385
+ angleTo(v: Vector2): number;
386
+ distanceTo(v: Vector2): number;
387
+ distanceSquaredTo(v: Vector2): number;
388
+ getData(): Float32Array;
389
+ static ZERO: Readonly<Vector2>;
390
+ static ONE: Readonly<Vector2>;
391
+ static UNIT_X: Readonly<Vector2>;
392
+ static UNIT_Y: Readonly<Vector2>;
393
+ }
394
+ export { Vector2 };
@@ -0,0 +1,164 @@
1
+ import type { Quaternion } from './quaternion';
2
+ import type { Vec3DataType } from './type';
3
+ declare class Vector3 {
4
+ private _data;
5
+ constructor(x?: number, y?: number, z?: number);
6
+ get x(): number;
7
+ set x(value: number);
8
+ getX(): number;
9
+ setX(value: number): void;
10
+ get y(): number;
11
+ set y(value: number);
12
+ getY(): number;
13
+ setY(value: number): void;
14
+ get z(): number;
15
+ set z(value: number);
16
+ getZ(): number;
17
+ setZ(value: number): void;
18
+ set(x: number, y: number, z: number): void;
19
+ get xyz(): [number, number, number];
20
+ set xyz(data: [number, number, number]);
21
+ static fromElements(x: number, y: number, z: number): Vector3;
22
+ static clone(cartesian: Vector3 | Readonly<Vector3>): Vector3;
23
+ static pack(value: Vector3, array: Vec3DataType, startingIndex?: number): Vec3DataType;
24
+ static unpack(array: Vec3DataType, startingIndex: number, result: Vector3): Vector3;
25
+ static packArray(array: Vector3[], result: Vec3DataType): Vec3DataType;
26
+ static unpackArray(array: Vec3DataType, result: Vector3[]): Vector3[];
27
+ /**
28
+ *
29
+ * @param array
30
+ * @returns
31
+ */
32
+ static fromArray(array: Vec3DataType): Vector3;
33
+ static maximumComponent(cartesian: Vector3): number;
34
+ static minimumComponent(cartesian: Vector3): number;
35
+ static minComponentIndex(cartesian: Vector3): 0 | 1 | 2;
36
+ static tryZUpVector(lookatDir: Vector3, result: Vector3): Vector3;
37
+ static computeUpVector(lookatDir: Vector3, result: Vector3): Vector3;
38
+ static minimumByComponent(first: Vector3, second: Vector3, result: Vector3): Vector3;
39
+ static maximumByComponent(first: Vector3, second: Vector3, result: Vector3): Vector3;
40
+ static magnitudeSquared(cartesian: Vector3 | Readonly<Vector3>): number;
41
+ static magnitude(cartesian: Vector3 | Readonly<Vector3>): number;
42
+ static distance(left: Vector3, right: Vector3): number;
43
+ static distanceSquared(left: Vector3, right: Vector3): number;
44
+ static normalize(cartesian: Vector3 | Readonly<Vector3>, result: Vector3): Vector3;
45
+ static dot(left: Vector3, right: Vector3): number;
46
+ static multiplyComponents(left: Vector3, right: Vector3, result: Vector3): Vector3;
47
+ static divideComponents(left: Vector3, right: Vector3, result: Vector3): Vector3;
48
+ static add(left: Vector3, right: Vector3, result: Vector3): Vector3;
49
+ static subtract(left: Vector3, right: Vector3, result: Vector3): Vector3;
50
+ static multiplyByScalar(cartesian: Vector3, scalar: number, result: Vector3): Vector3;
51
+ static divideByScalar(cartesian: Vector3, scalar: number, result: Vector3): Vector3;
52
+ static negate(cartesian: Vector3, result: Vector3): Vector3;
53
+ static abs(cartesian: Vector3, result: Vector3): Vector3;
54
+ static clamp(target: Vector3, min: Vector3, max: Vector3): Vector3;
55
+ static lerp(start: Vector3, end: Vector3, t: number, result: Vector3): Vector3;
56
+ static angleBetween(left: Vector3, right: Vector3): number;
57
+ static mostOrthogonalAxis(cartesian: Vector3, result: Vector3): Vector3;
58
+ static projectVector(a: Vector3, b: Vector3, result: Vector3): Vector3;
59
+ static equals(left: Vector3, right: Vector3): boolean;
60
+ static equalsArray(cartesian: Vector3, array: Vec3DataType, offset?: number): boolean;
61
+ static equalsEpsilon(left: Vector3, right: Vector3, relativeEpsilon: number, absoluteEpsilon: number): boolean;
62
+ static cross(left: Vector3, right: Vector3, result?: Vector3): Vector3;
63
+ static midpoint(left: Vector3, right: Vector3, result: Vector3): Vector3;
64
+ /**
65
+ * 计算两个向量各分量最小值
66
+ * @param a
67
+ * @param b
68
+ * @returns
69
+ */
70
+ static min(a: Vector3, b: Vector3, result: Vector3): Vector3;
71
+ /**
72
+ * 计算两个向量各分量最大值
73
+ * @param a
74
+ * @param b
75
+ * @returns
76
+ */
77
+ static max(a: Vector3, b: Vector3, result: Vector3): Vector3;
78
+ /**
79
+ * 混合两个向量
80
+ * @param a
81
+ * @param b
82
+ * @param t
83
+ * @returns
84
+ */
85
+ static mix(a: Vector3, b: Vector3, t: number, result: Vector3): Vector3;
86
+ static floor(a: Vector3, result: Vector3): Vector3;
87
+ static ceil(a: Vector3, result: Vector3): Vector3;
88
+ static round(a: Vector3, result: Vector3): Vector3;
89
+ /**
90
+ * 将三维向量数据拷贝给 result
91
+ * @param result
92
+ */
93
+ copyTo(result: Vector3): Vector3;
94
+ /**
95
+ * 将三维向量数据从 source 拷贝回来
96
+ * @param source
97
+ */
98
+ copyFrom(source: Vector3): this;
99
+ /**
100
+ * 三维向量数据取 min
101
+ * @param vec
102
+ */
103
+ min(vec: Vector3): this;
104
+ /**
105
+ * 三维向量数据取 max
106
+ * @param vec
107
+ */
108
+ max(vec: Vector3): this;
109
+ /**
110
+ * 将三维向量数据从 clamp
111
+ * @param min
112
+ * @param max
113
+ */
114
+ clamp(min: Vector3, max: Vector3): this;
115
+ /**
116
+ * 将三维向量导出为 number[] 对象
117
+ */
118
+ toArray(): number[];
119
+ /**
120
+ * 使用向量数据克隆一个新的三维向量
121
+ * @returns
122
+ */
123
+ clone(): Vector3;
124
+ /**
125
+ * 单位化三维向量,会直接修改原向量数据
126
+ */
127
+ normalize(): Vector3;
128
+ /**
129
+ * 返回三维向量长度
130
+ * @returns
131
+ */
132
+ length(): number;
133
+ sum(): number;
134
+ /**
135
+ * 返回向量长度的平方
136
+ * @returns
137
+ */
138
+ lengthSquared(): number;
139
+ floor(): Vector3;
140
+ ceil(): Vector3;
141
+ round(): Vector3;
142
+ negate(): Vector3;
143
+ addScalar(value: number): this;
144
+ addVector(vector: Vector3): this;
145
+ subScalar(value: number): this;
146
+ subVector(vector: Vector3): Vector3;
147
+ multiplyScalar(value: number): Vector3;
148
+ multiplyVector(vector: Vector3): Vector3;
149
+ divideScalar(value: number): Vector3;
150
+ divideVector(vector: Vector3): Vector3;
151
+ dot(vector: Vector3): number;
152
+ cross(vector: Vector3): Vector3;
153
+ distanceTo(v: Vector3): number;
154
+ distanceSquaredTo(v: Vector3): number;
155
+ angleTo(v: Vector3): number;
156
+ getData(): Float32Array;
157
+ applyQuaternion(q: Quaternion, center?: Vector3): this;
158
+ static ZERO: Readonly<Vector3>;
159
+ static ONE: Readonly<Vector3>;
160
+ static UNIT_X: Readonly<Vector3>;
161
+ static UNIT_Y: Readonly<Vector3>;
162
+ static UNIT_Z: Readonly<Vector3>;
163
+ }
164
+ export { Vector3 };
@@ -0,0 +1,132 @@
1
+ import type { Vec4DataType } from './type';
2
+ /**
3
+ * 四维向量
4
+ */
5
+ declare class Vector4 {
6
+ private _data;
7
+ constructor(x?: number, y?: number, z?: number, w?: number);
8
+ get x(): number;
9
+ set x(value: number);
10
+ getX(): number;
11
+ setX(value: number): void;
12
+ get y(): number;
13
+ set y(value: number);
14
+ getY(): number;
15
+ setY(value: number): void;
16
+ get z(): number;
17
+ set z(value: number);
18
+ getZ(): number;
19
+ setZ(value: number): void;
20
+ get w(): number;
21
+ set w(value: number);
22
+ getW(): number;
23
+ setW(value: number): void;
24
+ set(x: number, y: number, z: number, w: number): void;
25
+ static fromElements(x: number, y: number, z: number, w: number, result?: Vector4): Vector4;
26
+ static clone(cartesian: Vector4 | Readonly<Vector4>): Vector4;
27
+ static pack(value: Vector4, array: Vec4DataType, startingIndex?: number): Vec4DataType;
28
+ static unpack(array: Vec4DataType, startingIndex: number, result: Vector4): Vector4;
29
+ static packArray(array: Vector4[], result: Vec4DataType): Vec4DataType;
30
+ static unpackArray(array: Vec4DataType, result: Vector4[]): Vector4[];
31
+ static fromArray(array: Vec4DataType): Vector4;
32
+ static maximumComponent(cartesian: Vector4): number;
33
+ static minimumComponent(cartesian: Vector4): number;
34
+ static minimumByComponent(first: Vector4, second: Vector4, result: Vector4): Vector4;
35
+ static maximumByComponent(first: Vector4, second: Vector4, result: Vector4): Vector4;
36
+ static magnitudeSquared(cartesian: Vector4): number;
37
+ static magnitude(cartesian: Vector4): number;
38
+ static distance(left: Vector4, right: Vector4): number;
39
+ static distanceSquared(left: Vector4, right: Vector4): number;
40
+ static normalize(cartesian: Vector4, result: Vector4): Vector4;
41
+ static dot(left: Vector4, right: Vector4): number;
42
+ static multiplyComponents(left: Vector4, right: Vector4, result: Vector4): Vector4;
43
+ static divideComponents(left: Vector4, right: Vector4, result: Vector4): Vector4;
44
+ static add(left: Vector4, right: Vector4, result: Vector4): Vector4;
45
+ static subtract(left: Vector4, right: Vector4, result: Vector4): Vector4;
46
+ static multiplyByScalar(cartesian: Vector4, scalar: number, result: Vector4): Vector4;
47
+ static divideByScalar(cartesian: Vector4, scalar: number, result: Vector4): Vector4;
48
+ static negate(cartesian: Vector4, result: Vector4): Vector4;
49
+ static abs(cartesian: Vector4, result: Vector4): Vector4;
50
+ static lerp(start: Vector4, end: Vector4, t: number, result: Vector4): Vector4;
51
+ static mostOrthogonalAxis(cartesian: Vector4, result: Vector4): Vector4;
52
+ static equals(left: Vector4, right: Vector4): boolean;
53
+ static equalsArray(cartesian: Vector4, array: Vec4DataType, offset?: number): boolean;
54
+ static equalsEpsilon(left: Vector4, right: Vector4, relativeEpsilon: number, absoluteEpsilon: number): boolean;
55
+ /**
56
+ * 将四维向量导出为 number[] 对象
57
+ * @returns
58
+ */
59
+ toArray(): number[];
60
+ /**
61
+ * 计算两个向量各分量最小值
62
+ * @param a
63
+ * @param b
64
+ * @returns
65
+ */
66
+ static min(a: Vector4, b: Vector4, result: Vector4): Vector4;
67
+ /**
68
+ * 计算两个向量各分量最大值
69
+ * @param a
70
+ * @param b
71
+ * @returns
72
+ */
73
+ static max(a: Vector4, b: Vector4, result: Vector4): Vector4;
74
+ /**
75
+ * 混合两个向量
76
+ * @param a
77
+ * @param b
78
+ * @param t
79
+ * @returns
80
+ */
81
+ static mix(a: Vector4, b: Vector4, t: number, result: Vector4): Vector4;
82
+ static floor(a: Vector4, result: Vector4): Vector4;
83
+ static ceil(a: Vector4, result: Vector4): Vector4;
84
+ static round(a: Vector4, result: Vector4): Vector4;
85
+ /**
86
+ * 将三维向量数据拷贝给 result
87
+ * @param result
88
+ */
89
+ copyTo(result: Vector4): Vector4;
90
+ /**
91
+ * 使用向量数据克隆一个新的四维向量
92
+ * @returns
93
+ */
94
+ clone(): Vector4;
95
+ /**
96
+ * 单位化三维向量,会直接修改原向量数据
97
+ */
98
+ normalize(): Vector4;
99
+ /**
100
+ * 返回三维向量长度
101
+ * @returns
102
+ */
103
+ length(): number;
104
+ /**
105
+ * 返回向量长度的平方
106
+ * @returns
107
+ */
108
+ lengthSquared(): number;
109
+ floor(): Vector4;
110
+ ceil(): Vector4;
111
+ round(): Vector4;
112
+ negate(): Vector4;
113
+ addScalar(value: number): this;
114
+ addVector(vector: Vector4): Vector4;
115
+ subScalar(value: number): this;
116
+ subVector(vector: Vector4): Vector4;
117
+ multiplyScalar(value: number): Vector4;
118
+ multiplyVector(vector: Vector4): Vector4;
119
+ divideScalar(value: number): Vector4;
120
+ divideVector(vector: Vector4): Vector4;
121
+ dot(vector: Vector4): number;
122
+ distanceTo(v: Vector4): number;
123
+ distanceSquaredTo(v: Vector4): number;
124
+ getData(): Float32Array;
125
+ static ZERO: Readonly<Vector4>;
126
+ static ONE: Readonly<Vector4>;
127
+ static UNIT_X: Readonly<Vector4>;
128
+ static UNIT_Y: Readonly<Vector4>;
129
+ static UNIT_Z: Readonly<Vector4>;
130
+ static UNIT_W: Readonly<Vector4>;
131
+ }
132
+ export { Vector4 };
@@ -0,0 +1,2 @@
1
+ import type { spec } from '@galacean/effects';
2
+ export declare const VFX_ITEM_TYPE_3D: spec.ItemType;
@@ -0,0 +1,6 @@
1
+ export * from './const';
2
+ export * from './model-plugin';
3
+ export * from './model-vfx-item';
4
+ export * from './model-tree-item';
5
+ export * from './model-tree-plugin';
6
+ export * from './model-tree-vfx-item';