@galacean/engine-loader 1.2.0-alpha.0 → 1.2.0-alpha.10
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/main.js +853 -463
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +852 -463
- package/dist/module.js +841 -452
- package/dist/module.js.map +1 -1
- package/package.json +4 -5
- package/types/GLTFLoader.d.ts +7 -1
- package/types/PrimitiveMeshLoader.d.ts +1 -0
- package/types/gltf/GLTFSchema.d.ts +1 -1
- package/types/gltf/GLTFUtils.d.ts +5 -4
- package/types/gltf/extensions/EXT_meshopt_compression.d.ts +13 -0
- package/types/gltf/extensions/GLTFExtensionParser.d.ts +1 -1
- package/types/gltf/extensions/GLTFExtensionSchema.d.ts +10 -10
- package/types/gltf/extensions/MeshoptDecoder.d.ts +8 -0
- package/types/gltf/extensions/index.d.ts +1 -1
- package/types/gltf/index.d.ts +2 -1
- package/types/gltf/parser/GLTFBufferViewParser.d.ts +5 -0
- package/types/gltf/parser/GLTFParser.d.ts +1 -1
- package/types/gltf/parser/GLTFParserContext.d.ts +7 -6
- package/types/gltf/parser/GLTFSchemaParser.d.ts +0 -1
- package/types/gltf/parser/index.d.ts +2 -1
- package/types/index.d.ts +3 -1
- package/types/ktx2/KTX2Loader.d.ts +4 -3
- package/types/resource-deserialize/index.d.ts +2 -1
- package/types/resource-deserialize/resources/animationClip/AnimationClipDecoder.d.ts +0 -1
- package/types/resource-deserialize/resources/parser/HierarchyParser.d.ts +36 -0
- package/types/resource-deserialize/resources/parser/ParserContext.d.ts +29 -0
- package/types/resource-deserialize/resources/parser/ReflectionParser.d.ts +4 -4
- package/types/resource-deserialize/resources/prefab/PrefabParser.d.ts +13 -4
- package/types/resource-deserialize/resources/prefab/PrefabParserContext.d.ts +5 -0
- package/types/resource-deserialize/resources/scene/SceneParser.d.ts +3 -17
- package/types/resource-deserialize/resources/scene/SceneParserContext.d.ts +6 -12
- package/types/resource-deserialize/resources/schema/BasicSchema.d.ts +26 -1
- package/types/resource-deserialize/resources/schema/SceneSchema.d.ts +1 -0
package/dist/module.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity,
|
|
1
|
+
import { Utils, ModelMesh, BlendShape, Texture2D, Loader, Entity, AnimationClip, AnimationEvent, AnimationStringCurve, Keyframe, AnimationBoolCurve, AnimationRefCurve, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, Scene, resourceLoader, AssetPromise, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, AnimatorStateTransition, TextureCube, TextureFilterMode, TextureCubeFace, AmbientLight, DiffuseMode, Font, ReferResource, Animator, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, ContentRestorer, InterpolationType, SkinnedMeshRenderer, Transform, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Camera, MeshRenderer, Skin, TextureWrapMode as TextureWrapMode$1, SystemInfo, Material, Shader, PrimitiveMesh, SpriteAtlas, Sprite, BackgroundMode, DirectLight, PointLight, SpotLight, UnlitMaterial } from '@galacean/engine-core';
|
|
2
2
|
import { Color, Vector4, Vector3, Vector2, Quaternion, SphericalHarmonics3, MathUtil, BoundingBox, Matrix, Rect } from '@galacean/engine-math';
|
|
3
3
|
import { GLCompressedTextureInternalFormat } from '@galacean/engine-rhi-webgl';
|
|
4
|
-
import { DRACODecoder } from '@galacean/engine-draco';
|
|
5
4
|
|
|
6
5
|
function _extends() {
|
|
7
6
|
_extends = Object.assign || function assign(target) {
|
|
@@ -534,6 +533,8 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
534
533
|
if (position) entity.transform.position.copyFrom(position);
|
|
535
534
|
if (rotation) entity.transform.rotation.copyFrom(rotation);
|
|
536
535
|
if (scale) entity.transform.scale.copyFrom(scale);
|
|
536
|
+
var _entityConfig_layer;
|
|
537
|
+
entity.layer = (_entityConfig_layer = entityConfig.layer) != null ? _entityConfig_layer : entity.layer;
|
|
537
538
|
return entity;
|
|
538
539
|
});
|
|
539
540
|
};
|
|
@@ -635,8 +636,7 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
635
636
|
var assetRefId = entityConfig.assetRefId;
|
|
636
637
|
var engine = this._context.engine;
|
|
637
638
|
if (assetRefId) {
|
|
638
|
-
return engine.resourceManager
|
|
639
|
-
.getResourceByRef({
|
|
639
|
+
return engine.resourceManager.getResourceByRef({
|
|
640
640
|
refId: assetRefId,
|
|
641
641
|
key: entityConfig.key,
|
|
642
642
|
isClone: entityConfig.isClone
|
|
@@ -667,37 +667,372 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
667
667
|
ReflectionParser.customParseComponentHandles = new Map();
|
|
668
668
|
})();
|
|
669
669
|
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
670
|
+
/**
|
|
671
|
+
* Parser context
|
|
672
|
+
* @export
|
|
673
|
+
* @abstract
|
|
674
|
+
* @class ParserContext
|
|
675
|
+
* @template T
|
|
676
|
+
* @template I
|
|
677
|
+
*/ var ParserContext = /*#__PURE__*/ function() {
|
|
678
|
+
function ParserContext(originalData, engine, target) {
|
|
679
|
+
this.originalData = originalData;
|
|
680
|
+
this.engine = engine;
|
|
681
|
+
this.target = target;
|
|
682
|
+
this.entityMap = new Map();
|
|
683
|
+
this.components = new Map();
|
|
684
|
+
this.assets = new Map();
|
|
685
|
+
this.entityConfigMap = new Map();
|
|
686
|
+
this.rootIds = [];
|
|
687
|
+
this.strippedIds = [];
|
|
688
|
+
this.resourceManager = engine.resourceManager;
|
|
689
|
+
}
|
|
690
|
+
var _proto = ParserContext.prototype;
|
|
691
|
+
/**
|
|
692
|
+
* Destroy the context.
|
|
693
|
+
* @abstract
|
|
694
|
+
* @memberof ParserContext
|
|
695
|
+
*/ _proto.destroy = function destroy() {
|
|
696
|
+
this.entityMap.clear();
|
|
697
|
+
this.components.clear();
|
|
698
|
+
this.assets.clear();
|
|
699
|
+
this.entityConfigMap.clear();
|
|
700
|
+
this.rootIds.length = 0;
|
|
701
|
+
};
|
|
702
|
+
return ParserContext;
|
|
703
|
+
}();
|
|
704
|
+
|
|
705
|
+
var PrefabParserContext = /*#__PURE__*/ function(ParserContext1) {
|
|
706
|
+
_inherits(PrefabParserContext, ParserContext1);
|
|
707
|
+
function PrefabParserContext() {
|
|
708
|
+
return ParserContext1.apply(this, arguments);
|
|
709
|
+
}
|
|
710
|
+
return PrefabParserContext;
|
|
711
|
+
}(ParserContext);
|
|
712
|
+
|
|
713
|
+
function _array_like_to_array(arr, len) {
|
|
714
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
715
|
+
|
|
716
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
717
|
+
|
|
718
|
+
return arr2;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
722
|
+
if (!o) return;
|
|
723
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
724
|
+
|
|
725
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
726
|
+
|
|
727
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
728
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
729
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
|
|
733
|
+
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
734
|
+
|
|
735
|
+
if (it) return (it = it.call(o)).next.bind(it);
|
|
736
|
+
// Fallback for engines without symbol support
|
|
737
|
+
if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
738
|
+
if (it) o = it;
|
|
739
|
+
|
|
740
|
+
var i = 0;
|
|
741
|
+
|
|
742
|
+
return function() {
|
|
743
|
+
if (i >= o.length) return { done: true };
|
|
744
|
+
|
|
745
|
+
return { done: false, value: o[i++] };
|
|
746
|
+
};
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
var HierarchyParser = /*#__PURE__*/ function() {
|
|
753
|
+
function HierarchyParser(context) {
|
|
754
|
+
var _this = this;
|
|
755
|
+
this.context = context;
|
|
756
|
+
this.prefabContextMap = new WeakMap();
|
|
757
|
+
this.prefabPromiseMap = new Map();
|
|
758
|
+
this._engine = this.context.engine;
|
|
759
|
+
this._organizeEntities = this._organizeEntities.bind(this);
|
|
760
|
+
this._parseComponents = this._parseComponents.bind(this);
|
|
761
|
+
this._parsePrefabModification = this._parsePrefabModification.bind(this);
|
|
762
|
+
this._parsePrefabRemovedEntities = this._parsePrefabRemovedEntities.bind(this);
|
|
763
|
+
this._parsePrefabRemovedComponents = this._parsePrefabRemovedComponents.bind(this);
|
|
764
|
+
this._clearAndResolve = this._clearAndResolve.bind(this);
|
|
765
|
+
this.promise = new Promise(function(resolve, reject) {
|
|
766
|
+
_this._reject = reject;
|
|
767
|
+
_this._resolve = resolve;
|
|
768
|
+
});
|
|
769
|
+
this._reflectionParser = new ReflectionParser(context);
|
|
770
|
+
}
|
|
771
|
+
var _proto = HierarchyParser.prototype;
|
|
772
|
+
/** start parse the scene or prefab or others */ _proto.start = function start() {
|
|
773
|
+
this._parseEntities().then(this._organizeEntities).then(this._parseComponents).then(this._parsePrefabModification).then(this._parsePrefabRemovedEntities).then(this._parsePrefabRemovedComponents).then(this._clearAndResolve).then(this._resolve).catch(this._reject);
|
|
774
|
+
};
|
|
775
|
+
_proto._parseEntities = function _parseEntities() {
|
|
776
|
+
var _this = this;
|
|
777
|
+
var entitiesConfig = this.context.originalData.entities;
|
|
778
|
+
var entityConfigMap = this.context.entityConfigMap;
|
|
779
|
+
var entityMap = this.context.entityMap;
|
|
780
|
+
var engine = this._engine;
|
|
781
|
+
var promises = entitiesConfig.map(function(entityConfig) {
|
|
782
|
+
var _entityConfig_strippedId;
|
|
783
|
+
var id = (_entityConfig_strippedId = entityConfig.strippedId) != null ? _entityConfig_strippedId : entityConfig.id;
|
|
784
|
+
entityConfig.id = id;
|
|
785
|
+
entityConfigMap.set(id, entityConfig);
|
|
786
|
+
return _this._getEntityByConfig(entityConfig, engine);
|
|
787
|
+
});
|
|
788
|
+
return Promise.all(promises).then(function(entities) {
|
|
789
|
+
for(var i = 0, l = entities.length; i < l; i++){
|
|
790
|
+
entityMap.set(entitiesConfig[i].id, entities[i]);
|
|
791
|
+
}
|
|
792
|
+
return entities;
|
|
793
|
+
});
|
|
794
|
+
};
|
|
795
|
+
_proto._parseComponents = function _parseComponents() {
|
|
796
|
+
var entitiesConfig = this.context.originalData.entities;
|
|
797
|
+
var entityMap = this.context.entityMap;
|
|
798
|
+
var components = this.context.components;
|
|
799
|
+
var promises = [];
|
|
800
|
+
for(var i = 0, l = entitiesConfig.length; i < l; i++){
|
|
801
|
+
var entityConfig = entitiesConfig[i];
|
|
802
|
+
var entity = entityMap.get(entityConfig.id);
|
|
803
|
+
for(var i1 = 0; i1 < entityConfig.components.length; i1++){
|
|
804
|
+
var componentConfig = entityConfig.components[i1];
|
|
805
|
+
var key = !componentConfig.refId ? componentConfig.class : componentConfig.refId;
|
|
806
|
+
var component = entity.addComponent(Loader.getClass(key));
|
|
807
|
+
components.set(componentConfig.id, component);
|
|
808
|
+
var promise = this._reflectionParser.parsePropsAndMethods(component, componentConfig);
|
|
809
|
+
promises.push(promise);
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
return Promise.all(promises);
|
|
813
|
+
};
|
|
814
|
+
_proto._parsePrefabModification = function _parsePrefabModification() {
|
|
815
|
+
var _loop = function(i, l) {
|
|
816
|
+
var _modifications;
|
|
817
|
+
var entityConfig = entitiesConfig[i];
|
|
818
|
+
var id = entityConfig.id, modifications = entityConfig.modifications;
|
|
819
|
+
if ((_modifications = modifications) == null ? void 0 : _modifications.length) {
|
|
820
|
+
var _promises;
|
|
821
|
+
var rootEntity = entityMap.get(id);
|
|
822
|
+
(_promises = promises).push.apply(_promises, [].concat(modifications.map(function(modification) {
|
|
823
|
+
var target = modification.target, props = modification.props, methods = modification.methods;
|
|
824
|
+
var entityId = target.entityId, componentId = target.componentId;
|
|
825
|
+
var context = _this.prefabContextMap.get(rootEntity);
|
|
826
|
+
var targetEntity = context.entityMap.get(entityId);
|
|
827
|
+
var targetComponent = context.components.get(componentId);
|
|
828
|
+
if (targetComponent) {
|
|
829
|
+
return _this._reflectionParser.parsePropsAndMethods(targetComponent, {
|
|
830
|
+
props: props,
|
|
831
|
+
methods: methods
|
|
832
|
+
});
|
|
833
|
+
} else if (targetEntity) {
|
|
834
|
+
return Promise.resolve(_this._applyEntityData(targetEntity, props));
|
|
835
|
+
}
|
|
836
|
+
})));
|
|
837
|
+
}
|
|
838
|
+
};
|
|
839
|
+
var _this = this;
|
|
840
|
+
var entitiesConfig = this.context.originalData.entities;
|
|
841
|
+
var entityMap = this.context.entityMap;
|
|
842
|
+
var promises = [];
|
|
843
|
+
for(var i = 0, l = entitiesConfig.length; i < l; i++)_loop(i);
|
|
844
|
+
return Promise.all(promises);
|
|
845
|
+
};
|
|
846
|
+
_proto._parsePrefabRemovedEntities = function _parsePrefabRemovedEntities() {
|
|
847
|
+
var _loop = function(i, l) {
|
|
848
|
+
var _removedEntities;
|
|
849
|
+
var entityConfig = entitiesConfig[i];
|
|
850
|
+
var id = entityConfig.id, removedEntities = entityConfig.removedEntities;
|
|
851
|
+
if ((_removedEntities = removedEntities) == null ? void 0 : _removedEntities.length) {
|
|
852
|
+
var _promises;
|
|
853
|
+
var rootEntity = entityMap.get(id);
|
|
854
|
+
(_promises = promises).push.apply(_promises, [].concat(removedEntities.map(function(target) {
|
|
855
|
+
var entityId = target.entityId;
|
|
856
|
+
var context = _this.prefabContextMap.get(rootEntity);
|
|
857
|
+
var targetEntity = context.entityMap.get(entityId);
|
|
858
|
+
if (targetEntity) {
|
|
859
|
+
targetEntity.destroy();
|
|
860
|
+
}
|
|
861
|
+
})));
|
|
862
|
+
}
|
|
863
|
+
};
|
|
864
|
+
var _this = this;
|
|
865
|
+
var entitiesConfig = this.context.originalData.entities;
|
|
866
|
+
var entityMap = this.context.entityMap;
|
|
867
|
+
var promises = [];
|
|
868
|
+
for(var i = 0, l = entitiesConfig.length; i < l; i++)_loop(i);
|
|
869
|
+
return Promise.all(promises);
|
|
870
|
+
};
|
|
871
|
+
_proto._parsePrefabRemovedComponents = function _parsePrefabRemovedComponents() {
|
|
872
|
+
var _loop = function(i, l) {
|
|
873
|
+
var _removedComponents;
|
|
874
|
+
var entityConfig = entitiesConfig[i];
|
|
875
|
+
var id = entityConfig.id, removedComponents = entityConfig.removedComponents;
|
|
876
|
+
if ((_removedComponents = removedComponents) == null ? void 0 : _removedComponents.length) {
|
|
877
|
+
var _promises;
|
|
878
|
+
var rootEntity = entityMap.get(id);
|
|
879
|
+
(_promises = promises).concat.apply(_promises, [].concat(removedComponents.map(function(target) {
|
|
880
|
+
var componentId = target.componentId;
|
|
881
|
+
var context = _this.prefabContextMap.get(rootEntity);
|
|
882
|
+
var targetComponent = context.components.get(componentId);
|
|
883
|
+
if (targetComponent) {
|
|
884
|
+
targetComponent.destroy();
|
|
885
|
+
}
|
|
886
|
+
})));
|
|
887
|
+
}
|
|
888
|
+
};
|
|
889
|
+
var _this = this;
|
|
890
|
+
var entitiesConfig = this.context.originalData.entities;
|
|
891
|
+
var entityMap = this.context.entityMap;
|
|
892
|
+
var promises = [];
|
|
893
|
+
for(var i = 0, l = entitiesConfig.length; i < l; i++)_loop(i);
|
|
894
|
+
return Promise.all(promises);
|
|
895
|
+
};
|
|
896
|
+
_proto._clearAndResolve = function _clearAndResolve() {
|
|
897
|
+
var target = this.context.target;
|
|
898
|
+
return target;
|
|
899
|
+
};
|
|
900
|
+
_proto._organizeEntities = function _organizeEntities() {
|
|
901
|
+
var _this_context = this.context, rootIds = _this_context.rootIds, strippedIds = _this_context.strippedIds;
|
|
902
|
+
var parentIds = rootIds.concat(strippedIds);
|
|
903
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(parentIds), _step; !(_step = _iterator()).done;){
|
|
904
|
+
var parentId = _step.value;
|
|
905
|
+
this._parseChildren(parentId);
|
|
906
|
+
}
|
|
907
|
+
for(var i = 0; i < rootIds.length; i++){
|
|
908
|
+
this.handleRootEntity(rootIds[i]);
|
|
909
|
+
}
|
|
910
|
+
};
|
|
911
|
+
_proto._getEntityByConfig = function _getEntityByConfig(entityConfig, engine) {
|
|
912
|
+
var _this = this;
|
|
913
|
+
var entityPromise;
|
|
914
|
+
if (entityConfig.assetRefId) {
|
|
915
|
+
entityPromise = this._parseGLTF(entityConfig, engine);
|
|
916
|
+
} else if (entityConfig.strippedId) {
|
|
917
|
+
entityPromise = this._parseStrippedEntity(entityConfig);
|
|
918
|
+
} else {
|
|
919
|
+
entityPromise = this._parseEntity(entityConfig, engine);
|
|
920
|
+
}
|
|
921
|
+
return entityPromise.then(function(entity) {
|
|
922
|
+
return _this._applyEntityData(entity, entityConfig);
|
|
923
|
+
});
|
|
924
|
+
};
|
|
925
|
+
_proto._parseEntity = function _parseEntity(entityConfig, engine) {
|
|
926
|
+
var entity = new Entity(engine, entityConfig.name);
|
|
927
|
+
if (!entityConfig.parent) this.context.rootIds.push(entityConfig.id);
|
|
928
|
+
return Promise.resolve(entity);
|
|
929
|
+
};
|
|
930
|
+
_proto._parseGLTF = function _parseGLTF(entityConfig, engine) {
|
|
931
|
+
var _this = this;
|
|
932
|
+
var assetRefId = entityConfig.assetRefId;
|
|
933
|
+
var context = new ParserContext(null, engine);
|
|
934
|
+
return engine.resourceManager// @ts-ignore
|
|
935
|
+
.getResourceByRef({
|
|
936
|
+
refId: assetRefId
|
|
937
|
+
}).then(function(glTFResource) {
|
|
938
|
+
var entity = glTFResource.instantiateSceneRoot();
|
|
939
|
+
if (!entityConfig.parent) _this.context.rootIds.push(entityConfig.id);
|
|
940
|
+
_this._traverseAddEntityToMap(entity, context, "");
|
|
941
|
+
_this.prefabContextMap.set(entity, context);
|
|
942
|
+
var cbArray = _this.prefabPromiseMap.get(entityConfig.id);
|
|
943
|
+
cbArray && cbArray.forEach(function(cb) {
|
|
944
|
+
cb.resolve(context);
|
|
945
|
+
});
|
|
946
|
+
return entity;
|
|
947
|
+
});
|
|
948
|
+
};
|
|
949
|
+
_proto._parseStrippedEntity = function _parseStrippedEntity(entityConfig) {
|
|
950
|
+
var _this = this;
|
|
951
|
+
this.context.strippedIds.push(entityConfig.id);
|
|
952
|
+
return new Promise(function(resolve, reject) {
|
|
953
|
+
var _this_prefabPromiseMap_get;
|
|
954
|
+
var cbArray = (_this_prefabPromiseMap_get = _this.prefabPromiseMap.get(entityConfig.prefabInstanceId)) != null ? _this_prefabPromiseMap_get : [];
|
|
955
|
+
cbArray.push({
|
|
956
|
+
resolve: resolve,
|
|
957
|
+
reject: reject
|
|
958
|
+
});
|
|
959
|
+
_this.prefabPromiseMap.set(entityConfig.prefabInstanceId, cbArray);
|
|
960
|
+
}).then(function(context) {
|
|
961
|
+
var entityId = entityConfig.prefabSource.entityId;
|
|
962
|
+
return context.entityMap.get(entityId);
|
|
963
|
+
});
|
|
964
|
+
};
|
|
965
|
+
_proto._parseChildren = function _parseChildren(parentId) {
|
|
966
|
+
var _this_context = this.context, entityConfigMap = _this_context.entityConfigMap, entityMap = _this_context.entityMap;
|
|
967
|
+
var children = entityConfigMap.get(parentId).children;
|
|
674
968
|
if (children && children.length > 0) {
|
|
675
|
-
var parent =
|
|
969
|
+
var parent = entityMap.get(parentId);
|
|
676
970
|
for(var i = 0; i < children.length; i++){
|
|
677
971
|
var childId = children[i];
|
|
678
|
-
var entity =
|
|
972
|
+
var entity = entityMap.get(childId);
|
|
679
973
|
parent.addChild(entity);
|
|
680
|
-
this.
|
|
974
|
+
this._parseChildren(childId);
|
|
681
975
|
}
|
|
682
976
|
}
|
|
683
977
|
};
|
|
684
|
-
|
|
978
|
+
_proto._applyEntityData = function _applyEntityData(entity, entityConfig) {
|
|
979
|
+
if (entityConfig === void 0) entityConfig = {};
|
|
980
|
+
var _entityConfig_isActive;
|
|
981
|
+
entity.isActive = (_entityConfig_isActive = entityConfig.isActive) != null ? _entityConfig_isActive : entity.isActive;
|
|
982
|
+
var _entityConfig_name;
|
|
983
|
+
entity.name = (_entityConfig_name = entityConfig.name) != null ? _entityConfig_name : entity.name;
|
|
984
|
+
var position = entityConfig.position, rotation = entityConfig.rotation, scale = entityConfig.scale;
|
|
985
|
+
if (position) entity.transform.position.copyFrom(position);
|
|
986
|
+
if (rotation) entity.transform.rotation.copyFrom(rotation);
|
|
987
|
+
if (scale) entity.transform.scale.copyFrom(scale);
|
|
988
|
+
return entity;
|
|
989
|
+
};
|
|
990
|
+
_proto._traverseAddEntityToMap = function _traverseAddEntityToMap(entity, context, path) {
|
|
991
|
+
var entityMap = context.entityMap, components = context.components;
|
|
992
|
+
var componentsMap = {};
|
|
993
|
+
var componentIndexMap = {};
|
|
994
|
+
entityMap.set(path, entity);
|
|
995
|
+
// @ts-ignore
|
|
996
|
+
entity._components.forEach(function(component) {
|
|
997
|
+
// @ts-ignore
|
|
998
|
+
var name = Loader.getClassName(component.constructor);
|
|
999
|
+
if (!componentsMap[name]) {
|
|
1000
|
+
componentsMap[name] = entity.getComponents(component.constructor, []);
|
|
1001
|
+
componentIndexMap[name] = 0;
|
|
1002
|
+
}
|
|
1003
|
+
components.set(path + ":" + name + "/" + componentIndexMap[name]++, component);
|
|
1004
|
+
});
|
|
1005
|
+
for(var i = 0, n = entity.children.length; i < n; i++){
|
|
1006
|
+
var child = entity.children[i];
|
|
1007
|
+
var childPath = path ? path + "/" + i : "" + i;
|
|
1008
|
+
this._traverseAddEntityToMap(child, context, childPath);
|
|
1009
|
+
}
|
|
1010
|
+
};
|
|
1011
|
+
return HierarchyParser;
|
|
685
1012
|
}();
|
|
686
1013
|
|
|
687
|
-
var
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
1014
|
+
var PrefabParser = /*#__PURE__*/ function(HierarchyParser1) {
|
|
1015
|
+
_inherits(PrefabParser, HierarchyParser1);
|
|
1016
|
+
function PrefabParser() {
|
|
1017
|
+
return HierarchyParser1.apply(this, arguments);
|
|
1018
|
+
}
|
|
1019
|
+
var _proto = PrefabParser.prototype;
|
|
1020
|
+
_proto.handleRootEntity = function handleRootEntity(id) {
|
|
1021
|
+
this.context.target = this.context.entityMap.get(id);
|
|
1022
|
+
};
|
|
1023
|
+
/**
|
|
1024
|
+
* Parse prefab data.
|
|
1025
|
+
* @param engine - the engine of the parser context
|
|
1026
|
+
* @param prefabData - prefab data which is exported by editor
|
|
1027
|
+
* @returns a promise of prefab
|
|
1028
|
+
*/ PrefabParser.parse = function parse(engine, prefabData) {
|
|
1029
|
+
var context = new PrefabParserContext(prefabData, engine);
|
|
1030
|
+
var parser = new PrefabParser(context);
|
|
1031
|
+
parser.start();
|
|
1032
|
+
return parser;
|
|
1033
|
+
};
|
|
1034
|
+
return PrefabParser;
|
|
1035
|
+
}(HierarchyParser);
|
|
701
1036
|
|
|
702
1037
|
var InterpolableValueType;
|
|
703
1038
|
(function(InterpolableValueType) {
|
|
@@ -731,7 +1066,7 @@ var AnimationClipDecoder = /*#__PURE__*/ function() {
|
|
|
731
1066
|
for(var i1 = 0; i1 < curveBindingsLen; ++i1){
|
|
732
1067
|
var relativePath = bufferReader.nextStr();
|
|
733
1068
|
var componentStr = bufferReader.nextStr();
|
|
734
|
-
var componentType =
|
|
1069
|
+
var componentType = Loader.getClass(componentStr);
|
|
735
1070
|
var property = bufferReader.nextStr();
|
|
736
1071
|
var getProperty = bufferReader.nextStr();
|
|
737
1072
|
var curve = void 0;
|
|
@@ -910,145 +1245,28 @@ var SpecularMode;
|
|
|
910
1245
|
SpecularMode["Custom"] = "Custom";
|
|
911
1246
|
})(SpecularMode || (SpecularMode = {}));
|
|
912
1247
|
|
|
913
|
-
function
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
if (!o) return;
|
|
923
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
924
|
-
|
|
925
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
926
|
-
|
|
927
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
928
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
929
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
|
|
933
|
-
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
934
|
-
|
|
935
|
-
if (it) return (it = it.call(o)).next.bind(it);
|
|
936
|
-
// Fallback for engines without symbol support
|
|
937
|
-
if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
938
|
-
if (it) o = it;
|
|
939
|
-
|
|
940
|
-
var i = 0;
|
|
941
|
-
|
|
942
|
-
return function() {
|
|
943
|
-
if (i >= o.length) return { done: true };
|
|
944
|
-
|
|
945
|
-
return { done: false, value: o[i++] };
|
|
946
|
-
};
|
|
947
|
-
}
|
|
948
|
-
|
|
949
|
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
var SceneParserContext = /*#__PURE__*/ function() {
|
|
953
|
-
function SceneParserContext(originalData, scene) {
|
|
954
|
-
this.originalData = originalData;
|
|
955
|
-
this.scene = scene;
|
|
956
|
-
this.entityMap = new Map();
|
|
957
|
-
this.components = new Map();
|
|
958
|
-
this.assets = new Map();
|
|
959
|
-
this.entityConfigMap = new Map();
|
|
960
|
-
this.rootIds = [];
|
|
961
|
-
this.engine = scene.engine;
|
|
962
|
-
this.resourceManager = scene.engine.resourceManager;
|
|
1248
|
+
var SceneParserContext = /*#__PURE__*/ function(ParserContext1) {
|
|
1249
|
+
_inherits(SceneParserContext, ParserContext1);
|
|
1250
|
+
function SceneParserContext(originalData, engine, scene) {
|
|
1251
|
+
var _this;
|
|
1252
|
+
_this = ParserContext1.call(this, originalData, engine, scene) || this;
|
|
1253
|
+
_this.originalData = originalData;
|
|
1254
|
+
_this.engine = engine;
|
|
1255
|
+
_this.scene = scene;
|
|
1256
|
+
return _this;
|
|
963
1257
|
}
|
|
964
|
-
var _proto = SceneParserContext.prototype;
|
|
965
|
-
_proto.destroy = function destroy() {
|
|
966
|
-
this.entityMap.clear();
|
|
967
|
-
this.components.clear();
|
|
968
|
-
this.assets.clear();
|
|
969
|
-
this.entityConfigMap.clear();
|
|
970
|
-
this.rootIds.length = 0;
|
|
971
|
-
};
|
|
972
1258
|
return SceneParserContext;
|
|
973
|
-
}();
|
|
1259
|
+
}(ParserContext);
|
|
974
1260
|
|
|
975
|
-
/** @Internal */ var SceneParser = /*#__PURE__*/ function() {
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
this
|
|
979
|
-
this._engine = context.scene.engine;
|
|
980
|
-
this._organizeEntities = this._organizeEntities.bind(this);
|
|
981
|
-
this._parseComponents = this._parseComponents.bind(this);
|
|
982
|
-
this._clearAndResolveScene = this._clearAndResolveScene.bind(this);
|
|
983
|
-
this.promise = new Promise(function(resolve, reject) {
|
|
984
|
-
_this._reject = reject;
|
|
985
|
-
_this._resolve = resolve;
|
|
986
|
-
});
|
|
987
|
-
this._reflectionParser = new ReflectionParser(context);
|
|
1261
|
+
/** @Internal */ var SceneParser = /*#__PURE__*/ function(HierarchyParser1) {
|
|
1262
|
+
_inherits(SceneParser, HierarchyParser1);
|
|
1263
|
+
function SceneParser() {
|
|
1264
|
+
return HierarchyParser1.apply(this, arguments);
|
|
988
1265
|
}
|
|
989
1266
|
var _proto = SceneParser.prototype;
|
|
990
|
-
|
|
991
|
-
this.
|
|
992
|
-
|
|
993
|
-
_proto._parseEntities = function _parseEntities() {
|
|
994
|
-
var _this = this;
|
|
995
|
-
var entitiesConfig = this.context.originalData.entities;
|
|
996
|
-
var entityConfigMap = this.context.entityConfigMap;
|
|
997
|
-
var entitiesMap = this.context.entityMap;
|
|
998
|
-
var rootIds = this.context.rootIds;
|
|
999
|
-
this._engine;
|
|
1000
|
-
var promises = entitiesConfig.map(function(entityConfig) {
|
|
1001
|
-
entityConfigMap.set(entityConfig.id, entityConfig);
|
|
1002
|
-
// record root entities
|
|
1003
|
-
if (!entityConfig.parent) rootIds.push(entityConfig.id);
|
|
1004
|
-
return _this._reflectionParser.parseEntity(entityConfig);
|
|
1005
|
-
});
|
|
1006
|
-
return Promise.all(promises).then(function(entities) {
|
|
1007
|
-
for(var i = 0, l = entities.length; i < l; i++){
|
|
1008
|
-
entitiesMap.set(entitiesConfig[i].id, entities[i]);
|
|
1009
|
-
}
|
|
1010
|
-
return entities;
|
|
1011
|
-
});
|
|
1012
|
-
};
|
|
1013
|
-
_proto._organizeEntities = function _organizeEntities() {
|
|
1014
|
-
var _this_context = this.context, entityConfigMap = _this_context.entityConfigMap, entityMap = _this_context.entityMap, scene = _this_context.scene, rootIds = _this_context.rootIds;
|
|
1015
|
-
for(var _iterator = _create_for_of_iterator_helper_loose(rootIds), _step; !(_step = _iterator()).done;){
|
|
1016
|
-
var rootId = _step.value;
|
|
1017
|
-
PrefabParser.parseChildren(entityConfigMap, entityMap, rootId);
|
|
1018
|
-
}
|
|
1019
|
-
var rootEntities = rootIds.map(function(id) {
|
|
1020
|
-
return entityMap.get(id);
|
|
1021
|
-
});
|
|
1022
|
-
for(var i = 0; i < rootEntities.length; i++){
|
|
1023
|
-
scene.addRootEntity(rootEntities[i]);
|
|
1024
|
-
}
|
|
1025
|
-
};
|
|
1026
|
-
_proto._parseComponents = function _parseComponents() {
|
|
1027
|
-
var entitiesConfig = this.context.originalData.entities;
|
|
1028
|
-
var entityMap = this.context.entityMap;
|
|
1029
|
-
var promises = [];
|
|
1030
|
-
for(var i = 0, l = entitiesConfig.length; i < l; i++){
|
|
1031
|
-
var entityConfig = entitiesConfig[i];
|
|
1032
|
-
var entity = entityMap.get(entityConfig.id);
|
|
1033
|
-
for(var i1 = 0; i1 < entityConfig.components.length; i1++){
|
|
1034
|
-
var componentConfig = entityConfig.components[i1];
|
|
1035
|
-
var key = !componentConfig.refId ? componentConfig.class : componentConfig.refId;
|
|
1036
|
-
var component = void 0;
|
|
1037
|
-
// TODO: remove hack code when support additional edit
|
|
1038
|
-
if (key === "Animator") {
|
|
1039
|
-
component = entity.getComponent(Loader.getClass(key));
|
|
1040
|
-
}
|
|
1041
|
-
component = component || entity.addComponent(Loader.getClass(key));
|
|
1042
|
-
var promise = this._reflectionParser.parsePropsAndMethods(component, componentConfig);
|
|
1043
|
-
promises.push(promise);
|
|
1044
|
-
}
|
|
1045
|
-
}
|
|
1046
|
-
return Promise.all(promises);
|
|
1047
|
-
};
|
|
1048
|
-
_proto._clearAndResolveScene = function _clearAndResolveScene() {
|
|
1049
|
-
var scene = this.context.scene;
|
|
1050
|
-
this.context.destroy();
|
|
1051
|
-
return scene;
|
|
1267
|
+
_proto.handleRootEntity = function handleRootEntity(id) {
|
|
1268
|
+
var _this_context = this.context, target = _this_context.target, entityMap = _this_context.entityMap;
|
|
1269
|
+
target.addRootEntity(entityMap.get(id));
|
|
1052
1270
|
};
|
|
1053
1271
|
/**
|
|
1054
1272
|
* Parse scene data.
|
|
@@ -1057,13 +1275,13 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
1057
1275
|
* @returns a promise of scene
|
|
1058
1276
|
*/ SceneParser.parse = function parse(engine, sceneData) {
|
|
1059
1277
|
var scene = new Scene(engine);
|
|
1060
|
-
var context = new SceneParserContext(sceneData, scene);
|
|
1278
|
+
var context = new SceneParserContext(sceneData, engine, scene);
|
|
1061
1279
|
var parser = new SceneParser(context);
|
|
1062
1280
|
parser.start();
|
|
1063
1281
|
return parser.promise;
|
|
1064
1282
|
};
|
|
1065
1283
|
return SceneParser;
|
|
1066
|
-
}();
|
|
1284
|
+
}(HierarchyParser);
|
|
1067
1285
|
|
|
1068
1286
|
var MeshLoader$1 = /*#__PURE__*/ function(Loader1) {
|
|
1069
1287
|
_inherits(MeshLoader, Loader1);
|
|
@@ -1168,7 +1386,7 @@ var AnimationClipLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
1168
1386
|
resourceManager// @ts-ignore
|
|
1169
1387
|
.getResourceByRef(value).then(function(asset) {
|
|
1170
1388
|
keyframe.value = asset;
|
|
1171
|
-
resolve(keyframe);
|
|
1389
|
+
resolve(keyframe.value);
|
|
1172
1390
|
});
|
|
1173
1391
|
});
|
|
1174
1392
|
} else {
|
|
@@ -1702,7 +1920,7 @@ var TextureWrapMode;
|
|
|
1702
1920
|
var glTFItems = this.glTF[glTFSchemaMap[type]];
|
|
1703
1921
|
if (glTFItems && (index === undefined || glTFItems[index])) {
|
|
1704
1922
|
if (index === undefined) {
|
|
1705
|
-
resource = type ===
|
|
1923
|
+
resource = type === 8 ? glTFItems.map(function(_, index) {
|
|
1706
1924
|
return _this.get(type, index);
|
|
1707
1925
|
}) : Promise.all(glTFItems.map(function(_, index) {
|
|
1708
1926
|
return _this.get(type, index);
|
|
@@ -1724,11 +1942,11 @@ var TextureWrapMode;
|
|
|
1724
1942
|
_this.glTF = json;
|
|
1725
1943
|
return Promise.all([
|
|
1726
1944
|
_this.get(1),
|
|
1727
|
-
_this.get(4),
|
|
1728
1945
|
_this.get(5),
|
|
1729
1946
|
_this.get(6),
|
|
1730
|
-
_this.get(
|
|
1947
|
+
_this.get(7),
|
|
1731
1948
|
_this.get(9),
|
|
1949
|
+
_this.get(10),
|
|
1732
1950
|
_this.get(2)
|
|
1733
1951
|
]).then(function() {
|
|
1734
1952
|
var glTFResource = _this.glTFResource;
|
|
@@ -1778,7 +1996,7 @@ var TextureWrapMode;
|
|
|
1778
1996
|
var _this = this;
|
|
1779
1997
|
var glTFResourceKey = glTFResourceMap[type];
|
|
1780
1998
|
if (!glTFResourceKey) return;
|
|
1781
|
-
if (type ===
|
|
1999
|
+
if (type === 8) {
|
|
1782
2000
|
var _this_glTFResource, _glTFResourceKey;
|
|
1783
2001
|
((_this_glTFResource = this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = resource;
|
|
1784
2002
|
} else {
|
|
@@ -1786,7 +2004,7 @@ var TextureWrapMode;
|
|
|
1786
2004
|
resource.then(function(item) {
|
|
1787
2005
|
var _this_glTFResource, _glTFResourceKey;
|
|
1788
2006
|
((_this_glTFResource = _this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = item;
|
|
1789
|
-
if (type ===
|
|
2007
|
+
if (type === 7) {
|
|
1790
2008
|
for(var i = 0, length = item.length; i < length; i++){
|
|
1791
2009
|
var mesh = item[i];
|
|
1792
2010
|
// @ts-ignore
|
|
@@ -1826,17 +2044,18 @@ var GLTFParserType;
|
|
|
1826
2044
|
GLTFParserType[GLTFParserType["Validator"] = 1] = "Validator";
|
|
1827
2045
|
GLTFParserType[GLTFParserType["Scene"] = 2] = "Scene";
|
|
1828
2046
|
GLTFParserType[GLTFParserType["Buffer"] = 3] = "Buffer";
|
|
1829
|
-
GLTFParserType[GLTFParserType["
|
|
1830
|
-
GLTFParserType[GLTFParserType["
|
|
1831
|
-
GLTFParserType[GLTFParserType["
|
|
1832
|
-
GLTFParserType[GLTFParserType["
|
|
1833
|
-
GLTFParserType[GLTFParserType["
|
|
1834
|
-
GLTFParserType[GLTFParserType["
|
|
2047
|
+
GLTFParserType[GLTFParserType["BufferView"] = 4] = "BufferView";
|
|
2048
|
+
GLTFParserType[GLTFParserType["Texture"] = 5] = "Texture";
|
|
2049
|
+
GLTFParserType[GLTFParserType["Material"] = 6] = "Material";
|
|
2050
|
+
GLTFParserType[GLTFParserType["Mesh"] = 7] = "Mesh";
|
|
2051
|
+
GLTFParserType[GLTFParserType["Entity"] = 8] = "Entity";
|
|
2052
|
+
GLTFParserType[GLTFParserType["Skin"] = 9] = "Skin";
|
|
2053
|
+
GLTFParserType[GLTFParserType["Animation"] = 10] = "Animation";
|
|
1835
2054
|
})(GLTFParserType || (GLTFParserType = {}));
|
|
1836
2055
|
var _obj;
|
|
1837
|
-
var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[
|
|
2056
|
+
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);
|
|
1838
2057
|
var _obj1;
|
|
1839
|
-
var glTFResourceMap = (_obj1 = {}, _obj1[2] = "_sceneRoots", _obj1[
|
|
2058
|
+
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);
|
|
1840
2059
|
function registerGLTFParser(pipeline) {
|
|
1841
2060
|
return function(Parser) {
|
|
1842
2061
|
var parser = new Parser();
|
|
@@ -1942,11 +2161,10 @@ function registerGLTFParser(pipeline) {
|
|
|
1942
2161
|
GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
|
|
1943
2162
|
var componentType = accessor.componentType;
|
|
1944
2163
|
var bufferView = bufferViews[accessor.bufferView];
|
|
1945
|
-
return context.get(GLTFParserType.
|
|
2164
|
+
return context.get(GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
|
|
1946
2165
|
var bufferIndex = bufferView.buffer;
|
|
1947
|
-
var
|
|
1948
|
-
var
|
|
1949
|
-
var bufferByteOffset = (_bufferView_byteOffset = bufferView.byteOffset) != null ? _bufferView_byteOffset : 0;
|
|
2166
|
+
var _bufferViewData_byteOffset;
|
|
2167
|
+
var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
|
|
1950
2168
|
var _accessor_byteOffset;
|
|
1951
2169
|
var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
|
|
1952
2170
|
var TypedArray = GLTFUtils.getComponentType(componentType);
|
|
@@ -1965,19 +2183,21 @@ function registerGLTFParser(pipeline) {
|
|
|
1965
2183
|
if (!bufferInfo) {
|
|
1966
2184
|
var offset = bufferByteOffset + bufferSlice * bufferStride;
|
|
1967
2185
|
var count = accessorCount * (bufferStride / dataElementBytes);
|
|
1968
|
-
var data = new TypedArray(buffer, offset, count);
|
|
2186
|
+
var data = new TypedArray(bufferViewData.buffer, offset, count);
|
|
1969
2187
|
accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
|
|
1970
2188
|
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
|
|
1971
2189
|
}
|
|
1972
2190
|
} else {
|
|
1973
2191
|
var offset1 = bufferByteOffset + byteOffset;
|
|
1974
2192
|
var count1 = accessorCount * dataElementSize;
|
|
1975
|
-
var data1 = new TypedArray(buffer, offset1, count1);
|
|
2193
|
+
var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
|
|
1976
2194
|
bufferInfo = new BufferInfo(data1, false, elementStride);
|
|
1977
2195
|
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
|
|
1978
2196
|
}
|
|
1979
2197
|
if (accessor.sparse) {
|
|
1980
|
-
GLTFUtils.processingSparseData(
|
|
2198
|
+
return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
|
|
2199
|
+
return bufferInfo;
|
|
2200
|
+
});
|
|
1981
2201
|
}
|
|
1982
2202
|
return bufferInfo;
|
|
1983
2203
|
});
|
|
@@ -2053,40 +2273,43 @@ function registerGLTFParser(pipeline) {
|
|
|
2053
2273
|
};
|
|
2054
2274
|
/**
|
|
2055
2275
|
* Get accessor data.
|
|
2056
|
-
*/ GLTFUtils.processingSparseData = function processingSparseData(
|
|
2276
|
+
*/ GLTFUtils.processingSparseData = function processingSparseData(context, accessor, bufferInfo) {
|
|
2057
2277
|
var restoreInfo = bufferInfo.restoreInfo;
|
|
2278
|
+
var bufferViews = context.glTF.bufferViews;
|
|
2058
2279
|
var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
2059
2280
|
var TypedArray = GLTFUtils.getComponentType(accessor.componentType);
|
|
2060
2281
|
var data = bufferInfo.data.slice();
|
|
2061
2282
|
var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
|
|
2062
2283
|
var indicesBufferView = bufferViews[indices.bufferView];
|
|
2063
2284
|
var valuesBufferView = bufferViews[values.bufferView];
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
var
|
|
2085
|
-
|
|
2086
|
-
|
|
2285
|
+
return Promise.all([
|
|
2286
|
+
context.get(GLTFParserType.BufferView, indices.bufferView),
|
|
2287
|
+
context.get(GLTFParserType.BufferView, values.bufferView)
|
|
2288
|
+
]).then(function(param) {
|
|
2289
|
+
var indicesUint8Array = param[0], valuesUin8Array = param[1];
|
|
2290
|
+
var _indices_byteOffset, _indicesUint8Array_byteOffset;
|
|
2291
|
+
var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesUint8Array_byteOffset = indicesUint8Array.byteOffset) != null ? _indicesUint8Array_byteOffset : 0);
|
|
2292
|
+
var indicesByteLength = indicesUint8Array.byteLength;
|
|
2293
|
+
var _values_byteOffset, _valuesUin8Array_byteOffset;
|
|
2294
|
+
var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesUin8Array_byteOffset = valuesUin8Array.byteOffset) != null ? _valuesUin8Array_byteOffset : 0);
|
|
2295
|
+
var valuesByteLength = valuesUin8Array.byteLength;
|
|
2296
|
+
restoreInfo.typeSize = accessorTypeSize;
|
|
2297
|
+
restoreInfo.sparseCount = count;
|
|
2298
|
+
var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
|
|
2299
|
+
var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
|
|
2300
|
+
var indicesArray = new IndexTypeArray(indicesUint8Array.buffer, indicesByteOffset, indexLength);
|
|
2301
|
+
restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferView.buffer, IndexTypeArray, indicesByteOffset, indexLength);
|
|
2302
|
+
var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
|
|
2303
|
+
var valuesArray = new TypedArray(valuesUin8Array.buffer, valuesByteOffset, valueLength);
|
|
2304
|
+
restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferView.buffer, TypedArray, valuesByteOffset, valueLength);
|
|
2305
|
+
for(var i = 0; i < count; i++){
|
|
2306
|
+
var replaceIndex = indicesArray[i];
|
|
2307
|
+
for(var j = 0; j < accessorTypeSize; j++){
|
|
2308
|
+
data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
|
|
2309
|
+
}
|
|
2087
2310
|
}
|
|
2088
|
-
|
|
2089
|
-
|
|
2311
|
+
bufferInfo.data = data;
|
|
2312
|
+
});
|
|
2090
2313
|
};
|
|
2091
2314
|
GLTFUtils.getIndexFormat = function getIndexFormat(type) {
|
|
2092
2315
|
switch(type){
|
|
@@ -2175,7 +2398,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2175
2398
|
};
|
|
2176
2399
|
/**
|
|
2177
2400
|
* Parse the glb format.
|
|
2178
|
-
*/ GLTFUtils.parseGLB = function parseGLB(context,
|
|
2401
|
+
*/ GLTFUtils.parseGLB = function parseGLB(context, originBuffer) {
|
|
2179
2402
|
var UINT32_LENGTH = 4;
|
|
2180
2403
|
var GLB_HEADER_MAGIC = 0x46546c67; // 'glTF'
|
|
2181
2404
|
var GLB_HEADER_LENGTH = 12;
|
|
@@ -2183,7 +2406,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2183
2406
|
JSON: 0x4e4f534a,
|
|
2184
2407
|
BIN: 0x004e4942
|
|
2185
2408
|
};
|
|
2186
|
-
var dataView = new DataView(
|
|
2409
|
+
var dataView = new DataView(originBuffer);
|
|
2187
2410
|
// read header
|
|
2188
2411
|
var header = {
|
|
2189
2412
|
magic: dataView.getUint32(0, true),
|
|
@@ -2191,8 +2414,9 @@ function registerGLTFParser(pipeline) {
|
|
|
2191
2414
|
length: dataView.getUint32(2 * UINT32_LENGTH, true)
|
|
2192
2415
|
};
|
|
2193
2416
|
if (header.magic !== GLB_HEADER_MAGIC) {
|
|
2194
|
-
|
|
2195
|
-
|
|
2417
|
+
return {
|
|
2418
|
+
originBuffer: originBuffer
|
|
2419
|
+
};
|
|
2196
2420
|
}
|
|
2197
2421
|
// read main data
|
|
2198
2422
|
var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
|
|
@@ -2202,7 +2426,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2202
2426
|
console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
|
|
2203
2427
|
return null;
|
|
2204
2428
|
}
|
|
2205
|
-
var glTFData = new Uint8Array(
|
|
2429
|
+
var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
|
|
2206
2430
|
var glTF = JSON.parse(Utils.decodeText(glTFData));
|
|
2207
2431
|
// read all buffers
|
|
2208
2432
|
var buffers = [];
|
|
@@ -2216,7 +2440,7 @@ function registerGLTFParser(pipeline) {
|
|
|
2216
2440
|
return null;
|
|
2217
2441
|
}
|
|
2218
2442
|
var currentOffset = byteOffset + 2 * UINT32_LENGTH;
|
|
2219
|
-
var buffer =
|
|
2443
|
+
var buffer = originBuffer.slice(currentOffset, currentOffset + chunkLength);
|
|
2220
2444
|
buffers.push(buffer);
|
|
2221
2445
|
restoreGLBBufferSlice.push(new Vector2(currentOffset, chunkLength));
|
|
2222
2446
|
byteOffset += chunkLength + 2 * UINT32_LENGTH;
|
|
@@ -3108,8 +3332,9 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
3108
3332
|
});
|
|
3109
3333
|
};
|
|
3110
3334
|
/**
|
|
3111
|
-
*
|
|
3112
|
-
|
|
3335
|
+
* Release ktx2 transcoder worker.
|
|
3336
|
+
* @remarks If use loader after releasing, we should release again.
|
|
3337
|
+
*/ KTX2Loader1.release = function release() {
|
|
3113
3338
|
if (this._binomialLLCTranscoder) this._binomialLLCTranscoder.destroy();
|
|
3114
3339
|
if (this._khronosTranscoder) this._khronosTranscoder.destroy();
|
|
3115
3340
|
this._binomialLLCTranscoder = null;
|
|
@@ -3629,23 +3854,20 @@ var GLTFSchemaParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3629
3854
|
var requestConfig = {
|
|
3630
3855
|
type: "arraybuffer"
|
|
3631
3856
|
};
|
|
3632
|
-
|
|
3633
|
-
contentRestorer.isGLB = isGLB;
|
|
3634
|
-
var promise = isGLB ? request(url, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(glb) {
|
|
3857
|
+
return request(url, requestConfig).onProgress(undefined, context._onTaskDetail).then(function(buffer) {
|
|
3635
3858
|
restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
|
|
3636
|
-
return GLTFUtils.parseGLB(context,
|
|
3637
|
-
}).then(function(
|
|
3638
|
-
var
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
return url.substring(index + 1, index + 4) === "glb";
|
|
3859
|
+
return GLTFUtils.parseGLB(context, buffer);
|
|
3860
|
+
}).then(function(result) {
|
|
3861
|
+
var _result;
|
|
3862
|
+
if ((_result = result) == null ? void 0 : _result.glTF) {
|
|
3863
|
+
contentRestorer.isGLB = true;
|
|
3864
|
+
context.buffers = result.buffers;
|
|
3865
|
+
return result.glTF;
|
|
3866
|
+
} else {
|
|
3867
|
+
contentRestorer.isGLB = false;
|
|
3868
|
+
return JSON.parse(Utils.decodeText(new Uint8Array(result.originBuffer)));
|
|
3869
|
+
}
|
|
3870
|
+
});
|
|
3649
3871
|
};
|
|
3650
3872
|
return GLTFSchemaParser;
|
|
3651
3873
|
}(GLTFParser);
|
|
@@ -4639,12 +4861,256 @@ GLTFValidator = __decorate([
|
|
|
4639
4861
|
registerGLTFParser(GLTFParserType.Validator)
|
|
4640
4862
|
], GLTFValidator);
|
|
4641
4863
|
|
|
4864
|
+
var GLTFBufferViewParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
4865
|
+
_inherits(GLTFBufferViewParser, GLTFParser1);
|
|
4866
|
+
function GLTFBufferViewParser() {
|
|
4867
|
+
return GLTFParser1.apply(this, arguments);
|
|
4868
|
+
}
|
|
4869
|
+
var _proto = GLTFBufferViewParser.prototype;
|
|
4870
|
+
_proto.parse = function parse(context, index) {
|
|
4871
|
+
var bufferView = context.glTF.bufferViews[index];
|
|
4872
|
+
var extensions = bufferView.extensions, _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset, byteLength = bufferView.byteLength, bufferIndex = bufferView.buffer;
|
|
4873
|
+
return extensions ? GLTFParser.executeExtensionsCreateAndParse(extensions, context, bufferView) : context.get(GLTFParserType.Buffer, bufferIndex).then(function(buffer) {
|
|
4874
|
+
return new Uint8Array(buffer, byteOffset, byteLength);
|
|
4875
|
+
});
|
|
4876
|
+
};
|
|
4877
|
+
return GLTFBufferViewParser;
|
|
4878
|
+
}(GLTFParser);
|
|
4879
|
+
GLTFBufferViewParser = __decorate([
|
|
4880
|
+
registerGLTFParser(GLTFParserType.BufferView)
|
|
4881
|
+
], GLTFBufferViewParser);
|
|
4882
|
+
|
|
4883
|
+
// Source: https://github.com/zeux/meshoptimizer/blob/master/js/meshopt_decoder.js
|
|
4884
|
+
var MeshoptDecoder = function() {
|
|
4885
|
+
var unpack = function unpack(data) {
|
|
4886
|
+
var result = new Uint8Array(data.length);
|
|
4887
|
+
for(var i = 0; i < data.length; ++i){
|
|
4888
|
+
var ch = data.charCodeAt(i);
|
|
4889
|
+
result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
|
|
4890
|
+
}
|
|
4891
|
+
var write = 0;
|
|
4892
|
+
for(var i1 = 0; i1 < data.length; ++i1){
|
|
4893
|
+
result[write++] = result[i1] < 60 ? wasmpack[result[i1]] : (result[i1] - 60) * 64 + result[++i1];
|
|
4894
|
+
}
|
|
4895
|
+
return result.buffer.slice(0, write);
|
|
4896
|
+
};
|
|
4897
|
+
var decode = function decode(fun, target, count, size, source, filter) {
|
|
4898
|
+
var sbrk = instance.exports.sbrk;
|
|
4899
|
+
var count4 = count + 3 & ~3;
|
|
4900
|
+
var tp = sbrk(count4 * size);
|
|
4901
|
+
var sp = sbrk(source.length);
|
|
4902
|
+
var heap = new Uint8Array(instance.exports.memory.buffer);
|
|
4903
|
+
heap.set(source, sp);
|
|
4904
|
+
var res = fun(tp, count, size, sp, source.length);
|
|
4905
|
+
if (res == 0 && filter) {
|
|
4906
|
+
filter(tp, count4, size);
|
|
4907
|
+
}
|
|
4908
|
+
target.set(heap.subarray(tp, tp + count * size));
|
|
4909
|
+
sbrk(tp - sbrk(0));
|
|
4910
|
+
if (res != 0) {
|
|
4911
|
+
throw new Error("Malformed buffer data: " + res);
|
|
4912
|
+
}
|
|
4913
|
+
};
|
|
4914
|
+
var createWorker = function createWorker(url) {
|
|
4915
|
+
var worker = {
|
|
4916
|
+
object: new Worker(url),
|
|
4917
|
+
pending: 0,
|
|
4918
|
+
requests: {}
|
|
4919
|
+
};
|
|
4920
|
+
worker.object.onmessage = function(event) {
|
|
4921
|
+
var data = event.data;
|
|
4922
|
+
worker.pending -= data.count;
|
|
4923
|
+
worker.requests[data.id][data.action](data.value);
|
|
4924
|
+
delete worker.requests[data.id];
|
|
4925
|
+
};
|
|
4926
|
+
return worker;
|
|
4927
|
+
};
|
|
4928
|
+
var initWorkers = function initWorkers(count) {
|
|
4929
|
+
var source = "var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" + ".then(function(result) {instance = result.instance; instance.exports.__wasm_call_ctors();});" + "self.onmessage = workerProcess;" + decode.toString() + workerProcess.toString();
|
|
4930
|
+
var blob = new Blob([
|
|
4931
|
+
source
|
|
4932
|
+
], {
|
|
4933
|
+
type: "text/javascript"
|
|
4934
|
+
});
|
|
4935
|
+
var url = URL.createObjectURL(blob);
|
|
4936
|
+
for(var i = 0; i < count; ++i){
|
|
4937
|
+
workers[i] = createWorker(url);
|
|
4938
|
+
}
|
|
4939
|
+
URL.revokeObjectURL(url);
|
|
4940
|
+
};
|
|
4941
|
+
var decodeWorker = function decodeWorker(count, size, source, mode, filter) {
|
|
4942
|
+
var worker = workers[0];
|
|
4943
|
+
for(var i = 1; i < workers.length; ++i){
|
|
4944
|
+
if (workers[i].pending < worker.pending) {
|
|
4945
|
+
worker = workers[i];
|
|
4946
|
+
}
|
|
4947
|
+
}
|
|
4948
|
+
return new Promise(function(resolve, reject) {
|
|
4949
|
+
var data = new Uint8Array(source);
|
|
4950
|
+
var id = requestId++;
|
|
4951
|
+
worker.pending += count;
|
|
4952
|
+
worker.requests[id] = {
|
|
4953
|
+
resolve: resolve,
|
|
4954
|
+
reject: reject
|
|
4955
|
+
};
|
|
4956
|
+
worker.object.postMessage({
|
|
4957
|
+
id: id,
|
|
4958
|
+
count: count,
|
|
4959
|
+
size: size,
|
|
4960
|
+
source: data,
|
|
4961
|
+
mode: mode,
|
|
4962
|
+
filter: filter
|
|
4963
|
+
}, [
|
|
4964
|
+
data.buffer
|
|
4965
|
+
]);
|
|
4966
|
+
});
|
|
4967
|
+
};
|
|
4968
|
+
var workerProcess = function workerProcess(event) {
|
|
4969
|
+
ready.then(function() {
|
|
4970
|
+
var data = event.data;
|
|
4971
|
+
try {
|
|
4972
|
+
var target = new Uint8Array(data.count * data.size);
|
|
4973
|
+
decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);
|
|
4974
|
+
self.postMessage({
|
|
4975
|
+
id: data.id,
|
|
4976
|
+
count: data.count,
|
|
4977
|
+
action: "resolve",
|
|
4978
|
+
value: target
|
|
4979
|
+
}, [
|
|
4980
|
+
target.buffer
|
|
4981
|
+
]);
|
|
4982
|
+
} catch (error) {
|
|
4983
|
+
self.postMessage({
|
|
4984
|
+
id: data.id,
|
|
4985
|
+
count: data.count,
|
|
4986
|
+
action: "reject",
|
|
4987
|
+
value: error
|
|
4988
|
+
});
|
|
4989
|
+
}
|
|
4990
|
+
});
|
|
4991
|
+
};
|
|
4992
|
+
var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
|
|
4993
|
+
var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
|
|
4994
|
+
var wasmpack = new Uint8Array([
|
|
4995
|
+
32,
|
|
4996
|
+
0,
|
|
4997
|
+
65,
|
|
4998
|
+
2,
|
|
4999
|
+
1,
|
|
5000
|
+
106,
|
|
5001
|
+
34,
|
|
5002
|
+
33,
|
|
5003
|
+
3,
|
|
5004
|
+
128,
|
|
5005
|
+
11,
|
|
5006
|
+
4,
|
|
5007
|
+
13,
|
|
5008
|
+
64,
|
|
5009
|
+
6,
|
|
5010
|
+
253,
|
|
5011
|
+
10,
|
|
5012
|
+
7,
|
|
5013
|
+
15,
|
|
5014
|
+
116,
|
|
5015
|
+
127,
|
|
5016
|
+
5,
|
|
5017
|
+
8,
|
|
5018
|
+
12,
|
|
5019
|
+
40,
|
|
5020
|
+
16,
|
|
5021
|
+
19,
|
|
5022
|
+
54,
|
|
5023
|
+
20,
|
|
5024
|
+
9,
|
|
5025
|
+
27,
|
|
5026
|
+
255,
|
|
5027
|
+
113,
|
|
5028
|
+
17,
|
|
5029
|
+
42,
|
|
5030
|
+
67,
|
|
5031
|
+
24,
|
|
5032
|
+
23,
|
|
5033
|
+
146,
|
|
5034
|
+
148,
|
|
5035
|
+
18,
|
|
5036
|
+
14,
|
|
5037
|
+
22,
|
|
5038
|
+
45,
|
|
5039
|
+
70,
|
|
5040
|
+
69,
|
|
5041
|
+
56,
|
|
5042
|
+
114,
|
|
5043
|
+
101,
|
|
5044
|
+
21,
|
|
5045
|
+
25,
|
|
5046
|
+
63,
|
|
5047
|
+
75,
|
|
5048
|
+
136,
|
|
5049
|
+
108,
|
|
5050
|
+
28,
|
|
5051
|
+
118,
|
|
5052
|
+
29,
|
|
5053
|
+
73,
|
|
5054
|
+
115
|
|
5055
|
+
]);
|
|
5056
|
+
// @ts-ignore
|
|
5057
|
+
var wasm = SystemInfo._detectSIMDSupported() ? wasm_simd : wasm_base;
|
|
5058
|
+
var instance;
|
|
5059
|
+
var ready = WebAssembly.instantiate(unpack(wasm), {}).then(function(result) {
|
|
5060
|
+
instance = result.instance;
|
|
5061
|
+
instance.exports.__wasm_call_ctors();
|
|
5062
|
+
});
|
|
5063
|
+
var filters = {
|
|
5064
|
+
NONE: "",
|
|
5065
|
+
OCTAHEDRAL: "meshopt_decodeFilterOct",
|
|
5066
|
+
QUATERNION: "meshopt_decodeFilterQuat",
|
|
5067
|
+
EXPONENTIAL: "meshopt_decodeFilterExp"
|
|
5068
|
+
};
|
|
5069
|
+
var decoders = {
|
|
5070
|
+
ATTRIBUTES: "meshopt_decodeVertexBuffer",
|
|
5071
|
+
TRIANGLES: "meshopt_decodeIndexBuffer",
|
|
5072
|
+
INDICES: "meshopt_decodeIndexSequence"
|
|
5073
|
+
};
|
|
5074
|
+
var workers = [];
|
|
5075
|
+
var requestId = 0;
|
|
5076
|
+
return {
|
|
5077
|
+
workerCount: 4,
|
|
5078
|
+
ready: ready,
|
|
5079
|
+
useWorkers: function useWorkers() {
|
|
5080
|
+
initWorkers(this.workerCount);
|
|
5081
|
+
},
|
|
5082
|
+
decodeGltfBuffer: function decodeGltfBuffer(count, stride, source, mode, filter) {
|
|
5083
|
+
if (this.workerCount > 0 && workers.length === 0) this.useWorkers();
|
|
5084
|
+
if (workers.length > 0) return decodeWorker(count, stride, source, decoders[mode], filters[filter]);
|
|
5085
|
+
return ready.then(function() {
|
|
5086
|
+
var target = new Uint8Array(count * stride);
|
|
5087
|
+
decode(instance.exports[decoders[mode]], target, count, stride, source, instance.exports[filters[filter]]);
|
|
5088
|
+
return target;
|
|
5089
|
+
});
|
|
5090
|
+
},
|
|
5091
|
+
release: function release() {
|
|
5092
|
+
for(var i = 0; i < workers.length; i++){
|
|
5093
|
+
workers[i].object.terminate();
|
|
5094
|
+
}
|
|
5095
|
+
}
|
|
5096
|
+
};
|
|
5097
|
+
}();
|
|
5098
|
+
|
|
4642
5099
|
var GLTFLoader = /*#__PURE__*/ function(Loader1) {
|
|
4643
5100
|
_inherits(GLTFLoader, Loader1);
|
|
4644
5101
|
function GLTFLoader() {
|
|
4645
5102
|
return Loader1.apply(this, arguments);
|
|
4646
5103
|
}
|
|
4647
5104
|
var _proto = GLTFLoader.prototype;
|
|
5105
|
+
_proto.initialize = function initialize(_, configuration) {
|
|
5106
|
+
var _configuration_glTF;
|
|
5107
|
+
var meshOptOptions = (_configuration_glTF = configuration.glTF) == null ? void 0 : _configuration_glTF.meshOpt;
|
|
5108
|
+
if (meshOptOptions) {
|
|
5109
|
+
MeshoptDecoder.workerCount = meshOptOptions.workerCount;
|
|
5110
|
+
MeshoptDecoder.useWorkers();
|
|
5111
|
+
}
|
|
5112
|
+
return Promise.resolve();
|
|
5113
|
+
};
|
|
4648
5114
|
_proto.load = function load(item, resourceManager) {
|
|
4649
5115
|
var url = item.url;
|
|
4650
5116
|
var params = item.params;
|
|
@@ -4658,6 +5124,12 @@ var GLTFLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
4658
5124
|
context.parse().then(resolve).catch(reject);
|
|
4659
5125
|
});
|
|
4660
5126
|
};
|
|
5127
|
+
/**
|
|
5128
|
+
* Release glTF loader memory(includes meshopt workers).
|
|
5129
|
+
* @remarks If use loader after releasing, we should release again.
|
|
5130
|
+
*/ GLTFLoader.release = function release() {
|
|
5131
|
+
MeshoptDecoder.release();
|
|
5132
|
+
};
|
|
4661
5133
|
return GLTFLoader;
|
|
4662
5134
|
}(Loader);
|
|
4663
5135
|
GLTFLoader = __decorate([
|
|
@@ -5367,6 +5839,86 @@ MeshLoader = __decorate([
|
|
|
5367
5839
|
])
|
|
5368
5840
|
], MeshLoader);
|
|
5369
5841
|
|
|
5842
|
+
var PrimitiveMeshLoader = /*#__PURE__*/ function(Loader1) {
|
|
5843
|
+
_inherits(PrimitiveMeshLoader, Loader1);
|
|
5844
|
+
function PrimitiveMeshLoader() {
|
|
5845
|
+
return Loader1.apply(this, arguments);
|
|
5846
|
+
}
|
|
5847
|
+
var _proto = PrimitiveMeshLoader.prototype;
|
|
5848
|
+
_proto.load = function load(item, param) {
|
|
5849
|
+
var engine = param.engine;
|
|
5850
|
+
return this.request(item.url, _extends({}, item, {
|
|
5851
|
+
type: "json"
|
|
5852
|
+
})).then(function(data) {
|
|
5853
|
+
switch(data.type){
|
|
5854
|
+
case "sphere":
|
|
5855
|
+
return PrimitiveMesh.createSubdivisionSurfaceSphere(engine, data.sphereRadius, data.sphereStep);
|
|
5856
|
+
case "capsule":
|
|
5857
|
+
return PrimitiveMesh.createCapsule(engine, data.capsuleRadius, data.capsuleHeight, data.capsuleRadialSegments, data.capsuleHeightSegments);
|
|
5858
|
+
case "cone":
|
|
5859
|
+
return PrimitiveMesh.createCone(engine, data.coneRadius, data.coneHeight, data.coneRadialSegment, data.coneHeightSegment);
|
|
5860
|
+
case "cuboid":
|
|
5861
|
+
return PrimitiveMesh.createCuboid(engine, data.cuboidWidth, data.cuboidHeight, data.cuboidDepth);
|
|
5862
|
+
case "cylinder":
|
|
5863
|
+
return PrimitiveMesh.createCylinder(engine, data.cylinderRadiusTop, data.cylinderRadiusBottom, data.cylinderHeight, data.cylinderRadialSegment, data.cylinderHeightSegment);
|
|
5864
|
+
case "plane":
|
|
5865
|
+
return PrimitiveMesh.createPlane(engine, data.planeWidth, data.planeHeight, data.planeHorizontalSegments, data.planeVerticalSegments);
|
|
5866
|
+
case "torus":
|
|
5867
|
+
return PrimitiveMesh.createTorus(engine, data.torusRadius, data.torusTubeRadius, data.torusRadialSegments, data.torusTubularSegments, data.torusArc);
|
|
5868
|
+
}
|
|
5869
|
+
});
|
|
5870
|
+
};
|
|
5871
|
+
return PrimitiveMeshLoader;
|
|
5872
|
+
}(Loader);
|
|
5873
|
+
PrimitiveMeshLoader = __decorate([
|
|
5874
|
+
resourceLoader(AssetType.PrimitiveMesh, [
|
|
5875
|
+
"mesh"
|
|
5876
|
+
], false)
|
|
5877
|
+
], PrimitiveMeshLoader);
|
|
5878
|
+
var /** @internal */ PrimitiveMeshType;
|
|
5879
|
+
(function(PrimitiveMeshType) {
|
|
5880
|
+
PrimitiveMeshType["Sphere"] = "sphere";
|
|
5881
|
+
PrimitiveMeshType["Cuboid"] = "cuboid";
|
|
5882
|
+
PrimitiveMeshType["Plane"] = "plane";
|
|
5883
|
+
PrimitiveMeshType["Cylinder"] = "cylinder";
|
|
5884
|
+
PrimitiveMeshType["Torus"] = "torus";
|
|
5885
|
+
PrimitiveMeshType["Cone"] = "cone";
|
|
5886
|
+
PrimitiveMeshType["Capsule"] = "capsule";
|
|
5887
|
+
})(PrimitiveMeshType || (PrimitiveMeshType = {}));
|
|
5888
|
+
|
|
5889
|
+
var ProjectLoader = /*#__PURE__*/ function(Loader1) {
|
|
5890
|
+
_inherits(ProjectLoader, Loader1);
|
|
5891
|
+
function ProjectLoader() {
|
|
5892
|
+
return Loader1.apply(this, arguments);
|
|
5893
|
+
}
|
|
5894
|
+
var _proto = ProjectLoader.prototype;
|
|
5895
|
+
_proto.load = function load(item, resourceManager) {
|
|
5896
|
+
var _this = this;
|
|
5897
|
+
var engine = resourceManager.engine;
|
|
5898
|
+
return new AssetPromise(function(resolve, reject) {
|
|
5899
|
+
_this.request(item.url, {
|
|
5900
|
+
type: "json"
|
|
5901
|
+
}).then(function(data) {
|
|
5902
|
+
// @ts-ignore
|
|
5903
|
+
engine.resourceManager.initVirtualResources(data.files);
|
|
5904
|
+
return resourceManager.load({
|
|
5905
|
+
type: AssetType.Scene,
|
|
5906
|
+
url: data.scene
|
|
5907
|
+
}).then(function(scene) {
|
|
5908
|
+
engine.sceneManager.activeScene = scene;
|
|
5909
|
+
resolve();
|
|
5910
|
+
});
|
|
5911
|
+
}).catch(reject);
|
|
5912
|
+
});
|
|
5913
|
+
};
|
|
5914
|
+
return ProjectLoader;
|
|
5915
|
+
}(Loader);
|
|
5916
|
+
ProjectLoader = __decorate([
|
|
5917
|
+
resourceLoader(AssetType.Project, [
|
|
5918
|
+
"proj"
|
|
5919
|
+
], false)
|
|
5920
|
+
], ProjectLoader);
|
|
5921
|
+
|
|
5370
5922
|
var SourceFontLoader = /*#__PURE__*/ function(Loader1) {
|
|
5371
5923
|
_inherits(SourceFontLoader, Loader1);
|
|
5372
5924
|
function SourceFontLoader() {
|
|
@@ -5487,7 +6039,7 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5487
6039
|
};
|
|
5488
6040
|
_proto._makeSprite = function _makeSprite(engine, config, texture) {
|
|
5489
6041
|
// Generate a SpriteAtlas object.
|
|
5490
|
-
var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border;
|
|
6042
|
+
var region = config.region, atlasRegionOffset = config.atlasRegionOffset, atlasRegion = config.atlasRegion, pivot = config.pivot, border = config.border, width = config.width, height = config.height;
|
|
5491
6043
|
var sprite = new Sprite(engine, texture, region ? this._tempRect.set(region.x, region.y, region.w, region.h) : undefined, pivot ? this._tempVec2.set(pivot.x, pivot.y) : undefined, border ? this._tempVec4.set(border.x, border.y, border.z, border.w) : undefined, config.name);
|
|
5492
6044
|
if (texture) {
|
|
5493
6045
|
var invW = 1 / texture.width;
|
|
@@ -5499,6 +6051,8 @@ var SpriteAtlasLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5499
6051
|
}
|
|
5500
6052
|
config.atlasRotated && (sprite.atlasRotated = true);
|
|
5501
6053
|
}
|
|
6054
|
+
isNaN(width) || (sprite.width = width);
|
|
6055
|
+
isNaN(height) || (sprite.height = height);
|
|
5502
6056
|
return sprite;
|
|
5503
6057
|
};
|
|
5504
6058
|
return SpriteAtlasLoader;
|
|
@@ -5517,26 +6071,39 @@ var SpriteLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5517
6071
|
var _proto = SpriteLoader.prototype;
|
|
5518
6072
|
_proto.load = function load(item, resourceManager) {
|
|
5519
6073
|
var _this = this;
|
|
5520
|
-
return
|
|
5521
|
-
|
|
5522
|
-
|
|
5523
|
-
|
|
5524
|
-
|
|
5525
|
-
|
|
5526
|
-
|
|
5527
|
-
|
|
5528
|
-
|
|
5529
|
-
|
|
5530
|
-
|
|
5531
|
-
.getResourceByRef(data.texture).then(function(texture) {
|
|
5532
|
-
resolve(new Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border));
|
|
5533
|
-
}).catch(reject);
|
|
5534
|
-
} else {
|
|
5535
|
-
resolve(new Sprite(resourceManager.engine, null, data.region, data.pivot, data.border));
|
|
5536
|
-
}
|
|
5537
|
-
}).catch(reject);
|
|
6074
|
+
return this.request(item.url, _extends({}, item, {
|
|
6075
|
+
type: "json"
|
|
6076
|
+
})).then(function(data) {
|
|
6077
|
+
return data.belongToAtlas ? _this._loadFromAtlas(resourceManager, data) : _this._loadFromTexture(resourceManager, data);
|
|
6078
|
+
});
|
|
6079
|
+
};
|
|
6080
|
+
_proto._loadFromAtlas = function _loadFromAtlas(resourceManager, data) {
|
|
6081
|
+
var _this = this;
|
|
6082
|
+
return resourceManager// @ts-ignore
|
|
6083
|
+
.getResourceByRef(data.belongToAtlas).then(function(atlas) {
|
|
6084
|
+
return atlas.getSprite(data.fullPath) || _this._loadFromTexture(resourceManager, data);
|
|
5538
6085
|
});
|
|
5539
6086
|
};
|
|
6087
|
+
_proto._loadFromTexture = function _loadFromTexture(resourceManager, data) {
|
|
6088
|
+
if (data.texture) {
|
|
6089
|
+
return resourceManager// @ts-ignore
|
|
6090
|
+
.getResourceByRef(data.texture).then(function(texture) {
|
|
6091
|
+
var sprite = new Sprite(resourceManager.engine, texture, data.region, data.pivot, data.border);
|
|
6092
|
+
var width = data.width, height = data.height;
|
|
6093
|
+
isNaN(width) || (sprite.width = width);
|
|
6094
|
+
isNaN(height) || (sprite.height = height);
|
|
6095
|
+
return sprite;
|
|
6096
|
+
});
|
|
6097
|
+
} else {
|
|
6098
|
+
return new AssetPromise(function(resolve) {
|
|
6099
|
+
var sprite = new Sprite(resourceManager.engine, null, data.region, data.pivot, data.border);
|
|
6100
|
+
var width = data.width, height = data.height;
|
|
6101
|
+
isNaN(width) || (sprite.width = width);
|
|
6102
|
+
isNaN(height) || (sprite.height = height);
|
|
6103
|
+
resolve(sprite);
|
|
6104
|
+
});
|
|
6105
|
+
}
|
|
6106
|
+
};
|
|
5540
6107
|
return SpriteLoader;
|
|
5541
6108
|
}(Loader);
|
|
5542
6109
|
SpriteLoader = __decorate([
|
|
@@ -5687,39 +6254,6 @@ TextureCubeLoader = __decorate([
|
|
|
5687
6254
|
])
|
|
5688
6255
|
], TextureCubeLoader);
|
|
5689
6256
|
|
|
5690
|
-
var ProjectLoader = /*#__PURE__*/ function(Loader1) {
|
|
5691
|
-
_inherits(ProjectLoader, Loader1);
|
|
5692
|
-
function ProjectLoader() {
|
|
5693
|
-
return Loader1.apply(this, arguments);
|
|
5694
|
-
}
|
|
5695
|
-
var _proto = ProjectLoader.prototype;
|
|
5696
|
-
_proto.load = function load(item, resourceManager) {
|
|
5697
|
-
var _this = this;
|
|
5698
|
-
var engine = resourceManager.engine;
|
|
5699
|
-
return new AssetPromise(function(resolve, reject) {
|
|
5700
|
-
_this.request(item.url, {
|
|
5701
|
-
type: "json"
|
|
5702
|
-
}).then(function(data) {
|
|
5703
|
-
// @ts-ignore
|
|
5704
|
-
engine.resourceManager.initVirtualResources(data.files);
|
|
5705
|
-
return resourceManager.load({
|
|
5706
|
-
type: AssetType.Scene,
|
|
5707
|
-
url: data.scene
|
|
5708
|
-
}).then(function(scene) {
|
|
5709
|
-
engine.sceneManager.activeScene = scene;
|
|
5710
|
-
resolve();
|
|
5711
|
-
});
|
|
5712
|
-
}).catch(reject);
|
|
5713
|
-
});
|
|
5714
|
-
};
|
|
5715
|
-
return ProjectLoader;
|
|
5716
|
-
}(Loader);
|
|
5717
|
-
ProjectLoader = __decorate([
|
|
5718
|
-
resourceLoader(AssetType.Project, [
|
|
5719
|
-
"proj"
|
|
5720
|
-
], false)
|
|
5721
|
-
], ProjectLoader);
|
|
5722
|
-
|
|
5723
6257
|
var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
5724
6258
|
_inherits(SceneLoader, Loader1);
|
|
5725
6259
|
function SceneLoader() {
|
|
@@ -5738,7 +6272,7 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5738
6272
|
// parse ambient light
|
|
5739
6273
|
var ambient = data.scene.ambient;
|
|
5740
6274
|
if (ambient) {
|
|
5741
|
-
var useCustomAmbient = ambient.specularMode ===
|
|
6275
|
+
var useCustomAmbient = ambient.specularMode === SpecularMode.Custom;
|
|
5742
6276
|
var useSH = ambient.diffuseMode === DiffuseMode.SphericalHarmonics;
|
|
5743
6277
|
scene.ambientLight.diffuseIntensity = ambient.diffuseIntensity;
|
|
5744
6278
|
scene.ambientLight.specularIntensity = ambient.specularIntensity;
|
|
@@ -5809,6 +6343,8 @@ var SceneLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5809
6343
|
var _shadow_shadowTwoCascadeSplits;
|
|
5810
6344
|
scene.shadowTwoCascadeSplits = (_shadow_shadowTwoCascadeSplits = shadow.shadowTwoCascadeSplits) != null ? _shadow_shadowTwoCascadeSplits : scene.shadowTwoCascadeSplits;
|
|
5811
6345
|
shadow.shadowFourCascadeSplits && scene.shadowFourCascadeSplits.copyFrom(shadow.shadowFourCascadeSplits);
|
|
6346
|
+
var _shadow_shadowFadeBorder;
|
|
6347
|
+
scene.shadowFadeBorder = (_shadow_shadowFadeBorder = shadow.shadowFadeBorder) != null ? _shadow_shadowFadeBorder : scene.shadowFadeBorder;
|
|
5812
6348
|
}
|
|
5813
6349
|
return Promise.all(promises).then(function() {
|
|
5814
6350
|
resolve(scene);
|
|
@@ -5839,170 +6375,6 @@ ReflectionParser.registerCustomParseComponent("TextRenderer", /*#__PURE__*/ _asy
|
|
|
5839
6375
|
});
|
|
5840
6376
|
}));
|
|
5841
6377
|
|
|
5842
|
-
var _KHR_draco_mesh_compression;
|
|
5843
|
-
var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ function(GLTFExtensionParser1) {
|
|
5844
|
-
_inherits(KHR_draco_mesh_compression1, GLTFExtensionParser1);
|
|
5845
|
-
function KHR_draco_mesh_compression1() {
|
|
5846
|
-
return GLTFExtensionParser1.apply(this, arguments);
|
|
5847
|
-
}
|
|
5848
|
-
var _proto = KHR_draco_mesh_compression1.prototype;
|
|
5849
|
-
_proto.createAndParse = function createAndParse(context, schema, glTFPrimitive, glTFMesh) {
|
|
5850
|
-
var _this = this;
|
|
5851
|
-
this._initialize();
|
|
5852
|
-
var glTF = context.glTF, engine = context.glTFResource.engine;
|
|
5853
|
-
var bufferViews = glTF.bufferViews, accessors = glTF.accessors;
|
|
5854
|
-
var bufferViewIndex = schema.bufferView, gltfAttributeMap = schema.attributes;
|
|
5855
|
-
var attributeMap = {};
|
|
5856
|
-
var attributeTypeMap = {};
|
|
5857
|
-
for(var attributeName in gltfAttributeMap){
|
|
5858
|
-
attributeMap[attributeName] = gltfAttributeMap[attributeName];
|
|
5859
|
-
}
|
|
5860
|
-
for(var attributeName1 in glTFPrimitive.attributes){
|
|
5861
|
-
if (gltfAttributeMap[attributeName1] !== undefined) {
|
|
5862
|
-
var accessorDef = accessors[glTFPrimitive.attributes[attributeName1]];
|
|
5863
|
-
attributeTypeMap[attributeName1] = GLTFUtils.getComponentType(accessorDef.componentType).name;
|
|
5864
|
-
}
|
|
5865
|
-
}
|
|
5866
|
-
var indexAccessor = accessors[glTFPrimitive.indices];
|
|
5867
|
-
var indexType = GLTFUtils.getComponentType(indexAccessor.componentType).name;
|
|
5868
|
-
var taskConfig = {
|
|
5869
|
-
attributeIDs: attributeMap,
|
|
5870
|
-
attributeTypes: attributeTypeMap,
|
|
5871
|
-
useUniqueIDs: true,
|
|
5872
|
-
indexType: indexType
|
|
5873
|
-
};
|
|
5874
|
-
return context.get(GLTFParserType.Buffer).then(function(buffers) {
|
|
5875
|
-
var buffer = GLTFUtils.getBufferViewData(bufferViews[bufferViewIndex], buffers);
|
|
5876
|
-
return KHR_draco_mesh_compression._decoder.decode(buffer, taskConfig).then(function(decodedGeometry) {
|
|
5877
|
-
var mesh = new ModelMesh(engine, glTFMesh.name);
|
|
5878
|
-
return _this._parseMeshFromGLTFPrimitiveDraco(mesh, glTFMesh, glTFPrimitive, glTF, function(attributeSemantic) {
|
|
5879
|
-
for(var j = 0; j < decodedGeometry.attributes.length; j++){
|
|
5880
|
-
if (decodedGeometry.attributes[j].name === attributeSemantic) {
|
|
5881
|
-
return decodedGeometry.attributes[j].array;
|
|
5882
|
-
}
|
|
5883
|
-
}
|
|
5884
|
-
return null;
|
|
5885
|
-
}, function(attributeSemantic, shapeIndex) {
|
|
5886
|
-
throw "BlendShape animation is not supported when using draco.";
|
|
5887
|
-
}, function() {
|
|
5888
|
-
return decodedGeometry.index.array;
|
|
5889
|
-
}, context.params.keepMeshData);
|
|
5890
|
-
});
|
|
5891
|
-
});
|
|
5892
|
-
};
|
|
5893
|
-
_proto._initialize = function _initialize() {
|
|
5894
|
-
if (!KHR_draco_mesh_compression._decoder) {
|
|
5895
|
-
KHR_draco_mesh_compression._decoder = new DRACODecoder();
|
|
5896
|
-
}
|
|
5897
|
-
};
|
|
5898
|
-
_proto._parseMeshFromGLTFPrimitiveDraco = function _parseMeshFromGLTFPrimitiveDraco(mesh, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
|
|
5899
|
-
var attributes = gltfPrimitive.attributes, targets = gltfPrimitive.targets, indices = gltfPrimitive.indices, mode = gltfPrimitive.mode;
|
|
5900
|
-
var vertexCount;
|
|
5901
|
-
var accessors = gltf.accessors;
|
|
5902
|
-
var accessor = accessors[attributes["POSITION"]];
|
|
5903
|
-
var positionBuffer = getVertexBufferData("POSITION");
|
|
5904
|
-
var positions = GLTFUtils.floatBufferToVector3Array(positionBuffer);
|
|
5905
|
-
mesh.setPositions(positions);
|
|
5906
|
-
var bounds = mesh.bounds;
|
|
5907
|
-
vertexCount = accessor.count;
|
|
5908
|
-
if (accessor.min && accessor.max) {
|
|
5909
|
-
bounds.min.copyFromArray(accessor.min);
|
|
5910
|
-
bounds.max.copyFromArray(accessor.max);
|
|
5911
|
-
} else {
|
|
5912
|
-
var position = KHR_draco_mesh_compression._tempVector3;
|
|
5913
|
-
var min = bounds.min, max = bounds.max;
|
|
5914
|
-
min.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
5915
|
-
max.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
|
|
5916
|
-
var stride = positionBuffer.length / vertexCount;
|
|
5917
|
-
for(var j = 0; j < vertexCount; j++){
|
|
5918
|
-
var offset = j * stride;
|
|
5919
|
-
position.copyFromArray(positionBuffer, offset);
|
|
5920
|
-
Vector3.min(min, position, min);
|
|
5921
|
-
Vector3.max(max, position, max);
|
|
5922
|
-
}
|
|
5923
|
-
}
|
|
5924
|
-
for(var attributeSemantic in attributes){
|
|
5925
|
-
if (attributeSemantic === "POSITION") {
|
|
5926
|
-
continue;
|
|
5927
|
-
}
|
|
5928
|
-
var bufferData = getVertexBufferData(attributeSemantic);
|
|
5929
|
-
switch(attributeSemantic){
|
|
5930
|
-
case "NORMAL":
|
|
5931
|
-
var normals = GLTFUtils.floatBufferToVector3Array(bufferData);
|
|
5932
|
-
mesh.setNormals(normals);
|
|
5933
|
-
break;
|
|
5934
|
-
case "TEXCOORD_0":
|
|
5935
|
-
var texturecoords = GLTFUtils.floatBufferToVector2Array(bufferData);
|
|
5936
|
-
mesh.setUVs(texturecoords, 0);
|
|
5937
|
-
break;
|
|
5938
|
-
case "TEXCOORD_1":
|
|
5939
|
-
var texturecoords1 = GLTFUtils.floatBufferToVector2Array(bufferData);
|
|
5940
|
-
mesh.setUVs(texturecoords1, 1);
|
|
5941
|
-
break;
|
|
5942
|
-
case "TEXCOORD_2":
|
|
5943
|
-
var texturecoords2 = GLTFUtils.floatBufferToVector2Array(bufferData);
|
|
5944
|
-
mesh.setUVs(texturecoords2, 2);
|
|
5945
|
-
break;
|
|
5946
|
-
case "TEXCOORD_3":
|
|
5947
|
-
var texturecoords3 = GLTFUtils.floatBufferToVector2Array(bufferData);
|
|
5948
|
-
mesh.setUVs(texturecoords3, 3);
|
|
5949
|
-
break;
|
|
5950
|
-
case "TEXCOORD_4":
|
|
5951
|
-
var texturecoords4 = GLTFUtils.floatBufferToVector2Array(bufferData);
|
|
5952
|
-
mesh.setUVs(texturecoords4, 4);
|
|
5953
|
-
break;
|
|
5954
|
-
case "TEXCOORD_5":
|
|
5955
|
-
var texturecoords5 = GLTFUtils.floatBufferToVector2Array(bufferData);
|
|
5956
|
-
mesh.setUVs(texturecoords5, 5);
|
|
5957
|
-
break;
|
|
5958
|
-
case "TEXCOORD_6":
|
|
5959
|
-
var texturecoords6 = GLTFUtils.floatBufferToVector2Array(bufferData);
|
|
5960
|
-
mesh.setUVs(texturecoords6, 6);
|
|
5961
|
-
break;
|
|
5962
|
-
case "TEXCOORD_7":
|
|
5963
|
-
var texturecoords7 = GLTFUtils.floatBufferToVector2Array(bufferData);
|
|
5964
|
-
mesh.setUVs(texturecoords7, 7);
|
|
5965
|
-
break;
|
|
5966
|
-
case "COLOR_0":
|
|
5967
|
-
var colors = GLTFUtils.floatBufferToColorArray(bufferData, accessors[attributes["COLOR_0"]].type === AccessorType.VEC3);
|
|
5968
|
-
mesh.setColors(colors);
|
|
5969
|
-
break;
|
|
5970
|
-
case "TANGENT":
|
|
5971
|
-
var tangents = GLTFUtils.floatBufferToVector4Array(bufferData);
|
|
5972
|
-
mesh.setTangents(tangents);
|
|
5973
|
-
break;
|
|
5974
|
-
case "JOINTS_0":
|
|
5975
|
-
var joints = GLTFUtils.floatBufferToVector4Array(bufferData);
|
|
5976
|
-
mesh.setBoneIndices(joints);
|
|
5977
|
-
break;
|
|
5978
|
-
case "WEIGHTS_0":
|
|
5979
|
-
var weights = GLTFUtils.floatBufferToVector4Array(bufferData);
|
|
5980
|
-
mesh.setBoneWeights(weights);
|
|
5981
|
-
break;
|
|
5982
|
-
}
|
|
5983
|
-
}
|
|
5984
|
-
// Indices
|
|
5985
|
-
if (indices !== undefined) {
|
|
5986
|
-
var indexAccessor = gltf.accessors[indices];
|
|
5987
|
-
var indexData = getIndexBufferData();
|
|
5988
|
-
mesh.setIndices(indexData);
|
|
5989
|
-
mesh.addSubMesh(0, indexAccessor.count, mode);
|
|
5990
|
-
} else {
|
|
5991
|
-
mesh.addSubMesh(0, vertexCount, mode);
|
|
5992
|
-
}
|
|
5993
|
-
// BlendShapes
|
|
5994
|
-
targets && GLTFMeshParser._createBlendShape(mesh, null, gltfMesh, accessors, targets, getBlendShapeData);
|
|
5995
|
-
mesh.uploadData(!keepMeshData);
|
|
5996
|
-
return Promise.resolve(mesh);
|
|
5997
|
-
};
|
|
5998
|
-
return KHR_draco_mesh_compression1;
|
|
5999
|
-
}(GLTFExtensionParser), function() {
|
|
6000
|
-
_KHR_draco_mesh_compression._tempVector3 = new Vector3();
|
|
6001
|
-
}(), _KHR_draco_mesh_compression);
|
|
6002
|
-
KHR_draco_mesh_compression = __decorate([
|
|
6003
|
-
registerGLTFExtension("KHR_draco_mesh_compression", GLTFExtensionMode.CreateAndParse)
|
|
6004
|
-
], KHR_draco_mesh_compression);
|
|
6005
|
-
|
|
6006
6378
|
var KHR_lights_punctual = /*#__PURE__*/ function(GLTFExtensionParser1) {
|
|
6007
6379
|
_inherits(KHR_lights_punctual, GLTFExtensionParser1);
|
|
6008
6380
|
function KHR_lights_punctual() {
|
|
@@ -6335,6 +6707,23 @@ GALACEAN_animation_event = __decorate([
|
|
|
6335
6707
|
registerGLTFExtension("GALACEAN_animation_event", GLTFExtensionMode.AdditiveParse)
|
|
6336
6708
|
], GALACEAN_animation_event);
|
|
6337
6709
|
|
|
6710
|
+
var EXT_meshopt_compression = /*#__PURE__*/ function(GLTFExtensionParser1) {
|
|
6711
|
+
_inherits(EXT_meshopt_compression, GLTFExtensionParser1);
|
|
6712
|
+
function EXT_meshopt_compression() {
|
|
6713
|
+
return GLTFExtensionParser1.apply(this, arguments);
|
|
6714
|
+
}
|
|
6715
|
+
var _proto = EXT_meshopt_compression.prototype;
|
|
6716
|
+
_proto.createAndParse = function createAndParse(context, schema) {
|
|
6717
|
+
return context.get(GLTFParserType.Buffer, schema.buffer).then(function(arrayBuffer) {
|
|
6718
|
+
return MeshoptDecoder.decodeGltfBuffer(schema.count, schema.byteStride, new Uint8Array(arrayBuffer, schema.byteOffset, schema.byteLength), schema.mode, schema.filter);
|
|
6719
|
+
});
|
|
6720
|
+
};
|
|
6721
|
+
return EXT_meshopt_compression;
|
|
6722
|
+
}(GLTFExtensionParser);
|
|
6723
|
+
EXT_meshopt_compression = __decorate([
|
|
6724
|
+
registerGLTFExtension("EXT_meshopt_compression", GLTFExtensionMode.CreateAndParse)
|
|
6725
|
+
], EXT_meshopt_compression);
|
|
6726
|
+
|
|
6338
6727
|
var KHR_materials_anisotropy = /*#__PURE__*/ function(GLTFExtensionParser1) {
|
|
6339
6728
|
_inherits(KHR_materials_anisotropy, GLTFExtensionParser1);
|
|
6340
6729
|
function KHR_materials_anisotropy() {
|
|
@@ -6358,5 +6747,5 @@ KHR_materials_anisotropy = __decorate([
|
|
|
6358
6747
|
registerGLTFExtension("KHR_materials_anisotropy", GLTFExtensionMode.AdditiveParse)
|
|
6359
6748
|
], KHR_materials_anisotropy);
|
|
6360
6749
|
|
|
6361
|
-
export { AnimationClipDecoder,
|
|
6750
|
+
export { AccessorType, AnimationClipDecoder, BufferInfo, EditorTextureLoader, GLTFAnimationParser, GLTFBufferParser, GLTFBufferViewParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFLoader, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, KTX2Loader, KTX2TargetFormat, KTX2Transcoder, MeshDecoder, MeshLoader$1 as MeshLoader, ParserContext, PrefabParser, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, parseSingleKTX, registerGLTFExtension, registerGLTFParser };
|
|
6362
6751
|
//# sourceMappingURL=module.js.map
|