@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.
- package/README.md +26 -0
- package/dist/gesture/controller.d.ts +95 -0
- package/dist/gesture/index.d.ts +38 -0
- package/dist/gesture/protocol.d.ts +143 -0
- package/dist/gltf/index.d.ts +3 -0
- package/dist/gltf/loader-ext.d.ts +53 -0
- package/dist/gltf/loader-helper.d.ts +18 -0
- package/dist/gltf/loader-impl.d.ts +84 -0
- package/dist/gltf/protocol.d.ts +90 -0
- package/dist/helper/index.d.ts +2 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +16137 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +9 -0
- package/dist/index.min.js.map +1 -0
- package/dist/index.mjs +16048 -0
- package/dist/index.mjs.map +1 -0
- package/dist/loader.d.ts +2 -0
- package/dist/loader.mjs +12040 -0
- package/dist/loader.mjs.map +1 -0
- package/dist/math/box3.d.ts +140 -0
- package/dist/math/euler.d.ts +139 -0
- package/dist/math/index.d.ts +11 -0
- package/dist/math/matrix2.d.ts +58 -0
- package/dist/math/matrix3.d.ts +113 -0
- package/dist/math/matrix4.d.ts +264 -0
- package/dist/math/quaternion.d.ts +214 -0
- package/dist/math/sphere.d.ts +81 -0
- package/dist/math/type.d.ts +29 -0
- package/dist/math/utilities/index.d.ts +9 -0
- package/dist/math/vector2.d.ts +394 -0
- package/dist/math/vector3.d.ts +164 -0
- package/dist/math/vector4.d.ts +132 -0
- package/dist/plugin/const.d.ts +2 -0
- package/dist/plugin/index.d.ts +6 -0
- package/dist/plugin/model-plugin.d.ts +48 -0
- package/dist/plugin/model-tree-item.d.ts +30 -0
- package/dist/plugin/model-tree-plugin.d.ts +13 -0
- package/dist/plugin/model-tree-vfx-item.d.ts +15 -0
- package/dist/plugin/model-vfx-item.d.ts +25 -0
- package/dist/runtime/anim-sampler.d.ts +13 -0
- package/dist/runtime/animation.d.ts +189 -0
- package/dist/runtime/cache.d.ts +34 -0
- package/dist/runtime/camera.d.ts +43 -0
- package/dist/runtime/common.d.ts +113 -0
- package/dist/runtime/index.d.ts +12 -0
- package/dist/runtime/light.d.ts +34 -0
- package/dist/runtime/material.d.ts +101 -0
- package/dist/runtime/mesh.d.ts +145 -0
- package/dist/runtime/object.d.ts +44 -0
- package/dist/runtime/scene.d.ts +131 -0
- package/dist/runtime/shader-libs/standard-shader-source.d.ts +3 -0
- package/dist/runtime/shader-libs/standard-shader.d.ts +6 -0
- package/dist/runtime/shader.d.ts +18 -0
- package/dist/runtime/shadow.d.ts +227 -0
- package/dist/runtime/skybox.d.ts +91 -0
- package/dist/utility/debug-helper.d.ts +7 -0
- package/dist/utility/hit-test-helper.d.ts +9 -0
- package/dist/utility/index.d.ts +6 -0
- package/dist/utility/plugin-helper.d.ts +197 -0
- package/dist/utility/ri-helper.d.ts +25 -0
- package/dist/utility/shader-helper.d.ts +13 -0
- package/dist/utility/ts-helper.d.ts +34 -0
- 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 };
|