@galacean/engine 1.1.2 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -24592,7 +24592,21 @@
24592
24592
  mesh.uploadData(false);
24593
24593
  };
24594
24594
  _proto._initMesh = function _initMesh(engine) {
24595
- this._mesh = this._createPlane(engine);
24595
+ var mesh = this._mesh = this._createPlane(engine);
24596
+ engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
24597
+ var _class = function _class() {
24598
+ return ContentRestorer.call(this, mesh);
24599
+ };
24600
+ _inherits$2(_class, ContentRestorer);
24601
+ var _proto = _class.prototype;
24602
+ _proto.restoreContent = function restoreContent() {
24603
+ mesh.setPositions(mesh.getPositions());
24604
+ mesh.setUVs(mesh.getUVs());
24605
+ mesh.setIndices(mesh.getIndices());
24606
+ mesh.uploadData(false);
24607
+ };
24608
+ return _class;
24609
+ }(ContentRestorer))());
24596
24610
  this._mesh._addReferCount(1);
24597
24611
  };
24598
24612
  _proto._initMaterial = function _initMaterial(engine) {
@@ -38300,11 +38314,199 @@
38300
38314
  ]);
38301
38315
  return FileHeader;
38302
38316
  }();
38317
+ var ComponentMap = {
38318
+ Transform: Transform,
38319
+ Animator: Animator,
38320
+ DirectLight: DirectLight,
38321
+ Camera: exports.Camera,
38322
+ MeshRenderer: MeshRenderer,
38323
+ ParticleRenderer: ParticleRenderer,
38324
+ PointLight: PointLight,
38325
+ SpotLight: SpotLight,
38326
+ Script: Script,
38327
+ SpriteMask: SpriteMask,
38328
+ SpriteRenderer: SpriteRenderer,
38329
+ TextRenderer: TextRenderer
38330
+ };
38331
+ exports.InterpolableValueType = void 0;
38332
+ (function(InterpolableValueType) {
38333
+ InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
38334
+ InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
38335
+ InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
38336
+ InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
38337
+ InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
38338
+ InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
38339
+ InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
38340
+ InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
38341
+ InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
38342
+ InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
38343
+ InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
38344
+ })(exports.InterpolableValueType || (exports.InterpolableValueType = {}));
38345
+ exports.AnimationClipDecoder = /*#__PURE__*/ function() {
38346
+ var AnimationClipDecoder = function AnimationClipDecoder() {};
38347
+ AnimationClipDecoder.decode = function decode(engine, bufferReader) {
38348
+ return new Promise(function(resolve) {
38349
+ var name = bufferReader.nextStr();
38350
+ var clip = new AnimationClip(name);
38351
+ var eventsLen = bufferReader.nextUint16();
38352
+ for(var i = 0; i < eventsLen; ++i){
38353
+ var event = new AnimationEvent();
38354
+ event.time = bufferReader.nextFloat32();
38355
+ event.functionName = bufferReader.nextStr();
38356
+ event.parameter = JSON.parse(bufferReader.nextStr()).val;
38357
+ clip.addEvent(event);
38358
+ }
38359
+ var curveBindingsLen = bufferReader.nextUint16();
38360
+ for(var i1 = 0; i1 < curveBindingsLen; ++i1){
38361
+ var relativePath = bufferReader.nextStr();
38362
+ var componentStr = bufferReader.nextStr();
38363
+ var componentType = ComponentMap[componentStr];
38364
+ var property = bufferReader.nextStr();
38365
+ var curve = void 0;
38366
+ var interpolation = bufferReader.nextUint8();
38367
+ var keysLen = bufferReader.nextUint16();
38368
+ var curveType = bufferReader.nextStr();
38369
+ switch(curveType){
38370
+ case "AnimationFloatCurve":
38371
+ {
38372
+ curve = new exports.AnimationFloatCurve();
38373
+ curve.interpolation = interpolation;
38374
+ for(var j = 0; j < keysLen; ++j){
38375
+ var keyframe = new Keyframe();
38376
+ keyframe.time = bufferReader.nextFloat32();
38377
+ keyframe.value = bufferReader.nextFloat32();
38378
+ keyframe.inTangent = bufferReader.nextFloat32();
38379
+ keyframe.outTangent = bufferReader.nextFloat32();
38380
+ curve.addKey(keyframe);
38381
+ }
38382
+ break;
38383
+ }
38384
+ case "AnimationArrayCurve":
38385
+ {
38386
+ curve = new exports.AnimationArrayCurve();
38387
+ curve.interpolation = interpolation;
38388
+ for(var j1 = 0; j1 < keysLen; ++j1){
38389
+ var keyframe1 = new Keyframe();
38390
+ keyframe1.time = bufferReader.nextFloat32();
38391
+ var len = bufferReader.nextUint16();
38392
+ keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
38393
+ keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
38394
+ keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
38395
+ curve.addKey(keyframe1);
38396
+ }
38397
+ break;
38398
+ }
38399
+ case "AnimationFloatArrayCurve":
38400
+ {
38401
+ curve = new exports.AnimationFloatArrayCurve();
38402
+ curve.interpolation = interpolation;
38403
+ for(var j2 = 0; j2 < keysLen; ++j2){
38404
+ var keyframe2 = new Keyframe();
38405
+ keyframe2.time = bufferReader.nextFloat32();
38406
+ var len1 = bufferReader.nextUint16();
38407
+ keyframe2.value = bufferReader.nextFloat32Array(len1);
38408
+ keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
38409
+ keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
38410
+ curve.addKey(keyframe2);
38411
+ }
38412
+ break;
38413
+ }
38414
+ case "AnimationVector2Curve":
38415
+ {
38416
+ curve = new exports.AnimationVector2Curve();
38417
+ curve.interpolation = interpolation;
38418
+ for(var j3 = 0; j3 < keysLen; ++j3){
38419
+ var keyframe3 = new Keyframe();
38420
+ keyframe3.time = bufferReader.nextFloat32();
38421
+ keyframe3.value = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38422
+ keyframe3.inTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38423
+ keyframe3.outTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38424
+ curve.addKey(keyframe3);
38425
+ }
38426
+ break;
38427
+ }
38428
+ case "AnimationVector3Curve":
38429
+ {
38430
+ curve = new exports.AnimationVector3Curve();
38431
+ curve.interpolation = interpolation;
38432
+ for(var j4 = 0; j4 < keysLen; ++j4){
38433
+ var keyframe4 = new Keyframe();
38434
+ keyframe4.time = bufferReader.nextFloat32();
38435
+ keyframe4.value = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38436
+ keyframe4.inTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38437
+ keyframe4.outTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38438
+ curve.addKey(keyframe4);
38439
+ }
38440
+ break;
38441
+ }
38442
+ case "AnimationVector4Curve":
38443
+ {
38444
+ curve = new exports.AnimationVector4Curve();
38445
+ curve.interpolation = interpolation;
38446
+ var keyframe5 = new Keyframe();
38447
+ keyframe5.time = bufferReader.nextFloat32();
38448
+ keyframe5.value = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38449
+ keyframe5.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38450
+ keyframe5.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38451
+ curve.addKey(keyframe5);
38452
+ break;
38453
+ }
38454
+ case "AnimationColorCurve":
38455
+ {
38456
+ curve = new exports.AnimationColorCurve();
38457
+ curve.interpolation = interpolation;
38458
+ for(var j5 = 0; j5 < keysLen; ++j5){
38459
+ var keyframe6 = new Keyframe();
38460
+ keyframe6.time = bufferReader.nextFloat32();
38461
+ keyframe6.value = new Color$1(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38462
+ keyframe6.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38463
+ keyframe6.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38464
+ curve.addKey(keyframe6);
38465
+ }
38466
+ break;
38467
+ }
38468
+ case "AnimationQuaternionCurve":
38469
+ {
38470
+ curve = new exports.AnimationQuaternionCurve();
38471
+ curve.interpolation = interpolation;
38472
+ for(var j6 = 0; j6 < keysLen; ++j6){
38473
+ var keyframe7 = new Keyframe();
38474
+ keyframe7.time = bufferReader.nextFloat32();
38475
+ keyframe7.value = new Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38476
+ keyframe7.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38477
+ keyframe7.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38478
+ curve.addKey(keyframe7);
38479
+ }
38480
+ break;
38481
+ }
38482
+ case "AnimationRefCurve":
38483
+ {
38484
+ curve = new exports.AnimationRefCurve();
38485
+ curve.interpolation = interpolation;
38486
+ for(var j7 = 0; j7 < keysLen; ++j7){
38487
+ var keyframe8 = new Keyframe();
38488
+ keyframe8.time = bufferReader.nextFloat32();
38489
+ keyframe8.value = JSON.parse(bufferReader.nextStr());
38490
+ curve.addKey(keyframe8);
38491
+ }
38492
+ break;
38493
+ }
38494
+ }
38495
+ clip.addCurveBinding(relativePath, componentType, property, curve);
38496
+ }
38497
+ resolve(clip);
38498
+ });
38499
+ };
38500
+ return AnimationClipDecoder;
38501
+ }();
38502
+ exports.AnimationClipDecoder = __decorate([
38503
+ decoder("AnimationClip")
38504
+ ], exports.AnimationClipDecoder);
38303
38505
  exports.MeshDecoder = /*#__PURE__*/ function() {
38304
38506
  var MeshDecoder = function MeshDecoder() {};
38305
- MeshDecoder.decode = function decode(engine, bufferReader) {
38507
+ MeshDecoder.decode = function decode(engine, bufferReader, restoredMesh) {
38306
38508
  return new Promise(function(resolve) {
38307
- var modelMesh = new ModelMesh(engine);
38509
+ var modelMesh = restoredMesh || new ModelMesh(engine);
38308
38510
  var jsonDataString = bufferReader.nextStr();
38309
38511
  var encodedMeshData = JSON.parse(jsonDataString);
38310
38512
  // @ts-ignore Vector3 is not compatible with {x: number, y: number, z: number}.
@@ -38433,80 +38635,22 @@
38433
38635
  }
38434
38636
  return array;
38435
38637
  }
38436
- exports.Texture2DDecoder = /*#__PURE__*/ function() {
38437
- var Texture2DDecoder = function Texture2DDecoder() {};
38438
- Texture2DDecoder.decode = function decode(engine, bufferReader) {
38439
- return new Promise(function(resolve, reject) {
38440
- var objectId = bufferReader.nextStr();
38441
- var mipmap = !!bufferReader.nextUint8();
38442
- var filterMode = bufferReader.nextUint8();
38443
- var anisoLevel = bufferReader.nextUint8();
38444
- var wrapModeU = bufferReader.nextUint8();
38445
- var wrapModeV = bufferReader.nextUint8();
38446
- var format = bufferReader.nextUint8();
38447
- var width = bufferReader.nextUint16();
38448
- var height = bufferReader.nextUint16();
38449
- var isPixelBuffer = bufferReader.nextUint8();
38450
- var mipCount = bufferReader.nextUint8();
38451
- var imagesData = bufferReader.nextImagesData(mipCount);
38452
- var texture2D = new Texture2D(engine, width, height, format, mipmap);
38453
- texture2D.filterMode = filterMode;
38454
- texture2D.anisoLevel = anisoLevel;
38455
- texture2D.wrapModeU = wrapModeU;
38456
- texture2D.wrapModeV = wrapModeV;
38457
- if (isPixelBuffer) {
38458
- var pixelBuffer = imagesData[0];
38459
- texture2D.setPixelBuffer(pixelBuffer);
38460
- if (mipmap) {
38461
- texture2D.generateMipmaps();
38462
- for(var i = 1; i < mipCount; i++){
38463
- var pixelBuffer1 = imagesData[i];
38464
- texture2D.setPixelBuffer(pixelBuffer1, i);
38465
- }
38466
- }
38467
- // @ts-ignore
38468
- engine.resourceManager._objectPool[objectId] = texture2D;
38469
- resolve(texture2D);
38470
- } else {
38471
- var blob = new window.Blob([
38472
- imagesData[0]
38473
- ]);
38474
- var img = new Image();
38475
- img.onload = function() {
38476
- texture2D.setImageSource(img);
38477
- var completedCount = 0;
38478
- var onComplete = function onComplete() {
38479
- completedCount++;
38480
- if (completedCount >= mipCount) {
38481
- resolve(texture2D);
38482
- }
38483
- };
38484
- onComplete();
38485
- if (mipmap) {
38486
- var _loop = function _loop(i) {
38487
- var blob = new window.Blob([
38488
- imagesData[i]
38489
- ]);
38490
- var img = new Image();
38491
- img.onload = function() {
38492
- texture2D.setImageSource(img, i);
38493
- onComplete();
38494
- };
38495
- img.src = URL.createObjectURL(blob);
38496
- };
38497
- texture2D.generateMipmaps();
38498
- for(var i = 1; i < mipCount; i++)_loop(i);
38499
- }
38500
- };
38501
- img.src = URL.createObjectURL(blob);
38638
+ var PrefabParser = /*#__PURE__*/ function() {
38639
+ var PrefabParser = function PrefabParser() {};
38640
+ PrefabParser.parseChildren = function parseChildren(entitiesConfig, entities, parentId) {
38641
+ var children = entitiesConfig.get(parentId).children;
38642
+ if (children && children.length > 0) {
38643
+ var parent = entities.get(parentId);
38644
+ for(var i = 0; i < children.length; i++){
38645
+ var childId = children[i];
38646
+ var entity = entities.get(childId);
38647
+ parent.addChild(entity);
38648
+ this.parseChildren(entitiesConfig, entities, childId);
38502
38649
  }
38503
- });
38650
+ }
38504
38651
  };
38505
- return Texture2DDecoder;
38652
+ return PrefabParser;
38506
38653
  }();
38507
- exports.Texture2DDecoder = __decorate([
38508
- decoder("Texture2D")
38509
- ], exports.Texture2DDecoder);
38510
38654
  function _is_native_reflect_construct() {
38511
38655
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
38512
38656
  if (Reflect.construct.sham) return false;
@@ -38681,215 +38825,146 @@
38681
38825
  (function() {
38682
38826
  ReflectionParser.customParseComponentHandles = new Map();
38683
38827
  })();
38684
- var PrefabParser = /*#__PURE__*/ function() {
38685
- var PrefabParser = function PrefabParser() {};
38686
- PrefabParser.parseChildren = function parseChildren(entitiesConfig, entities, parentId) {
38687
- var children = entitiesConfig.get(parentId).children;
38688
- if (children && children.length > 0) {
38689
- var parent = entities.get(parentId);
38690
- for(var i = 0; i < children.length; i++){
38691
- var childId = children[i];
38692
- var entity = entities.get(childId);
38693
- parent.addChild(entity);
38694
- this.parseChildren(entitiesConfig, entities, childId);
38695
- }
38696
- }
38697
- };
38698
- return PrefabParser;
38699
- }();
38700
- var ComponentMap = {
38701
- Transform: Transform,
38702
- Animator: Animator,
38703
- DirectLight: DirectLight,
38704
- Camera: exports.Camera,
38705
- MeshRenderer: MeshRenderer,
38706
- ParticleRenderer: ParticleRenderer,
38707
- PointLight: PointLight,
38708
- SpotLight: SpotLight,
38709
- Script: Script,
38710
- SpriteMask: SpriteMask,
38711
- SpriteRenderer: SpriteRenderer,
38712
- TextRenderer: TextRenderer
38713
- };
38714
- exports.InterpolableValueType = void 0;
38715
- (function(InterpolableValueType) {
38716
- InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
38717
- InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
38718
- InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
38719
- InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
38720
- InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
38721
- InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
38722
- InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
38723
- InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
38724
- InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
38725
- InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
38726
- InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
38727
- })(exports.InterpolableValueType || (exports.InterpolableValueType = {}));
38728
- exports.AnimationClipDecoder = /*#__PURE__*/ function() {
38729
- var AnimationClipDecoder = function AnimationClipDecoder() {};
38730
- AnimationClipDecoder.decode = function decode(engine, bufferReader) {
38731
- return new Promise(function(resolve) {
38732
- var name = bufferReader.nextStr();
38733
- var clip = new AnimationClip(name);
38734
- var eventsLen = bufferReader.nextUint16();
38735
- for(var i = 0; i < eventsLen; ++i){
38736
- var event = new AnimationEvent();
38737
- event.time = bufferReader.nextFloat32();
38738
- event.functionName = bufferReader.nextStr();
38739
- event.parameter = JSON.parse(bufferReader.nextStr()).val;
38740
- clip.addEvent(event);
38741
- }
38742
- var curveBindingsLen = bufferReader.nextUint16();
38743
- for(var i1 = 0; i1 < curveBindingsLen; ++i1){
38744
- var relativePath = bufferReader.nextStr();
38745
- var componentStr = bufferReader.nextStr();
38746
- var componentType = ComponentMap[componentStr];
38747
- var property = bufferReader.nextStr();
38748
- var curve = void 0;
38749
- var interpolation = bufferReader.nextUint8();
38750
- var keysLen = bufferReader.nextUint16();
38751
- var curveType = bufferReader.nextStr();
38752
- switch(curveType){
38753
- case "AnimationFloatCurve":
38754
- {
38755
- curve = new exports.AnimationFloatCurve();
38756
- curve.interpolation = interpolation;
38757
- for(var j = 0; j < keysLen; ++j){
38758
- var keyframe = new Keyframe();
38759
- keyframe.time = bufferReader.nextFloat32();
38760
- keyframe.value = bufferReader.nextFloat32();
38761
- keyframe.inTangent = bufferReader.nextFloat32();
38762
- keyframe.outTangent = bufferReader.nextFloat32();
38763
- curve.addKey(keyframe);
38764
- }
38765
- break;
38766
- }
38767
- case "AnimationArrayCurve":
38768
- {
38769
- curve = new exports.AnimationArrayCurve();
38770
- curve.interpolation = interpolation;
38771
- for(var j1 = 0; j1 < keysLen; ++j1){
38772
- var keyframe1 = new Keyframe();
38773
- keyframe1.time = bufferReader.nextFloat32();
38774
- var len = bufferReader.nextUint16();
38775
- keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
38776
- keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
38777
- keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
38778
- curve.addKey(keyframe1);
38779
- }
38780
- break;
38781
- }
38782
- case "AnimationFloatArrayCurve":
38783
- {
38784
- curve = new exports.AnimationFloatArrayCurve();
38785
- curve.interpolation = interpolation;
38786
- for(var j2 = 0; j2 < keysLen; ++j2){
38787
- var keyframe2 = new Keyframe();
38788
- keyframe2.time = bufferReader.nextFloat32();
38789
- var len1 = bufferReader.nextUint16();
38790
- keyframe2.value = bufferReader.nextFloat32Array(len1);
38791
- keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
38792
- keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
38793
- curve.addKey(keyframe2);
38794
- }
38795
- break;
38796
- }
38797
- case "AnimationVector2Curve":
38798
- {
38799
- curve = new exports.AnimationVector2Curve();
38800
- curve.interpolation = interpolation;
38801
- for(var j3 = 0; j3 < keysLen; ++j3){
38802
- var keyframe3 = new Keyframe();
38803
- keyframe3.time = bufferReader.nextFloat32();
38804
- keyframe3.value = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38805
- keyframe3.inTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38806
- keyframe3.outTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
38807
- curve.addKey(keyframe3);
38808
- }
38809
- break;
38810
- }
38811
- case "AnimationVector3Curve":
38812
- {
38813
- curve = new exports.AnimationVector3Curve();
38814
- curve.interpolation = interpolation;
38815
- for(var j4 = 0; j4 < keysLen; ++j4){
38816
- var keyframe4 = new Keyframe();
38817
- keyframe4.time = bufferReader.nextFloat32();
38818
- keyframe4.value = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38819
- keyframe4.inTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38820
- keyframe4.outTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38821
- curve.addKey(keyframe4);
38822
- }
38823
- break;
38824
- }
38825
- case "AnimationVector4Curve":
38826
- {
38827
- curve = new exports.AnimationVector4Curve();
38828
- curve.interpolation = interpolation;
38829
- var keyframe5 = new Keyframe();
38830
- keyframe5.time = bufferReader.nextFloat32();
38831
- keyframe5.value = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38832
- keyframe5.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38833
- keyframe5.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38834
- curve.addKey(keyframe5);
38835
- break;
38836
- }
38837
- case "AnimationColorCurve":
38838
- {
38839
- curve = new exports.AnimationColorCurve();
38840
- curve.interpolation = interpolation;
38841
- for(var j5 = 0; j5 < keysLen; ++j5){
38842
- var keyframe6 = new Keyframe();
38843
- keyframe6.time = bufferReader.nextFloat32();
38844
- keyframe6.value = new Color$1(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38845
- keyframe6.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38846
- keyframe6.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38847
- curve.addKey(keyframe6);
38848
- }
38849
- break;
38850
- }
38851
- case "AnimationQuaternionCurve":
38852
- {
38853
- curve = new exports.AnimationQuaternionCurve();
38854
- curve.interpolation = interpolation;
38855
- for(var j6 = 0; j6 < keysLen; ++j6){
38856
- var keyframe7 = new Keyframe();
38857
- keyframe7.time = bufferReader.nextFloat32();
38858
- keyframe7.value = new Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38859
- keyframe7.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38860
- keyframe7.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
38861
- curve.addKey(keyframe7);
38862
- }
38863
- break;
38864
- }
38865
- case "AnimationRefCurve":
38866
- {
38867
- curve = new exports.AnimationRefCurve();
38868
- curve.interpolation = interpolation;
38869
- for(var j7 = 0; j7 < keysLen; ++j7){
38870
- var keyframe8 = new Keyframe();
38871
- keyframe8.time = bufferReader.nextFloat32();
38872
- keyframe8.value = JSON.parse(bufferReader.nextStr());
38873
- curve.addKey(keyframe8);
38874
- }
38875
- break;
38876
- }
38828
+ exports.Texture2DDecoder = /*#__PURE__*/ function() {
38829
+ var Texture2DDecoder = function Texture2DDecoder() {};
38830
+ Texture2DDecoder.decode = function decode(engine, bufferReader, restoredTexture) {
38831
+ return new Promise(function(resolve, reject) {
38832
+ var objectId = bufferReader.nextStr();
38833
+ var mipmap = !!bufferReader.nextUint8();
38834
+ var filterMode = bufferReader.nextUint8();
38835
+ var anisoLevel = bufferReader.nextUint8();
38836
+ var wrapModeU = bufferReader.nextUint8();
38837
+ var wrapModeV = bufferReader.nextUint8();
38838
+ var format = bufferReader.nextUint8();
38839
+ var width = bufferReader.nextUint16();
38840
+ var height = bufferReader.nextUint16();
38841
+ var isPixelBuffer = bufferReader.nextUint8();
38842
+ var mipCount = bufferReader.nextUint8();
38843
+ var imagesData = bufferReader.nextImagesData(mipCount);
38844
+ var texture2D = restoredTexture || new Texture2D(engine, width, height, format, mipmap);
38845
+ texture2D.filterMode = filterMode;
38846
+ texture2D.anisoLevel = anisoLevel;
38847
+ texture2D.wrapModeU = wrapModeU;
38848
+ texture2D.wrapModeV = wrapModeV;
38849
+ if (isPixelBuffer) {
38850
+ var pixelBuffer = imagesData[0];
38851
+ texture2D.setPixelBuffer(pixelBuffer);
38852
+ if (mipmap) {
38853
+ texture2D.generateMipmaps();
38854
+ for(var i = 1; i < mipCount; i++){
38855
+ var pixelBuffer1 = imagesData[i];
38856
+ texture2D.setPixelBuffer(pixelBuffer1, i);
38857
+ }
38877
38858
  }
38878
- clip.addCurveBinding(relativePath, componentType, property, curve);
38859
+ // @ts-ignore
38860
+ engine.resourceManager._objectPool[objectId] = texture2D;
38861
+ resolve(texture2D);
38862
+ } else {
38863
+ var blob = new window.Blob([
38864
+ imagesData[0]
38865
+ ]);
38866
+ var img = new Image();
38867
+ img.onload = function() {
38868
+ texture2D.setImageSource(img);
38869
+ var completedCount = 0;
38870
+ var onComplete = function onComplete() {
38871
+ completedCount++;
38872
+ if (completedCount >= mipCount) {
38873
+ resolve(texture2D);
38874
+ }
38875
+ };
38876
+ onComplete();
38877
+ if (mipmap) {
38878
+ var _loop = function _loop(i) {
38879
+ var blob = new window.Blob([
38880
+ imagesData[i]
38881
+ ]);
38882
+ var img = new Image();
38883
+ img.onload = function() {
38884
+ texture2D.setImageSource(img, i);
38885
+ onComplete();
38886
+ };
38887
+ img.src = URL.createObjectURL(blob);
38888
+ };
38889
+ texture2D.generateMipmaps();
38890
+ for(var i = 1; i < mipCount; i++)_loop(i);
38891
+ }
38892
+ };
38893
+ img.src = URL.createObjectURL(blob);
38879
38894
  }
38880
- resolve(clip);
38881
38895
  });
38882
38896
  };
38883
- return AnimationClipDecoder;
38897
+ return Texture2DDecoder;
38884
38898
  }();
38885
- exports.AnimationClipDecoder = __decorate([
38886
- decoder("AnimationClip")
38887
- ], exports.AnimationClipDecoder);
38888
- exports.SpecularMode = void 0;
38889
- (function(SpecularMode) {
38890
- SpecularMode["Sky"] = "Sky";
38891
- SpecularMode["Custom"] = "Custom";
38892
- })(exports.SpecularMode || (exports.SpecularMode = {}));
38899
+ exports.Texture2DDecoder = __decorate([
38900
+ decoder("Texture2D")
38901
+ ], exports.Texture2DDecoder);
38902
+ exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
38903
+ var EditorTextureLoader = function EditorTextureLoader() {
38904
+ return Loader1.apply(this, arguments);
38905
+ };
38906
+ _inherits(EditorTextureLoader, Loader1);
38907
+ var _proto = EditorTextureLoader.prototype;
38908
+ _proto.load = function load(item, resourceManager) {
38909
+ var _this = this;
38910
+ return new AssetPromise(function(resolve, reject) {
38911
+ var request = _this.request;
38912
+ request(item.url, _extends({}, item, {
38913
+ type: "arraybuffer"
38914
+ })).then(function(data) {
38915
+ decode(data, resourceManager.engine).then(function(texture) {
38916
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
38917
+ var _class = function _class() {
38918
+ return ContentRestorer.apply(this, arguments);
38919
+ };
38920
+ _inherits(_class, ContentRestorer);
38921
+ var _proto = _class.prototype;
38922
+ _proto.restoreContent = function restoreContent() {
38923
+ return request(item.url, _extends({}, item, {
38924
+ type: "arraybuffer"
38925
+ })).then(function(data) {
38926
+ return decode(data, resourceManager.engine, texture);
38927
+ });
38928
+ };
38929
+ return _class;
38930
+ }(ContentRestorer))(texture));
38931
+ resolve(texture);
38932
+ });
38933
+ }).catch(reject);
38934
+ });
38935
+ };
38936
+ return EditorTextureLoader;
38937
+ }(Loader);
38938
+ exports.EditorTextureLoader = __decorate([
38939
+ resourceLoader("EditorTexture2D", [
38940
+ "prefab"
38941
+ ], true)
38942
+ ], exports.EditorTextureLoader);
38943
+ exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
38944
+ var MeshLoader = function MeshLoader() {
38945
+ return Loader1.apply(this, arguments);
38946
+ };
38947
+ _inherits(MeshLoader, Loader1);
38948
+ var _proto = MeshLoader.prototype;
38949
+ _proto.load = function load(item, resourceManager) {
38950
+ var _this = this;
38951
+ return new AssetPromise(function(resolve, reject) {
38952
+ _this.request(item.url, {
38953
+ type: "arraybuffer"
38954
+ }).then(function(data) {
38955
+ decode(data, resourceManager.engine).then(function(mesh) {
38956
+ resolve(mesh);
38957
+ });
38958
+ }).catch(reject);
38959
+ });
38960
+ };
38961
+ return MeshLoader;
38962
+ }(Loader);
38963
+ exports.MeshLoader = __decorate([
38964
+ resourceLoader("Mesh", [
38965
+ "prefab"
38966
+ ], true)
38967
+ ], exports.MeshLoader);
38893
38968
  function _array_like_to_array(arr, len) {
38894
38969
  if (len == null || len > arr.length) len = arr.length;
38895
38970
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -39036,65 +39111,24 @@
39036
39111
  };
39037
39112
  return SceneParser;
39038
39113
  }();
39039
- exports.MeshLoader = /*#__PURE__*/ function(Loader1) {
39040
- var MeshLoader = function MeshLoader() {
39041
- return Loader1.apply(this, arguments);
39042
- };
39043
- _inherits(MeshLoader, Loader1);
39044
- var _proto = MeshLoader.prototype;
39045
- _proto.load = function load(item, resourceManager) {
39046
- var _this = this;
39047
- return new AssetPromise(function(resolve, reject) {
39048
- _this.request(item.url, {
39049
- type: "arraybuffer"
39050
- }).then(function(data) {
39051
- decode(data, resourceManager.engine).then(function(mesh) {
39052
- resolve(mesh);
39053
- });
39054
- }).catch(reject);
39055
- });
39056
- };
39057
- return MeshLoader;
39058
- }(Loader);
39059
- exports.MeshLoader = __decorate([
39060
- resourceLoader("Mesh", [
39061
- "prefab"
39062
- ], true)
39063
- ], exports.MeshLoader);
39064
- exports.EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
39065
- var EditorTextureLoader = function EditorTextureLoader() {
39066
- return Loader1.apply(this, arguments);
39067
- };
39068
- _inherits(EditorTextureLoader, Loader1);
39069
- var _proto = EditorTextureLoader.prototype;
39070
- _proto.load = function load(item, resourceManager) {
39071
- var _this = this;
39072
- return new AssetPromise(function(resolve, reject) {
39073
- _this.request(item.url, {
39074
- type: "arraybuffer"
39075
- }).then(function(data) {
39076
- decode(data, resourceManager.engine).then(function(texture) {
39077
- resolve(texture);
39078
- });
39079
- }).catch(reject);
39080
- });
39081
- };
39082
- return EditorTextureLoader;
39083
- }(Loader);
39084
- exports.EditorTextureLoader = __decorate([
39085
- resourceLoader("EditorTexture2D", [
39086
- "prefab"
39087
- ], true)
39088
- ], exports.EditorTextureLoader);
39114
+ exports.SpecularMode = void 0;
39115
+ (function(SpecularMode) {
39116
+ SpecularMode["Sky"] = "Sky";
39117
+ SpecularMode["Custom"] = "Custom";
39118
+ })(exports.SpecularMode || (exports.SpecularMode = {}));
39089
39119
  /**
39090
39120
  * Decode engine binary resource.
39091
39121
  * @param arrayBuffer - array buffer of decode binary file
39092
39122
  * @param engine - engine
39093
39123
  * @returns
39094
39124
  */ function decode(arrayBuffer, engine) {
39125
+ for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
39126
+ args[_key - 2] = arguments[_key];
39127
+ }
39128
+ var _decoderMap_header_type;
39095
39129
  var header = FileHeader.decode(arrayBuffer);
39096
39130
  var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength);
39097
- return decoderMap[header.type].decode(engine, bufferReader).then(function(object) {
39131
+ return (_decoderMap_header_type = decoderMap[header.type]).decode.apply(_decoderMap_header_type, [].concat(engine, bufferReader, args)).then(function(object) {
39098
39132
  object.name = header.name;
39099
39133
  return object;
39100
39134
  });
@@ -39258,39 +39292,42 @@
39258
39292
  ], false)
39259
39293
  ], BufferLoader);
39260
39294
  var EnvLoader = /*#__PURE__*/ function(Loader1) {
39261
- var EnvLoader = function EnvLoader() {
39295
+ var EnvLoader1 = function EnvLoader1() {
39262
39296
  return Loader1.apply(this, arguments);
39263
39297
  };
39264
- _inherits(EnvLoader, Loader1);
39265
- var _proto = EnvLoader.prototype;
39298
+ _inherits(EnvLoader1, Loader1);
39299
+ var _proto = EnvLoader1.prototype;
39266
39300
  _proto.load = function load(item, resourceManager) {
39267
39301
  var _this = this;
39268
39302
  return new AssetPromise(function(resolve, reject) {
39269
- _this.request(item.url, {
39303
+ var engine = resourceManager.engine;
39304
+ var request = _this.request;
39305
+ request(item.url, _extends({}, item, {
39270
39306
  type: "arraybuffer"
39271
- }).then(function(arraybuffer) {
39272
- var _this;
39273
- var shArray = new Float32Array(arraybuffer, 0, 27);
39274
- var shByteLength = 27 * 4;
39275
- var size = (_this = new Uint16Array(arraybuffer, shByteLength, 1)) == null ? void 0 : _this[0];
39276
- var engine = resourceManager.engine;
39277
- var texture = new TextureCube(engine, size);
39278
- texture.filterMode = exports.TextureFilterMode.Trilinear;
39279
- var mipmapCount = texture.mipmapCount;
39280
- var offset = shByteLength + 2;
39281
- for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
39282
- var mipSize = size >> mipLevel;
39283
- for(var face = 0; face < 6; face++){
39284
- var dataSize = mipSize * mipSize * 4;
39285
- var data = new Uint8Array(arraybuffer, offset, dataSize);
39286
- offset += dataSize;
39287
- texture.setPixelBuffer(exports.TextureCubeFace.PositiveX + face, data, mipLevel);
39288
- }
39289
- }
39307
+ })).then(function(arraybuffer) {
39308
+ var texture = EnvLoader._setTextureByBuffer(engine, arraybuffer);
39309
+ engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
39310
+ var _class = function _class() {
39311
+ return ContentRestorer.apply(this, arguments);
39312
+ };
39313
+ _inherits(_class, ContentRestorer);
39314
+ var _proto = _class.prototype;
39315
+ _proto.restoreContent = function restoreContent() {
39316
+ return new AssetPromise(function(resolve, reject) {
39317
+ request(item.url, _extends({}, item, {
39318
+ type: "arraybuffer"
39319
+ })).then(function(buffer) {
39320
+ EnvLoader._setTextureByBuffer(engine, buffer, texture);
39321
+ resolve(texture);
39322
+ }).catch(reject);
39323
+ });
39324
+ };
39325
+ return _class;
39326
+ }(ContentRestorer))(texture));
39290
39327
  var ambientLight = new AmbientLight(engine);
39291
39328
  var sh = new SphericalHarmonics3();
39292
39329
  ambientLight.diffuseMode = exports.DiffuseMode.SphericalHarmonics;
39293
- sh.copyFromArray(shArray);
39330
+ sh.copyFromArray(new Float32Array(arraybuffer, 0, 27));
39294
39331
  ambientLight.diffuseSphericalHarmonics = sh;
39295
39332
  ambientLight.specularTexture = texture;
39296
39333
  ambientLight.specularTextureDecodeRGBM = true;
@@ -39300,7 +39337,28 @@
39300
39337
  });
39301
39338
  });
39302
39339
  };
39303
- return EnvLoader;
39340
+ /**
39341
+ * @internal
39342
+ */ EnvLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
39343
+ var _this;
39344
+ var shByteLength = 27 * 4;
39345
+ var size = (_this = new Uint16Array(buffer, shByteLength, 1)) == null ? void 0 : _this[0];
39346
+ texture || (texture = new TextureCube(engine, size));
39347
+ texture.filterMode = exports.TextureFilterMode.Trilinear;
39348
+ var mipmapCount = texture.mipmapCount;
39349
+ var offset = shByteLength + 2;
39350
+ for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
39351
+ var mipSize = size >> mipLevel;
39352
+ for(var face = 0; face < 6; face++){
39353
+ var dataSize = mipSize * mipSize * 4;
39354
+ var data = new Uint8Array(buffer, offset, dataSize);
39355
+ offset += dataSize;
39356
+ texture.setPixelBuffer(exports.TextureCubeFace.PositiveX + face, data, mipLevel);
39357
+ }
39358
+ }
39359
+ return texture;
39360
+ };
39361
+ return EnvLoader1;
39304
39362
  }(Loader);
39305
39363
  EnvLoader = __decorate([
39306
39364
  resourceLoader(exports.AssetType.Env, [
@@ -39579,7 +39637,7 @@
39579
39637
  var glTFItems = this.glTF[glTFSchemaMap[type]];
39580
39638
  if (glTFItems && (index === undefined || glTFItems[index])) {
39581
39639
  if (index === undefined) {
39582
- resource = type === 7 ? glTFItems.map(function(_, index) {
39640
+ resource = type === 8 ? glTFItems.map(function(_, index) {
39583
39641
  return _this.get(type, index);
39584
39642
  }) : Promise.all(glTFItems.map(function(_, index) {
39585
39643
  return _this.get(type, index);
@@ -39601,11 +39659,11 @@
39601
39659
  _this.glTF = json;
39602
39660
  return Promise.all([
39603
39661
  _this.get(1),
39604
- _this.get(4),
39605
39662
  _this.get(5),
39606
39663
  _this.get(6),
39607
- _this.get(8),
39664
+ _this.get(7),
39608
39665
  _this.get(9),
39666
+ _this.get(10),
39609
39667
  _this.get(2)
39610
39668
  ]).then(function() {
39611
39669
  var glTFResource = _this.glTFResource;
@@ -39643,7 +39701,7 @@
39643
39701
  var _this = this;
39644
39702
  var glTFResourceKey = glTFResourceMap[type];
39645
39703
  if (!glTFResourceKey) return;
39646
- if (type === 7) {
39704
+ if (type === 8) {
39647
39705
  var _this_glTFResource, _glTFResourceKey;
39648
39706
  ((_this_glTFResource = this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = resource;
39649
39707
  } else {
@@ -39651,7 +39709,7 @@
39651
39709
  resource.then(function(item) {
39652
39710
  var _this_glTFResource, _glTFResourceKey;
39653
39711
  ((_this_glTFResource = _this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = item;
39654
- if (type === 6) {
39712
+ if (type === 7) {
39655
39713
  for(var i = 0, length = item.length; i < length; i++){
39656
39714
  var mesh = item[i];
39657
39715
  // @ts-ignore
@@ -39691,17 +39749,18 @@
39691
39749
  GLTFParserType[GLTFParserType["Validator"] = 1] = "Validator";
39692
39750
  GLTFParserType[GLTFParserType["Scene"] = 2] = "Scene";
39693
39751
  GLTFParserType[GLTFParserType["Buffer"] = 3] = "Buffer";
39694
- GLTFParserType[GLTFParserType["Texture"] = 4] = "Texture";
39695
- GLTFParserType[GLTFParserType["Material"] = 5] = "Material";
39696
- GLTFParserType[GLTFParserType["Mesh"] = 6] = "Mesh";
39697
- GLTFParserType[GLTFParserType["Entity"] = 7] = "Entity";
39698
- GLTFParserType[GLTFParserType["Skin"] = 8] = "Skin";
39699
- GLTFParserType[GLTFParserType["Animation"] = 9] = "Animation";
39752
+ GLTFParserType[GLTFParserType["BufferView"] = 4] = "BufferView";
39753
+ GLTFParserType[GLTFParserType["Texture"] = 5] = "Texture";
39754
+ GLTFParserType[GLTFParserType["Material"] = 6] = "Material";
39755
+ GLTFParserType[GLTFParserType["Mesh"] = 7] = "Mesh";
39756
+ GLTFParserType[GLTFParserType["Entity"] = 8] = "Entity";
39757
+ GLTFParserType[GLTFParserType["Skin"] = 9] = "Skin";
39758
+ GLTFParserType[GLTFParserType["Animation"] = 10] = "Animation";
39700
39759
  })(exports.GLTFParserType || (exports.GLTFParserType = {}));
39701
39760
  var _obj;
39702
- var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[4] = "textures", _obj[5] = "materials", _obj[6] = "meshes", _obj[7] = "nodes", _obj[8] = "skins", _obj[9] = "animations", _obj);
39761
+ var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[5] = "textures", _obj[6] = "materials", _obj[7] = "meshes", _obj[8] = "nodes", _obj[9] = "skins", _obj[10] = "animations", _obj[4] = "bufferViews", _obj);
39703
39762
  var _obj1;
39704
- var glTFResourceMap = (_obj1 = {}, _obj1[2] = "sceneRoots", _obj1[4] = "textures", _obj1[5] = "materials", _obj1[6] = "meshes", _obj1[7] = "entities", _obj1[8] = "skins", _obj1[9] = "animations", _obj1);
39763
+ var glTFResourceMap = (_obj1 = {}, _obj1[2] = "sceneRoots", _obj1[5] = "textures", _obj1[6] = "materials", _obj1[7] = "meshes", _obj1[8] = "entities", _obj1[9] = "skins", _obj1[10] = "animations", _obj1);
39705
39764
  function registerGLTFParser(pipeline) {
39706
39765
  return function(Parser) {
39707
39766
  var parser = new Parser();
@@ -39805,113 +39864,68 @@
39805
39864
  };
39806
39865
  GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
39807
39866
  var componentType = accessor.componentType;
39808
- var _accessor_bufferView;
39809
- var bufferViewIndex = (_accessor_bufferView = accessor.bufferView) != null ? _accessor_bufferView : 0;
39810
- var bufferView = bufferViews[bufferViewIndex];
39811
- return context.get(exports.GLTFParserType.Buffer).then(function(buffers) {
39812
- var bufferIndex = bufferView.buffer;
39813
- var buffer = buffers[bufferIndex];
39814
- var _bufferView_byteOffset;
39815
- var bufferByteOffset = (_bufferView_byteOffset = bufferView.byteOffset) != null ? _bufferView_byteOffset : 0;
39816
- var _accessor_byteOffset;
39817
- var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
39818
- var TypedArray = GLTFUtils.getComponentType(componentType);
39819
- var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
39820
- var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
39821
- var elementStride = dataElementSize * dataElementBytes;
39822
- var accessorCount = accessor.count;
39823
- var bufferStride = bufferView.byteStride;
39824
- var bufferInfo;
39825
- // According to the glTF official documentation only byteStride not undefined is allowed
39826
- if (bufferStride !== undefined && bufferStride !== elementStride) {
39827
- var bufferSlice = Math.floor(byteOffset / bufferStride);
39828
- var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
39829
- var accessorBufferCache = context.accessorBufferCache;
39830
- bufferInfo = accessorBufferCache[bufferCacheKey];
39831
- if (!bufferInfo) {
39832
- var offset = bufferByteOffset + bufferSlice * bufferStride;
39833
- var count = accessorCount * (bufferStride / dataElementBytes);
39834
- var data = new TypedArray(buffer, offset, count);
39835
- accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
39836
- bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
39867
+ var TypedArray = GLTFUtils.getComponentType(componentType);
39868
+ var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
39869
+ var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
39870
+ var elementStride = dataElementSize * dataElementBytes;
39871
+ var accessorCount = accessor.count;
39872
+ var promise;
39873
+ if (accessor.bufferView !== undefined) {
39874
+ var bufferViewIndex = accessor.bufferView;
39875
+ var bufferView = bufferViews[bufferViewIndex];
39876
+ promise = context.get(exports.GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
39877
+ var bufferIndex = bufferView.buffer;
39878
+ var _bufferViewData_byteOffset;
39879
+ var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
39880
+ var _accessor_byteOffset;
39881
+ var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
39882
+ var bufferStride = bufferView.byteStride;
39883
+ var bufferInfo;
39884
+ // According to the glTF official documentation only byteStride not undefined is allowed
39885
+ if (bufferStride !== undefined && bufferStride !== elementStride) {
39886
+ var bufferSlice = Math.floor(byteOffset / bufferStride);
39887
+ var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
39888
+ var accessorBufferCache = context.accessorBufferCache;
39889
+ bufferInfo = accessorBufferCache[bufferCacheKey];
39890
+ if (!bufferInfo) {
39891
+ var offset = bufferByteOffset + bufferSlice * bufferStride;
39892
+ var count = accessorCount * (bufferStride / dataElementBytes);
39893
+ var data = new TypedArray(bufferViewData.buffer, offset, count);
39894
+ accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
39895
+ bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
39896
+ }
39897
+ } else {
39898
+ var offset1 = bufferByteOffset + byteOffset;
39899
+ var count1 = accessorCount * dataElementSize;
39900
+ var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
39901
+ bufferInfo = new BufferInfo(data1, false, elementStride);
39902
+ bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
39837
39903
  }
39838
- } else {
39839
- var offset1 = bufferByteOffset + byteOffset;
39840
- var count1 = accessorCount * dataElementSize;
39841
- var data1 = new TypedArray(buffer, offset1, count1);
39842
- bufferInfo = new BufferInfo(data1, false, elementStride);
39843
- bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
39844
- }
39845
- if (accessor.sparse) {
39846
- GLTFUtils.processingSparseData(bufferViews, accessor, buffers, bufferInfo);
39847
- }
39848
- return bufferInfo;
39849
- });
39904
+ return bufferInfo;
39905
+ });
39906
+ } else {
39907
+ var count = accessorCount * dataElementSize;
39908
+ var data = new TypedArray(count);
39909
+ var bufferInfo = new BufferInfo(data, false, elementStride);
39910
+ bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
39911
+ promise = Promise.resolve(bufferInfo);
39912
+ }
39913
+ return accessor.sparse ? promise.then(function(bufferInfo) {
39914
+ return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
39915
+ return bufferInfo;
39916
+ });
39917
+ }) : promise;
39850
39918
  };
39851
- GLTFUtils.bufferToVector3Array = function bufferToVector3Array(data, byteStride, accessorByteOffset, count) {
39852
- var bytesPerElement = data.BYTES_PER_ELEMENT;
39853
- var offset = accessorByteOffset % byteStride / bytesPerElement;
39854
- var stride = byteStride / bytesPerElement;
39855
- var vector3s = new Array(count);
39919
+ GLTFUtils.bufferToVector3Array = function bufferToVector3Array(buffer, byteOffset, count, normalized, componentType) {
39920
+ var baseOffset = byteOffset / buffer.BYTES_PER_ELEMENT;
39921
+ var stride = buffer.length / count;
39922
+ var vertices = new Array(count);
39923
+ var factor = normalized ? GLTFUtils.getNormalizedComponentScale(componentType) : 1;
39856
39924
  for(var i = 0; i < count; i++){
39857
- var index = offset + i * stride;
39858
- vector3s[i] = new Vector3(data[index], data[index + 1], data[index + 2]);
39859
- }
39860
- return vector3s;
39861
- };
39862
- /**
39863
- * @deprecated
39864
- * Get accessor data.
39865
- */ GLTFUtils.getAccessorData = function getAccessorData(glTF, accessor, buffers) {
39866
- var bufferViews = glTF.bufferViews;
39867
- var _accessor_bufferView;
39868
- var bufferView = bufferViews[(_accessor_bufferView = accessor.bufferView) != null ? _accessor_bufferView : 0];
39869
- var arrayBuffer = buffers[bufferView.buffer];
39870
- var accessorByteOffset = accessor.hasOwnProperty("byteOffset") ? accessor.byteOffset : 0;
39871
- var bufferViewByteOffset = bufferView.hasOwnProperty("byteOffset") ? bufferView.byteOffset : 0;
39872
- var byteOffset = accessorByteOffset + bufferViewByteOffset;
39873
- var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
39874
- var length = accessorTypeSize * accessor.count;
39875
- var _bufferView_byteStride;
39876
- var byteStride = (_bufferView_byteStride = bufferView.byteStride) != null ? _bufferView_byteStride : 0;
39877
- var arrayType = GLTFUtils.getComponentType(accessor.componentType);
39878
- var uint8Array;
39879
- if (byteStride) {
39880
- var accessorByteSize = accessorTypeSize * arrayType.BYTES_PER_ELEMENT;
39881
- uint8Array = new Uint8Array(accessor.count * accessorByteSize);
39882
- var originalBufferView = new Uint8Array(arrayBuffer, bufferViewByteOffset, bufferView.byteLength);
39883
- for(var i = 0; i < accessor.count; i++){
39884
- for(var j = 0; j < accessorByteSize; j++){
39885
- uint8Array[i * accessorByteSize + j] = originalBufferView[i * byteStride + accessorByteOffset + j];
39886
- }
39887
- }
39888
- } else {
39889
- uint8Array = new Uint8Array(arrayBuffer.slice(byteOffset, byteOffset + length * arrayType.BYTES_PER_ELEMENT));
39890
- }
39891
- var typedArray = new arrayType(uint8Array.buffer);
39892
- if (accessor.sparse) {
39893
- var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
39894
- var indicesBufferView = bufferViews[indices.bufferView];
39895
- var valuesBufferView = bufferViews[values.bufferView];
39896
- var indicesArrayBuffer = buffers[indicesBufferView.buffer];
39897
- var valuesArrayBuffer = buffers[valuesBufferView.buffer];
39898
- var _indices_byteOffset, _indicesBufferView_byteOffset;
39899
- var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesBufferView_byteOffset = indicesBufferView.byteOffset) != null ? _indicesBufferView_byteOffset : 0);
39900
- var indicesByteLength = indicesBufferView.byteLength;
39901
- var _values_byteOffset, _valuesBufferView_byteOffset;
39902
- var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesBufferView_byteOffset = valuesBufferView.byteOffset) != null ? _valuesBufferView_byteOffset : 0);
39903
- var valuesByteLength = valuesBufferView.byteLength;
39904
- var indicesType = GLTFUtils.getComponentType(indices.componentType);
39905
- var indicesArray = new indicesType(indicesArrayBuffer, indicesByteOffset, indicesByteLength / indicesType.BYTES_PER_ELEMENT);
39906
- var valuesArray = new arrayType(valuesArrayBuffer, valuesByteOffset, valuesByteLength / arrayType.BYTES_PER_ELEMENT);
39907
- for(var i1 = 0; i1 < count; i1++){
39908
- var replaceIndex = indicesArray[i1];
39909
- for(var j1 = 0; j1 < accessorTypeSize; j1++){
39910
- typedArray[replaceIndex * accessorTypeSize + j1] = valuesArray[i1 * accessorTypeSize + j1];
39911
- }
39912
- }
39925
+ var index = baseOffset + i * stride;
39926
+ vertices[i] = new Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
39913
39927
  }
39914
- return typedArray;
39928
+ return vertices;
39915
39929
  };
39916
39930
  GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
39917
39931
  var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
@@ -39920,40 +39934,43 @@
39920
39934
  };
39921
39935
  /**
39922
39936
  * Get accessor data.
39923
- */ GLTFUtils.processingSparseData = function processingSparseData(bufferViews, accessor, buffers, bufferInfo) {
39937
+ */ GLTFUtils.processingSparseData = function processingSparseData(context, accessor, bufferInfo) {
39924
39938
  var restoreInfo = bufferInfo.restoreInfo;
39939
+ var bufferViews = context.glTF.bufferViews;
39925
39940
  var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
39926
39941
  var TypedArray = GLTFUtils.getComponentType(accessor.componentType);
39927
39942
  var data = bufferInfo.data.slice();
39928
39943
  var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
39929
39944
  var indicesBufferView = bufferViews[indices.bufferView];
39930
39945
  var valuesBufferView = bufferViews[values.bufferView];
39931
- var indicesBufferIndex = indicesBufferView.buffer;
39932
- var valuesBufferIndex = valuesBufferView.buffer;
39933
- var indicesArrayBuffer = buffers[indicesBufferIndex];
39934
- var valuesArrayBuffer = buffers[valuesBufferIndex];
39935
- var _indices_byteOffset, _indicesBufferView_byteOffset;
39936
- var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesBufferView_byteOffset = indicesBufferView.byteOffset) != null ? _indicesBufferView_byteOffset : 0);
39937
- var indicesByteLength = indicesBufferView.byteLength;
39938
- var _values_byteOffset, _valuesBufferView_byteOffset;
39939
- var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesBufferView_byteOffset = valuesBufferView.byteOffset) != null ? _valuesBufferView_byteOffset : 0);
39940
- var valuesByteLength = valuesBufferView.byteLength;
39941
- restoreInfo.typeSize = accessorTypeSize;
39942
- restoreInfo.sparseCount = count;
39943
- var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
39944
- var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
39945
- var indicesArray = new IndexTypeArray(indicesArrayBuffer, indicesByteOffset, indexLength);
39946
- restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferIndex, IndexTypeArray, indicesByteOffset, indexLength);
39947
- var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
39948
- var valuesArray = new TypedArray(valuesArrayBuffer, valuesByteOffset, valueLength);
39949
- restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferIndex, TypedArray, valuesByteOffset, valueLength);
39950
- for(var i = 0; i < count; i++){
39951
- var replaceIndex = indicesArray[i];
39952
- for(var j = 0; j < accessorTypeSize; j++){
39953
- data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
39946
+ return Promise.all([
39947
+ context.get(exports.GLTFParserType.BufferView, indices.bufferView),
39948
+ context.get(exports.GLTFParserType.BufferView, values.bufferView)
39949
+ ]).then(function(param) {
39950
+ var indicesUint8Array = param[0], valuesUin8Array = param[1];
39951
+ var _indices_byteOffset, _indicesUint8Array_byteOffset;
39952
+ var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesUint8Array_byteOffset = indicesUint8Array.byteOffset) != null ? _indicesUint8Array_byteOffset : 0);
39953
+ var indicesByteLength = indicesUint8Array.byteLength;
39954
+ var _values_byteOffset, _valuesUin8Array_byteOffset;
39955
+ var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesUin8Array_byteOffset = valuesUin8Array.byteOffset) != null ? _valuesUin8Array_byteOffset : 0);
39956
+ var valuesByteLength = valuesUin8Array.byteLength;
39957
+ restoreInfo.typeSize = accessorTypeSize;
39958
+ restoreInfo.sparseCount = count;
39959
+ var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
39960
+ var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
39961
+ var indicesArray = new IndexTypeArray(indicesUint8Array.buffer, indicesByteOffset, indexLength);
39962
+ restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferView.buffer, IndexTypeArray, indicesByteOffset, indexLength);
39963
+ var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
39964
+ var valuesArray = new TypedArray(valuesUin8Array.buffer, valuesByteOffset, valueLength);
39965
+ restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferView.buffer, TypedArray, valuesByteOffset, valueLength);
39966
+ for(var i = 0; i < count; i++){
39967
+ var replaceIndex = indicesArray[i];
39968
+ for(var j = 0; j < accessorTypeSize; j++){
39969
+ data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
39970
+ }
39954
39971
  }
39955
- }
39956
- bufferInfo.data = data;
39972
+ bufferInfo.data = data;
39973
+ });
39957
39974
  };
39958
39975
  GLTFUtils.getIndexFormat = function getIndexFormat(type) {
39959
39976
  switch(type){
@@ -40051,28 +40068,29 @@
40051
40068
  BIN: 0x004e4942
40052
40069
  };
40053
40070
  var dataView = new DataView(originBuffer);
40054
- // read header
40071
+ // Read header
40055
40072
  var header = {
40056
40073
  magic: dataView.getUint32(0, true),
40057
40074
  version: dataView.getUint32(UINT32_LENGTH, true),
40058
40075
  length: dataView.getUint32(2 * UINT32_LENGTH, true)
40059
40076
  };
40077
+ // Return the original buffer if it is not a glb
40060
40078
  if (header.magic !== GLB_HEADER_MAGIC) {
40061
40079
  return {
40062
40080
  originBuffer: originBuffer
40063
40081
  };
40064
40082
  }
40065
- // read main data
40083
+ // Read main data
40066
40084
  var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
40067
40085
  var chunkType = dataView.getUint32(GLB_HEADER_LENGTH + UINT32_LENGTH, true);
40068
- // read glTF json
40086
+ // Read glTF json
40069
40087
  if (chunkType !== GLB_CHUNK_TYPES.JSON) {
40070
40088
  console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
40071
40089
  return null;
40072
40090
  }
40073
40091
  var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
40074
40092
  var glTF = JSON.parse(Utils.decodeText(glTFData));
40075
- // read all buffers
40093
+ // Read all buffers
40076
40094
  var buffers = [];
40077
40095
  var byteOffset = GLB_HEADER_LENGTH + 2 * UINT32_LENGTH + chunkLength;
40078
40096
  var restoreGLBBufferSlice = context.contentRestorer.glbBufferSlices;
@@ -40953,13 +40971,39 @@
40953
40971
  /**
40954
40972
  * @internal
40955
40973
  */ _proto.load = function load(item, resourceManager) {
40956
- return this.request(item.url, {
40957
- type: "arraybuffer"
40958
- }).then(function(buffer) {
40959
- return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
40960
- var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
40961
- return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
40962
- });
40974
+ var _this = this;
40975
+ return new AssetPromise(function(resolve, reject) {
40976
+ var request = _this.request;
40977
+ request(item.url, _extends({}, item, {
40978
+ type: "arraybuffer"
40979
+ })).then(function(buffer) {
40980
+ return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
40981
+ var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
40982
+ return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
40983
+ }).then(function(texture) {
40984
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
40985
+ var _class = function _class() {
40986
+ return ContentRestorer.apply(this, arguments);
40987
+ };
40988
+ _inherits(_class, ContentRestorer);
40989
+ var _proto = _class.prototype;
40990
+ _proto.restoreContent = function restoreContent() {
40991
+ return new AssetPromise(function(resolve, reject) {
40992
+ request(item.url, _extends({}, item, {
40993
+ type: "arraybuffer"
40994
+ })).then(function(buffer) {
40995
+ return exports.KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
40996
+ var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
40997
+ return exports.KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params, texture);
40998
+ });
40999
+ }).then(resolve).catch(reject);
41000
+ });
41001
+ };
41002
+ return _class;
41003
+ }(ContentRestorer))(texture));
41004
+ resolve(texture);
41005
+ });
41006
+ }).catch(reject);
40963
41007
  });
40964
41008
  };
40965
41009
  /**
@@ -40998,7 +41042,7 @@
40998
41042
  };
40999
41043
  });
41000
41044
  };
41001
- /** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params) {
41045
+ /** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params, restoredTexture) {
41002
41046
  var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
41003
41047
  var faceCount = faces.length;
41004
41048
  var mipmaps = faces[0];
@@ -41006,13 +41050,13 @@
41006
41050
  var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
41007
41051
  var texture;
41008
41052
  if (faceCount !== 6) {
41009
- texture = new Texture2D(engine, width, height, engineFormat, mipmap);
41053
+ texture = restoredTexture || new Texture2D(engine, width, height, engineFormat, mipmap);
41010
41054
  for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
41011
41055
  var data = mipmaps[mipLevel].data;
41012
41056
  texture.setPixelBuffer(data, mipLevel);
41013
41057
  }
41014
41058
  } else {
41015
- texture = new TextureCube(engine, height, engineFormat, mipmap);
41059
+ texture = restoredTexture || new TextureCube(engine, height, engineFormat, mipmap);
41016
41060
  for(var i = 0; i < faces.length; i++){
41017
41061
  var faceData = faces[i];
41018
41062
  for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
@@ -41208,16 +41252,16 @@
41208
41252
  var frame = restoreInfo.blendShape.frames[0];
41209
41253
  var position = restoreInfo.position;
41210
41254
  var positionData = _this._getBufferData(buffers, position.buffer);
41211
- frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.stride, position.byteOffset, position.count);
41255
+ frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.byteOffset, position.count, position.normalized, position.componentType);
41212
41256
  if (restoreInfo.normal) {
41213
41257
  var normal = restoreInfo.normal;
41214
41258
  var normalData = _this._getBufferData(buffers, normal.buffer);
41215
- frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.stride, normal.byteOffset, normal.count);
41259
+ frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.byteOffset, normal.count, normal.normalized, normal.componentType);
41216
41260
  }
41217
41261
  if (restoreInfo.tangent) {
41218
41262
  var tangent = restoreInfo.tangent;
41219
41263
  var tangentData = _this._getBufferData(buffers, tangent.buffer);
41220
- frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.stride, tangent.byteOffset, tangent.count);
41264
+ frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.byteOffset, tangent.count, tangent.normalized, tangent.componentType);
41221
41265
  }
41222
41266
  }
41223
41267
  mesh.uploadData(true);
@@ -41229,8 +41273,13 @@
41229
41273
  };
41230
41274
  _proto._getBufferData = function _getBufferData(buffers, restoreInfo) {
41231
41275
  var main = restoreInfo.main;
41232
- var buffer = buffers[main.bufferIndex];
41233
- var data = new main.TypedArray(buffer, main.byteOffset, main.length);
41276
+ var data;
41277
+ if (main) {
41278
+ var buffer = buffers[main.bufferIndex];
41279
+ data = new main.TypedArray(buffer, main.byteOffset, main.length);
41280
+ } else {
41281
+ data = new main.TypedArray(main.length);
41282
+ }
41234
41283
  var sparseCount = restoreInfo.sparseCount;
41235
41284
  if (sparseCount) {
41236
41285
  var sparseIndex = restoreInfo.sparseIndices;
@@ -41303,11 +41352,12 @@
41303
41352
  };
41304
41353
  /**
41305
41354
  * @internal
41306
- */ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, stride, byteOffset, count) {
41355
+ */ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, byteOffset, count, normalized, componentType) {
41307
41356
  this.buffer = buffer;
41308
- this.stride = stride;
41309
41357
  this.byteOffset = byteOffset;
41310
41358
  this.count = count;
41359
+ this.normalized = normalized;
41360
+ this.componentType = componentType;
41311
41361
  };
41312
41362
  /**
41313
41363
  * Base class of glTF extension parser.
@@ -41481,8 +41531,13 @@
41481
41531
  type: "arraybuffer"
41482
41532
  };
41483
41533
  return request(url, requestConfig).then(function(buffer) {
41484
- restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
41485
- return GLTFUtils.parseGLB(context, buffer);
41534
+ var _parseResult;
41535
+ var parseResult = GLTFUtils.parseGLB(context, buffer);
41536
+ // If the buffer is a GLB file, we need to restore the buffer data
41537
+ if ((_parseResult = parseResult) == null ? void 0 : _parseResult.glTF) {
41538
+ restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
41539
+ }
41540
+ return parseResult;
41486
41541
  }).then(function(result) {
41487
41542
  var _result;
41488
41543
  if ((_result = result) == null ? void 0 : _result.glTF) {
@@ -41894,7 +41949,7 @@
41894
41949
  resolve(mesh);
41895
41950
  } else {
41896
41951
  mesh.then(function(mesh) {
41897
- return resolve(mesh);
41952
+ resolve(mesh);
41898
41953
  });
41899
41954
  }
41900
41955
  } else {
@@ -41902,35 +41957,20 @@
41902
41957
  var meshRestoreInfo = new ModelMeshRestoreInfo();
41903
41958
  meshRestoreInfo.mesh = mesh1;
41904
41959
  context.contentRestorer.meshes.push(meshRestoreInfo);
41905
- exports.GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, function(attributeSemantic) {
41906
- return null;
41907
- }, function(attributeName, shapeIndex) {
41908
- var shapeAccessorIdx = gltfPrimitive.targets[shapeIndex];
41909
- var attributeAccessorIdx = shapeAccessorIdx[attributeName];
41910
- if (attributeAccessorIdx) {
41911
- var accessor = glTF.accessors[attributeAccessorIdx];
41912
- return GLTFUtils.getAccessorBuffer(context, context.glTF.bufferViews, accessor);
41913
- } else {
41914
- return null;
41915
- }
41916
- }, function() {
41917
- var indexAccessor = glTF.accessors[gltfPrimitive.indices];
41918
- return context.get(exports.GLTFParserType.Buffer).then(function(buffers) {
41919
- return GLTFUtils.getAccessorData(glTF, indexAccessor, buffers);
41920
- });
41921
- }, context.params.keepMeshData).then(resolve);
41960
+ exports.GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
41922
41961
  }
41923
41962
  });
41924
41963
  };
41925
41964
  var meshInfo = context.glTF.meshes[index];
41926
- var glTF = context.glTF, engine = context.glTFResource.engine;
41965
+ var glTF = context.glTF, glTFResource = context.glTFResource;
41966
+ var engine = glTFResource.engine;
41927
41967
  var primitivePromises = new Array();
41928
41968
  for(var i = 0, length = meshInfo.primitives.length; i < length; i++)_loop(i);
41929
41969
  return Promise.all(primitivePromises);
41930
41970
  };
41931
41971
  /**
41932
41972
  * @internal
41933
- */ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
41973
+ */ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, keepMeshData) {
41934
41974
  var _loop = function _loop(attribute) {
41935
41975
  var accessor = accessors[attributes[attribute]];
41936
41976
  var promise = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor).then(function(accessorBuffer) {
@@ -42001,6 +42041,7 @@
42001
42041
  });
42002
42042
  promises.push(promise);
42003
42043
  };
42044
+ var _this = this;
42004
42045
  var accessors = gltf.accessors;
42005
42046
  var attributes = gltfPrimitive.attributes, targets = gltfPrimitive.targets, indices = gltfPrimitive.indices, mode = gltfPrimitive.mode;
42006
42047
  var engine = mesh.engine;
@@ -42025,61 +42066,68 @@
42025
42066
  }
42026
42067
  // BlendShapes
42027
42068
  if (targets) {
42028
- promises.push(exports.GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh, accessors, targets, getBlendShapeData));
42069
+ promises.push(exports.GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets, _this._getBlendShapeData));
42029
42070
  }
42030
42071
  return Promise.all(promises).then(function() {
42031
42072
  mesh.uploadData(!keepMeshData);
42032
- return Promise.resolve(mesh);
42073
+ return mesh;
42033
42074
  });
42034
42075
  });
42035
42076
  };
42077
+ GLTFMeshParser1._getBlendShapeData = function _getBlendShapeData(context, glTF, accessor) {
42078
+ return GLTFUtils.getAccessorBuffer(context, glTF.bufferViews, accessor).then(function(bufferInfo) {
42079
+ var buffer = bufferInfo.data;
42080
+ var _accessor_byteOffset;
42081
+ var byteOffset = bufferInfo.interleaved ? ((_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0) % bufferInfo.stride : 0;
42082
+ var count = accessor.count, normalized = accessor.normalized, componentType = accessor.componentType;
42083
+ var vertices = GLTFUtils.bufferToVector3Array(buffer, byteOffset, count, normalized, componentType);
42084
+ var restoreInfo = new BlendShapeDataRestoreInfo(bufferInfo.restoreInfo, byteOffset, count, normalized, componentType);
42085
+ return {
42086
+ vertices: vertices,
42087
+ restoreInfo: restoreInfo
42088
+ };
42089
+ });
42090
+ };
42036
42091
  /**
42037
42092
  * @internal
42038
- */ GLTFMeshParser1._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh, accessors, glTFTargets, getBlendShapeData) {
42039
- var _loop = function _loop(i, n) {
42093
+ */ GLTFMeshParser1._createBlendShape = function _createBlendShape(context, mesh, meshRestoreInfo, glTFMesh, gltfPrimitive, glTFTargets, getBlendShapeData) {
42094
+ var _loop = function _loop(i) {
42095
+ var blendShapeData = {};
42096
+ blendShapeCollection[i] = blendShapeData;
42040
42097
  var name = blendShapeNames ? blendShapeNames[i] : "blendShape" + i;
42098
+ var targets = gltfPrimitive.targets[i];
42099
+ var normalTarget = targets["NORMAL"];
42100
+ var tangentTarget = targets["TANGENT"];
42101
+ var hasNormal = normalTarget !== undefined;
42102
+ var hasTangent = tangentTarget !== undefined;
42041
42103
  var promise = Promise.all([
42042
- getBlendShapeData("POSITION", i),
42043
- getBlendShapeData("NORMAL", i),
42044
- getBlendShapeData("TANGENT", i)
42045
- ]).then(function(infos) {
42046
- var posBufferInfo = infos[0];
42047
- var norBufferInfo = infos[1];
42048
- var tanBufferInfo = infos[2];
42049
- var target = glTFTargets[i];
42050
- var posAccessor;
42051
- var norAccessor;
42052
- var tanAccessor;
42053
- var positions = null;
42054
- if (posBufferInfo) {
42055
- posAccessor = accessors[target["POSITION"]];
42056
- var _posAccessor_byteOffset;
42057
- positions = GLTFUtils.bufferToVector3Array(posBufferInfo.data, posBufferInfo.stride, (_posAccessor_byteOffset = posAccessor.byteOffset) != null ? _posAccessor_byteOffset : 0, posAccessor.count);
42058
- }
42059
- var normals = null;
42060
- if (norBufferInfo) {
42061
- norAccessor = accessors[target["NORMAL"]];
42062
- var _norAccessor_byteOffset;
42063
- normals = GLTFUtils.bufferToVector3Array(norBufferInfo.data, norBufferInfo.stride, (_norAccessor_byteOffset = norAccessor.byteOffset) != null ? _norAccessor_byteOffset : 0, norAccessor.count);
42064
- }
42065
- var tangents = null;
42066
- if (tanBufferInfo) {
42067
- tanAccessor = accessors[target["NORMAL"]];
42068
- var _tanAccessor_byteOffset;
42069
- tangents = GLTFUtils.bufferToVector3Array(tanBufferInfo.data, tanBufferInfo.stride, (_tanAccessor_byteOffset = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset : 0, tanAccessor.count);
42070
- }
42104
+ getBlendShapeData(context, glTF, accessors[targets["POSITION"]]),
42105
+ hasNormal ? getBlendShapeData(context, glTF, accessors[normalTarget]) : null,
42106
+ hasTangent ? getBlendShapeData(context, glTF, accessors[tangentTarget]) : null
42107
+ ]).then(function(vertices) {
42108
+ var _tangentData;
42109
+ var positionData = vertices[0], normalData = vertices[1], tangentData = vertices[2];
42071
42110
  var blendShape = new BlendShape(name);
42072
- blendShape.addFrame(1.0, positions, normals, tangents);
42073
- mesh.addBlendShape(blendShape);
42074
- var _posAccessor_byteOffset1, _norAccessor_byteOffset1, _tanAccessor_byteOffset1;
42075
- meshRestoreInfo.blendShapes.push(new BlendShapeRestoreInfo(blendShape, new BlendShapeDataRestoreInfo(posBufferInfo.restoreInfo, posBufferInfo.stride, (_posAccessor_byteOffset1 = posAccessor.byteOffset) != null ? _posAccessor_byteOffset1 : 0, posAccessor.count), norBufferInfo ? new BlendShapeDataRestoreInfo(norBufferInfo.restoreInfo, norBufferInfo.stride, (_norAccessor_byteOffset1 = norAccessor.byteOffset) != null ? _norAccessor_byteOffset1 : 0, norAccessor.count) : null, tanBufferInfo ? new BlendShapeDataRestoreInfo(tanBufferInfo.restoreInfo, tanBufferInfo.stride, (_tanAccessor_byteOffset1 = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset1 : 0, tanAccessor.count) : null));
42111
+ blendShape.addFrame(1.0, positionData.vertices, hasNormal ? normalData.vertices : null, hasTangent ? tangentData.vertices : null);
42112
+ blendShapeData.blendShape = blendShape;
42113
+ blendShapeData.restoreInfo = new BlendShapeRestoreInfo(blendShape, positionData.restoreInfo, hasNormal ? normalData.restoreInfo : null, hasTangent ? (_tangentData = tangentData) == null ? void 0 : _tangentData.restoreInfo : null);
42076
42114
  });
42077
42115
  promises.push(promise);
42078
42116
  };
42117
+ var glTF = context.glTF;
42118
+ var accessors = glTF.accessors;
42079
42119
  var blendShapeNames = glTFMesh.extras ? glTFMesh.extras.targetNames : null;
42080
42120
  var promises = new Array();
42081
- for(var i = 0, n = glTFTargets.length; i < n; i++)_loop(i);
42082
- return Promise.all(promises);
42121
+ var blendShapeCount = glTFTargets.length;
42122
+ var blendShapeCollection = new Array(blendShapeCount);
42123
+ for(var i = 0; i < blendShapeCount; i++)_loop(i);
42124
+ return Promise.all(promises).then(function() {
42125
+ for(var _iterator = _create_for_of_iterator_helper_loose(blendShapeCollection), _step; !(_step = _iterator()).done;){
42126
+ var blendShape = _step.value;
42127
+ mesh.addBlendShape(blendShape.blendShape);
42128
+ meshRestoreInfo.blendShapes.push(blendShape.restoreInfo);
42129
+ }
42130
+ });
42083
42131
  };
42084
42132
  return GLTFMeshParser1;
42085
42133
  }(GLTFParser), function() {
@@ -42455,6 +42503,24 @@
42455
42503
  exports.GLTFValidator = __decorate([
42456
42504
  registerGLTFParser(exports.GLTFParserType.Validator)
42457
42505
  ], exports.GLTFValidator);
42506
+ exports.GLTFBufferViewParser = /*#__PURE__*/ function(GLTFParser1) {
42507
+ var GLTFBufferViewParser = function GLTFBufferViewParser() {
42508
+ return GLTFParser1.apply(this, arguments);
42509
+ };
42510
+ _inherits(GLTFBufferViewParser, GLTFParser1);
42511
+ var _proto = GLTFBufferViewParser.prototype;
42512
+ _proto.parse = function parse(context, index) {
42513
+ var bufferView = context.glTF.bufferViews[index];
42514
+ var extensions = bufferView.extensions, _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset, byteLength = bufferView.byteLength, bufferIndex = bufferView.buffer;
42515
+ return extensions ? GLTFParser.executeExtensionsCreateAndParse(extensions, context, bufferView) : context.get(exports.GLTFParserType.Buffer, bufferIndex).then(function(buffer) {
42516
+ return new Uint8Array(buffer, byteOffset, byteLength);
42517
+ });
42518
+ };
42519
+ return GLTFBufferViewParser;
42520
+ }(GLTFParser);
42521
+ exports.GLTFBufferViewParser = __decorate([
42522
+ registerGLTFParser(exports.GLTFParserType.BufferView)
42523
+ ], exports.GLTFBufferViewParser);
42458
42524
  var GLTFLoader = /*#__PURE__*/ function(Loader1) {
42459
42525
  var GLTFLoader = function GLTFLoader() {
42460
42526
  return Loader1.apply(this, arguments);
@@ -42490,23 +42556,48 @@
42490
42556
  var _this = this;
42491
42557
  return new AssetPromise(function(resolve, reject) {
42492
42558
  var engine = resourceManager.engine;
42493
- _this.request(item.url, {
42559
+ var request = _this.request;
42560
+ _this.request(item.url, _extends({}, item, {
42494
42561
  type: "arraybuffer"
42495
- }).then(function(buffer) {
42496
- var uint8Array = new Uint8Array(buffer);
42497
- var _HDRLoader__parseHeader = HDRLoader._parseHeader(uint8Array), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
42498
- var pixels = HDRLoader._readPixels(uint8Array.subarray(dataPosition), width, height);
42499
- var cubeSize = height >> 1;
42500
- var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
42501
- var texture = new TextureCube(engine, cubeSize);
42502
- for(var faceIndex = 0; faceIndex < 6; faceIndex++){
42503
- texture.setPixelBuffer(exports.TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
42504
- }
42505
- texture.generateMipmaps();
42562
+ })).then(function(buffer) {
42563
+ var texture = HDRLoader._setTextureByBuffer(engine, buffer);
42564
+ engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
42565
+ var _class = function _class() {
42566
+ return ContentRestorer.apply(this, arguments);
42567
+ };
42568
+ _inherits(_class, ContentRestorer);
42569
+ var _proto = _class.prototype;
42570
+ _proto.restoreContent = function restoreContent() {
42571
+ return new AssetPromise(function(resolve, reject) {
42572
+ request(item.url, _extends({}, item, {
42573
+ type: "arraybuffer"
42574
+ })).then(function(buffer) {
42575
+ HDRLoader._setTextureByBuffer(engine, buffer, texture);
42576
+ resolve(texture);
42577
+ }).catch(reject);
42578
+ });
42579
+ };
42580
+ return _class;
42581
+ }(ContentRestorer))(texture));
42506
42582
  resolve(texture);
42507
42583
  }).catch(reject);
42508
42584
  });
42509
42585
  };
42586
+ /**
42587
+ * @internal
42588
+ */ HDRLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
42589
+ var bufferArray = new Uint8Array(buffer);
42590
+ var _HDRLoader__parseHeader = HDRLoader._parseHeader(bufferArray), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
42591
+ var cubeSize = height >> 1;
42592
+ texture || (texture = new TextureCube(engine, cubeSize));
42593
+ var pixels = HDRLoader._readPixels(bufferArray.subarray(dataPosition), width, height);
42594
+ var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
42595
+ for(var faceIndex = 0; faceIndex < 6; faceIndex++){
42596
+ texture.setPixelBuffer(exports.TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
42597
+ }
42598
+ texture.generateMipmaps();
42599
+ return texture;
42600
+ };
42510
42601
  HDRLoader1._convertToCubemap = function _convertToCubemap(pixels, inputWidth, inputHeight, size) {
42511
42602
  if (!pixels) {
42512
42603
  throw "ConvertPanoramaToCubemap: input cannot be null";
@@ -43039,7 +43130,8 @@
43039
43130
  _proto.load = function load(item, resourceManager) {
43040
43131
  var _this = this;
43041
43132
  return new AssetPromise(function(resolve, reject) {
43042
- _this.request(item.url, _extends({}, item, {
43133
+ var request = _this.request;
43134
+ request(item.url, _extends({}, item, {
43043
43135
  type: "arraybuffer"
43044
43136
  })).then(function(bin) {
43045
43137
  var parsedData = parseSingleKTX(bin);
@@ -43050,6 +43142,32 @@
43050
43142
  var _mipmaps_miplevel = mipmaps[miplevel], width1 = _mipmaps_miplevel.width, height1 = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
43051
43143
  texture.setPixelBuffer(data, miplevel, 0, 0, width1, height1);
43052
43144
  }
43145
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
43146
+ var _class = function _class() {
43147
+ return ContentRestorer.apply(this, arguments);
43148
+ };
43149
+ _inherits(_class, ContentRestorer);
43150
+ var _proto = _class.prototype;
43151
+ _proto.restoreContent = function restoreContent() {
43152
+ var _this = this;
43153
+ return new AssetPromise(function(resolve, reject) {
43154
+ request(item.url, _extends({}, item, {
43155
+ type: "arraybuffer"
43156
+ })).then(function(bin) {
43157
+ var mipmaps = parseSingleKTX(bin).mipmaps;
43158
+ var texture = _this.resource;
43159
+ for(var miplevel = 0; miplevel < mipmaps.length; miplevel++){
43160
+ var _mipmaps_miplevel = mipmaps[miplevel], width = _mipmaps_miplevel.width, height = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
43161
+ texture.setPixelBuffer(data, miplevel, 0, 0, width, height);
43162
+ }
43163
+ resolve(texture);
43164
+ }).catch(function(e) {
43165
+ reject(e);
43166
+ });
43167
+ });
43168
+ };
43169
+ return _class;
43170
+ }(ContentRestorer))(texture));
43053
43171
  resolve(texture);
43054
43172
  }).catch(function(e) {
43055
43173
  reject(e);
@@ -43153,11 +43271,32 @@
43153
43271
  _proto.load = function load(item, resourceManager) {
43154
43272
  var _this = this;
43155
43273
  return new AssetPromise(function(resolve, reject) {
43156
- _this.request(item.url, _extends({}, item, {
43274
+ var request = _this.request;
43275
+ var engine = resourceManager.engine;
43276
+ request(item.url, _extends({}, item, {
43157
43277
  type: "arraybuffer"
43158
43278
  })).then(function(data) {
43159
- return decode(data, resourceManager.engine);
43279
+ return decode(data, engine);
43160
43280
  }).then(function(mesh) {
43281
+ resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
43282
+ var _class = function _class() {
43283
+ return ContentRestorer.apply(this, arguments);
43284
+ };
43285
+ _inherits(_class, ContentRestorer);
43286
+ var _proto = _class.prototype;
43287
+ _proto.restoreContent = function restoreContent() {
43288
+ return new AssetPromise(function(resolve, reject) {
43289
+ request(item.url, _extends({}, item, {
43290
+ type: "arraybuffer"
43291
+ })).then(function(data) {
43292
+ return decode(data, engine, mesh);
43293
+ }).then(function(mesh) {
43294
+ resolve(mesh);
43295
+ }).catch(reject);
43296
+ });
43297
+ };
43298
+ return _class;
43299
+ }(ContentRestorer))(mesh));
43161
43300
  resolve(mesh);
43162
43301
  }).catch(reject);
43163
43302
  });
@@ -43681,14 +43820,17 @@
43681
43820
  var buffer = GLTFUtils.getBufferViewData(bufferViews[bufferViewIndex], buffers);
43682
43821
  return KHR_draco_mesh_compression._decoder.decode(buffer, taskConfig).then(function(decodedGeometry) {
43683
43822
  var mesh = new ModelMesh(engine, glTFMesh.name);
43684
- return _this._parseMeshFromGLTFPrimitiveDraco(mesh, glTFMesh, glTFPrimitive, glTF, function(attributeSemantic) {
43823
+ var meshRestoreInfo = new ModelMeshRestoreInfo();
43824
+ meshRestoreInfo.mesh = mesh;
43825
+ context.contentRestorer.meshes.push(meshRestoreInfo);
43826
+ return _this._parseMeshFromGLTFPrimitiveDraco(context, mesh, meshRestoreInfo, glTFMesh, glTFPrimitive, glTF, function(attributeSemantic) {
43685
43827
  for(var j = 0; j < decodedGeometry.attributes.length; j++){
43686
43828
  if (decodedGeometry.attributes[j].name === attributeSemantic) {
43687
43829
  return decodedGeometry.attributes[j].array;
43688
43830
  }
43689
43831
  }
43690
43832
  return null;
43691
- }, function(attributeSemantic, shapeIndex) {
43833
+ }, function() {
43692
43834
  throw "BlendShape animation is not supported when using draco.";
43693
43835
  }, function() {
43694
43836
  return decodedGeometry.index.array;
@@ -43701,7 +43843,7 @@
43701
43843
  KHR_draco_mesh_compression._decoder = new DRACODecoder();
43702
43844
  }
43703
43845
  };
43704
- _proto._parseMeshFromGLTFPrimitiveDraco = function _parseMeshFromGLTFPrimitiveDraco(mesh, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
43846
+ _proto._parseMeshFromGLTFPrimitiveDraco = function _parseMeshFromGLTFPrimitiveDraco(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
43705
43847
  var attributes = gltfPrimitive.attributes, targets = gltfPrimitive.targets, indices = gltfPrimitive.indices, mode = gltfPrimitive.mode;
43706
43848
  var vertexCount;
43707
43849
  var accessors = gltf.accessors;
@@ -43797,7 +43939,7 @@
43797
43939
  mesh.addSubMesh(0, vertexCount, mode);
43798
43940
  }
43799
43941
  // BlendShapes
43800
- targets && exports.GLTFMeshParser._createBlendShape(mesh, null, gltfMesh, accessors, targets, getBlendShapeData);
43942
+ targets && exports.GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets, getBlendShapeData);
43801
43943
  mesh.uploadData(!keepMeshData);
43802
43944
  return Promise.resolve(mesh);
43803
43945
  };
@@ -44127,7 +44269,7 @@
44127
44269
  ], GALACEAN_animation_event);
44128
44270
 
44129
44271
  //@ts-ignore
44130
- var version = "1.1.2";
44272
+ var version = "1.1.6";
44131
44273
  console.log("Galacean engine version: " + version);
44132
44274
  for(var key in CoreObjects){
44133
44275
  Loader.registerClass(key, CoreObjects[key]);
@@ -44160,6 +44302,7 @@
44160
44302
  exports.BoxColliderShape = BoxColliderShape;
44161
44303
  exports.BoxShape = BoxShape;
44162
44304
  exports.Buffer = Buffer;
44305
+ exports.BufferInfo = BufferInfo;
44163
44306
  exports.BufferMesh = BufferMesh;
44164
44307
  exports.BufferUtil = BufferUtil;
44165
44308
  exports.Burst = Burst;