@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.
- package/Animations/animation.d.ts +4 -4
- package/Animations/animation.js +4 -4
- package/Animations/animation.js.map +1 -1
- package/Audio/sound.js +9 -3
- package/Audio/sound.js.map +1 -1
- package/DeviceInput/Helpers/eventFactory.js +8 -1
- package/DeviceInput/Helpers/eventFactory.js.map +1 -1
- package/DeviceInput/InputDevices/webDeviceInputSystem.d.ts +1 -0
- package/DeviceInput/InputDevices/webDeviceInputSystem.js +51 -9
- package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.query.d.ts +7 -0
- package/Engines/Extensions/engine.query.js +12 -0
- package/Engines/Extensions/engine.query.js.map +1 -1
- package/Engines/Extensions/engine.renderTarget.d.ts +5 -0
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/index.d.ts +1 -0
- package/Engines/index.js +1 -0
- package/Engines/index.js.map +1 -1
- package/Engines/nativeEngine.js +10 -10
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +2 -2
- package/Engines/webgpuEngine.js.map +1 -1
- package/Helpers/environmentHelper.js +2 -2
- package/Helpers/environmentHelper.js.map +1 -1
- package/Layers/effectLayer.d.ts +1 -0
- package/Layers/effectLayer.js +24 -0
- package/Layers/effectLayer.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +1 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +1 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/materialPluginBase.d.ts +5 -0
- package/Materials/materialPluginBase.js +5 -0
- package/Materials/materialPluginBase.js.map +1 -1
- package/Materials/materialPluginEvent.d.ts +1 -0
- package/Materials/materialPluginEvent.js.map +1 -1
- package/Materials/materialPluginManager.d.ts +1 -0
- package/Materials/materialPluginManager.js +20 -15
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/standardMaterial.js +1 -0
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/math.vector.d.ts +5 -0
- package/Maths/math.vector.js +11 -0
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.js +2 -1
- package/Meshes/Builders/polygonBuilder.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +1 -1
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/instancedMesh.js +7 -4
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/mesh.js +21 -22
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +1 -1
- package/Meshes/mesh.vertexData.js +98 -75
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.d.ts +0 -2
- package/Meshes/transformNode.js +6 -5
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/decorators.d.ts +1 -1
- package/Misc/decorators.js +1 -1
- package/Misc/decorators.js.map +1 -1
- package/Misc/fileTools.js.map +1 -1
- package/Particles/particleSystem.d.ts +13 -1
- package/Particles/particleSystem.js +20 -0
- package/Particles/particleSystem.js.map +1 -1
- package/Rendering/prePassRenderer.js +12 -2
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.js +1 -1
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/utilityLayerRenderer.js +2 -0
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
- package/Shaders/background.vertex.js +1 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/pbr.vertex.js +1 -1
- package/Shaders/pbr.vertex.js.map +1 -1
- package/XR/features/WebXRNearInteraction.js +4 -2
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +1 -10
- package/scene.js +12 -33
- package/scene.js.map +1 -1
- package/types.d.ts +1 -1
- 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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
370
|
-
var _i, others_1, other, totalIndices, indicesOffset, temp, positionsOffset, _a,
|
|
371
|
-
var
|
|
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 (
|
|
374
|
-
switch (
|
|
382
|
+
return __generator(this, function (_g) {
|
|
383
|
+
switch (_g.label) {
|
|
375
384
|
case 0:
|
|
376
385
|
this._validate();
|
|
377
|
-
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); }, (
|
|
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 = (
|
|
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,
|
|
415
|
-
|
|
426
|
+
_a = 0, vertexDatas_1 = vertexDatas;
|
|
427
|
+
_g.label = 1;
|
|
416
428
|
case 1:
|
|
417
|
-
if (!(_a <
|
|
418
|
-
|
|
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
|
-
|
|
430
|
-
|
|
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,
|
|
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
|
-
|
|
440
|
-
|
|
454
|
+
_g.sent();
|
|
455
|
+
_g.label = 6;
|
|
441
456
|
case 6:
|
|
442
|
-
this.normals = VertexData._mergeElement(this.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
|
-
|
|
447
|
-
|
|
461
|
+
_g.sent();
|
|
462
|
+
_g.label = 8;
|
|
448
463
|
case 8:
|
|
449
|
-
this.tangents = VertexData._mergeElement(this.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
|
-
|
|
454
|
-
|
|
468
|
+
_g.sent();
|
|
469
|
+
_g.label = 10;
|
|
455
470
|
case 10:
|
|
456
|
-
this.uvs = VertexData._mergeElement(this.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
|
-
|
|
461
|
-
|
|
475
|
+
_g.sent();
|
|
476
|
+
_g.label = 12;
|
|
462
477
|
case 12:
|
|
463
|
-
this.uvs2 = VertexData._mergeElement(this.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
|
-
|
|
468
|
-
|
|
482
|
+
_g.sent();
|
|
483
|
+
_g.label = 14;
|
|
469
484
|
case 14:
|
|
470
|
-
this.uvs3 = VertexData._mergeElement(this.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
|
-
|
|
475
|
-
|
|
489
|
+
_g.sent();
|
|
490
|
+
_g.label = 16;
|
|
476
491
|
case 16:
|
|
477
|
-
this.uvs4 = VertexData._mergeElement(this.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
|
-
|
|
482
|
-
|
|
496
|
+
_g.sent();
|
|
497
|
+
_g.label = 18;
|
|
483
498
|
case 18:
|
|
484
|
-
this.uvs5 = VertexData._mergeElement(this.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
|
-
|
|
489
|
-
|
|
503
|
+
_g.sent();
|
|
504
|
+
_g.label = 20;
|
|
490
505
|
case 20:
|
|
491
|
-
this.uvs6 = VertexData._mergeElement(this.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
|
-
|
|
496
|
-
|
|
510
|
+
_g.sent();
|
|
511
|
+
_g.label = 22;
|
|
497
512
|
case 22:
|
|
498
|
-
this.colors = VertexData._mergeElement(this.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
|
-
|
|
503
|
-
|
|
517
|
+
_g.sent();
|
|
518
|
+
_g.label = 24;
|
|
504
519
|
case 24:
|
|
505
|
-
this.matricesIndices = VertexData._mergeElement(this.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
|
-
|
|
510
|
-
|
|
524
|
+
_g.sent();
|
|
525
|
+
_g.label = 26;
|
|
511
526
|
case 26:
|
|
512
|
-
this.matricesWeights = VertexData._mergeElement(this.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
|
-
|
|
517
|
-
|
|
531
|
+
_g.sent();
|
|
532
|
+
_g.label = 28;
|
|
518
533
|
case 28:
|
|
519
|
-
this.matricesIndicesExtra = VertexData._mergeElement(this.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
|
-
|
|
524
|
-
|
|
538
|
+
_g.sent();
|
|
539
|
+
_g.label = 30;
|
|
525
540
|
case 30:
|
|
526
|
-
this.matricesWeightsExtra = VertexData._mergeElement(this.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
|
|
547
|
-
ret32.set(
|
|
548
|
-
offset
|
|
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
|
|
560
|
-
var
|
|
561
|
-
for (var i = 0; i <
|
|
562
|
-
ret[offset + 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
|
|
586
|
+
transform_3 && transformRange(ret, transform_3, offset, vertexData.length);
|
|
587
|
+
offset += vertexData.length;
|
|
565
588
|
}
|
|
566
589
|
return ret;
|
|
567
590
|
}
|