@caspertech/node-metaverse 0.7.55 → 0.8.1
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/lib/classes/InventoryFolder.js +3 -1
- package/dist/lib/classes/InventoryFolder.js.map +1 -1
- package/dist/lib/classes/LLAnimation.d.ts +32 -0
- package/dist/lib/classes/LLAnimation.js +90 -0
- package/dist/lib/classes/LLAnimation.js.map +1 -0
- package/dist/lib/classes/LLAnimationJoint.d.ts +13 -0
- package/dist/lib/classes/LLAnimationJoint.js +56 -0
- package/dist/lib/classes/LLAnimationJoint.js.map +1 -0
- package/dist/lib/classes/LLAnimationJointKeyFrame.d.ts +5 -0
- package/dist/lib/classes/LLAnimationJointKeyFrame.js +7 -0
- package/dist/lib/classes/LLAnimationJointKeyFrame.js.map +1 -0
- package/dist/lib/classes/LLWearable.js +0 -1
- package/dist/lib/classes/LLWearable.js.map +1 -1
- package/dist/lib/classes/Matrix3.d.ts +28 -0
- package/dist/lib/classes/Matrix3.js +348 -0
- package/dist/lib/classes/Matrix3.js.map +1 -0
- package/dist/lib/classes/Matrix4.d.ts +34 -0
- package/dist/lib/classes/Matrix4.js +396 -0
- package/dist/lib/classes/Matrix4.js.map +1 -0
- package/dist/lib/classes/ObjectStoreFull.js +1 -0
- package/dist/lib/classes/ObjectStoreFull.js.map +1 -1
- package/dist/lib/classes/Utils.d.ts +3 -2
- package/dist/lib/classes/Utils.js +17 -6
- package/dist/lib/classes/Utils.js.map +1 -1
- package/dist/lib/classes/public/LLMesh.d.ts +36 -14
- package/dist/lib/classes/public/LLMesh.js +468 -204
- package/dist/lib/classes/public/LLMesh.js.map +1 -1
- package/dist/lib/classes/public/interfaces/LLSkin.d.ts +5 -5
- package/dist/lib/classes/public/interfaces/LLSubMesh.d.ts +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Matrix3 = void 0;
|
|
4
|
+
const Vector2_1 = require("./Vector2");
|
|
5
|
+
const Vector3_1 = require("./Vector3");
|
|
6
|
+
const Matrix4_1 = require("./Matrix4");
|
|
7
|
+
const Quaternion_1 = require("./Quaternion");
|
|
8
|
+
class Matrix3 {
|
|
9
|
+
constructor(values) {
|
|
10
|
+
this.values = new Float32Array(9);
|
|
11
|
+
if (values) {
|
|
12
|
+
this.init(values);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
at(index) {
|
|
16
|
+
return this.values[index];
|
|
17
|
+
}
|
|
18
|
+
init(values) {
|
|
19
|
+
if (values.length !== 9) {
|
|
20
|
+
throw new Error("Matrix3 requires exactly 9 values.");
|
|
21
|
+
}
|
|
22
|
+
let i = 0;
|
|
23
|
+
for (const value of values) {
|
|
24
|
+
this.values[i] = value;
|
|
25
|
+
i++;
|
|
26
|
+
}
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
reset() {
|
|
30
|
+
let i = 0;
|
|
31
|
+
for (const _ of this.values) {
|
|
32
|
+
this.values[i] = 0;
|
|
33
|
+
i++;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
copy(dest) {
|
|
37
|
+
if (!dest) {
|
|
38
|
+
dest = new Matrix3();
|
|
39
|
+
}
|
|
40
|
+
let i = 0;
|
|
41
|
+
for (const value of this.values) {
|
|
42
|
+
dest.values[i] = value;
|
|
43
|
+
i++;
|
|
44
|
+
}
|
|
45
|
+
return dest;
|
|
46
|
+
}
|
|
47
|
+
all() {
|
|
48
|
+
const data = [];
|
|
49
|
+
for (const value of this.values) {
|
|
50
|
+
data.push(value);
|
|
51
|
+
}
|
|
52
|
+
return data;
|
|
53
|
+
}
|
|
54
|
+
row(index) {
|
|
55
|
+
return [
|
|
56
|
+
this.values[index * 3],
|
|
57
|
+
this.values[index * 3 + 1],
|
|
58
|
+
this.values[index * 3 + 2]
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
col(index) {
|
|
62
|
+
return [
|
|
63
|
+
this.values[index],
|
|
64
|
+
this.values[index + 3],
|
|
65
|
+
this.values[index + 6]
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
equals(matrix, threshold = Matrix3.EPSILON) {
|
|
69
|
+
let i = 0;
|
|
70
|
+
for (const value of this.values) {
|
|
71
|
+
if (Math.abs(value - matrix.at(i)) > threshold) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
i++;
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
determinant() {
|
|
79
|
+
const a00 = this.values[0];
|
|
80
|
+
const a01 = this.values[1];
|
|
81
|
+
const a02 = this.values[2];
|
|
82
|
+
const a10 = this.values[3];
|
|
83
|
+
const a11 = this.values[4];
|
|
84
|
+
const a12 = this.values[5];
|
|
85
|
+
const a20 = this.values[6];
|
|
86
|
+
const a21 = this.values[7];
|
|
87
|
+
const a22 = this.values[8];
|
|
88
|
+
const det01 = a22 * a11 - a12 * a21;
|
|
89
|
+
const det11 = -a22 * a10 + a12 * a20;
|
|
90
|
+
const det21 = a21 * a10 - a11 * a20;
|
|
91
|
+
return a00 * det01 + a01 * det11 + a02 * det21;
|
|
92
|
+
}
|
|
93
|
+
setIdentity() {
|
|
94
|
+
this.reset();
|
|
95
|
+
this.values[0] = 1;
|
|
96
|
+
this.values[4] = 1;
|
|
97
|
+
this.values[8] = 1;
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
100
|
+
transpose() {
|
|
101
|
+
const transposedValues = [
|
|
102
|
+
this.values[0],
|
|
103
|
+
this.values[3],
|
|
104
|
+
this.values[6],
|
|
105
|
+
this.values[1],
|
|
106
|
+
this.values[4],
|
|
107
|
+
this.values[7],
|
|
108
|
+
this.values[2],
|
|
109
|
+
this.values[5],
|
|
110
|
+
this.values[8]
|
|
111
|
+
];
|
|
112
|
+
return new Matrix3(transposedValues);
|
|
113
|
+
}
|
|
114
|
+
inverse() {
|
|
115
|
+
const a00 = this.values[0];
|
|
116
|
+
const a01 = this.values[1];
|
|
117
|
+
const a02 = this.values[2];
|
|
118
|
+
const a10 = this.values[3];
|
|
119
|
+
const a11 = this.values[4];
|
|
120
|
+
const a12 = this.values[5];
|
|
121
|
+
const a20 = this.values[6];
|
|
122
|
+
const a21 = this.values[7];
|
|
123
|
+
const a22 = this.values[8];
|
|
124
|
+
const det01 = a22 * a11 - a12 * a21;
|
|
125
|
+
const det11 = -a22 * a10 + a12 * a20;
|
|
126
|
+
const det21 = a21 * a10 - a11 * a20;
|
|
127
|
+
let det = a00 * det01 + a01 * det11 + a02 * det21;
|
|
128
|
+
if (Math.abs(det) < Matrix3.EPSILON) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
det = 1.0 / det;
|
|
132
|
+
const invValues = [
|
|
133
|
+
det01 * det,
|
|
134
|
+
(-a22 * a01 + a02 * a21) * det,
|
|
135
|
+
(a12 * a01 - a02 * a11) * det,
|
|
136
|
+
det11 * det,
|
|
137
|
+
(a22 * a00 - a02 * a20) * det,
|
|
138
|
+
(-a12 * a00 + a02 * a10) * det,
|
|
139
|
+
det21 * det,
|
|
140
|
+
(-a21 * a00 + a01 * a20) * det,
|
|
141
|
+
(a11 * a00 - a01 * a10) * det
|
|
142
|
+
];
|
|
143
|
+
return new Matrix3(invValues);
|
|
144
|
+
}
|
|
145
|
+
multiply(matrix) {
|
|
146
|
+
const a00 = this.values[0];
|
|
147
|
+
const a01 = this.values[1];
|
|
148
|
+
const a02 = this.values[2];
|
|
149
|
+
const a10 = this.values[3];
|
|
150
|
+
const a11 = this.values[4];
|
|
151
|
+
const a12 = this.values[5];
|
|
152
|
+
const a20 = this.values[6];
|
|
153
|
+
const a21 = this.values[7];
|
|
154
|
+
const a22 = this.values[8];
|
|
155
|
+
const b00 = matrix.at(0);
|
|
156
|
+
const b01 = matrix.at(1);
|
|
157
|
+
const b02 = matrix.at(2);
|
|
158
|
+
const b10 = matrix.at(3);
|
|
159
|
+
const b11 = matrix.at(4);
|
|
160
|
+
const b12 = matrix.at(5);
|
|
161
|
+
const b20 = matrix.at(6);
|
|
162
|
+
const b21 = matrix.at(7);
|
|
163
|
+
const b22 = matrix.at(8);
|
|
164
|
+
const resultValues = [
|
|
165
|
+
b00 * a00 + b01 * a10 + b02 * a20,
|
|
166
|
+
b00 * a01 + b01 * a11 + b02 * a21,
|
|
167
|
+
b00 * a02 + b01 * a12 + b02 * a22,
|
|
168
|
+
b10 * a00 + b11 * a10 + b12 * a20,
|
|
169
|
+
b10 * a01 + b11 * a11 + b12 * a21,
|
|
170
|
+
b10 * a02 + b11 * a12 + b12 * a22,
|
|
171
|
+
b20 * a00 + b21 * a10 + b22 * a20,
|
|
172
|
+
b20 * a01 + b21 * a11 + b22 * a21,
|
|
173
|
+
b20 * a02 + b21 * a12 + b22 * a22
|
|
174
|
+
];
|
|
175
|
+
return new Matrix3(resultValues);
|
|
176
|
+
}
|
|
177
|
+
multiplyVector2(vector, result) {
|
|
178
|
+
const x = vector.x;
|
|
179
|
+
const y = vector.y;
|
|
180
|
+
if (result) {
|
|
181
|
+
result.x = x * this.values[0] + y * this.values[3] + this.values[6];
|
|
182
|
+
result.y = x * this.values[1] + y * this.values[4] + this.values[7];
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
return new Vector2_1.Vector2([
|
|
187
|
+
x * this.values[0] + y * this.values[3] + this.values[6],
|
|
188
|
+
x * this.values[1] + y * this.values[4] + this.values[7]
|
|
189
|
+
]);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
multiplyVector3(vector, result) {
|
|
193
|
+
const x = vector.x;
|
|
194
|
+
const y = vector.y;
|
|
195
|
+
const z = vector.z;
|
|
196
|
+
if (result) {
|
|
197
|
+
result.x = x * this.values[0] + y * this.values[3] + z * this.values[6];
|
|
198
|
+
result.y = x * this.values[1] + y * this.values[4] + z * this.values[7];
|
|
199
|
+
result.z = x * this.values[2] + y * this.values[5] + z * this.values[8];
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
return new Vector3_1.Vector3([
|
|
204
|
+
x * this.values[0] + y * this.values[3] + z * this.values[6],
|
|
205
|
+
x * this.values[1] + y * this.values[4] + z * this.values[7],
|
|
206
|
+
x * this.values[2] + y * this.values[5] + z * this.values[8]
|
|
207
|
+
]);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
toMatrix4(result) {
|
|
211
|
+
const mat4Values = [
|
|
212
|
+
this.values[0],
|
|
213
|
+
this.values[1],
|
|
214
|
+
this.values[2],
|
|
215
|
+
0,
|
|
216
|
+
this.values[3],
|
|
217
|
+
this.values[4],
|
|
218
|
+
this.values[5],
|
|
219
|
+
0,
|
|
220
|
+
this.values[6],
|
|
221
|
+
this.values[7],
|
|
222
|
+
this.values[8],
|
|
223
|
+
0,
|
|
224
|
+
0,
|
|
225
|
+
0,
|
|
226
|
+
0,
|
|
227
|
+
1
|
|
228
|
+
];
|
|
229
|
+
if (result) {
|
|
230
|
+
result.init(mat4Values);
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
return new Matrix4_1.Matrix4(mat4Values);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
toQuaternion() {
|
|
238
|
+
const m00 = this.values[0];
|
|
239
|
+
const m01 = this.values[1];
|
|
240
|
+
const m02 = this.values[2];
|
|
241
|
+
const m10 = this.values[3];
|
|
242
|
+
const m11 = this.values[4];
|
|
243
|
+
const m12 = this.values[5];
|
|
244
|
+
const m20 = this.values[6];
|
|
245
|
+
const m21 = this.values[7];
|
|
246
|
+
const m22 = this.values[8];
|
|
247
|
+
const fourXSquaredMinus1 = m00 - m11 - m22;
|
|
248
|
+
const fourYSquaredMinus1 = m11 - m00 - m22;
|
|
249
|
+
const fourZSquaredMinus1 = m22 - m00 - m11;
|
|
250
|
+
const fourWSquaredMinus1 = m00 + m11 + m22;
|
|
251
|
+
let biggestIndex = 0;
|
|
252
|
+
let fourBiggestSquaredMinus1 = fourWSquaredMinus1;
|
|
253
|
+
if (fourXSquaredMinus1 > fourBiggestSquaredMinus1) {
|
|
254
|
+
fourBiggestSquaredMinus1 = fourXSquaredMinus1;
|
|
255
|
+
biggestIndex = 1;
|
|
256
|
+
}
|
|
257
|
+
if (fourYSquaredMinus1 > fourBiggestSquaredMinus1) {
|
|
258
|
+
fourBiggestSquaredMinus1 = fourYSquaredMinus1;
|
|
259
|
+
biggestIndex = 2;
|
|
260
|
+
}
|
|
261
|
+
if (fourZSquaredMinus1 > fourBiggestSquaredMinus1) {
|
|
262
|
+
fourBiggestSquaredMinus1 = fourZSquaredMinus1;
|
|
263
|
+
biggestIndex = 3;
|
|
264
|
+
}
|
|
265
|
+
const biggestVal = Math.sqrt(fourBiggestSquaredMinus1 + 1) * 0.5;
|
|
266
|
+
const mult = 0.25 / biggestVal;
|
|
267
|
+
const quat = new Quaternion_1.Quaternion();
|
|
268
|
+
switch (biggestIndex) {
|
|
269
|
+
case 0:
|
|
270
|
+
quat.w = biggestVal;
|
|
271
|
+
quat.x = (m12 - m21) * mult;
|
|
272
|
+
quat.y = (m20 - m02) * mult;
|
|
273
|
+
quat.z = (m01 - m10) * mult;
|
|
274
|
+
break;
|
|
275
|
+
case 1:
|
|
276
|
+
quat.w = (m12 - m21) * mult;
|
|
277
|
+
quat.x = biggestVal;
|
|
278
|
+
quat.y = (m01 + m10) * mult;
|
|
279
|
+
quat.z = (m20 + m02) * mult;
|
|
280
|
+
break;
|
|
281
|
+
case 2:
|
|
282
|
+
quat.w = (m20 - m02) * mult;
|
|
283
|
+
quat.x = (m01 + m10) * mult;
|
|
284
|
+
quat.y = biggestVal;
|
|
285
|
+
quat.z = (m12 + m21) * mult;
|
|
286
|
+
break;
|
|
287
|
+
case 3:
|
|
288
|
+
quat.w = (m01 - m10) * mult;
|
|
289
|
+
quat.x = (m20 + m02) * mult;
|
|
290
|
+
quat.y = (m12 + m21) * mult;
|
|
291
|
+
quat.z = biggestVal;
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
return quat;
|
|
295
|
+
}
|
|
296
|
+
rotate(angle, axis) {
|
|
297
|
+
let x = axis.x;
|
|
298
|
+
let y = axis.y;
|
|
299
|
+
let z = axis.z;
|
|
300
|
+
let length = Math.sqrt(x * x + y * y + z * z);
|
|
301
|
+
if (length < Matrix3.EPSILON) {
|
|
302
|
+
return null;
|
|
303
|
+
}
|
|
304
|
+
if (length !== 1) {
|
|
305
|
+
length = 1 / length;
|
|
306
|
+
x *= length;
|
|
307
|
+
y *= length;
|
|
308
|
+
z *= length;
|
|
309
|
+
}
|
|
310
|
+
const s = Math.sin(angle);
|
|
311
|
+
const c = Math.cos(angle);
|
|
312
|
+
const t = 1.0 - c;
|
|
313
|
+
const b00 = x * x * t + c;
|
|
314
|
+
const b01 = y * x * t + z * s;
|
|
315
|
+
const b02 = z * x * t - y * s;
|
|
316
|
+
const b10 = x * y * t - z * s;
|
|
317
|
+
const b11 = y * y * t + c;
|
|
318
|
+
const b12 = z * y * t + x * s;
|
|
319
|
+
const b20 = x * z * t + y * s;
|
|
320
|
+
const b21 = y * z * t - x * s;
|
|
321
|
+
const b22 = z * z * t + c;
|
|
322
|
+
const a00 = this.values[0];
|
|
323
|
+
const a01 = this.values[1];
|
|
324
|
+
const a02 = this.values[2];
|
|
325
|
+
const a10 = this.values[3];
|
|
326
|
+
const a11 = this.values[4];
|
|
327
|
+
const a12 = this.values[5];
|
|
328
|
+
const a20 = this.values[6];
|
|
329
|
+
const a21 = this.values[7];
|
|
330
|
+
const a22 = this.values[8];
|
|
331
|
+
const resultValues = [
|
|
332
|
+
a00 * b00 + a10 * b01 + a20 * b02,
|
|
333
|
+
a01 * b00 + a11 * b01 + a21 * b02,
|
|
334
|
+
a02 * b00 + a12 * b01 + a22 * b02,
|
|
335
|
+
a00 * b10 + a10 * b11 + a20 * b12,
|
|
336
|
+
a01 * b10 + a11 * b11 + a21 * b12,
|
|
337
|
+
a02 * b10 + a12 * b11 + a22 * b12,
|
|
338
|
+
a00 * b20 + a10 * b21 + a20 * b22,
|
|
339
|
+
a01 * b20 + a11 * b21 + a21 * b22,
|
|
340
|
+
a02 * b20 + a12 * b21 + a22 * b22
|
|
341
|
+
];
|
|
342
|
+
return new Matrix3(resultValues);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
exports.Matrix3 = Matrix3;
|
|
346
|
+
Matrix3.identity = new Matrix3().setIdentity();
|
|
347
|
+
Matrix3.EPSILON = 1e-6;
|
|
348
|
+
//# sourceMappingURL=Matrix3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Matrix3.js","sourceRoot":"","sources":["../../../lib/classes/Matrix3.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Vector4 } from './Vector4';
|
|
2
|
+
import { Vector3 } from './Vector3';
|
|
3
|
+
import { Matrix3 } from './Matrix3';
|
|
4
|
+
export declare class Matrix4 {
|
|
5
|
+
static readonly identity: Matrix4;
|
|
6
|
+
private readonly values;
|
|
7
|
+
constructor(values?: number[] | null);
|
|
8
|
+
static frustum(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4;
|
|
9
|
+
static perspective(fov: number, aspect: number, near: number, far: number): Matrix4;
|
|
10
|
+
static orthographic(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4;
|
|
11
|
+
static lookAt(position: Vector3, target: Vector3, up?: Vector3): Matrix4;
|
|
12
|
+
static product(m1: Matrix4, m2: Matrix4, result?: Matrix4 | null): Matrix4;
|
|
13
|
+
at(index: number): number;
|
|
14
|
+
init(values: unknown[]): this;
|
|
15
|
+
reset(): void;
|
|
16
|
+
copy(dest?: Matrix4 | null): Matrix4;
|
|
17
|
+
all(): number[];
|
|
18
|
+
row(index: number): number[];
|
|
19
|
+
col(index: number): number[];
|
|
20
|
+
equals(matrix: Matrix4, threshold?: number): boolean;
|
|
21
|
+
determinant(): number;
|
|
22
|
+
setIdentity(): this;
|
|
23
|
+
transpose(): Matrix4;
|
|
24
|
+
inverse(): Matrix4 | null;
|
|
25
|
+
multiply(matrix: Matrix4): Matrix4;
|
|
26
|
+
multiplyVector3(vector: Vector3): Vector3;
|
|
27
|
+
multiplyVector4(vector: Vector4): Vector4;
|
|
28
|
+
toMatrix3(): Matrix3;
|
|
29
|
+
toInverseMatrix3(): Matrix3 | null;
|
|
30
|
+
translate(vector: Vector3): Matrix4;
|
|
31
|
+
scale(vector: Vector3): Matrix4;
|
|
32
|
+
rotate(angle: number, axis: Vector3): Matrix4 | null;
|
|
33
|
+
toArray(): number[];
|
|
34
|
+
}
|