three-stdlib 2.8.2 → 2.8.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. package/{BufferGeometryUtils-582025b8.js → BufferGeometryUtils-1a7a235c.js} +2 -1
  2. package/{BufferGeometryUtils-9eb5c2e7.js → BufferGeometryUtils-971dfde3.js} +0 -0
  3. package/animation/MMDAnimationHelper.d.ts +17 -17
  4. package/animation/MMDPhysics.d.ts +3 -3
  5. package/csm/CSM.d.ts +47 -22
  6. package/csm/CSMHelper.d.ts +20 -7
  7. package/effects/OutlineEffect.d.ts +4 -4
  8. package/effects/OutlineEffect.js +8 -2
  9. package/exporters/GLTFExporter.js +5 -10
  10. package/geometries/ConvexGeometry.d.ts +1 -1
  11. package/geometries/ParametricGeometries.d.ts +4 -2
  12. package/helpers/RectAreaLightHelper.d.ts +3 -3
  13. package/index.cjs.js +1 -1
  14. package/index.d.ts +9 -4
  15. package/index.js +9 -4
  16. package/libs/MotionControllers.cjs.js +1 -0
  17. package/libs/MotionControllers.js +403 -0
  18. package/loaders/AssimpLoader.js +39 -10
  19. package/loaders/ColladaLoader.js +22 -5
  20. package/loaders/EXRLoader.js +5 -1
  21. package/loaders/FBXLoader.js +10 -2
  22. package/loaders/GLTFLoader.cjs.js +1 -1
  23. package/loaders/GLTFLoader.d.ts +44 -20
  24. package/loaders/GLTFLoader.js +0 -1
  25. package/loaders/LDrawLoader.d.ts +6 -0
  26. package/loaders/MTLLoader.d.ts +18 -18
  27. package/loaders/RGBMLoader.d.ts +10 -10
  28. package/loaders/RGBMLoader.js +253 -178
  29. package/loaders/SVGLoader.d.ts +5 -3
  30. package/loaders/SVGLoader.js +10 -5
  31. package/loaders/lwo/IFFParser.js +4 -1
  32. package/math/OBB.d.ts +1 -1
  33. package/misc/GPUComputationRenderer.d.ts +8 -6
  34. package/misc/MD2CharacterComplex.js +9 -2
  35. package/misc/Volume.d.ts +2 -0
  36. package/modifiers/CurveModifier.cjs.js +1 -1
  37. package/modifiers/CurveModifier.js +1 -1
  38. package/modifiers/EdgeSplitModifier.cjs.js +1 -1
  39. package/modifiers/SimplifyModifier.cjs.js +1 -1
  40. package/nodes/inputs/ColorNode.d.ts +2 -2
  41. package/nodes/inputs/TextureNode.d.ts +3 -2
  42. package/nodes/materials/StandardNodeMaterial.d.ts +1 -1
  43. package/nodes/materials/nodes/StandardNode.d.ts +1 -0
  44. package/nodes/utils/ColorSpaceNode.d.ts +1 -1
  45. package/nodes/utils/JoinNode.d.ts +1 -0
  46. package/objects/MarchingCubes.d.ts +12 -4
  47. package/objects/Reflector.d.ts +4 -2
  48. package/objects/ReflectorForSSRPass.d.ts +6 -6
  49. package/objects/Refractor.d.ts +4 -2
  50. package/objects/Water.d.ts +4 -3
  51. package/objects/Water2.d.ts +12 -3
  52. package/package.json +2 -3
  53. package/postprocessing/ClearPass.d.ts +3 -3
  54. package/postprocessing/SAOPass.d.ts +3 -2
  55. package/postprocessing/SSAARenderPass.d.ts +3 -3
  56. package/postprocessing/SSAOPass.d.ts +3 -2
  57. package/postprocessing/SSRPass.d.ts +14 -17
  58. package/postprocessing/TAARenderPass.d.ts +2 -2
  59. package/renderers/CSS2DRenderer.d.ts +5 -1
  60. package/renderers/CSS3DRenderer.d.ts +5 -1
  61. package/renderers/webgpu/WebGPUTextures.js +62 -41
  62. package/shaders/SSRShader.d.ts +1 -2
  63. package/utils/BufferGeometryUtils.cjs.js +1 -1
  64. package/utils/BufferGeometryUtils.js +2 -1
  65. package/utils/LDrawUtils.cjs.js +1 -1
  66. package/utils/LDrawUtils.d.ts +5 -0
  67. package/utils/LDrawUtils.js +1 -1
  68. package/utils/RoughnessMipmapper.js +5 -1
  69. package/utils/SceneUtils.d.ts +10 -12
  70. package/utils/ShadowMapViewer.js +4 -1
  71. package/webxr/OculusHandModel.cjs.js +1 -0
  72. package/webxr/OculusHandModel.d.ts +19 -0
  73. package/webxr/OculusHandModel.js +72 -0
  74. package/webxr/OculusHandPointerModel.cjs.js +1 -0
  75. package/webxr/OculusHandPointerModel.d.ts +63 -0
  76. package/webxr/OculusHandPointerModel.js +248 -0
  77. package/webxr/Text2D.cjs.js +1 -0
  78. package/webxr/Text2D.d.ts +3 -0
  79. package/webxr/Text2D.js +32 -0
  80. package/webxr/VRButton.cjs.js +1 -1
  81. package/webxr/VRButton.js +17 -1
  82. package/webxr/XRControllerModelFactory.cjs.js +1 -1
  83. package/webxr/XRControllerModelFactory.js +65 -66
  84. package/webxr/XREstimatedLight.cjs.js +1 -1
  85. package/webxr/XREstimatedLight.js +1 -0
  86. package/webxr/XRHandMeshModel.cjs.js +1 -0
  87. package/webxr/XRHandMeshModel.d.ts +11 -0
  88. package/webxr/XRHandMeshModel.js +55 -0
  89. package/webxr/XRHandModelFactory.cjs.js +1 -1
  90. package/webxr/XRHandModelFactory.d.ts +3 -3
  91. package/webxr/XRHandModelFactory.js +47 -50
  92. package/webxr/XRHandPrimitiveModel.cjs.js +1 -1
  93. package/webxr/XRHandPrimitiveModel.d.ts +1 -1
  94. package/webxr/XRHandPrimitiveModel.js +31 -41
  95. package/csm/Frustum.d.ts +0 -16
  96. package/csm/Shader.d.ts +0 -6
  97. package/loaders/XLoader.d.ts +0 -19
  98. package/shaders/FresnelShader.d.ts +0 -13
  99. package/shaders/ParallaxShader.d.ts +0 -20
  100. package/utils/RoughnessMipmapper.d.ts +0 -7
  101. package/webxr/XRHandOculusMeshModel.cjs.js +0 -1
  102. package/webxr/XRHandOculusMeshModel.d.ts +0 -23
  103. package/webxr/XRHandOculusMeshModel.js +0 -89
@@ -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) UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);else if (frm.dispose == 2) for (var j = 0; j < len; j++) img[j] = prev[j];
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
- if (depth == 8) for (var i = 0; i < qarea; i += 4) {
133
- bf[i] = data[i];
134
- bf[i + 1] = data[i + 1];
135
- bf[i + 2] = data[i + 2];
136
- bf[i + 3] = data[i + 3];
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
- if (depth == 16) for (var i = 0; i < qarea; i++) {
139
- bf[i] = data[i << 1];
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) for (var i = 0; i < area; i++) {
147
- var ti = i * 3;
148
- bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
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
- if (depth == 16) for (var i = 0; i < area; i++) {
151
- var ti = i * 6;
152
- bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
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
- if (depth == 8) for (var i = 0; i < area; i++) {
159
- var qi = i << 2,
160
- ti = i * 3;
161
- bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
162
- if (data[ti] == tr && data[ti + 1] == tg && data[ti + 2] == tb) bf[qi + 3] = 0;
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
- if (depth == 16) for (var i = 0; i < area; i++) {
165
- var qi = i << 2,
166
- ti = i * 6;
167
- bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
168
- if (rs(data, ti) == tr && rs(data, ti + 2) == tg && rs(data, ti + 4) == tb) bf[qi + 3] = 0;
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) for (var y = 0; y < h; y++) {
178
- var s0 = y * bpl,
179
- t0 = y * w;
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
- for (var i = 0; i < w; i++) {
182
- var qi = t0 + i << 2,
183
- j = data[s0 + (i >> 3)] >> 7 - ((i & 7) << 0) & 1,
184
- cj = 3 * j;
185
- bf[qi] = p[cj];
186
- bf[qi + 1] = p[cj + 1];
187
- bf[qi + 2] = p[cj + 2];
188
- bf[qi + 3] = j < tl ? ap[j] : 255;
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
- for (var i = 0; i < w; i++) {
196
- var qi = t0 + i << 2,
197
- j = data[s0 + (i >> 2)] >> 6 - ((i & 3) << 1) & 3,
198
- cj = 3 * j;
199
- bf[qi] = p[cj];
200
- bf[qi + 1] = p[cj + 1];
201
- bf[qi + 2] = p[cj + 2];
202
- bf[qi + 3] = j < tl ? ap[j] : 255;
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
- for (var i = 0; i < w; i++) {
210
- var qi = t0 + i << 2,
211
- j = data[s0 + (i >> 1)] >> 4 - ((i & 1) << 2) & 15,
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) for (var i = 0; i < area; i++) {
231
- var qi = i << 2,
232
- di = i << 1,
233
- gr = data[di];
234
- bf[qi] = gr;
235
- bf[qi + 1] = gr;
236
- bf[qi + 2] = gr;
237
- bf[qi + 3] = data[di + 1];
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
- if (depth == 16) for (var i = 0; i < area; i++) {
240
- var qi = i << 2,
241
- di = i << 2,
242
- gr = data[di];
243
- bf[qi] = gr;
244
- bf[qi + 1] = gr;
245
- bf[qi + 2] = gr;
246
- bf[qi + 3] = data[di + 2];
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
- if (depth == 1) for (var x = 0; x < w; x++) {
256
- var gr = 255 * (data[off + (x >>> 3)] >>> 7 - (x & 7) & 1),
257
- al = gr == tr * 255 ? 0 : 255;
258
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
259
- } else if (depth == 2) for (var x = 0; x < w; x++) {
260
- var gr = 85 * (data[off + (x >>> 2)] >>> 6 - ((x & 3) << 1) & 3),
261
- al = gr == tr * 85 ? 0 : 255;
262
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
263
- } else if (depth == 4) for (var x = 0; x < w; x++) {
264
- var gr = 17 * (data[off + (x >>> 1)] >>> 4 - ((x & 1) << 2) & 15),
265
- al = gr == tr * 17 ? 0 : 255;
266
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
267
- } else if (depth == 8) for (var x = 0; x < w; x++) {
268
- var gr = data[off + x],
269
- al = gr == tr ? 0 : 255;
270
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
271
- } else if (depth == 16) for (var x = 0; x < w; x++) {
272
- var gr = data[off + (x << 1)],
273
- al = rs(data, off + (x << 1)) == tr ? 0 : 255;
274
- bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
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
- if (type == 'tEXt') text = bin.readASCII(data, nz + 1, tl);else {
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
- if (cflag == 0) text = bin.readUTF8(data, off, tl);else {
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') out.tabs[type] = bin.readUint(data, offset) / 100000;else if (type == 'sRGB') out.tabs[type] = data[offset];else if (type == 'bKGD') {
401
- if (out.ctype == 0 || out.ctype == 4) out.tabs[type] = [rUs(data, offset)];else if (out.ctype == 2 || out.ctype == 6) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)];else if (out.ctype == 3) out.tabs[type] = data[offset];
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) if (N[l + 1] != 0) {
677
- var M = l >> 1,
678
- I = N[l + 1],
679
- e = M << 4 | I,
680
- b = W - I,
681
- Z = N[l] << b,
682
- m = Z + (1 << b);
683
-
684
- while (Z != m) {
685
- var J = A[Z] >>> 15 - W;
686
- R[J] = e;
687
- Z++;
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
- if (type == 0) for (; x < bpl; x++) data[i + x] = data[di + x];else if (type == 1) {
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++) data[i + x] = data[di + x] + paeth(data[i + x - bpp], data[i + x - bpl], data[i + x - bpp - bpl]);
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++) for (var x = 0; x < w; x++) {
1030
- if (xoff >= 0 && yoff >= 0) {
1031
- si = y * sw + x << 2;
1032
- ti = (yoff + y) * tw + xoff + x << 2;
1033
- } else {
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
- tb[ti] = fr;
1077
- tb[ti + 1] = fg;
1078
- tb[ti + 2] = fb;
1079
- tb[ti + 3] = fa;
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
 
@@ -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
- [key: string]: any;
6
- };
4
+ userData?:
5
+ | {
6
+ [key: string]: any;
7
+ }
8
+ | undefined;
7
9
  }
8
10
 
9
11
  export interface SVGResult {
@@ -682,10 +682,13 @@ class SVGLoader extends Loader {
682
682
  }
683
683
 
684
684
  function addStyle(svgName, jsName, adjustFunction) {
685
- if (adjustFunction === undefined) adjustFunction = function copy(v) {
686
- if (v.startsWith('url')) console.warn('SVGLoader: url access in attributes is not implemented.');
687
- return v;
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 nextPoint = undefined;
1630
+ } else {
1631
+ nextPoint = undefined;
1632
+ }
1628
1633
  } else {
1629
1634
  nextPoint = points[iPoint + 1];
1630
1635
  } // Normal of previous segment in tempV2_1
@@ -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
- if (type === 'SURF') this.parseMaterialIndices(finalOffset);else {
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: number): boolean;
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
- RenderTarget,
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: RenderTarget[];
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): RenderTarget;
37
- getAlternateRenderTarget(variable: Variable): RenderTarget;
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
- ): RenderTarget;
48
+ ): WebGLRenderTarget;
47
49
  createTexture(): DataTexture;
48
50
  renderTexture(input: Texture, output: Texture): void;
49
- doRenderTarget(material: Material, output: RenderTarget): void;
51
+ doRenderTarget(material: Material, output: WebGLRenderTarget): void;
50
52
  }