three-stdlib 2.8.1 → 2.8.5
Sign up to get free protection for your applications and to get access to all the features.
- package/{BufferGeometryUtils-582025b8.js → BufferGeometryUtils-1a7a235c.js} +2 -1
- package/{BufferGeometryUtils-9eb5c2e7.js → BufferGeometryUtils-971dfde3.js} +0 -0
- package/animation/MMDAnimationHelper.d.ts +17 -17
- package/animation/MMDPhysics.d.ts +3 -3
- package/csm/CSM.d.ts +47 -22
- package/csm/CSMHelper.d.ts +20 -7
- package/effects/OutlineEffect.d.ts +4 -4
- package/effects/OutlineEffect.js +8 -2
- package/exporters/GLTFExporter.js +5 -10
- package/geometries/ConvexGeometry.d.ts +1 -1
- package/geometries/ParametricGeometries.d.ts +4 -2
- package/helpers/RectAreaLightHelper.d.ts +3 -3
- package/index.cjs.js +1 -1
- package/index.d.ts +9 -4
- package/index.js +9 -4
- package/libs/MotionControllers.cjs.js +1 -0
- package/libs/MotionControllers.js +403 -0
- package/loaders/AssimpLoader.js +39 -10
- package/loaders/ColladaLoader.js +22 -5
- package/loaders/EXRLoader.js +5 -1
- package/loaders/FBXLoader.js +10 -2
- package/loaders/GLTFLoader.cjs.js +1 -1
- package/loaders/GLTFLoader.d.ts +44 -20
- package/loaders/GLTFLoader.js +0 -2
- package/loaders/LDrawLoader.d.ts +6 -0
- package/loaders/MTLLoader.d.ts +18 -18
- package/loaders/RGBMLoader.d.ts +10 -10
- package/loaders/RGBMLoader.js +253 -178
- package/loaders/SVGLoader.d.ts +5 -3
- package/loaders/SVGLoader.js +10 -5
- package/loaders/lwo/IFFParser.js +4 -1
- package/math/OBB.d.ts +1 -1
- package/misc/GPUComputationRenderer.d.ts +8 -6
- package/misc/MD2CharacterComplex.js +9 -2
- package/misc/Volume.d.ts +2 -0
- package/modifiers/EdgeSplitModifier.cjs.js +1 -1
- package/modifiers/SimplifyModifier.cjs.js +1 -1
- package/nodes/inputs/ColorNode.d.ts +2 -2
- package/nodes/inputs/TextureNode.d.ts +3 -2
- package/nodes/materials/StandardNodeMaterial.d.ts +1 -1
- package/nodes/materials/nodes/StandardNode.d.ts +1 -0
- package/nodes/utils/ColorSpaceNode.d.ts +1 -1
- package/nodes/utils/JoinNode.d.ts +1 -0
- package/objects/MarchingCubes.d.ts +12 -4
- package/objects/Reflector.d.ts +4 -2
- package/objects/ReflectorForSSRPass.d.ts +6 -6
- package/objects/Refractor.d.ts +4 -2
- package/objects/Water.d.ts +4 -3
- package/objects/Water2.d.ts +12 -3
- package/package.json +2 -3
- package/postprocessing/ClearPass.d.ts +3 -3
- package/postprocessing/SAOPass.d.ts +3 -2
- package/postprocessing/SSAARenderPass.d.ts +3 -3
- package/postprocessing/SSAOPass.d.ts +3 -2
- package/postprocessing/SSRPass.d.ts +14 -17
- package/postprocessing/TAARenderPass.d.ts +2 -2
- package/renderers/CSS2DRenderer.d.ts +5 -1
- package/renderers/CSS3DRenderer.d.ts +5 -1
- package/renderers/webgpu/WebGPUTextures.js +62 -41
- package/shaders/SSRShader.d.ts +1 -2
- package/utils/BufferGeometryUtils.cjs.js +1 -1
- package/utils/BufferGeometryUtils.js +2 -1
- package/utils/LDrawUtils.cjs.js +1 -1
- package/utils/LDrawUtils.d.ts +5 -0
- package/utils/LDrawUtils.js +1 -1
- package/utils/RoughnessMipmapper.js +5 -1
- package/utils/SceneUtils.d.ts +10 -12
- package/utils/ShadowMapViewer.js +4 -1
- package/webxr/OculusHandModel.cjs.js +1 -0
- package/webxr/OculusHandModel.d.ts +19 -0
- package/webxr/OculusHandModel.js +72 -0
- package/webxr/OculusHandPointerModel.cjs.js +1 -0
- package/webxr/OculusHandPointerModel.d.ts +63 -0
- package/webxr/OculusHandPointerModel.js +248 -0
- package/webxr/Text2D.cjs.js +1 -0
- package/webxr/Text2D.d.ts +3 -0
- package/webxr/Text2D.js +32 -0
- package/webxr/VRButton.cjs.js +1 -1
- package/webxr/VRButton.js +17 -1
- package/webxr/XRControllerModelFactory.cjs.js +1 -1
- package/webxr/XRControllerModelFactory.js +65 -66
- package/webxr/XREstimatedLight.cjs.js +1 -1
- package/webxr/XREstimatedLight.js +1 -0
- package/webxr/XRHandMeshModel.cjs.js +1 -0
- package/webxr/XRHandMeshModel.d.ts +11 -0
- package/webxr/XRHandMeshModel.js +55 -0
- package/webxr/XRHandModelFactory.cjs.js +1 -1
- package/webxr/XRHandModelFactory.d.ts +3 -3
- package/webxr/XRHandModelFactory.js +47 -50
- package/webxr/XRHandPrimitiveModel.cjs.js +1 -1
- package/webxr/XRHandPrimitiveModel.d.ts +1 -1
- package/webxr/XRHandPrimitiveModel.js +31 -41
- package/csm/Frustum.d.ts +0 -16
- package/csm/Shader.d.ts +0 -6
- package/loaders/XLoader.d.ts +0 -19
- package/shaders/FresnelShader.d.ts +0 -13
- package/shaders/ParallaxShader.d.ts +0 -20
- package/utils/RoughnessMipmapper.d.ts +0 -7
- package/webxr/XRHandOculusMeshModel.cjs.js +0 -1
- package/webxr/XRHandOculusMeshModel.d.ts +0 -23
- package/webxr/XRHandOculusMeshModel.js +0 -89
package/loaders/RGBMLoader.js
CHANGED
@@ -108,7 +108,11 @@ UPNG.toRGBA8 = function (out) {
|
|
108
108
|
if (frm.blend == 0) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 0);else if (frm.blend == 1) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 1);
|
109
109
|
frms.push(img.buffer.slice(0));
|
110
110
|
|
111
|
-
if (frm.dispose == 0) ; else if (frm.dispose == 1)
|
111
|
+
if (frm.dispose == 0) ; else if (frm.dispose == 1) {
|
112
|
+
UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);
|
113
|
+
} else if (frm.dispose == 2) {
|
114
|
+
for (var j = 0; j < len; j++) img[j] = prev[j];
|
115
|
+
}
|
112
116
|
}
|
113
117
|
|
114
118
|
return frms;
|
@@ -129,43 +133,60 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) {
|
|
129
133
|
if (ctype == 6) {
|
130
134
|
// RGB + alpha
|
131
135
|
var qarea = area << 2;
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
136
|
+
|
137
|
+
if (depth == 8) {
|
138
|
+
for (var i = 0; i < qarea; i += 4) {
|
139
|
+
bf[i] = data[i];
|
140
|
+
bf[i + 1] = data[i + 1];
|
141
|
+
bf[i + 2] = data[i + 2];
|
142
|
+
bf[i + 3] = data[i + 3];
|
143
|
+
}
|
137
144
|
}
|
138
|
-
|
139
|
-
|
145
|
+
|
146
|
+
if (depth == 16) {
|
147
|
+
for (var i = 0; i < qarea; i++) {
|
148
|
+
bf[i] = data[i << 1];
|
149
|
+
}
|
140
150
|
}
|
141
151
|
} else if (ctype == 2) {
|
142
152
|
// RGB
|
143
153
|
var ts = out.tabs['tRNS'];
|
144
154
|
|
145
155
|
if (ts == null) {
|
146
|
-
if (depth == 8)
|
147
|
-
var
|
148
|
-
|
156
|
+
if (depth == 8) {
|
157
|
+
for (var i = 0; i < area; i++) {
|
158
|
+
var ti = i * 3;
|
159
|
+
bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
|
160
|
+
}
|
149
161
|
}
|
150
|
-
|
151
|
-
|
152
|
-
|
162
|
+
|
163
|
+
if (depth == 16) {
|
164
|
+
for (var i = 0; i < area; i++) {
|
165
|
+
var ti = i * 6;
|
166
|
+
bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
|
167
|
+
}
|
153
168
|
}
|
154
169
|
} else {
|
155
170
|
var tr = ts[0],
|
156
171
|
tg = ts[1],
|
157
172
|
tb = ts[2];
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
173
|
+
|
174
|
+
if (depth == 8) {
|
175
|
+
for (var i = 0; i < area; i++) {
|
176
|
+
var qi = i << 2,
|
177
|
+
ti = i * 3;
|
178
|
+
bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
|
179
|
+
if (data[ti] == tr && data[ti + 1] == tg && data[ti + 2] == tb) bf[qi + 3] = 0;
|
180
|
+
}
|
163
181
|
}
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
182
|
+
|
183
|
+
if (depth == 16) {
|
184
|
+
for (var i = 0; i < area; i++) {
|
185
|
+
var qi = i << 2,
|
186
|
+
ti = i * 6;
|
187
|
+
bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
|
188
|
+
if (rs(data, ti) == tr && rs(data, ti + 2) == tg && rs(data, ti + 4) == tb) bf[qi + 3] = 0;
|
189
|
+
}
|
169
190
|
}
|
170
191
|
}
|
171
192
|
} else if (ctype == 3) {
|
@@ -174,41 +195,61 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) {
|
|
174
195
|
ap = out.tabs['tRNS'],
|
175
196
|
tl = ap ? ap.length : 0; //console.log(p, ap);
|
176
197
|
|
177
|
-
if (depth == 1)
|
178
|
-
var
|
179
|
-
|
198
|
+
if (depth == 1) {
|
199
|
+
for (var y = 0; y < h; y++) {
|
200
|
+
var s0 = y * bpl,
|
201
|
+
t0 = y * w;
|
202
|
+
|
203
|
+
for (var i = 0; i < w; i++) {
|
204
|
+
var qi = t0 + i << 2,
|
205
|
+
j = data[s0 + (i >> 3)] >> 7 - ((i & 7) << 0) & 1,
|
206
|
+
cj = 3 * j;
|
207
|
+
bf[qi] = p[cj];
|
208
|
+
bf[qi + 1] = p[cj + 1];
|
209
|
+
bf[qi + 2] = p[cj + 2];
|
210
|
+
bf[qi + 3] = j < tl ? ap[j] : 255;
|
211
|
+
}
|
212
|
+
}
|
213
|
+
}
|
180
214
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
215
|
+
if (depth == 2) {
|
216
|
+
for (var y = 0; y < h; y++) {
|
217
|
+
var s0 = y * bpl,
|
218
|
+
t0 = y * w;
|
219
|
+
|
220
|
+
for (var i = 0; i < w; i++) {
|
221
|
+
var qi = t0 + i << 2,
|
222
|
+
j = data[s0 + (i >> 2)] >> 6 - ((i & 3) << 1) & 3,
|
223
|
+
cj = 3 * j;
|
224
|
+
bf[qi] = p[cj];
|
225
|
+
bf[qi + 1] = p[cj + 1];
|
226
|
+
bf[qi + 2] = p[cj + 2];
|
227
|
+
bf[qi + 3] = j < tl ? ap[j] : 255;
|
228
|
+
}
|
189
229
|
}
|
190
230
|
}
|
191
|
-
if (depth == 2) for (var y = 0; y < h; y++) {
|
192
|
-
var s0 = y * bpl,
|
193
|
-
t0 = y * w;
|
194
231
|
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
232
|
+
if (depth == 4) {
|
233
|
+
for (var y = 0; y < h; y++) {
|
234
|
+
var s0 = y * bpl,
|
235
|
+
t0 = y * w;
|
236
|
+
|
237
|
+
for (var i = 0; i < w; i++) {
|
238
|
+
var qi = t0 + i << 2,
|
239
|
+
j = data[s0 + (i >> 1)] >> 4 - ((i & 1) << 2) & 15,
|
240
|
+
cj = 3 * j;
|
241
|
+
bf[qi] = p[cj];
|
242
|
+
bf[qi + 1] = p[cj + 1];
|
243
|
+
bf[qi + 2] = p[cj + 2];
|
244
|
+
bf[qi + 3] = j < tl ? ap[j] : 255;
|
245
|
+
}
|
203
246
|
}
|
204
247
|
}
|
205
|
-
if (depth == 4) for (var y = 0; y < h; y++) {
|
206
|
-
var s0 = y * bpl,
|
207
|
-
t0 = y * w;
|
208
248
|
|
209
|
-
|
210
|
-
|
211
|
-
|
249
|
+
if (depth == 8) {
|
250
|
+
for (var i = 0; i < area; i++) {
|
251
|
+
var qi = i << 2,
|
252
|
+
j = data[i],
|
212
253
|
cj = 3 * j;
|
213
254
|
bf[qi] = p[cj];
|
214
255
|
bf[qi + 1] = p[cj + 1];
|
@@ -216,34 +257,30 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) {
|
|
216
257
|
bf[qi + 3] = j < tl ? ap[j] : 255;
|
217
258
|
}
|
218
259
|
}
|
219
|
-
if (depth == 8) for (var i = 0; i < area; i++) {
|
220
|
-
var qi = i << 2,
|
221
|
-
j = data[i],
|
222
|
-
cj = 3 * j;
|
223
|
-
bf[qi] = p[cj];
|
224
|
-
bf[qi + 1] = p[cj + 1];
|
225
|
-
bf[qi + 2] = p[cj + 2];
|
226
|
-
bf[qi + 3] = j < tl ? ap[j] : 255;
|
227
|
-
}
|
228
260
|
} else if (ctype == 4) {
|
229
261
|
// gray + alpha
|
230
|
-
if (depth == 8)
|
231
|
-
var
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
262
|
+
if (depth == 8) {
|
263
|
+
for (var i = 0; i < area; i++) {
|
264
|
+
var qi = i << 2,
|
265
|
+
di = i << 1,
|
266
|
+
gr = data[di];
|
267
|
+
bf[qi] = gr;
|
268
|
+
bf[qi + 1] = gr;
|
269
|
+
bf[qi + 2] = gr;
|
270
|
+
bf[qi + 3] = data[di + 1];
|
271
|
+
}
|
238
272
|
}
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
273
|
+
|
274
|
+
if (depth == 16) {
|
275
|
+
for (var i = 0; i < area; i++) {
|
276
|
+
var qi = i << 2,
|
277
|
+
di = i << 2,
|
278
|
+
gr = data[di];
|
279
|
+
bf[qi] = gr;
|
280
|
+
bf[qi + 1] = gr;
|
281
|
+
bf[qi + 2] = gr;
|
282
|
+
bf[qi + 3] = data[di + 2];
|
283
|
+
}
|
247
284
|
}
|
248
285
|
} else if (ctype == 0) {
|
249
286
|
// gray
|
@@ -252,26 +289,37 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) {
|
|
252
289
|
for (var y = 0; y < h; y++) {
|
253
290
|
var off = y * bpl,
|
254
291
|
to = y * w;
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
292
|
+
|
293
|
+
if (depth == 1) {
|
294
|
+
for (var x = 0; x < w; x++) {
|
295
|
+
var gr = 255 * (data[off + (x >>> 3)] >>> 7 - (x & 7) & 1),
|
296
|
+
al = gr == tr * 255 ? 0 : 255;
|
297
|
+
bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
|
298
|
+
}
|
299
|
+
} else if (depth == 2) {
|
300
|
+
for (var x = 0; x < w; x++) {
|
301
|
+
var gr = 85 * (data[off + (x >>> 2)] >>> 6 - ((x & 3) << 1) & 3),
|
302
|
+
al = gr == tr * 85 ? 0 : 255;
|
303
|
+
bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
|
304
|
+
}
|
305
|
+
} else if (depth == 4) {
|
306
|
+
for (var x = 0; x < w; x++) {
|
307
|
+
var gr = 17 * (data[off + (x >>> 1)] >>> 4 - ((x & 1) << 2) & 15),
|
308
|
+
al = gr == tr * 17 ? 0 : 255;
|
309
|
+
bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
|
310
|
+
}
|
311
|
+
} else if (depth == 8) {
|
312
|
+
for (var x = 0; x < w; x++) {
|
313
|
+
var gr = data[off + x],
|
314
|
+
al = gr == tr ? 0 : 255;
|
315
|
+
bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
|
316
|
+
}
|
317
|
+
} else if (depth == 16) {
|
318
|
+
for (var x = 0; x < w; x++) {
|
319
|
+
var gr = data[off + (x << 1)],
|
320
|
+
al = rs(data, off + (x << 1)) == tr ? 0 : 255;
|
321
|
+
bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
|
322
|
+
}
|
275
323
|
}
|
276
324
|
}
|
277
325
|
} //console.log(Date.now()-time);
|
@@ -359,11 +407,15 @@ UPNG.decode = function (buff) {
|
|
359
407
|
var keyw = bin.readASCII(data, offset, nz - offset);
|
360
408
|
var text,
|
361
409
|
tl = offset + len - nz - 1;
|
362
|
-
|
410
|
+
|
411
|
+
if (type == 'tEXt') {
|
412
|
+
text = bin.readASCII(data, nz + 1, tl);
|
413
|
+
} else {
|
363
414
|
var bfr = UPNG.decode._inflate(data.slice(nz + 2, nz + 2 + tl));
|
364
415
|
|
365
416
|
text = bin.readUTF8(bfr, 0, bfr.length);
|
366
417
|
}
|
418
|
+
|
367
419
|
out.tabs[type][keyw] = text;
|
368
420
|
} else if (type == 'iTXt') {
|
369
421
|
if (out.tabs[type] == null) out.tabs[type] = {};
|
@@ -382,11 +434,15 @@ UPNG.decode = function (buff) {
|
|
382
434
|
off = nz + 1;
|
383
435
|
var text,
|
384
436
|
tl = len - (off - offset);
|
385
|
-
|
437
|
+
|
438
|
+
if (cflag == 0) {
|
439
|
+
text = bin.readUTF8(data, off, tl);
|
440
|
+
} else {
|
386
441
|
var bfr = UPNG.decode._inflate(data.slice(off, off + tl));
|
387
442
|
|
388
443
|
text = bin.readUTF8(bfr, 0, bfr.length);
|
389
444
|
}
|
445
|
+
|
390
446
|
out.tabs[type][keyw] = text;
|
391
447
|
} else if (type == 'PLTE') {
|
392
448
|
out.tabs[type] = bin.readBytes(data, offset, len);
|
@@ -397,8 +453,18 @@ UPNG.decode = function (buff) {
|
|
397
453
|
for (var i = 0; i < pl; i++) out.tabs[type].push(rUs(data, offset + i * 2));
|
398
454
|
} else if (type == 'tRNS') {
|
399
455
|
if (out.ctype == 3) out.tabs[type] = bin.readBytes(data, offset, len);else if (out.ctype == 0) out.tabs[type] = rUs(data, offset);else if (out.ctype == 2) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)]; //else console.log("tRNS for unsupported color type",out.ctype, len);
|
400
|
-
} else if (type == 'gAMA')
|
401
|
-
|
456
|
+
} else if (type == 'gAMA') {
|
457
|
+
out.tabs[type] = bin.readUint(data, offset) / 100000;
|
458
|
+
} else if (type == 'sRGB') {
|
459
|
+
out.tabs[type] = data[offset];
|
460
|
+
} else if (type == 'bKGD') {
|
461
|
+
if (out.ctype == 0 || out.ctype == 4) {
|
462
|
+
out.tabs[type] = [rUs(data, offset)];
|
463
|
+
} else if (out.ctype == 2 || out.ctype == 6) {
|
464
|
+
out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)];
|
465
|
+
} else if (out.ctype == 3) {
|
466
|
+
out.tabs[type] = data[offset];
|
467
|
+
}
|
402
468
|
} else if (type == 'IEND') {
|
403
469
|
break;
|
404
470
|
} //else { console.log("unknown chunk type", type, len); out.tabs[type]=data.slice(offset,offset+len); }
|
@@ -673,18 +739,20 @@ UPNG.inflateRaw = function () {
|
|
673
739
|
n = H.H.m,
|
674
740
|
A = n.r;
|
675
741
|
|
676
|
-
for (var l = 0; l < V; l += 2)
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
742
|
+
for (var l = 0; l < V; l += 2) {
|
743
|
+
if (N[l + 1] != 0) {
|
744
|
+
var M = l >> 1,
|
745
|
+
I = N[l + 1],
|
746
|
+
e = M << 4 | I,
|
747
|
+
b = W - I,
|
748
|
+
Z = N[l] << b,
|
749
|
+
m = Z + (1 << b);
|
750
|
+
|
751
|
+
while (Z != m) {
|
752
|
+
var J = A[Z] >>> 15 - W;
|
753
|
+
R[J] = e;
|
754
|
+
Z++;
|
755
|
+
}
|
688
756
|
}
|
689
757
|
}
|
690
758
|
};
|
@@ -915,7 +983,10 @@ UPNG.decode._filterZero = function (data, out, off, w, h) {
|
|
915
983
|
di = i + y + 1;
|
916
984
|
type = data[di - 1];
|
917
985
|
x = 0;
|
918
|
-
|
986
|
+
|
987
|
+
if (type == 0) {
|
988
|
+
for (; x < bpl; x++) data[i + x] = data[di + x];
|
989
|
+
} else if (type == 1) {
|
919
990
|
for (; x < bpp; x++) data[i + x] = data[di + x];
|
920
991
|
|
921
992
|
for (; x < bpl; x++) data[i + x] = data[di + x] + data[i + x - bpp];
|
@@ -928,7 +999,9 @@ UPNG.decode._filterZero = function (data, out, off, w, h) {
|
|
928
999
|
} else {
|
929
1000
|
for (; x < bpp; x++) data[i + x] = data[di + x] + paeth(0, data[i + x - bpl], 0);
|
930
1001
|
|
931
|
-
for (; x < bpl; x++)
|
1002
|
+
for (; x < bpl; x++) {
|
1003
|
+
data[i + x] = data[di + x] + paeth(data[i + x - bpp], data[i + x - bpl], data[i + x - bpp - bpl]);
|
1004
|
+
}
|
932
1005
|
}
|
933
1006
|
}
|
934
1007
|
|
@@ -1026,71 +1099,73 @@ UPNG._copyTile = function (sb, sw, sh, tb, tw, th, xoff, yoff, mode) {
|
|
1026
1099
|
var si = 0,
|
1027
1100
|
ti = 0;
|
1028
1101
|
|
1029
|
-
for (var y = 0; y < h; y++)
|
1030
|
-
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1034
|
-
si = (-yoff + y) * sw - xoff + x << 2;
|
1035
|
-
ti = y * tw + x << 2;
|
1036
|
-
}
|
1037
|
-
|
1038
|
-
if (mode == 0) {
|
1039
|
-
tb[ti] = sb[si];
|
1040
|
-
tb[ti + 1] = sb[si + 1];
|
1041
|
-
tb[ti + 2] = sb[si + 2];
|
1042
|
-
tb[ti + 3] = sb[si + 3];
|
1043
|
-
} else if (mode == 1) {
|
1044
|
-
var fa = sb[si + 3] * (1 / 255),
|
1045
|
-
fr = sb[si] * fa,
|
1046
|
-
fg = sb[si + 1] * fa,
|
1047
|
-
fb = sb[si + 2] * fa;
|
1048
|
-
var ba = tb[ti + 3] * (1 / 255),
|
1049
|
-
br = tb[ti] * ba,
|
1050
|
-
bg = tb[ti + 1] * ba,
|
1051
|
-
bb = tb[ti + 2] * ba;
|
1052
|
-
var ifa = 1 - fa,
|
1053
|
-
oa = fa + ba * ifa,
|
1054
|
-
ioa = oa == 0 ? 0 : 1 / oa;
|
1055
|
-
tb[ti + 3] = 255 * oa;
|
1056
|
-
tb[ti + 0] = (fr + br * ifa) * ioa;
|
1057
|
-
tb[ti + 1] = (fg + bg * ifa) * ioa;
|
1058
|
-
tb[ti + 2] = (fb + bb * ifa) * ioa;
|
1059
|
-
} else if (mode == 2) {
|
1060
|
-
// copy only differences, otherwise zero
|
1061
|
-
var fa = sb[si + 3],
|
1062
|
-
fr = sb[si],
|
1063
|
-
fg = sb[si + 1],
|
1064
|
-
fb = sb[si + 2];
|
1065
|
-
var ba = tb[ti + 3],
|
1066
|
-
br = tb[ti],
|
1067
|
-
bg = tb[ti + 1],
|
1068
|
-
bb = tb[ti + 2];
|
1069
|
-
|
1070
|
-
if (fa == ba && fr == br && fg == bg && fb == bb) {
|
1071
|
-
tb[ti] = 0;
|
1072
|
-
tb[ti + 1] = 0;
|
1073
|
-
tb[ti + 2] = 0;
|
1074
|
-
tb[ti + 3] = 0;
|
1102
|
+
for (var y = 0; y < h; y++) {
|
1103
|
+
for (var x = 0; x < w; x++) {
|
1104
|
+
if (xoff >= 0 && yoff >= 0) {
|
1105
|
+
si = y * sw + x << 2;
|
1106
|
+
ti = (yoff + y) * tw + xoff + x << 2;
|
1075
1107
|
} else {
|
1076
|
-
|
1077
|
-
|
1078
|
-
|
1079
|
-
|
1108
|
+
si = (-yoff + y) * sw - xoff + x << 2;
|
1109
|
+
ti = y * tw + x << 2;
|
1110
|
+
}
|
1111
|
+
|
1112
|
+
if (mode == 0) {
|
1113
|
+
tb[ti] = sb[si];
|
1114
|
+
tb[ti + 1] = sb[si + 1];
|
1115
|
+
tb[ti + 2] = sb[si + 2];
|
1116
|
+
tb[ti + 3] = sb[si + 3];
|
1117
|
+
} else if (mode == 1) {
|
1118
|
+
var fa = sb[si + 3] * (1 / 255),
|
1119
|
+
fr = sb[si] * fa,
|
1120
|
+
fg = sb[si + 1] * fa,
|
1121
|
+
fb = sb[si + 2] * fa;
|
1122
|
+
var ba = tb[ti + 3] * (1 / 255),
|
1123
|
+
br = tb[ti] * ba,
|
1124
|
+
bg = tb[ti + 1] * ba,
|
1125
|
+
bb = tb[ti + 2] * ba;
|
1126
|
+
var ifa = 1 - fa,
|
1127
|
+
oa = fa + ba * ifa,
|
1128
|
+
ioa = oa == 0 ? 0 : 1 / oa;
|
1129
|
+
tb[ti + 3] = 255 * oa;
|
1130
|
+
tb[ti + 0] = (fr + br * ifa) * ioa;
|
1131
|
+
tb[ti + 1] = (fg + bg * ifa) * ioa;
|
1132
|
+
tb[ti + 2] = (fb + bb * ifa) * ioa;
|
1133
|
+
} else if (mode == 2) {
|
1134
|
+
// copy only differences, otherwise zero
|
1135
|
+
var fa = sb[si + 3],
|
1136
|
+
fr = sb[si],
|
1137
|
+
fg = sb[si + 1],
|
1138
|
+
fb = sb[si + 2];
|
1139
|
+
var ba = tb[ti + 3],
|
1140
|
+
br = tb[ti],
|
1141
|
+
bg = tb[ti + 1],
|
1142
|
+
bb = tb[ti + 2];
|
1143
|
+
|
1144
|
+
if (fa == ba && fr == br && fg == bg && fb == bb) {
|
1145
|
+
tb[ti] = 0;
|
1146
|
+
tb[ti + 1] = 0;
|
1147
|
+
tb[ti + 2] = 0;
|
1148
|
+
tb[ti + 3] = 0;
|
1149
|
+
} else {
|
1150
|
+
tb[ti] = fr;
|
1151
|
+
tb[ti + 1] = fg;
|
1152
|
+
tb[ti + 2] = fb;
|
1153
|
+
tb[ti + 3] = fa;
|
1154
|
+
}
|
1155
|
+
} else if (mode == 3) {
|
1156
|
+
// check if can be blended
|
1157
|
+
var fa = sb[si + 3],
|
1158
|
+
fr = sb[si],
|
1159
|
+
fg = sb[si + 1],
|
1160
|
+
fb = sb[si + 2];
|
1161
|
+
var ba = tb[ti + 3],
|
1162
|
+
br = tb[ti],
|
1163
|
+
bg = tb[ti + 1],
|
1164
|
+
bb = tb[ti + 2];
|
1165
|
+
if (fa == ba && fr == br && fg == bg && fb == bb) continue; //if(fa!=255 && ba!=0) return false;
|
1166
|
+
|
1167
|
+
if (fa < 220 && ba > 20) return false;
|
1080
1168
|
}
|
1081
|
-
} else if (mode == 3) {
|
1082
|
-
// check if can be blended
|
1083
|
-
var fa = sb[si + 3],
|
1084
|
-
fr = sb[si],
|
1085
|
-
fg = sb[si + 1],
|
1086
|
-
fb = sb[si + 2];
|
1087
|
-
var ba = tb[ti + 3],
|
1088
|
-
br = tb[ti],
|
1089
|
-
bg = tb[ti + 1],
|
1090
|
-
bb = tb[ti + 2];
|
1091
|
-
if (fa == ba && fr == br && fg == bg && fb == bb) continue; //if(fa!=255 && ba!=0) return false;
|
1092
|
-
|
1093
|
-
if (fa < 220 && ba > 20) return false;
|
1094
1169
|
}
|
1095
1170
|
}
|
1096
1171
|
|
package/loaders/SVGLoader.d.ts
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
import { Loader, LoadingManager, ShapePath, BufferGeometry, Vector3, Shape } from 'three';
|
2
2
|
|
3
3
|
export interface SVGResultPaths extends ShapePath {
|
4
|
-
userData?:
|
5
|
-
|
6
|
-
|
4
|
+
userData?:
|
5
|
+
| {
|
6
|
+
[key: string]: any;
|
7
|
+
}
|
8
|
+
| undefined;
|
7
9
|
}
|
8
10
|
|
9
11
|
export interface SVGResult {
|
package/loaders/SVGLoader.js
CHANGED
@@ -682,10 +682,13 @@ class SVGLoader extends Loader {
|
|
682
682
|
}
|
683
683
|
|
684
684
|
function addStyle(svgName, jsName, adjustFunction) {
|
685
|
-
if (adjustFunction === undefined)
|
686
|
-
|
687
|
-
|
688
|
-
|
685
|
+
if (adjustFunction === undefined) {
|
686
|
+
adjustFunction = function copy(v) {
|
687
|
+
if (v.startsWith('url')) console.warn('SVGLoader: url access in attributes is not implemented.');
|
688
|
+
return v;
|
689
|
+
};
|
690
|
+
}
|
691
|
+
|
689
692
|
if (node.hasAttribute(svgName)) style[jsName] = adjustFunction(node.getAttribute(svgName));
|
690
693
|
if (stylesheetStyles[svgName]) style[jsName] = adjustFunction(stylesheetStyles[svgName]);
|
691
694
|
if (node.style && node.style[svgName] !== '') style[jsName] = adjustFunction(node.style[svgName]);
|
@@ -1624,7 +1627,9 @@ class SVGLoader extends Loader {
|
|
1624
1627
|
if (isClosed) {
|
1625
1628
|
// Skip duplicated initial point
|
1626
1629
|
nextPoint = points[1];
|
1627
|
-
} else
|
1630
|
+
} else {
|
1631
|
+
nextPoint = undefined;
|
1632
|
+
}
|
1628
1633
|
} else {
|
1629
1634
|
nextPoint = points[iPoint + 1];
|
1630
1635
|
} // Normal of previous segment in tempV2_1
|
package/loaders/lwo/IFFParser.js
CHANGED
@@ -718,7 +718,10 @@ IFFParser.prototype = {
|
|
718
718
|
parsePolygonTagMapping(length) {
|
719
719
|
var finalOffset = this.reader.offset + length;
|
720
720
|
var type = this.reader.getIDTag();
|
721
|
-
|
721
|
+
|
722
|
+
if (type === 'SURF') {
|
723
|
+
this.parseMaterialIndices(finalOffset);
|
724
|
+
} else {
|
722
725
|
//PART, SMGP, COLR not supported
|
723
726
|
this.reader.skip(length - 4);
|
724
727
|
}
|
package/math/OBB.d.ts
CHANGED
@@ -14,7 +14,7 @@ export class OBB {
|
|
14
14
|
containsPoint(point: Vector3): boolean;
|
15
15
|
intersectsBox3(box3: Box3): boolean;
|
16
16
|
intersectsSphere(sphere: Sphere): boolean;
|
17
|
-
intersectsOBB(obb: OBB, epsilon
|
17
|
+
intersectsOBB(obb: OBB, epsilon?: number): boolean;
|
18
18
|
intersectsPlane(plane: Plane): boolean;
|
19
19
|
intersectRay(ray: Ray, result: Vector3): Vector3 | null;
|
20
20
|
intersectsRay(ray: Ray): boolean;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import {
|
2
2
|
WebGLRenderer,
|
3
|
-
|
3
|
+
WebGLRenderTarget,
|
4
4
|
Texture,
|
5
5
|
DataTexture,
|
6
6
|
Material,
|
@@ -8,6 +8,7 @@ import {
|
|
8
8
|
Wrapping,
|
9
9
|
TextureFilter,
|
10
10
|
TextureDataType,
|
11
|
+
IUniform,
|
11
12
|
} from 'three';
|
12
13
|
|
13
14
|
export interface Variable {
|
@@ -15,7 +16,7 @@ export interface Variable {
|
|
15
16
|
initialValueTexture: Texture;
|
16
17
|
material: ShaderMaterial;
|
17
18
|
dependencies: Variable[];
|
18
|
-
renderTargets:
|
19
|
+
renderTargets: WebGLRenderTarget[];
|
19
20
|
wrapS: number;
|
20
21
|
wrapT: number;
|
21
22
|
minFilter: number;
|
@@ -33,9 +34,10 @@ export class GPUComputationRenderer {
|
|
33
34
|
init(): string | null;
|
34
35
|
compute(): void;
|
35
36
|
|
36
|
-
getCurrentRenderTarget(variable: Variable):
|
37
|
-
getAlternateRenderTarget(variable: Variable):
|
37
|
+
getCurrentRenderTarget(variable: Variable): WebGLRenderTarget;
|
38
|
+
getAlternateRenderTarget(variable: Variable): WebGLRenderTarget;
|
38
39
|
addResolutionDefine(materialShader: ShaderMaterial): void;
|
40
|
+
createShaderMaterial(computeFragmentShader: string, uniforms?: { [uniform: string]: IUniform }): ShaderMaterial;
|
39
41
|
createRenderTarget(
|
40
42
|
sizeXTexture: number,
|
41
43
|
sizeYTexture: number,
|
@@ -43,8 +45,8 @@ export class GPUComputationRenderer {
|
|
43
45
|
wrapT: number,
|
44
46
|
minFilter: TextureFilter,
|
45
47
|
magFilter: TextureFilter,
|
46
|
-
):
|
48
|
+
): WebGLRenderTarget;
|
47
49
|
createTexture(): DataTexture;
|
48
50
|
renderTexture(input: Texture, output: Texture): void;
|
49
|
-
doRenderTarget(material: Material, output:
|
51
|
+
doRenderTarget(material: Material, output: WebGLRenderTarget): void;
|
50
52
|
}
|