@babylonjs/core 5.0.0-beta.9 → 5.0.0-rc.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.
Files changed (87) hide show
  1. package/Animations/animation.d.ts +4 -4
  2. package/Animations/animation.js +4 -4
  3. package/Animations/animation.js.map +1 -1
  4. package/Audio/sound.js +9 -3
  5. package/Audio/sound.js.map +1 -1
  6. package/DeviceInput/Helpers/eventFactory.js +8 -1
  7. package/DeviceInput/Helpers/eventFactory.js.map +1 -1
  8. package/DeviceInput/InputDevices/webDeviceInputSystem.d.ts +1 -0
  9. package/DeviceInput/InputDevices/webDeviceInputSystem.js +51 -9
  10. package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -1
  11. package/Engines/Extensions/engine.query.d.ts +7 -0
  12. package/Engines/Extensions/engine.query.js +12 -0
  13. package/Engines/Extensions/engine.query.js.map +1 -1
  14. package/Engines/Extensions/engine.renderTarget.d.ts +5 -0
  15. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  16. package/Engines/index.d.ts +1 -0
  17. package/Engines/index.js +1 -0
  18. package/Engines/index.js.map +1 -1
  19. package/Engines/nativeEngine.js +10 -10
  20. package/Engines/nativeEngine.js.map +1 -1
  21. package/Engines/thinEngine.js +2 -2
  22. package/Engines/thinEngine.js.map +1 -1
  23. package/Engines/webgpuEngine.js +2 -2
  24. package/Engines/webgpuEngine.js.map +1 -1
  25. package/Helpers/environmentHelper.js +2 -2
  26. package/Helpers/environmentHelper.js.map +1 -1
  27. package/Layers/effectLayer.d.ts +1 -0
  28. package/Layers/effectLayer.js +24 -0
  29. package/Layers/effectLayer.js.map +1 -1
  30. package/Materials/PBR/pbrBaseMaterial.js +1 -0
  31. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  32. package/Materials/Textures/dynamicTexture.d.ts +1 -1
  33. package/Materials/Textures/dynamicTexture.js.map +1 -1
  34. package/Materials/materialPluginBase.d.ts +5 -0
  35. package/Materials/materialPluginBase.js +5 -0
  36. package/Materials/materialPluginBase.js.map +1 -1
  37. package/Materials/materialPluginEvent.d.ts +1 -0
  38. package/Materials/materialPluginEvent.js.map +1 -1
  39. package/Materials/materialPluginManager.d.ts +1 -0
  40. package/Materials/materialPluginManager.js +20 -15
  41. package/Materials/materialPluginManager.js.map +1 -1
  42. package/Materials/standardMaterial.js +1 -0
  43. package/Materials/standardMaterial.js.map +1 -1
  44. package/Maths/math.vector.d.ts +5 -0
  45. package/Maths/math.vector.js +11 -0
  46. package/Maths/math.vector.js.map +1 -1
  47. package/Meshes/Builders/polygonBuilder.js +2 -1
  48. package/Meshes/Builders/polygonBuilder.js.map +1 -1
  49. package/Meshes/abstractMesh.d.ts +1 -1
  50. package/Meshes/abstractMesh.js.map +1 -1
  51. package/Meshes/instancedMesh.js +7 -4
  52. package/Meshes/instancedMesh.js.map +1 -1
  53. package/Meshes/mesh.js +21 -22
  54. package/Meshes/mesh.js.map +1 -1
  55. package/Meshes/mesh.vertexData.d.ts +1 -1
  56. package/Meshes/mesh.vertexData.js +98 -75
  57. package/Meshes/mesh.vertexData.js.map +1 -1
  58. package/Meshes/transformNode.d.ts +0 -2
  59. package/Meshes/transformNode.js +6 -5
  60. package/Meshes/transformNode.js.map +1 -1
  61. package/Misc/decorators.d.ts +1 -1
  62. package/Misc/decorators.js +1 -1
  63. package/Misc/decorators.js.map +1 -1
  64. package/Misc/fileTools.js.map +1 -1
  65. package/Particles/particleSystem.d.ts +13 -1
  66. package/Particles/particleSystem.js +20 -0
  67. package/Particles/particleSystem.js.map +1 -1
  68. package/Rendering/prePassRenderer.js +12 -2
  69. package/Rendering/prePassRenderer.js.map +1 -1
  70. package/Rendering/subSurfaceConfiguration.js +1 -1
  71. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  72. package/Rendering/utilityLayerRenderer.js +2 -0
  73. package/Rendering/utilityLayerRenderer.js.map +1 -1
  74. package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
  75. package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
  76. package/Shaders/background.vertex.js +1 -1
  77. package/Shaders/background.vertex.js.map +1 -1
  78. package/Shaders/pbr.vertex.js +1 -1
  79. package/Shaders/pbr.vertex.js.map +1 -1
  80. package/XR/features/WebXRNearInteraction.js +4 -2
  81. package/XR/features/WebXRNearInteraction.js.map +1 -1
  82. package/package.json +1 -1
  83. package/scene.d.ts +1 -10
  84. package/scene.js +12 -33
  85. package/scene.js.map +1 -1
  86. package/types.d.ts +1 -1
  87. package/types.js.map +1 -1
@@ -206,7 +206,7 @@ export declare class VertexData {
206
206
  */
207
207
  merge(others: VertexData | VertexData[], use32BitsIndices?: boolean): VertexData;
208
208
  /** @hidden */
209
- _mergeCoroutine(others: VertexData | VertexData[], use32BitsIndices: boolean | undefined, isAsync: boolean): Coroutine<VertexData>;
209
+ _mergeCoroutine(transform: Matrix | undefined, vertexDatas: (readonly [vertexData: VertexData, transform?: Matrix])[], use32BitsIndices: boolean | undefined, isAsync: boolean): Coroutine<VertexData>;
210
210
  private static _mergeElement;
211
211
  private _validate;
212
212
  /**
@@ -293,10 +293,12 @@ var VertexData = /** @class */ (function () {
293
293
  }
294
294
  return this;
295
295
  };
296
- VertexData._TransformVector3Coordinates = function (coordinates, transformation) {
296
+ VertexData._TransformVector3Coordinates = function (coordinates, transformation, offset, length) {
297
+ if (offset === void 0) { offset = 0; }
298
+ if (length === void 0) { length = coordinates.length; }
297
299
  var coordinate = TmpVectors.Vector3[0];
298
300
  var transformedCoordinate = TmpVectors.Vector3[1];
299
- for (var index = 0; index < coordinates.length; index += 3) {
301
+ for (var index = offset; index < offset + length; index += 3) {
300
302
  Vector3.FromArrayToRef(coordinates, index, coordinate);
301
303
  Vector3.TransformCoordinatesToRef(coordinate, transformation, transformedCoordinate);
302
304
  coordinates[index] = transformedCoordinate.x;
@@ -304,10 +306,12 @@ var VertexData = /** @class */ (function () {
304
306
  coordinates[index + 2] = transformedCoordinate.z;
305
307
  }
306
308
  };
307
- VertexData._TransformVector3Normals = function (normals, transformation) {
309
+ VertexData._TransformVector3Normals = function (normals, transformation, offset, length) {
310
+ if (offset === void 0) { offset = 0; }
311
+ if (length === void 0) { length = normals.length; }
308
312
  var normal = TmpVectors.Vector3[0];
309
313
  var transformedNormal = TmpVectors.Vector3[1];
310
- for (var index = 0; index < normals.length; index += 3) {
314
+ for (var index = offset; index < offset + length; index += 3) {
311
315
  Vector3.FromArrayToRef(normals, index, normal);
312
316
  Vector3.TransformNormalToRef(normal, transformation, transformedNormal);
313
317
  normals[index] = transformedNormal.x;
@@ -315,10 +319,12 @@ var VertexData = /** @class */ (function () {
315
319
  normals[index + 2] = transformedNormal.z;
316
320
  }
317
321
  };
318
- VertexData._TransformVector4Normals = function (normals, transformation) {
322
+ VertexData._TransformVector4Normals = function (normals, transformation, offset, length) {
323
+ if (offset === void 0) { offset = 0; }
324
+ if (length === void 0) { length = normals.length; }
319
325
  var normal = TmpVectors.Vector4[0];
320
326
  var transformedNormal = TmpVectors.Vector4[1];
321
- for (var index = 0; index < normals.length; index += 4) {
327
+ for (var index = offset; index < offset + length; index += 4) {
322
328
  Vector4.FromArrayToRef(normals, index, normal);
323
329
  Vector4.TransformNormalToRef(normal, transformation, transformedNormal);
324
330
  normals[index] = transformedNormal.x;
@@ -327,8 +333,10 @@ var VertexData = /** @class */ (function () {
327
333
  normals[index + 3] = transformedNormal.w;
328
334
  }
329
335
  };
330
- VertexData._FlipFaces = function (indices) {
331
- for (var index = 0; index < indices.length; index += 3) {
336
+ VertexData._FlipFaces = function (indices, offset, length) {
337
+ if (offset === void 0) { offset = 0; }
338
+ if (length === void 0) { length = indices.length; }
339
+ for (var index = offset; index < offset + length; index += 3) {
332
340
  var tmp = indices[index + 1];
333
341
  indices[index + 1] = indices[index + 2];
334
342
  indices[index + 2] = tmp;
@@ -363,18 +371,19 @@ var VertexData = /** @class */ (function () {
363
371
  */
364
372
  VertexData.prototype.merge = function (others, use32BitsIndices) {
365
373
  if (use32BitsIndices === void 0) { use32BitsIndices = false; }
366
- return runCoroutineSync(this._mergeCoroutine(others, use32BitsIndices, false));
374
+ var vertexDatas = Array.isArray(others) ? others.map(function (other) { return [other, undefined]; }) : [[others, undefined]];
375
+ return runCoroutineSync(this._mergeCoroutine(undefined, vertexDatas, use32BitsIndices, false));
367
376
  };
368
377
  /** @hidden */
369
- VertexData.prototype._mergeCoroutine = function (others, use32BitsIndices, isAsync) {
370
- var _i, others_1, other, totalIndices, indicesOffset, temp, positionsOffset, _a, others_2, other, index;
371
- var _b, _c, _d, _e;
378
+ VertexData.prototype._mergeCoroutine = function (transform, vertexDatas, use32BitsIndices, isAsync) {
379
+ var others, _i, others_1, other, totalIndices, indicesOffset, temp, positionsOffset, _a, vertexDatas_1, _b, other, transform_1, index;
380
+ var _c, _d, _e, _f;
372
381
  if (use32BitsIndices === void 0) { use32BitsIndices = false; }
373
- return __generator(this, function (_f) {
374
- switch (_f.label) {
382
+ return __generator(this, function (_g) {
383
+ switch (_g.label) {
375
384
  case 0:
376
385
  this._validate();
377
- others = Array.isArray(others) ? others : [others];
386
+ others = vertexDatas.map(function (vertexData) { return vertexData[0]; });
378
387
  for (_i = 0, others_1 = others; _i < others_1.length; _i++) {
379
388
  other = others_1[_i];
380
389
  other._validate();
@@ -394,9 +403,9 @@ var VertexData = /** @class */ (function () {
394
403
  throw new Error("Cannot merge vertex data that do not have the same set of attributes");
395
404
  }
396
405
  }
397
- totalIndices = others.reduce(function (indexSum, vertexData) { var _a, _b; return indexSum + ((_b = (_a = vertexData.indices) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0); }, (_c = (_b = this.indices) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0);
406
+ totalIndices = others.reduce(function (indexSum, vertexData) { var _a, _b; return indexSum + ((_b = (_a = vertexData.indices) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0); }, (_d = (_c = this.indices) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0);
398
407
  if (!(totalIndices > 0)) return [3 /*break*/, 4];
399
- indicesOffset = (_e = (_d = this.indices) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0;
408
+ indicesOffset = (_f = (_e = this.indices) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0;
400
409
  if (!this.indices) {
401
410
  this.indices = new Array(totalIndices);
402
411
  }
@@ -409,143 +418,155 @@ var VertexData = /** @class */ (function () {
409
418
  temp.set(this.indices);
410
419
  this.indices = temp;
411
420
  }
421
+ if (transform && transform.determinant() < 0) {
422
+ VertexData._FlipFaces(this.indices, 0, indicesOffset);
423
+ }
412
424
  }
413
425
  positionsOffset = this.positions ? this.positions.length / 3 : 0;
414
- _a = 0, others_2 = others;
415
- _f.label = 1;
426
+ _a = 0, vertexDatas_1 = vertexDatas;
427
+ _g.label = 1;
416
428
  case 1:
417
- if (!(_a < others_2.length)) return [3 /*break*/, 4];
418
- other = others_2[_a];
429
+ if (!(_a < vertexDatas_1.length)) return [3 /*break*/, 4];
430
+ _b = vertexDatas_1[_a], other = _b[0], transform_1 = _b[1];
419
431
  if (!other.indices) return [3 /*break*/, 3];
420
432
  for (index = 0; index < other.indices.length; index++) {
421
433
  this.indices[indicesOffset + index] = other.indices[index] + positionsOffset;
422
434
  }
435
+ if (transform_1 && transform_1.determinant() < 0) {
436
+ VertexData._FlipFaces(this.indices, indicesOffset, other.indices.length);
437
+ }
423
438
  // The call to _validate already checked for positions
424
439
  positionsOffset += other.positions.length / 3;
425
440
  indicesOffset += other.indices.length;
426
441
  if (!isAsync) return [3 /*break*/, 3];
427
442
  return [4 /*yield*/];
428
443
  case 2:
429
- _f.sent();
430
- _f.label = 3;
444
+ _g.sent();
445
+ _g.label = 3;
431
446
  case 3:
432
447
  _a++;
433
448
  return [3 /*break*/, 1];
434
449
  case 4:
435
- this.positions = VertexData._mergeElement(this.positions, others.map(function (other) { return other.positions; }));
450
+ this.positions = VertexData._mergeElement(VertexBuffer.PositionKind, this.positions, transform, vertexDatas.map(function (other) { return [other[0].positions, other[1]]; }));
436
451
  if (!isAsync) return [3 /*break*/, 6];
437
452
  return [4 /*yield*/];
438
453
  case 5:
439
- _f.sent();
440
- _f.label = 6;
454
+ _g.sent();
455
+ _g.label = 6;
441
456
  case 6:
442
- this.normals = VertexData._mergeElement(this.normals, others.map(function (other) { return other.normals; }));
457
+ this.normals = VertexData._mergeElement(VertexBuffer.NormalKind, this.normals, transform, vertexDatas.map(function (other) { return [other[0].normals, other[1]]; }));
443
458
  if (!isAsync) return [3 /*break*/, 8];
444
459
  return [4 /*yield*/];
445
460
  case 7:
446
- _f.sent();
447
- _f.label = 8;
461
+ _g.sent();
462
+ _g.label = 8;
448
463
  case 8:
449
- this.tangents = VertexData._mergeElement(this.tangents, others.map(function (other) { return other.tangents; }));
464
+ this.tangents = VertexData._mergeElement(VertexBuffer.TangentKind, this.tangents, transform, vertexDatas.map(function (other) { return [other[0].tangents, other[1]]; }));
450
465
  if (!isAsync) return [3 /*break*/, 10];
451
466
  return [4 /*yield*/];
452
467
  case 9:
453
- _f.sent();
454
- _f.label = 10;
468
+ _g.sent();
469
+ _g.label = 10;
455
470
  case 10:
456
- this.uvs = VertexData._mergeElement(this.uvs, others.map(function (other) { return other.uvs; }));
471
+ this.uvs = VertexData._mergeElement(VertexBuffer.UVKind, this.uvs, transform, vertexDatas.map(function (other) { return [other[0].uvs, other[1]]; }));
457
472
  if (!isAsync) return [3 /*break*/, 12];
458
473
  return [4 /*yield*/];
459
474
  case 11:
460
- _f.sent();
461
- _f.label = 12;
475
+ _g.sent();
476
+ _g.label = 12;
462
477
  case 12:
463
- this.uvs2 = VertexData._mergeElement(this.uvs2, others.map(function (other) { return other.uvs2; }));
478
+ this.uvs2 = VertexData._mergeElement(VertexBuffer.UV2Kind, this.uvs2, transform, vertexDatas.map(function (other) { return [other[0].uvs2, other[1]]; }));
464
479
  if (!isAsync) return [3 /*break*/, 14];
465
480
  return [4 /*yield*/];
466
481
  case 13:
467
- _f.sent();
468
- _f.label = 14;
482
+ _g.sent();
483
+ _g.label = 14;
469
484
  case 14:
470
- this.uvs3 = VertexData._mergeElement(this.uvs3, others.map(function (other) { return other.uvs3; }));
485
+ this.uvs3 = VertexData._mergeElement(VertexBuffer.UV3Kind, this.uvs3, transform, vertexDatas.map(function (other) { return [other[0].uvs3, other[1]]; }));
471
486
  if (!isAsync) return [3 /*break*/, 16];
472
487
  return [4 /*yield*/];
473
488
  case 15:
474
- _f.sent();
475
- _f.label = 16;
489
+ _g.sent();
490
+ _g.label = 16;
476
491
  case 16:
477
- this.uvs4 = VertexData._mergeElement(this.uvs4, others.map(function (other) { return other.uvs4; }));
492
+ this.uvs4 = VertexData._mergeElement(VertexBuffer.UV4Kind, this.uvs4, transform, vertexDatas.map(function (other) { return [other[0].uvs4, other[1]]; }));
478
493
  if (!isAsync) return [3 /*break*/, 18];
479
494
  return [4 /*yield*/];
480
495
  case 17:
481
- _f.sent();
482
- _f.label = 18;
496
+ _g.sent();
497
+ _g.label = 18;
483
498
  case 18:
484
- this.uvs5 = VertexData._mergeElement(this.uvs5, others.map(function (other) { return other.uvs5; }));
499
+ this.uvs5 = VertexData._mergeElement(VertexBuffer.UV5Kind, this.uvs5, transform, vertexDatas.map(function (other) { return [other[0].uvs5, other[1]]; }));
485
500
  if (!isAsync) return [3 /*break*/, 20];
486
501
  return [4 /*yield*/];
487
502
  case 19:
488
- _f.sent();
489
- _f.label = 20;
503
+ _g.sent();
504
+ _g.label = 20;
490
505
  case 20:
491
- this.uvs6 = VertexData._mergeElement(this.uvs6, others.map(function (other) { return other.uvs6; }));
506
+ this.uvs6 = VertexData._mergeElement(VertexBuffer.UV6Kind, this.uvs6, transform, vertexDatas.map(function (other) { return [other[0].uvs6, other[1]]; }));
492
507
  if (!isAsync) return [3 /*break*/, 22];
493
508
  return [4 /*yield*/];
494
509
  case 21:
495
- _f.sent();
496
- _f.label = 22;
510
+ _g.sent();
511
+ _g.label = 22;
497
512
  case 22:
498
- this.colors = VertexData._mergeElement(this.colors, others.map(function (other) { return other.colors; }));
513
+ this.colors = VertexData._mergeElement(VertexBuffer.ColorKind, this.colors, transform, vertexDatas.map(function (other) { return [other[0].colors, other[1]]; }));
499
514
  if (!isAsync) return [3 /*break*/, 24];
500
515
  return [4 /*yield*/];
501
516
  case 23:
502
- _f.sent();
503
- _f.label = 24;
517
+ _g.sent();
518
+ _g.label = 24;
504
519
  case 24:
505
- this.matricesIndices = VertexData._mergeElement(this.matricesIndices, others.map(function (other) { return other.matricesIndices; }));
520
+ this.matricesIndices = VertexData._mergeElement(VertexBuffer.MatricesIndicesKind, this.matricesIndices, transform, vertexDatas.map(function (other) { return [other[0].matricesIndices, other[1]]; }));
506
521
  if (!isAsync) return [3 /*break*/, 26];
507
522
  return [4 /*yield*/];
508
523
  case 25:
509
- _f.sent();
510
- _f.label = 26;
524
+ _g.sent();
525
+ _g.label = 26;
511
526
  case 26:
512
- this.matricesWeights = VertexData._mergeElement(this.matricesWeights, others.map(function (other) { return other.matricesWeights; }));
527
+ this.matricesWeights = VertexData._mergeElement(VertexBuffer.MatricesWeightsKind, this.matricesWeights, transform, vertexDatas.map(function (other) { return [other[0].matricesWeights, other[1]]; }));
513
528
  if (!isAsync) return [3 /*break*/, 28];
514
529
  return [4 /*yield*/];
515
530
  case 27:
516
- _f.sent();
517
- _f.label = 28;
531
+ _g.sent();
532
+ _g.label = 28;
518
533
  case 28:
519
- this.matricesIndicesExtra = VertexData._mergeElement(this.matricesIndicesExtra, others.map(function (other) { return other.matricesIndicesExtra; }));
534
+ this.matricesIndicesExtra = VertexData._mergeElement(VertexBuffer.MatricesIndicesExtraKind, this.matricesIndicesExtra, transform, vertexDatas.map(function (other) { return [other[0].matricesIndicesExtra, other[1]]; }));
520
535
  if (!isAsync) return [3 /*break*/, 30];
521
536
  return [4 /*yield*/];
522
537
  case 29:
523
- _f.sent();
524
- _f.label = 30;
538
+ _g.sent();
539
+ _g.label = 30;
525
540
  case 30:
526
- this.matricesWeightsExtra = VertexData._mergeElement(this.matricesWeightsExtra, others.map(function (other) { return other.matricesWeightsExtra; }));
541
+ this.matricesWeightsExtra = VertexData._mergeElement(VertexBuffer.MatricesWeightsExtraKind, this.matricesWeightsExtra, transform, vertexDatas.map(function (other) { return [other[0].matricesWeightsExtra, other[1]]; }));
527
542
  return [2 /*return*/, this];
528
543
  }
529
544
  });
530
545
  };
531
- VertexData._mergeElement = function (source, others) {
532
- var nonNullOthers = others.filter(function (other) { return other !== null && other !== undefined; });
546
+ VertexData._mergeElement = function (kind, source, transform, others) {
547
+ var nonNullOthers = others.filter(function (other) { return other[0] !== null && other[0] !== undefined; });
533
548
  if (nonNullOthers.length === 0) {
534
549
  return source;
535
550
  }
536
551
  if (!source) {
537
- return this._mergeElement(nonNullOthers[0], nonNullOthers.slice(1));
552
+ return this._mergeElement(kind, nonNullOthers[0][0], nonNullOthers[0][1], nonNullOthers.slice(1));
538
553
  }
539
- var len = nonNullOthers.reduce(function (sumLen, elements) { return sumLen + elements.length; }, source.length);
554
+ var len = nonNullOthers.reduce(function (sumLen, elements) { return sumLen + elements[0].length; }, source.length);
555
+ var transformRange = kind === VertexBuffer.PositionKind ? VertexData._TransformVector3Coordinates :
556
+ kind === VertexBuffer.NormalKind ? VertexData._TransformVector3Normals :
557
+ kind === VertexBuffer.TangentKind ? VertexData._TransformVector4Normals :
558
+ function () { };
540
559
  if (source instanceof Float32Array) {
541
560
  // use non-loop method when the source is Float32Array
542
561
  var ret32 = new Float32Array(len);
543
562
  ret32.set(source);
563
+ transform && transformRange(ret32, transform, 0, source.length);
544
564
  var offset = source.length;
545
565
  for (var _i = 0, nonNullOthers_1 = nonNullOthers; _i < nonNullOthers_1.length; _i++) {
546
- var other = nonNullOthers_1[_i];
547
- ret32.set(other, offset);
548
- offset += other.length;
566
+ var _a = nonNullOthers_1[_i], vertexData = _a[0], transform_2 = _a[1];
567
+ ret32.set(vertexData, offset);
568
+ transform_2 && transformRange(ret32, transform_2, offset, vertexData.length);
569
+ offset += vertexData.length;
549
570
  }
550
571
  return ret32;
551
572
  }
@@ -555,13 +576,15 @@ var VertexData = /** @class */ (function () {
555
576
  for (var i = 0; i < source.length; i++) {
556
577
  ret[i] = source[i];
557
578
  }
579
+ transform && transformRange(ret, transform, 0, source.length);
558
580
  var offset = source.length;
559
- for (var _a = 0, nonNullOthers_2 = nonNullOthers; _a < nonNullOthers_2.length; _a++) {
560
- var other = nonNullOthers_2[_a];
561
- for (var i = 0; i < other.length; i++) {
562
- ret[offset + i] = other[i];
581
+ for (var _b = 0, nonNullOthers_2 = nonNullOthers; _b < nonNullOthers_2.length; _b++) {
582
+ var _c = nonNullOthers_2[_b], vertexData = _c[0], transform_3 = _c[1];
583
+ for (var i = 0; i < vertexData.length; i++) {
584
+ ret[offset + i] = vertexData[i];
563
585
  }
564
- offset += other.length;
586
+ transform_3 && transformRange(ret, transform_3, offset, vertexData.length);
587
+ offset += vertexData.length;
565
588
  }
566
589
  return ret;
567
590
  }