poly-extrude 0.13.0 → 0.14.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/cylinder.d.ts +11 -0
- package/{src → dist}/cylinder.js +108 -111
- package/dist/cylinder.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/math/Curve.d.ts +41 -0
- package/dist/math/Curve.js +142 -0
- package/dist/math/Curve.js.map +1 -0
- package/dist/math/Interpolations.d.ts +8 -0
- package/dist/math/Interpolations.js +48 -0
- package/dist/math/Interpolations.js.map +1 -0
- package/dist/math/Matrix4.d.ts +8 -0
- package/dist/math/Matrix4.js +582 -0
- package/dist/math/Matrix4.js.map +1 -0
- package/dist/math/QuadraticBezierCurve3.d.ts +10 -0
- package/dist/math/QuadraticBezierCurve3.js +22 -0
- package/dist/math/QuadraticBezierCurve3.js.map +1 -0
- package/dist/math/Quaternion.d.ts +46 -0
- package/dist/math/Quaternion.js +415 -0
- package/dist/math/Quaternion.js.map +1 -0
- package/dist/math/Vector3.d.ts +42 -0
- package/dist/math/Vector3.js +403 -0
- package/dist/math/Vector3.js.map +1 -0
- package/dist/path/PathPoint.d.ts +15 -0
- package/dist/path/PathPoint.js +35 -0
- package/dist/path/PathPoint.js.map +1 -0
- package/dist/path/PathPointList.d.ts +27 -0
- package/dist/path/PathPointList.js +212 -0
- package/dist/path/PathPointList.js.map +1 -0
- package/dist/path.d.ts +11 -0
- package/{src → dist}/path.js +334 -360
- package/dist/path.js.map +1 -0
- package/dist/plane.d.ts +2 -0
- package/{src → dist}/plane.js +57 -58
- package/dist/plane.js.map +1 -0
- package/dist/poly-extrude.js +1286 -1581
- package/dist/poly-extrude.js.map +1 -1
- package/dist/poly-extrude.min.js +2 -2
- package/dist/poly-extrude.mjs +1286 -1581
- package/dist/poly-extrude.mjs.map +1 -0
- package/dist/polygon.d.ts +9 -0
- package/{src → dist}/polygon.js +163 -179
- package/dist/polygon.js.map +1 -0
- package/dist/polyline.d.ts +24 -0
- package/{src → dist}/polyline.js +420 -456
- package/dist/polyline.js.map +1 -0
- package/dist/tube.d.ts +12 -0
- package/{src → dist}/tube.js +124 -142
- package/dist/tube.js.map +1 -0
- package/dist/type.d.ts +9 -0
- package/dist/type.js +2 -0
- package/dist/type.js.map +1 -0
- package/dist/util.d.ts +20 -0
- package/dist/util.js +217 -0
- package/dist/util.js.map +1 -0
- package/package.json +53 -48
- package/readme.md +12 -2
- package/src/cylinder.ts +124 -0
- package/src/index.ts +7 -0
- package/src/path.ts +385 -0
- package/src/plane.ts +60 -0
- package/src/polygon.ts +189 -0
- package/src/polyline.ts +473 -0
- package/src/tube.ts +155 -0
- package/src/type.ts +9 -0
- package/src/{util.js → util.ts} +1 -1
- package/index.js +0 -7
@@ -0,0 +1,582 @@
|
|
1
|
+
// code copy from https://github.com/mrdoob/three.js/blob/dev/src/math/Matrix4.js
|
2
|
+
// import { WebGLCoordinateSystem, WebGPUCoordinateSystem } from '../constants.js';
|
3
|
+
// import { Vector3 } from './Vector3.js';
|
4
|
+
class Matrix4 {
|
5
|
+
constructor(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {
|
6
|
+
this.elements = [
|
7
|
+
1, 0, 0, 0,
|
8
|
+
0, 1, 0, 0,
|
9
|
+
0, 0, 1, 0,
|
10
|
+
0, 0, 0, 1
|
11
|
+
];
|
12
|
+
if (n11 !== undefined) {
|
13
|
+
this.set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44);
|
14
|
+
}
|
15
|
+
}
|
16
|
+
set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {
|
17
|
+
const te = this.elements;
|
18
|
+
te[0] = n11;
|
19
|
+
te[4] = n12;
|
20
|
+
te[8] = n13;
|
21
|
+
te[12] = n14;
|
22
|
+
te[1] = n21;
|
23
|
+
te[5] = n22;
|
24
|
+
te[9] = n23;
|
25
|
+
te[13] = n24;
|
26
|
+
te[2] = n31;
|
27
|
+
te[6] = n32;
|
28
|
+
te[10] = n33;
|
29
|
+
te[14] = n34;
|
30
|
+
te[3] = n41;
|
31
|
+
te[7] = n42;
|
32
|
+
te[11] = n43;
|
33
|
+
te[15] = n44;
|
34
|
+
return this;
|
35
|
+
}
|
36
|
+
// identity() {
|
37
|
+
// this.set(
|
38
|
+
// 1, 0, 0, 0,
|
39
|
+
// 0, 1, 0, 0,
|
40
|
+
// 0, 0, 1, 0,
|
41
|
+
// 0, 0, 0, 1
|
42
|
+
// );
|
43
|
+
// return this;
|
44
|
+
// }
|
45
|
+
// clone() {
|
46
|
+
// return new Matrix4().fromArray(this.elements);
|
47
|
+
// }
|
48
|
+
// copy(m) {
|
49
|
+
// const te = this.elements;
|
50
|
+
// const me = m.elements;
|
51
|
+
// te[0] = me[0]; te[1] = me[1]; te[2] = me[2]; te[3] = me[3];
|
52
|
+
// te[4] = me[4]; te[5] = me[5]; te[6] = me[6]; te[7] = me[7];
|
53
|
+
// te[8] = me[8]; te[9] = me[9]; te[10] = me[10]; te[11] = me[11];
|
54
|
+
// te[12] = me[12]; te[13] = me[13]; te[14] = me[14]; te[15] = me[15];
|
55
|
+
// return this;
|
56
|
+
// }
|
57
|
+
// copyPosition(m) {
|
58
|
+
// const te = this.elements, me = m.elements;
|
59
|
+
// te[12] = me[12];
|
60
|
+
// te[13] = me[13];
|
61
|
+
// te[14] = me[14];
|
62
|
+
// return this;
|
63
|
+
// }
|
64
|
+
// setFromMatrix3(m) {
|
65
|
+
// const me = m.elements;
|
66
|
+
// this.set(
|
67
|
+
// me[0], me[3], me[6], 0,
|
68
|
+
// me[1], me[4], me[7], 0,
|
69
|
+
// me[2], me[5], me[8], 0,
|
70
|
+
// 0, 0, 0, 1
|
71
|
+
// );
|
72
|
+
// return this;
|
73
|
+
// }
|
74
|
+
// extractBasis(xAxis, yAxis, zAxis) {
|
75
|
+
// xAxis.setFromMatrixColumn(this, 0);
|
76
|
+
// yAxis.setFromMatrixColumn(this, 1);
|
77
|
+
// zAxis.setFromMatrixColumn(this, 2);
|
78
|
+
// return this;
|
79
|
+
// }
|
80
|
+
// makeBasis(xAxis, yAxis, zAxis) {
|
81
|
+
// this.set(
|
82
|
+
// xAxis.x, yAxis.x, zAxis.x, 0,
|
83
|
+
// xAxis.y, yAxis.y, zAxis.y, 0,
|
84
|
+
// xAxis.z, yAxis.z, zAxis.z, 0,
|
85
|
+
// 0, 0, 0, 1
|
86
|
+
// );
|
87
|
+
// return this;
|
88
|
+
// }
|
89
|
+
// extractRotation(m) {
|
90
|
+
// // this method does not support reflection matrices
|
91
|
+
// const te = this.elements;
|
92
|
+
// const me = m.elements;
|
93
|
+
// const scaleX = 1 / _v1.setFromMatrixColumn(m, 0).length();
|
94
|
+
// const scaleY = 1 / _v1.setFromMatrixColumn(m, 1).length();
|
95
|
+
// const scaleZ = 1 / _v1.setFromMatrixColumn(m, 2).length();
|
96
|
+
// te[0] = me[0] * scaleX;
|
97
|
+
// te[1] = me[1] * scaleX;
|
98
|
+
// te[2] = me[2] * scaleX;
|
99
|
+
// te[3] = 0;
|
100
|
+
// te[4] = me[4] * scaleY;
|
101
|
+
// te[5] = me[5] * scaleY;
|
102
|
+
// te[6] = me[6] * scaleY;
|
103
|
+
// te[7] = 0;
|
104
|
+
// te[8] = me[8] * scaleZ;
|
105
|
+
// te[9] = me[9] * scaleZ;
|
106
|
+
// te[10] = me[10] * scaleZ;
|
107
|
+
// te[11] = 0;
|
108
|
+
// te[12] = 0;
|
109
|
+
// te[13] = 0;
|
110
|
+
// te[14] = 0;
|
111
|
+
// te[15] = 1;
|
112
|
+
// return this;
|
113
|
+
// }
|
114
|
+
// makeRotationFromEuler(euler) {
|
115
|
+
// const te = this.elements;
|
116
|
+
// const x = euler.x, y = euler.y, z = euler.z;
|
117
|
+
// const a = Math.cos(x), b = Math.sin(x);
|
118
|
+
// const c = Math.cos(y), d = Math.sin(y);
|
119
|
+
// const e = Math.cos(z), f = Math.sin(z);
|
120
|
+
// if (euler.order === 'XYZ') {
|
121
|
+
// const ae = a * e, af = a * f, be = b * e, bf = b * f;
|
122
|
+
// te[0] = c * e;
|
123
|
+
// te[4] = -c * f;
|
124
|
+
// te[8] = d;
|
125
|
+
// te[1] = af + be * d;
|
126
|
+
// te[5] = ae - bf * d;
|
127
|
+
// te[9] = -b * c;
|
128
|
+
// te[2] = bf - ae * d;
|
129
|
+
// te[6] = be + af * d;
|
130
|
+
// te[10] = a * c;
|
131
|
+
// } else if (euler.order === 'YXZ') {
|
132
|
+
// const ce = c * e, cf = c * f, de = d * e, df = d * f;
|
133
|
+
// te[0] = ce + df * b;
|
134
|
+
// te[4] = de * b - cf;
|
135
|
+
// te[8] = a * d;
|
136
|
+
// te[1] = a * f;
|
137
|
+
// te[5] = a * e;
|
138
|
+
// te[9] = -b;
|
139
|
+
// te[2] = cf * b - de;
|
140
|
+
// te[6] = df + ce * b;
|
141
|
+
// te[10] = a * c;
|
142
|
+
// } else if (euler.order === 'ZXY') {
|
143
|
+
// const ce = c * e, cf = c * f, de = d * e, df = d * f;
|
144
|
+
// te[0] = ce - df * b;
|
145
|
+
// te[4] = -a * f;
|
146
|
+
// te[8] = de + cf * b;
|
147
|
+
// te[1] = cf + de * b;
|
148
|
+
// te[5] = a * e;
|
149
|
+
// te[9] = df - ce * b;
|
150
|
+
// te[2] = -a * d;
|
151
|
+
// te[6] = b;
|
152
|
+
// te[10] = a * c;
|
153
|
+
// } else if (euler.order === 'ZYX') {
|
154
|
+
// const ae = a * e, af = a * f, be = b * e, bf = b * f;
|
155
|
+
// te[0] = c * e;
|
156
|
+
// te[4] = be * d - af;
|
157
|
+
// te[8] = ae * d + bf;
|
158
|
+
// te[1] = c * f;
|
159
|
+
// te[5] = bf * d + ae;
|
160
|
+
// te[9] = af * d - be;
|
161
|
+
// te[2] = -d;
|
162
|
+
// te[6] = b * c;
|
163
|
+
// te[10] = a * c;
|
164
|
+
// } else if (euler.order === 'YZX') {
|
165
|
+
// const ac = a * c, ad = a * d, bc = b * c, bd = b * d;
|
166
|
+
// te[0] = c * e;
|
167
|
+
// te[4] = bd - ac * f;
|
168
|
+
// te[8] = bc * f + ad;
|
169
|
+
// te[1] = f;
|
170
|
+
// te[5] = a * e;
|
171
|
+
// te[9] = -b * e;
|
172
|
+
// te[2] = -d * e;
|
173
|
+
// te[6] = ad * f + bc;
|
174
|
+
// te[10] = ac - bd * f;
|
175
|
+
// } else if (euler.order === 'XZY') {
|
176
|
+
// const ac = a * c, ad = a * d, bc = b * c, bd = b * d;
|
177
|
+
// te[0] = c * e;
|
178
|
+
// te[4] = -f;
|
179
|
+
// te[8] = d * e;
|
180
|
+
// te[1] = ac * f + bd;
|
181
|
+
// te[5] = a * e;
|
182
|
+
// te[9] = ad * f - bc;
|
183
|
+
// te[2] = bc * f - ad;
|
184
|
+
// te[6] = b * e;
|
185
|
+
// te[10] = bd * f + ac;
|
186
|
+
// }
|
187
|
+
// // bottom row
|
188
|
+
// te[3] = 0;
|
189
|
+
// te[7] = 0;
|
190
|
+
// te[11] = 0;
|
191
|
+
// // last column
|
192
|
+
// te[12] = 0;
|
193
|
+
// te[13] = 0;
|
194
|
+
// te[14] = 0;
|
195
|
+
// te[15] = 1;
|
196
|
+
// return this;
|
197
|
+
// }
|
198
|
+
// makeRotationFromQuaternion(q) {
|
199
|
+
// return this.compose(_zero, q, _one);
|
200
|
+
// }
|
201
|
+
// lookAt(eye, target, up) {
|
202
|
+
// const te = this.elements;
|
203
|
+
// _z.subVectors(eye, target);
|
204
|
+
// if (_z.lengthSq() === 0) {
|
205
|
+
// // eye and target are in the same position
|
206
|
+
// _z.z = 1;
|
207
|
+
// }
|
208
|
+
// _z.normalize();
|
209
|
+
// _x.crossVectors(up, _z);
|
210
|
+
// if (_x.lengthSq() === 0) {
|
211
|
+
// // up and z are parallel
|
212
|
+
// if (Math.abs(up.z) === 1) {
|
213
|
+
// _z.x += 0.0001;
|
214
|
+
// } else {
|
215
|
+
// _z.z += 0.0001;
|
216
|
+
// }
|
217
|
+
// _z.normalize();
|
218
|
+
// _x.crossVectors(up, _z);
|
219
|
+
// }
|
220
|
+
// _x.normalize();
|
221
|
+
// _y.crossVectors(_z, _x);
|
222
|
+
// te[0] = _x.x; te[4] = _y.x; te[8] = _z.x;
|
223
|
+
// te[1] = _x.y; te[5] = _y.y; te[9] = _z.y;
|
224
|
+
// te[2] = _x.z; te[6] = _y.z; te[10] = _z.z;
|
225
|
+
// return this;
|
226
|
+
// }
|
227
|
+
multiply(m) {
|
228
|
+
return this.multiplyMatrices(this, m);
|
229
|
+
}
|
230
|
+
// premultiply(m) {
|
231
|
+
// return this.multiplyMatrices(m, this);
|
232
|
+
// }
|
233
|
+
// multiplyMatrices(a, b) {
|
234
|
+
// const ae = a.elements;
|
235
|
+
// const be = b.elements;
|
236
|
+
// const te = this.elements;
|
237
|
+
// const a11 = ae[0], a12 = ae[4], a13 = ae[8], a14 = ae[12];
|
238
|
+
// const a21 = ae[1], a22 = ae[5], a23 = ae[9], a24 = ae[13];
|
239
|
+
// const a31 = ae[2], a32 = ae[6], a33 = ae[10], a34 = ae[14];
|
240
|
+
// const a41 = ae[3], a42 = ae[7], a43 = ae[11], a44 = ae[15];
|
241
|
+
// const b11 = be[0], b12 = be[4], b13 = be[8], b14 = be[12];
|
242
|
+
// const b21 = be[1], b22 = be[5], b23 = be[9], b24 = be[13];
|
243
|
+
// const b31 = be[2], b32 = be[6], b33 = be[10], b34 = be[14];
|
244
|
+
// const b41 = be[3], b42 = be[7], b43 = be[11], b44 = be[15];
|
245
|
+
// te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;
|
246
|
+
// te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;
|
247
|
+
// te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;
|
248
|
+
// te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;
|
249
|
+
// te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;
|
250
|
+
// te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;
|
251
|
+
// te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;
|
252
|
+
// te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;
|
253
|
+
// te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;
|
254
|
+
// te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;
|
255
|
+
// te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;
|
256
|
+
// te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;
|
257
|
+
// te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;
|
258
|
+
// te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;
|
259
|
+
// te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;
|
260
|
+
// te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;
|
261
|
+
// return this;
|
262
|
+
// }
|
263
|
+
// multiplyScalar(s) {
|
264
|
+
// const te = this.elements;
|
265
|
+
// te[0] *= s; te[4] *= s; te[8] *= s; te[12] *= s;
|
266
|
+
// te[1] *= s; te[5] *= s; te[9] *= s; te[13] *= s;
|
267
|
+
// te[2] *= s; te[6] *= s; te[10] *= s; te[14] *= s;
|
268
|
+
// te[3] *= s; te[7] *= s; te[11] *= s; te[15] *= s;
|
269
|
+
// return this;
|
270
|
+
// }
|
271
|
+
// determinant() {
|
272
|
+
// const te = this.elements;
|
273
|
+
// const n11 = te[0], n12 = te[4], n13 = te[8], n14 = te[12];
|
274
|
+
// const n21 = te[1], n22 = te[5], n23 = te[9], n24 = te[13];
|
275
|
+
// const n31 = te[2], n32 = te[6], n33 = te[10], n34 = te[14];
|
276
|
+
// const n41 = te[3], n42 = te[7], n43 = te[11], n44 = te[15];
|
277
|
+
// //TODO: make this more efficient
|
278
|
+
// //( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )
|
279
|
+
// return (
|
280
|
+
// n41 * (
|
281
|
+
// + n14 * n23 * n32
|
282
|
+
// - n13 * n24 * n32
|
283
|
+
// - n14 * n22 * n33
|
284
|
+
// + n12 * n24 * n33
|
285
|
+
// + n13 * n22 * n34
|
286
|
+
// - n12 * n23 * n34
|
287
|
+
// ) +
|
288
|
+
// n42 * (
|
289
|
+
// + n11 * n23 * n34
|
290
|
+
// - n11 * n24 * n33
|
291
|
+
// + n14 * n21 * n33
|
292
|
+
// - n13 * n21 * n34
|
293
|
+
// + n13 * n24 * n31
|
294
|
+
// - n14 * n23 * n31
|
295
|
+
// ) +
|
296
|
+
// n43 * (
|
297
|
+
// + n11 * n24 * n32
|
298
|
+
// - n11 * n22 * n34
|
299
|
+
// - n14 * n21 * n32
|
300
|
+
// + n12 * n21 * n34
|
301
|
+
// + n14 * n22 * n31
|
302
|
+
// - n12 * n24 * n31
|
303
|
+
// ) +
|
304
|
+
// n44 * (
|
305
|
+
// - n13 * n22 * n31
|
306
|
+
// - n11 * n23 * n32
|
307
|
+
// + n11 * n22 * n33
|
308
|
+
// + n13 * n21 * n32
|
309
|
+
// - n12 * n21 * n33
|
310
|
+
// + n12 * n23 * n31
|
311
|
+
// )
|
312
|
+
// );
|
313
|
+
// }
|
314
|
+
// transpose() {
|
315
|
+
// const te = this.elements;
|
316
|
+
// let tmp;
|
317
|
+
// tmp = te[1]; te[1] = te[4]; te[4] = tmp;
|
318
|
+
// tmp = te[2]; te[2] = te[8]; te[8] = tmp;
|
319
|
+
// tmp = te[6]; te[6] = te[9]; te[9] = tmp;
|
320
|
+
// tmp = te[3]; te[3] = te[12]; te[12] = tmp;
|
321
|
+
// tmp = te[7]; te[7] = te[13]; te[13] = tmp;
|
322
|
+
// tmp = te[11]; te[11] = te[14]; te[14] = tmp;
|
323
|
+
// return this;
|
324
|
+
// }
|
325
|
+
// setPosition(x, y, z) {
|
326
|
+
// const te = this.elements;
|
327
|
+
// if (x.isVector3) {
|
328
|
+
// te[12] = x.x;
|
329
|
+
// te[13] = x.y;
|
330
|
+
// te[14] = x.z;
|
331
|
+
// } else {
|
332
|
+
// te[12] = x;
|
333
|
+
// te[13] = y;
|
334
|
+
// te[14] = z;
|
335
|
+
// }
|
336
|
+
// return this;
|
337
|
+
// }
|
338
|
+
// invert() {
|
339
|
+
// // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm
|
340
|
+
// const te = this.elements,
|
341
|
+
// n11 = te[0], n21 = te[1], n31 = te[2], n41 = te[3],
|
342
|
+
// n12 = te[4], n22 = te[5], n32 = te[6], n42 = te[7],
|
343
|
+
// n13 = te[8], n23 = te[9], n33 = te[10], n43 = te[11],
|
344
|
+
// n14 = te[12], n24 = te[13], n34 = te[14], n44 = te[15],
|
345
|
+
// t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,
|
346
|
+
// t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,
|
347
|
+
// t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,
|
348
|
+
// t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;
|
349
|
+
// const det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;
|
350
|
+
// if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
351
|
+
// const detInv = 1 / det;
|
352
|
+
// te[0] = t11 * detInv;
|
353
|
+
// te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv;
|
354
|
+
// te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv;
|
355
|
+
// te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv;
|
356
|
+
// te[4] = t12 * detInv;
|
357
|
+
// te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv;
|
358
|
+
// te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv;
|
359
|
+
// te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv;
|
360
|
+
// te[8] = t13 * detInv;
|
361
|
+
// te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv;
|
362
|
+
// te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv;
|
363
|
+
// te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv;
|
364
|
+
// te[12] = t14 * detInv;
|
365
|
+
// te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv;
|
366
|
+
// te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv;
|
367
|
+
// te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv;
|
368
|
+
// return this;
|
369
|
+
// }
|
370
|
+
// scale(v) {
|
371
|
+
// const te = this.elements;
|
372
|
+
// const x = v.x, y = v.y, z = v.z;
|
373
|
+
// te[0] *= x; te[4] *= y; te[8] *= z;
|
374
|
+
// te[1] *= x; te[5] *= y; te[9] *= z;
|
375
|
+
// te[2] *= x; te[6] *= y; te[10] *= z;
|
376
|
+
// te[3] *= x; te[7] *= y; te[11] *= z;
|
377
|
+
// return this;
|
378
|
+
// }
|
379
|
+
// getMaxScaleOnAxis() {
|
380
|
+
// const te = this.elements;
|
381
|
+
// const scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];
|
382
|
+
// const scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];
|
383
|
+
// const scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];
|
384
|
+
// return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));
|
385
|
+
// }
|
386
|
+
// makeTranslation(x, y, z) {
|
387
|
+
// if (x.isVector3) {
|
388
|
+
// this.set(
|
389
|
+
// 1, 0, 0, x.x,
|
390
|
+
// 0, 1, 0, x.y,
|
391
|
+
// 0, 0, 1, x.z,
|
392
|
+
// 0, 0, 0, 1
|
393
|
+
// );
|
394
|
+
// } else {
|
395
|
+
// this.set(
|
396
|
+
// 1, 0, 0, x,
|
397
|
+
// 0, 1, 0, y,
|
398
|
+
// 0, 0, 1, z,
|
399
|
+
// 0, 0, 0, 1
|
400
|
+
// );
|
401
|
+
// }
|
402
|
+
// return this;
|
403
|
+
// }
|
404
|
+
// makeRotationX(theta) {
|
405
|
+
// const c = Math.cos(theta), s = Math.sin(theta);
|
406
|
+
// this.set(
|
407
|
+
// 1, 0, 0, 0,
|
408
|
+
// 0, c, -s, 0,
|
409
|
+
// 0, s, c, 0,
|
410
|
+
// 0, 0, 0, 1
|
411
|
+
// );
|
412
|
+
// return this;
|
413
|
+
// }
|
414
|
+
// makeRotationY(theta) {
|
415
|
+
// const c = Math.cos(theta), s = Math.sin(theta);
|
416
|
+
// this.set(
|
417
|
+
// c, 0, s, 0,
|
418
|
+
// 0, 1, 0, 0,
|
419
|
+
// -s, 0, c, 0,
|
420
|
+
// 0, 0, 0, 1
|
421
|
+
// );
|
422
|
+
// return this;
|
423
|
+
// }
|
424
|
+
// makeRotationZ(theta) {
|
425
|
+
// const c = Math.cos(theta), s = Math.sin(theta);
|
426
|
+
// this.set(
|
427
|
+
// c, -s, 0, 0,
|
428
|
+
// s, c, 0, 0,
|
429
|
+
// 0, 0, 1, 0,
|
430
|
+
// 0, 0, 0, 1
|
431
|
+
// );
|
432
|
+
// return this;
|
433
|
+
// }
|
434
|
+
makeRotationAxis(axis, angle) {
|
435
|
+
// Based on http://www.gamedev.net/reference/articles/article1199.asp
|
436
|
+
const c = Math.cos(angle);
|
437
|
+
const s = Math.sin(angle);
|
438
|
+
const t = 1 - c;
|
439
|
+
const x = axis.x, y = axis.y, z = axis.z;
|
440
|
+
const tx = t * x, ty = t * y;
|
441
|
+
this.set(tx * x + c, tx * y - s * z, tx * z + s * y, 0, tx * y + s * z, ty * y + c, ty * z - s * x, 0, tx * z - s * y, ty * z + s * x, t * z * z + c, 0, 0, 0, 0, 1);
|
442
|
+
return this;
|
443
|
+
}
|
444
|
+
// makeScale(x, y, z) {
|
445
|
+
// this.set(
|
446
|
+
// x, 0, 0, 0,
|
447
|
+
// 0, y, 0, 0,
|
448
|
+
// 0, 0, z, 0,
|
449
|
+
// 0, 0, 0, 1
|
450
|
+
// );
|
451
|
+
// return this;
|
452
|
+
// }
|
453
|
+
// makeShear(xy, xz, yx, yz, zx, zy) {
|
454
|
+
// this.set(
|
455
|
+
// 1, yx, zx, 0,
|
456
|
+
// xy, 1, zy, 0,
|
457
|
+
// xz, yz, 1, 0,
|
458
|
+
// 0, 0, 0, 1
|
459
|
+
// );
|
460
|
+
// return this;
|
461
|
+
// }
|
462
|
+
// compose(position, quaternion, scale) {
|
463
|
+
// const te = this.elements;
|
464
|
+
// const x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;
|
465
|
+
// const x2 = x + x, y2 = y + y, z2 = z + z;
|
466
|
+
// const xx = x * x2, xy = x * y2, xz = x * z2;
|
467
|
+
// const yy = y * y2, yz = y * z2, zz = z * z2;
|
468
|
+
// const wx = w * x2, wy = w * y2, wz = w * z2;
|
469
|
+
// const sx = scale.x, sy = scale.y, sz = scale.z;
|
470
|
+
// te[0] = (1 - (yy + zz)) * sx;
|
471
|
+
// te[1] = (xy + wz) * sx;
|
472
|
+
// te[2] = (xz - wy) * sx;
|
473
|
+
// te[3] = 0;
|
474
|
+
// te[4] = (xy - wz) * sy;
|
475
|
+
// te[5] = (1 - (xx + zz)) * sy;
|
476
|
+
// te[6] = (yz + wx) * sy;
|
477
|
+
// te[7] = 0;
|
478
|
+
// te[8] = (xz + wy) * sz;
|
479
|
+
// te[9] = (yz - wx) * sz;
|
480
|
+
// te[10] = (1 - (xx + yy)) * sz;
|
481
|
+
// te[11] = 0;
|
482
|
+
// te[12] = position.x;
|
483
|
+
// te[13] = position.y;
|
484
|
+
// te[14] = position.z;
|
485
|
+
// te[15] = 1;
|
486
|
+
// return this;
|
487
|
+
// }
|
488
|
+
// decompose(position, quaternion, scale) {
|
489
|
+
// const te = this.elements;
|
490
|
+
// let sx = _v1.set(te[0], te[1], te[2]).length();
|
491
|
+
// const sy = _v1.set(te[4], te[5], te[6]).length();
|
492
|
+
// const sz = _v1.set(te[8], te[9], te[10]).length();
|
493
|
+
// // if determine is negative, we need to invert one scale
|
494
|
+
// const det = this.determinant();
|
495
|
+
// if (det < 0) sx = -sx;
|
496
|
+
// position.x = te[12];
|
497
|
+
// position.y = te[13];
|
498
|
+
// position.z = te[14];
|
499
|
+
// // scale the rotation part
|
500
|
+
// _m1.copy(this);
|
501
|
+
// const invSX = 1 / sx;
|
502
|
+
// const invSY = 1 / sy;
|
503
|
+
// const invSZ = 1 / sz;
|
504
|
+
// _m1.elements[0] *= invSX;
|
505
|
+
// _m1.elements[1] *= invSX;
|
506
|
+
// _m1.elements[2] *= invSX;
|
507
|
+
// _m1.elements[4] *= invSY;
|
508
|
+
// _m1.elements[5] *= invSY;
|
509
|
+
// _m1.elements[6] *= invSY;
|
510
|
+
// _m1.elements[8] *= invSZ;
|
511
|
+
// _m1.elements[9] *= invSZ;
|
512
|
+
// _m1.elements[10] *= invSZ;
|
513
|
+
// quaternion.setFromRotationMatrix(_m1);
|
514
|
+
// scale.x = sx;
|
515
|
+
// scale.y = sy;
|
516
|
+
// scale.z = sz;
|
517
|
+
// return this;
|
518
|
+
// }
|
519
|
+
// makePerspective(left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem) {
|
520
|
+
// const te = this.elements;
|
521
|
+
// const x = 2 * near / (right - left);
|
522
|
+
// const y = 2 * near / (top - bottom);
|
523
|
+
// const a = (right + left) / (right - left);
|
524
|
+
// const b = (top + bottom) / (top - bottom);
|
525
|
+
// let c, d;
|
526
|
+
// if (coordinateSystem === WebGLCoordinateSystem) {
|
527
|
+
// c = - (far + near) / (far - near);
|
528
|
+
// d = (- 2 * far * near) / (far - near);
|
529
|
+
// } else if (coordinateSystem === WebGPUCoordinateSystem) {
|
530
|
+
// c = - far / (far - near);
|
531
|
+
// d = (- far * near) / (far - near);
|
532
|
+
// } else {
|
533
|
+
// throw new Error('THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem);
|
534
|
+
// }
|
535
|
+
// te[0] = x; te[4] = 0; te[8] = a; te[12] = 0;
|
536
|
+
// te[1] = 0; te[5] = y; te[9] = b; te[13] = 0;
|
537
|
+
// te[2] = 0; te[6] = 0; te[10] = c; te[14] = d;
|
538
|
+
// te[3] = 0; te[7] = 0; te[11] = - 1; te[15] = 0;
|
539
|
+
// return this;
|
540
|
+
// }
|
541
|
+
// makeOrthographic(left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem) {
|
542
|
+
// const te = this.elements;
|
543
|
+
// const w = 1.0 / (right - left);
|
544
|
+
// const h = 1.0 / (top - bottom);
|
545
|
+
// const p = 1.0 / (far - near);
|
546
|
+
// const x = (right + left) * w;
|
547
|
+
// const y = (top + bottom) * h;
|
548
|
+
// let z, zInv;
|
549
|
+
// if (coordinateSystem === WebGLCoordinateSystem) {
|
550
|
+
// z = (far + near) * p;
|
551
|
+
// zInv = - 2 * p;
|
552
|
+
// } else if (coordinateSystem === WebGPUCoordinateSystem) {
|
553
|
+
// z = near * p;
|
554
|
+
// zInv = - 1 * p;
|
555
|
+
// } else {
|
556
|
+
// throw new Error('THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem);
|
557
|
+
// }
|
558
|
+
// te[0] = 2 * w; te[4] = 0; te[8] = 0; te[12] = - x;
|
559
|
+
// te[1] = 0; te[5] = 2 * h; te[9] = 0; te[13] = - y;
|
560
|
+
// te[2] = 0; te[6] = 0; te[10] = zInv; te[14] = - z;
|
561
|
+
// te[3] = 0; te[7] = 0; te[11] = 0; te[15] = 1;
|
562
|
+
// return this;
|
563
|
+
// }
|
564
|
+
equals(matrix) {
|
565
|
+
const te = this.elements;
|
566
|
+
const me = matrix.elements;
|
567
|
+
for (let i = 0; i < 16; i++) {
|
568
|
+
if (te[i] !== me[i])
|
569
|
+
return false;
|
570
|
+
}
|
571
|
+
return true;
|
572
|
+
}
|
573
|
+
}
|
574
|
+
// const _v1 = new Vector3();
|
575
|
+
// const _m1 = new Matrix4();
|
576
|
+
// const _zero = new Vector3(0, 0, 0);
|
577
|
+
// const _one = new Vector3(1, 1, 1);
|
578
|
+
// const _x = new Vector3();
|
579
|
+
// const _y = new Vector3();
|
580
|
+
// const _z = new Vector3();
|
581
|
+
export { Matrix4 };
|
582
|
+
//# sourceMappingURL=Matrix4.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Matrix4.js","sourceRoot":"","sources":["../../src/math/Matrix4.js"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
export class QuadraticBezierCurve3 extends Curve {
|
2
|
+
constructor(v0?: Vector3, v1?: Vector3, v2?: Vector3);
|
3
|
+
isQuadraticBezierCurve3: boolean;
|
4
|
+
v0: Vector3;
|
5
|
+
v1: Vector3;
|
6
|
+
v2: Vector3;
|
7
|
+
getPoint(t: any, optionalTarget?: Vector3): Vector3;
|
8
|
+
}
|
9
|
+
import { Curve } from './Curve.js';
|
10
|
+
import { Vector3 } from './Vector3.js';
|
@@ -0,0 +1,22 @@
|
|
1
|
+
// code copy from https://github.com/mrdoob/three.js/blob/dev/src/extras/curves/QuadraticBezierCurve3.js
|
2
|
+
import { Curve } from './Curve.js';
|
3
|
+
import { QuadraticBezier } from './Interpolations.js';
|
4
|
+
import { Vector3 } from './Vector3.js';
|
5
|
+
class QuadraticBezierCurve3 extends Curve {
|
6
|
+
constructor(v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3()) {
|
7
|
+
super();
|
8
|
+
this.isQuadraticBezierCurve3 = true;
|
9
|
+
this.type = 'QuadraticBezierCurve3';
|
10
|
+
this.v0 = v0;
|
11
|
+
this.v1 = v1;
|
12
|
+
this.v2 = v2;
|
13
|
+
}
|
14
|
+
getPoint(t, optionalTarget = new Vector3()) {
|
15
|
+
const point = optionalTarget;
|
16
|
+
const v0 = this.v0, v1 = this.v1, v2 = this.v2;
|
17
|
+
point.set(QuadraticBezier(t, v0.x, v1.x, v2.x), QuadraticBezier(t, v0.y, v1.y, v2.y), QuadraticBezier(t, v0.z, v1.z, v2.z));
|
18
|
+
return point;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
export { QuadraticBezierCurve3 };
|
22
|
+
//# sourceMappingURL=QuadraticBezierCurve3.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"QuadraticBezierCurve3.js","sourceRoot":"","sources":["../../src/math/QuadraticBezierCurve3.js"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,qBAAsB,SAAQ,KAAK;IAErC,YAAY,EAAE,GAAG,IAAI,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,OAAO,EAAE;QAElE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QAEpC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QAEpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IAEjB,CAAC;IAED,QAAQ,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,OAAO,EAAE;QAEtC,MAAM,KAAK,GAAG,cAAc,CAAC;QAE7B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAE/C,KAAK,CAAC,GAAG,CACL,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EACpC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EACpC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACvC,CAAC;QAEF,OAAO,KAAK,CAAC;IAEjB,CAAC;CAsCJ;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|